diff --git a/apps/web/.dockerignore b/apps/web/.dockerignore new file mode 100644 index 0000000000..702e015eef --- /dev/null +++ b/apps/web/.dockerignore @@ -0,0 +1,3 @@ +* +!build/* +!entrypoint.sh diff --git a/apps/web/.editorconfig b/apps/web/.editorconfig new file mode 100644 index 0000000000..b342a11203 --- /dev/null +++ b/apps/web/.editorconfig @@ -0,0 +1,18 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file +[*] +end_of_line = lf +insert_final_newline = true + +# Set default charset +[*.{js,ts,scss,html}] +charset = utf-8 +indent_style = space +indent_size = 2 + +[*.{ts}] +quote_type = single diff --git a/apps/web/.eslintignore b/apps/web/.eslintignore new file mode 100644 index 0000000000..c6df035b52 --- /dev/null +++ b/apps/web/.eslintignore @@ -0,0 +1,8 @@ +**/dist +**/build +jslib +webpack.config.js +scripts/optimize.js +config.js + +**/node_modules diff --git a/apps/web/.eslintrc.json b/apps/web/.eslintrc.json new file mode 100644 index 0000000000..0974eafa53 --- /dev/null +++ b/apps/web/.eslintrc.json @@ -0,0 +1,31 @@ +{ + "root": true, + "env": { + "browser": true + }, + "extends": ["./jslib/shared/eslintrc.json"], + "rules": { + "import/order": [ + "error", + { + "alphabetize": { + "order": "asc" + }, + "newlines-between": "always", + "pathGroups": [ + { + "pattern": "jslib-*/**", + "group": "external", + "position": "after" + }, + { + "pattern": "src/**/*", + "group": "parent", + "position": "before" + } + ], + "pathGroupsExcludedImportTypes": ["builtin"] + } + ] + } +} diff --git a/apps/web/.git-blame-ignore-revs b/apps/web/.git-blame-ignore-revs new file mode 100644 index 0000000000..456a355970 --- /dev/null +++ b/apps/web/.git-blame-ignore-revs @@ -0,0 +1,2 @@ +# Apply Prettier https://github.com/bitwarden/web/pull/1347 +56477eb39cfd8a73c9920577d24d75fed36e2cf5 diff --git a/apps/web/.gitattributes b/apps/web/.gitattributes new file mode 100644 index 0000000000..6313b56c57 --- /dev/null +++ b/apps/web/.gitattributes @@ -0,0 +1 @@ +* text=auto eol=lf diff --git a/apps/web/.github/ISSUE_TEMPLATE/bug.yml b/apps/web/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 0000000000..143797b983 --- /dev/null +++ b/apps/web/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,93 @@ +name: Bug Report +description: File a bug report +labels: [bug] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + + Please do not submit feature requests. The [Community Forums](https://community.bitwarden.com) has a section for submitting, voting for, and discussing product feature requests. + - type: textarea + id: reproduce + attributes: + label: Steps To Reproduce + description: How can we reproduce the behavior. + value: | + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. Click on '...' + validations: + required: true + - type: textarea + id: expected + attributes: + label: Expected Result + description: A clear and concise description of what you expected to happen. + validations: + required: true + - type: textarea + id: actual + attributes: + label: Actual Result + description: A clear and concise description of what is happening. + validations: + required: true + - type: textarea + id: screenshots + attributes: + label: Screenshots or Videos + description: If applicable, add screenshots and/or a short video to help explain your problem. + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: Add any other context about the problem here. + - type: dropdown + id: os + attributes: + label: Operating System + description: What operating system are you seeing the problem on? + multiple: true + options: + - Windows + - macOS + - Linux + - Android + - iOS + validations: + required: true + - type: input + id: os-version + attributes: + label: Operating System Version + description: What version of the operating system(s) are you seeing the problem on? + - type: dropdown + id: browsers + attributes: + label: Web Browser + description: What browser(s) are you seeing the problem on? + multiple: true + options: + - Chrome + - Safari + - Microsoft Edge + - Firefox + - Opera + - Brave + - Vivaldi + validations: + required: true + - type: input + id: browser-version + attributes: + label: Browser Version + description: What version of the browser(s) are you seeing the problem on? + - type: input + id: version + attributes: + label: Build Version + description: What version of our software are you running? (Bottom of the page) + validations: + required: true diff --git a/apps/web/.github/ISSUE_TEMPLATE/config.yml b/apps/web/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000..61d7e2b96f --- /dev/null +++ b/apps/web/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,14 @@ +blank_issues_enabled: false +contact_links: + - name: Feature Requests + url: https://community.bitwarden.com/c/feature-requests/ + about: Request new features using the Community Forums. Please search existing feature requests before making a new one. + - name: Bitwarden Community Forums + url: https://community.bitwarden.com + about: Please visit the community forums for general community discussion, support and the development roadmap. + - name: Customer Support + url: https://bitwarden.com/contact/ + about: Please contact our customer support for account issues and general customer support. + - name: Security Issues + url: https://hackerone.com/bitwarden + about: We use HackerOne to manage security disclosures. diff --git a/apps/web/.github/PULL_REQUEST_TEMPLATE.md b/apps/web/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000000..5ea1b6313c --- /dev/null +++ b/apps/web/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,28 @@ +## Type of change + +- [ ] Bug fix +- [ ] New feature development +- [ ] Tech debt (refactoring, code cleanup, dependency upgrades, etc) +- [ ] Build/deploy pipeline (DevOps) +- [ ] Other + +## Objective + + + +## Code changes + + + + +- **file.ext:** Description of what was changed and why + +## Screenshots + + + +## Before you submit + +- [ ] I have checked for **linting** errors (`npm run lint`) (required) +- [ ] This change requires a **documentation update** (notify the documentation team) +- [ ] This change has particular **deployment requirements** (notify the DevOps team) diff --git a/apps/web/.github/workflows/build.yml b/apps/web/.github/workflows/build.yml new file mode 100644 index 0000000000..16f0a3bd70 --- /dev/null +++ b/apps/web/.github/workflows/build.yml @@ -0,0 +1,525 @@ +--- +name: Build + +on: + workflow_dispatch: + inputs: + custom_tag_extension: + description: "Custom image tag extension" + required: false + push: + branches-ignore: + - "l10n_master" + - "gh-pages" + - "deploy" + paths-ignore: + - '.github/workflows/**' + + +jobs: + cloc: + name: CLOC + runs-on: ubuntu-20.04 + steps: + - name: Checkout repo + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + + - name: Set up cloc + run: | + sudo apt update + sudo apt -y install cloc + + - name: Print lines of code + run: cloc --include-lang TypeScript,JavaScript,HTML,Sass,CSS --vcs git + + + lint: + name: Lint + runs-on: ubuntu-20.04 + steps: + - name: Checkout repo + uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 + + - name: Cache npm + id: npm-cache + uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 + with: + path: "~/.npm" + key: ${{ runner.os }}-npm-lint-${{ hashFiles('**/package-lock.json') }} + + - name: Install dependencies + run: npm ci + + - name: Run linter + run: npm run lint + + + setup: + name: Setup + runs-on: ubuntu-20.04 + outputs: + version: ${{ steps.version.outputs.value }} + steps: + - name: Checkout repo + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + + - name: Get GitHub sha as version + id: version + run: echo "::set-output name=value::${GITHUB_SHA:0:7}" + + + build-oss-selfhost: + name: Build OSS zip + runs-on: ubuntu-20.04 + needs: + - setup + - lint + env: + _VERSION: ${{ needs.setup.outputs.version }} + steps: + - name: Checkout repo + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + + - name: Set up Node + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 + with: + cache: 'npm' + cache-dependency-path: '**/package-lock.json' + node-version: "16" + + - name: Print environment + run: | + whoami + node --version + npm --version + gulp --version + docker --version + echo "GitHub ref: $GITHUB_REF" + echo "GitHub event: $GITHUB_EVENT" + + - name: Install dependencies + run: npm ci + + - name: Build OSS selfhost + run: | + npm run dist:oss:selfhost + zip -r web-$_VERSION-selfhosted-open-source.zip build + + - name: Upload build artifact + uses: actions/upload-artifact@ee69f02b3dfdecd58bb31b4d133da38ba6fe3700 # v2.2.3 + with: + name: web-${{ env._VERSION }}-selfhosted-open-source.zip + path: ./web-${{ env._VERSION }}-selfhosted-open-source.zip + if-no-files-found: error + + + build-cloud: + name: Build Cloud zip + runs-on: ubuntu-20.04 + needs: + - setup + - lint + env: + _VERSION: ${{ needs.setup.outputs.version }} + steps: + - name: Checkout repo + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + + - name: Set up Node + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 + with: + cache: 'npm' + cache-dependency-path: '**/package-lock.json' + node-version: "16" + + - name: Print environment + run: | + whoami + node --version + npm --version + gulp --version + docker --version + echo "GitHub ref: $GITHUB_REF" + echo "GitHub event: $GITHUB_EVENT" + + - name: Install dependencies + run: npm ci + + - name: Build Cloud + run: | + npm run dist:bit:cloud + zip -r web-$_VERSION-cloud-COMMERCIAL.zip build + + - name: Upload build artifact + uses: actions/upload-artifact@ee69f02b3dfdecd58bb31b4d133da38ba6fe3700 # v2.2.3 + with: + name: web-${{ env._VERSION }}-cloud-COMMERCIAL.zip + path: ./web-${{ env._VERSION }}-cloud-COMMERCIAL.zip + if-no-files-found: error + + + build-commercial-selfhost: + name: Build SelfHost Docker image + runs-on: ubuntu-20.04 + needs: + - setup + - lint + env: + _VERSION: ${{ needs.setup.outputs.version }} + steps: + - name: Checkout repo + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + + - name: Set up Node + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 + with: + cache: 'npm' + cache-dependency-path: '**/package-lock.json' + node-version: "16" + + - name: Print environment + run: | + whoami + node --version + npm --version + gulp --version + docker --version + echo "GitHub ref: $GITHUB_REF" + echo "GitHub event: $GITHUB_EVENT" + + - name: Setup DCT + if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/rc' || github.ref == 'refs/heads/hotfix-rc' + id: setup-dct + uses: bitwarden/gh-actions/setup-docker-trust@a8c384a05a974c05c48374c818b004be221d43ff + with: + azure-creds: ${{ secrets.AZURE_PROD_KV_CREDENTIALS }} + azure-keyvault-name: "bitwarden-prod-kv" + + - name: Install dependencies + run: npm ci + + - name: Build + run: | + echo -e "# Building Web\n" + echo "Building app" + echo "npm version $(npm --version)" + + npm run dist:bit:selfhost + zip -r web-$_VERSION-selfhosted-COMMERCIAL.zip build + + - name: Upload build artifact + uses: actions/upload-artifact@ee69f02b3dfdecd58bb31b4d133da38ba6fe3700 # v2.2.3 + with: + name: web-${{ env._VERSION }}-selfhosted-COMMERCIAL.zip + path: ./web-${{ env._VERSION }}-selfhosted-COMMERCIAL.zip + if-no-files-found: error + + - name: Build Docker image + run: | + echo -e "\nBuilding Docker image" + docker --version + docker build -t bitwarden/web . + + - name: Tag rc branch + if: github.ref == 'refs/heads/rc' + run: docker tag bitwarden/web bitwarden/web:rc + + - name: Tag dev + if: github.ref == 'refs/heads/master' + run: docker tag bitwarden/web bitwarden/web:dev + + - name: Tag hotfix branch + if: github.ref == 'refs/heads/hotfix-rc' + run: docker tag bitwarden/web bitwarden/web:hotfix-rc + + - name: List Docker images + if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/rc' || github.ref == 'refs/heads/hotfix-rc' + run: docker images + + - name: Push rc image + if: github.ref == 'refs/heads/rc' + run: docker push bitwarden/web:rc + env: + DOCKER_CONTENT_TRUST: 1 + DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE: ${{ steps.setup-dct.outputs.dct-delegate-repo-passphrase }} + + - name: Push dev image + if: github.ref == 'refs/heads/master' + run: docker push bitwarden/web:dev + env: + DOCKER_CONTENT_TRUST: 1 + DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE: ${{ steps.setup-dct.outputs.dct-delegate-repo-passphrase }} + + - name: Push hotfix image + if: github.ref == 'refs/heads/hotfix-rc' + run: docker push bitwarden/web:hotfix-rc + env: + DOCKER_CONTENT_TRUST: 1 + DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE: ${{ steps.setup-dct.outputs.dct-delegate-repo-passphrase }} + + - name: Log out of Docker + if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/rc' || github.ref == 'refs/heads/hotfix-rc' + run: | + docker logout + echo "DOCKER_CONTENT_TRUST=0" >> $GITHUB_ENV + + - name: Login to Azure - QA Subscription + uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a + with: + creds: ${{ secrets.AZURE_QA_KV_CREDENTIALS }} + + - name: Login to Azure ACR + run: az acr login -n bitwardenqa + + - name: Tag and Push RC to Azure ACR QA registry + env: + REGISTRY: bitwardenqa.azurecr.io + run: | + IMAGE_TAG=$(echo "${GITHUB_REF:11}" | sed "s#/#-#g") # slash safe branch name + if [[ "$IMAGE_TAG" == "master" ]]; then + IMAGE_TAG=dev + fi + docker tag bitwarden/web \ + $REGISTRY/web-sh:$IMAGE_TAG + docker push $REGISTRY/web-sh:$IMAGE_TAG + + - name: Log out of Docker + run: docker logout + + + build-qa: + name: Build Docker images for QA environment + runs-on: ubuntu-20.04 + needs: + - setup + - lint + steps: + - name: Checkout repo + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + + - name: Set up Node + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 + with: + cache: 'npm' + cache-dependency-path: '**/package-lock.json' + node-version: "16" + + - name: Print environment + run: | + whoami + node --version + npm --version + gulp --version + docker --version + echo "GitHub ref: $GITHUB_REF" + echo "GitHub event: $GITHUB_EVENT" + + - name: Login to Azure + uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a + with: + creds: ${{ secrets.AZURE_QA_KV_CREDENTIALS }} + + - name: Log into container registry + run: az acr login -n bitwardenqa + + - name: Install dependencies + run: npm ci + + - name: Build + run: | + echo -e "# Building Web\n" + echo "Building app" + echo "npm version $(npm --version)" + VERSION=$( jq -r ".version" package.json) + jq --arg version "$VERSION - ${GITHUB_SHA:0:7}" '.version = $version' package.json > package.json.tmp + mv package.json.tmp package.json + + npm run build:bit:qa + + echo "{\"commit_hash\": \"$GITHUB_SHA\", \"ref\": \"$GITHUB_REF\"}" | jq . > build/info.json + + echo -e "\nBuilding Docker image" + docker --version + docker build -t bitwardenqa.azurecr.io/web . + + - name: Get image tag + id: image-tag + run: | + IMAGE_TAG=$(echo "${GITHUB_REF:11}" | sed "s#/#-#g") + TAG_EXTENSION=${{ github.event.inputs.custom_tag_extension }} + + if [[ $TAG_EXTENSION ]]; then + IMAGE_TAG=$IMAGE_TAG-$TAG_EXTENSION + fi + echo "::set-output name=value::$IMAGE_TAG" + + - name: Tag image + env: + IMAGE_TAG: ${{ steps.image-tag.outputs.value }} + run: docker tag bitwardenqa.azurecr.io/web "bitwardenqa.azurecr.io/web:$IMAGE_TAG" + + - name: Tag dev + if: github.ref == 'refs/heads/master' + run: docker tag bitwardenqa.azurecr.io/web bitwardenqa.azurecr.io/web:dev + + - name: List Docker images + run: docker images + + - name: Push image + env: + IMAGE_TAG: ${{ steps.image-tag.outputs.value }} + run: docker push "bitwardenqa.azurecr.io/web:$IMAGE_TAG" + + - name: Push dev images + if: github.ref == 'refs/heads/master' + run: docker push bitwardenqa.azurecr.io/web:dev + + - name: Log out of Docker + run: docker logout + + + windows: + name: Test code on Windows + runs-on: windows-2019 + steps: + - name: Checkout repo + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + + - name: Set up NuGet + uses: nuget/setup-nuget@04b0c2b8d1b97922f67eca497d7cf0bf17b8ffe1 + with: + nuget-version: "latest" + + - name: Set up Node + uses: actions/setup-node@9ced9a43a244f3ac94f13bfd896db8c8f30da67a # v3.0.0 + with: + cache: 'npm' + cache-dependency-path: '**/package-lock.json' + node-version: "16" + + - name: Print environment + run: | + nuget help | grep Version + node --version + npm --version + echo "GitHub ref: $GITHUB_REF" + echo "GitHub event: $GITHUB_EVENT" + env: + GITHUB_REF: ${{ github.ref }} + GITHUB_EVENT: ${{ github.event_name }} + + - name: Install dependencies + run: npm ci + + - name: NPM build + run: npm run build:bit:cloud + + + crowdin-push: + name: Crowdin Push + if: github.ref == 'refs/heads/master' + needs: + - build-oss-selfhost + - build-cloud + - build-commercial-selfhost + - build-qa + runs-on: ubuntu-20.04 + env: + _CROWDIN_PROJECT_ID: "308189" + steps: + - name: Checkout repo + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 + + - name: Login to Azure + uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a + with: + creds: ${{ secrets.AZURE_PROD_KV_CREDENTIALS }} + + - name: Retrieve secrets + id: retrieve-secrets + uses: Azure/get-keyvault-secrets@80ccd3fafe5662407cc2e55f202ee34bfff8c403 + with: + keyvault: "bitwarden-prod-kv" + secrets: "crowdin-api-token" + + - name: Upload Sources + uses: crowdin/github-action@e39093fd75daae7859c68eded4b43d42ec78d8ea # v1.3.2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }} + with: + config: crowdin.yml + crowdin_branch_name: master + upload_sources: true + upload_translations: false + + + check-failures: + name: Check for failures + if: always() + runs-on: ubuntu-20.04 + needs: + - cloc + - setup + - lint + - build-oss-selfhost + - build-cloud + - build-commercial-selfhost + - build-qa + - crowdin-push + - windows + steps: + - name: Check if any job failed + if: ${{ (github.ref == 'refs/heads/master') || (github.ref == 'refs/heads/rc') }} + env: + CLOC_STATUS: ${{ needs.cloc.result }} + LINT_STATUS: ${{ needs.lint.result }} + SETUP_STATUS: ${{ needs.setup.result }} + BUILD_OSS_SELFHOST_STATUS: ${{ needs.build-oss-selfhost.result }} + BUILD_CLOUD_STATUS: ${{ needs.build-cloud.result }} + BUILD_COMMERCIAL_SELFHOST_STATUS: ${{ needs.build-commercial-selfhost.result }} + BUILD_QA_STATUS: ${{ needs.build-qa.result }} + CROWDIN_PUSH_STATUS: ${{ needs.crowdin-push.result }} + WINDOWS_STATUS: ${{ needs.windows.result }} + run: | + if [ "$CLOC_STATUS" = "failure" ]; then + exit 1 + elif [ "$LINT_STATUS" = "failure" ]; then + exit 1 + elif [ "$SETUP_STATUS" = "failure" ]; then + exit 1 + elif [ "$BUILD_OSS_SELFHOST_STATUS" = "failure" ]; then + exit 1 + elif [ "$BUILD_CLOUD_STATUS" = "failure" ]; then + exit 1 + elif [ "$BUILD_COMMERCIAL_SELFHOST_STATUS" = "failure" ]; then + exit 1 + elif [ "$BUILD_QA_STATUS" = "failure" ]; then + exit 1 + elif [ "$CROWDIN_PUSH_STATUS" = "failure" ]; then + exit 1 + elif [ "$WINDOWS_STATUS" = "failure" ]; then + exit 1 + fi + + - name: Login to Azure - Prod Subscription + uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a + if: failure() + with: + creds: ${{ secrets.AZURE_PROD_KV_CREDENTIALS }} + + - name: Retrieve secrets + id: retrieve-secrets + uses: Azure/get-keyvault-secrets@80ccd3fafe5662407cc2e55f202ee34bfff8c403 + if: failure() + with: + keyvault: "bitwarden-prod-kv" + secrets: "devops-alerts-slack-webhook-url" + + - name: Notify Slack on failure + uses: act10ns/slack@e4e71685b9b239384b0f676a63c32367f59c2522 # v1.2.2 + if: failure() + env: + SLACK_WEBHOOK_URL: ${{ steps.retrieve-secrets.outputs.devops-alerts-slack-webhook-url }} + with: + status: ${{ job.status }} diff --git a/apps/web/.github/workflows/crowdin-pull.yml b/apps/web/.github/workflows/crowdin-pull.yml new file mode 100644 index 0000000000..0c959fea2f --- /dev/null +++ b/apps/web/.github/workflows/crowdin-pull.yml @@ -0,0 +1,49 @@ +--- +name: Crowdin Pull + +on: + workflow_dispatch: + inputs: {} + schedule: + - cron: "0 0 * * 5" + +jobs: + crowdin-pull: + name: Pull + runs-on: ubuntu-20.04 + env: + _CROWDIN_PROJECT_ID: "308189" + steps: + - name: Checkout repo + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 + + - name: Login to Azure + uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a + with: + creds: ${{ secrets.AZURE_PROD_KV_CREDENTIALS }} + + - name: Retrieve secrets + id: retrieve-secrets + uses: Azure/get-keyvault-secrets@80ccd3fafe5662407cc2e55f202ee34bfff8c403 + with: + keyvault: "bitwarden-prod-kv" + secrets: "crowdin-api-token" + + - name: Download translations + uses: crowdin/github-action@e39093fd75daae7859c68eded4b43d42ec78d8ea # v1.3.2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }} + with: + config: crowdin.yml + crowdin_branch_name: master + upload_sources: false + upload_translations: false + download_translations: true + github_user_name: "github-actions" + github_user_email: "<>" + commit_message: "Autosync the updated translations" + localization_branch_name: crowdin-auto-sync + create_pull_request: true + pull_request_title: "Autosync Crowdin Translations" + pull_request_body: "Autosync the updated translations" diff --git a/apps/web/.github/workflows/enforce-labels.yml b/apps/web/.github/workflows/enforce-labels.yml new file mode 100644 index 0000000000..0a63c70e4a --- /dev/null +++ b/apps/web/.github/workflows/enforce-labels.yml @@ -0,0 +1,16 @@ +--- +name: Enforce PR labels + +on: + pull_request: + types: [labeled, unlabeled, opened, edited, synchronize] +jobs: + enforce-label: + name: EnforceLabel + runs-on: ubuntu-20.04 + steps: + - name: Enforce Label + uses: yogevbd/enforce-label-action@8d1e1709b1011e6d90400a0e6cf7c0b77aa5efeb + with: + BANNED_LABELS: "hold" + BANNED_LABELS_DESCRIPTION: "PRs on hold cannot be merged" diff --git a/apps/web/.github/workflows/qa-deploy.yml b/apps/web/.github/workflows/qa-deploy.yml new file mode 100644 index 0000000000..d654dd9241 --- /dev/null +++ b/apps/web/.github/workflows/qa-deploy.yml @@ -0,0 +1,71 @@ +--- +name: QA Deploy + +on: + workflow_dispatch: + inputs: + image_extension: + description: "Image tag extension" + required: false + +env: + _QA_CLUSTER_RESOURCE_GROUP: "bw-env-qa" + _QA_CLUSTER_NAME: "bw-aks-qa" + _QA_K8S_NAMESPACE: "bw-qa" + _QA_K8S_APP_NAME: "bw-web" + +jobs: + deploy: + name: Deploy QA Web + runs-on: ubuntu-20.04 + steps: + - name: Checkout Repo + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 + + - name: Setup + run: export PATH=$PATH:~/work/web/web + + - name: Login to Azure + uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a + with: + creds: ${{ secrets.AZURE_QA_KV_CREDENTIALS }} + + - name: Retrieve secrets + id: retrieve-secrets + uses: Azure/get-keyvault-secrets@80ccd3fafe5662407cc2e55f202ee34bfff8c403 + with: + keyvault: "bitwarden-qa-kv" + secrets: "qa-aks-kubectl-credentials" + + - name: Login with qa-aks-kubectl-credentials SP + uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a + with: + creds: ${{ env.qa-aks-kubectl-credentials }} + + - name: Setup AKS access + #env: + # USER_ID: ${{ env.qa-kubectl-managed-identity-clientId }} + run: | + echo "---az install---" + az aks install-cli --install-location ./kubectl --kubelogin-install-location ./kubelogin + echo "---az get-creds---" + az aks get-credentials -n $_QA_CLUSTER_NAME -g $_QA_CLUSTER_RESOURCE_GROUP + + - name: Get image tag + id: image_tag + run: | + IMAGE_TAG=$(echo "${GITHUB_REF:11}" | sed "s#/#-#g") + TAG_EXTENSION=${{ github.event.inputs.image_extension }} + + if [[ $TAG_EXTENSION ]]; then + IMAGE_TAG=$IMAGE_TAG-$TAG_EXTENSION + fi + echo "::set-output name=value::$IMAGE_TAG" + + - name: Deploy Web image + env: + IMAGE_TAG: ${{ steps.image_tag.outputs.value }} + run: | + kubectl set image -n $_QA_K8S_NAMESPACE deployment/web web=bitwardenqa.azurecr.io/web:$IMAGE_TAG --record + kubectl rollout restart -n $_QA_K8S_NAMESPACE deployment/web + kubectl rollout status deployment/web -n $_QA_K8S_NAMESPACE diff --git a/apps/web/.github/workflows/release.yml b/apps/web/.github/workflows/release.yml new file mode 100644 index 0000000000..af81eb7398 --- /dev/null +++ b/apps/web/.github/workflows/release.yml @@ -0,0 +1,334 @@ +--- +name: Release + +on: + workflow_dispatch: + inputs: + release_type: + description: 'Release Options' + required: true + default: 'Initial Release' + type: choice + options: + - Initial Release + - Redeploy + - Dry Run + +jobs: + setup: + name: Setup + runs-on: ubuntu-20.04 + outputs: + release_version: ${{ steps.version.outputs.version }} + tag_version: ${{ steps.version.outputs.version }} + branch_name: ${{ steps.branch.outputs.branch_name }} + steps: + - name: Branch check + if: ${{ github.event.inputs.release_type != 'Dry Run' }} + run: | + if [[ "$GITHUB_REF" != "refs/heads/rc" ]] && [[ "$GITHUB_REF" != "refs/heads/hotfix-rc" ]]; then + echo "===================================" + echo "[!] Can only release from the 'rc' or 'hotfix-rc' branches" + echo "===================================" + exit 1 + fi + + - name: Checkout repo + uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # 2.4.0 + + - name: Check Release Version + id: version + uses: bitwarden/gh-actions/release-version-check@ea9fab01d76940267b4147cc1c4542431246b9f6 + with: + release-type: ${{ github.event.inputs.release_type }} + project-type: ts + file: package.json + + - name: Get branch name + id: branch + run: | + BRANCH_NAME=$(basename ${{ github.ref }}) + echo "::set-output name=branch_name::$BRANCH_NAME" + + + self-host: + name: Release self-host docker + runs-on: ubuntu-20.04 + needs: setup + env: + _BRANCH_NAME: ${{ needs.setup.outputs.branch_name }} + _RELEASE_VERSION: ${{ needs.setup.outputs.release_version }} + _RELEASE_OPTION: ${{ github.event.inputs.release_type }} + steps: + - name: Print environment + run: | + whoami + docker --version + echo "GitHub ref: $GITHUB_REF" + echo "GitHub event: $GITHUB_EVENT" + echo "Github Release Option: $_RELEASE_OPTION" + + - name: Checkout repo + uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 + + ########## DockerHub ########## + - name: Setup DCT + id: setup-dct + uses: bitwarden/gh-actions/setup-docker-trust@a8c384a05a974c05c48374c818b004be221d43ff + with: + azure-creds: ${{ secrets.AZURE_PROD_KV_CREDENTIALS }} + azure-keyvault-name: "bitwarden-prod-kv" + + - name: Pull latest selfhost image + run: | + if [[ "${{ github.event.inputs.release_type }}" == "Dry Run" ]]; then + docker pull bitwarden/web:latest + else + docker pull bitwarden/web:$_BRANCH_NAME + fi + + - name: Tag version and latest + run: | + if [[ "${{ github.event.inputs.release_type }}" == "Dry Run" ]]; then + docker tag bitwarden/web:latest bitwarden/web:dryrun + else + docker tag bitwarden/web:$_BRANCH_NAME bitwarden/web:$_RELEASE_VERSION + docker tag bitwarden/web:$_BRANCH_NAME bitwarden/web:latest + fi + + - name: Push version and latest image + if: ${{ github.event.inputs.release_type != 'Dry Run' }} + env: + DOCKER_CONTENT_TRUST: 1 + DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE: ${{ steps.setup-dct.outputs.dct-delegate-repo-passphrase }} + run: | + docker push bitwarden/web:$_RELEASE_VERSION + docker push bitwarden/web:latest + + - name: Log out of Docker and disable Docker Notary + run: | + docker logout + echo "DOCKER_CONTENT_TRUST=0" >> $GITHUB_ENV + + ########## ACR ########## + - name: Login to Azure - QA Subscription + uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a + with: + creds: ${{ secrets.AZURE_QA_KV_CREDENTIALS }} + + - name: Login to Azure ACR + run: az acr login -n bitwardenqa + + - name: Tag version and latest + env: + REGISTRY: bitwardenqa.azurecr.io + run: | + if [[ "${{ github.event.inputs.release_type }}" == "Dry Run" ]]; then + docker tag bitwarden/web:latest $REGISTRY/web:dryrun + else + docker tag bitwarden/web:$_BRANCH_NAME $REGISTRY/web:$_RELEASE_VERSION + docker tag bitwarden/web:$_BRANCH_NAME $REGISTRY/web:latest + + docker tag bitwarden/web:$_BRANCH_NAME $REGISTRY/web-sh:$_RELEASE_VERSION + docker tag bitwarden/web:$_BRANCH_NAME $REGISTRY/web-sh:latest + fi + + - name: Push version and latest image + if: ${{ github.event.inputs.release_type != 'Dry Run' }} + env: + REGISTRY: bitwardenqa.azurecr.io + run: | + docker push $REGISTRY/web:$_RELEASE_VERSION + docker push $REGISTRY/web:latest + + docker push $REGISTRY/web-sh:$_RELEASE_VERSION + docker push $REGISTRY/web-sh:latest + + - name: Log out of Docker + run: docker logout + + + ghpages-deploy: + name: Deploy Web Vault to GitHub Pages + runs-on: ubuntu-20.04 + needs: + - setup + - self-host + env: + _RELEASE_VERSION: ${{ needs.setup.outputs.release_version }} + _TAG_VERSION: ${{ needs.setup.outputs.tag_version }} + steps: + - name: Checkout Repo + uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2.4.0 + with: + ref: gh-pages + + - name: Create gh-pages-deploy branch + run: | + git switch -c gh-pages-deploy-$_TAG_VERSION + git push -u origin gh-pages-deploy-$_TAG_VERSION + + - name: Checkout Repo + uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2.4.0 + + - name: Setup git config + run: | + git config user.name = "GitHub Action Bot" + git config user.email = "<>" + git config --global url."https://github.com/".insteadOf ssh://git@github.com/ + git config --global url."https://".insteadOf ssh:// + + - name: Download latest cloud asset + uses: bitwarden/gh-actions/download-artifacts@c1fa8e09871a860862d6bbe36184b06d2c7e35a8 + with: + workflow: build.yml + workflow_conclusion: success + branch: ${{ needs.setup.outputs.branch_name }} + artifacts: web-*-cloud-COMMERCIAL.zip + + # This should result in a build directory in the current working directory + - name: Unzip build asset + run: unzip web-*-cloud-COMMERCIAL.zip + + - name: Deploy GitHub Pages + uses: crazy-max/ghaction-github-pages@a117e4aa1fb4854d021546d2abdfac95be568a3a # v2.6.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + target_branch: gh-pages-deploy-${{ needs.setup.outputs.tag_version }} + build_dir: build + keep_history: true + commit_message: "Staging deploy ${{ needs.setup.outputs.release_version }}" + dry_run: ${{ github.event.inputs.release_type == 'Dry Run' }} + + - name: Create GitHub Pages Deploy PR + if: ${{ github.event.inputs.release_type != 'Dry Run' }} + env: + PR_BRANCH: gh-pages-deploy-${{ env._TAG_VERSION }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh pr create --title "Deploy $_RELEASE_VERSION to GitHub Pages" \ + --body "Deploying $_RELEASE_VERSION" \ + --base gh-pages \ + --head "$PR_BRANCH" + + + cfpages-deploy: + name: Deploy Web Vault to CloudFlare Pages branch + runs-on: ubuntu-20.04 + needs: + - setup + - self-host + env: + _RELEASE_VERSION: ${{ needs.setup.outputs.release_version }} + _TAG_VERSION: ${{ needs.setup.outputs.tag_version }} + steps: + - name: Checkout Repo + uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2.4.0 + + - name: Download latest cloud asset + uses: bitwarden/gh-actions/download-artifacts@c1fa8e09871a860862d6bbe36184b06d2c7e35a8 + with: + workflow: build.yml + workflow_conclusion: success + branch: ${{ needs.setup.outputs.branch_name }} + artifacts: web-*-cloud-COMMERCIAL.zip + + # This should result in a build directory in the current working directory + - name: Unzip build asset + run: unzip web-*-cloud-COMMERCIAL.zip + + - name: Checkout Repo + uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2.4.0 + with: + ref: deploy + path: deployment + + - name: Setup git config + run: | + git config --global user.name = "GitHub Action Bot" + git config --global user.email = "<>" + git config --global url."https://github.com/".insteadOf ssh://git@github.com/ + git config --global url."https://".insteadOf ssh:// + + - name: Deploy CloudFlare Pages + run: | + rm -rf ./* + cp -R ../build/* . + working-directory: deployment + + - name: Create cf-pages-deploy branch + run: | + git switch -c cf-pages-deploy-$_TAG_VERSION + git add . + git commit -m "Staging deploy ${{ needs.setup.outputs.release_version }}" + git push -u origin cf-pages-deploy-$_TAG_VERSION + working-directory: deployment + + - name: Create CloudFlare Pages Deploy PR + if: ${{ github.event.inputs.release_type != 'Dry Run' }} + env: + PR_BRANCH: cf-pages-deploy-${{ env._TAG_VERSION }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh pr create --title "Deploy $_RELEASE_VERSION to CloudFlare Pages" \ + --body "Deploying $_RELEASE_VERSION" \ + --base deploy \ + --head "$PR_BRANCH" + + + release: + name: Create GitHub Release + runs-on: ubuntu-20.04 + needs: + - setup + - self-host + - ghpages-deploy + - cfpages-deploy + steps: + - name: Download latest build artifacts + uses: bitwarden/gh-actions/download-artifacts@23433be15ed6fd046ce12b6889c5184a8d9c8783 + with: + workflow: build.yml + workflow_conclusion: success + branch: ${{ needs.setup.outputs.branch_name }} + artifacts: "web-*-selfhosted-COMMERCIAL.zip, + web-*-selfhosted-open-source.zip" + + - name: Rename assets + run: | + mv web-*-selfhosted-COMMERCIAL.zip web-${{ needs.setup.outputs.release_version }}-selfhosted-COMMERCIAL.zip + mv web-*-selfhosted-open-source.zip web-${{ needs.setup.outputs.release_version }}-selfhosted-open-source.zip + + - name: Create release + if: ${{ github.event.inputs.release_type != 'Dry Run' }} + uses: ncipollo/release-action@40bb172bd05f266cf9ba4ff965cb61e9ee5f6d01 + with: + name: "Version ${{ needs.setup.outputs.release_version }}" + commit: ${{ github.sha }} + tag: "${{ needs.setup.outputs.tag_version }}" + body: "" + artifacts: "web-${{ needs.setup.outputs.release_version }}-selfhosted-COMMERCIAL.zip, + web-${{ needs.setup.outputs.release_version }}-selfhosted-open-source.zip" + token: ${{ secrets.GITHUB_TOKEN }} + draft: true + + + dry-run: + name: Dry Run Cleanup + runs-on: ubuntu-20.04 + if: ${{ github.event.inputs.release_type == 'Dry Run' }} + env: + _TAG_VERSION: ${{ needs.setup.outputs.tag_version }} + needs: + - setup + - release + steps: + - name: Checkout repo + uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # 2.4.0 + + - name: Remove gh-pages-deploy branch + run: git push origin --delete gh-pages-deploy-$_TAG_VERSION + + - name: Remove cf-pages-deploy branch + run: git push origin --delete cf-pages-deploy-$_TAG_VERSION diff --git a/apps/web/.github/workflows/version-bump.yml b/apps/web/.github/workflows/version-bump.yml new file mode 100644 index 0000000000..94cc859fd9 --- /dev/null +++ b/apps/web/.github/workflows/version-bump.yml @@ -0,0 +1,71 @@ +--- +name: Version Bump + +on: + workflow_dispatch: + inputs: + version_number: + description: "New Version" + required: true + +jobs: + bump_props_version: + name: "Create version_bump_${{ github.event.inputs.version_number }} branch" + runs-on: ubuntu-20.04 + steps: + - name: Checkout Branch + uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 + + - name: Create Version Branch + run: | + git switch -c version_bump_${{ github.event.inputs.version_number }} + git push -u origin version_bump_${{ github.event.inputs.version_number }} + + - name: Checkout Version Branch + uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 + with: + ref: version_bump_${{ github.event.inputs.version_number }} + + - name: Bump Version - package.json + uses: bitwarden/gh-actions/version-bump@03ad9a873c39cdc95dd8d77dbbda67f84db43945 + with: + version: ${{ github.event.inputs.version_number }} + file_path: "./package.json" + + - name: Bump Version - package-lock.json + uses: bitwarden/gh-actions/version-bump@03ad9a873c39cdc95dd8d77dbbda67f84db43945 + with: + version: ${{ github.event.inputs.version_number }} + file_path: "./package-lock.json" + + - name: Commit files + run: | + git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" + git config --local user.name "github-actions[bot]" + git commit -m "Bumped version to ${{ github.event.inputs.version_number }}" -a + + - name: Push changes + run: git push -u origin version_bump_${{ github.event.inputs.version_number }} + + - name: Create Version PR + env: + PR_BRANCH: "version_bump_${{ github.event.inputs.version_number }}" + GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + BASE_BRANCH: master + TITLE: "Bump version to ${{ github.event.inputs.version_number }}" + run: | + gh pr create --title "$TITLE" \ + --base "$BASE" \ + --head "$PR_BRANCH" \ + --label "version update" \ + --label "automated pr" \ + --body " + ## Type of change + - [ ] Bug fix + - [ ] New feature development + - [ ] Tech debt (refactoring, code cleanup, dependency upgrades, etc) + - [ ] Build/deploy pipeline (DevOps) + - [X] Other + + ## Objective + Automated version bump to ${{ github.event.inputs.version_number }}" diff --git a/apps/web/.github/workflows/workflow-linter.yml b/apps/web/.github/workflows/workflow-linter.yml new file mode 100644 index 0000000000..9fda2eee0a --- /dev/null +++ b/apps/web/.github/workflows/workflow-linter.yml @@ -0,0 +1,11 @@ +--- +name: Workflow Linter + +on: + pull_request: + paths: + - .github/workflows/** + +jobs: + call-workflow: + uses: bitwarden/gh-actions/.github/workflows/workflow-linter.yml@master diff --git a/apps/web/.gitignore b/apps/web/.gitignore new file mode 100644 index 0000000000..f78b6c9983 --- /dev/null +++ b/apps/web/.gitignore @@ -0,0 +1,15 @@ +.vs +.idea +.DS_Store +node_modules +npm-debug.log +vwd.webinfo +css/ +dist/ +*.pem +*.crx +*.zip +*.swp +build/ +!dev-server.shared.pem +config/local.json diff --git a/apps/web/.husky/pre-commit b/apps/web/.husky/pre-commit new file mode 100644 index 0000000000..36af219892 --- /dev/null +++ b/apps/web/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx lint-staged diff --git a/apps/web/.prettierignore b/apps/web/.prettierignore new file mode 100644 index 0000000000..b579285e2c --- /dev/null +++ b/apps/web/.prettierignore @@ -0,0 +1,12 @@ +# Build directories +build +dist + +#jslib + +# External libraries / auto synced locales +src/locales +src/404/*.min.css + +# Github Workflows +.github/workflows diff --git a/apps/web/.prettierrc.json b/apps/web/.prettierrc.json new file mode 100644 index 0000000000..de753c537d --- /dev/null +++ b/apps/web/.prettierrc.json @@ -0,0 +1,3 @@ +{ + "printWidth": 100 +} diff --git a/apps/web/CONTRIBUTING.md b/apps/web/CONTRIBUTING.md new file mode 100644 index 0000000000..bdb83691aa --- /dev/null +++ b/apps/web/CONTRIBUTING.md @@ -0,0 +1,36 @@ +# How to Contribute + +Contributions of all kinds are welcome! + +Please visit our [Community Forums](https://community.bitwarden.com/) for general community discussion and the development roadmap. + +Here is how you can get involved: + +- **Request a new feature:** Go to the [Feature Requests category](https://community.bitwarden.com/c/feature-requests/) of the Community Forums. Please search existing feature requests before making a new one +- **Write code for a new feature:** Make a new post in the [Github Contributions category](https://community.bitwarden.com/c/github-contributions/) of the Community Forums. Include a description of your proposed contribution, screeshots, and links to any relevant feature requests. This helps get feedback from the community and Bitwarden team members before you start writing code +- **Report a bug or submit a bugfix:** Use Github issues and pull requests +- **Write documentation:** Submit a pull request to the [Bitwarden help repository](https://github.com/bitwarden/help) +- **Help other users:** Go to the [Ask the Bitwarden Community category](https://community.bitwarden.com/c/support/) on the Community Forums +- **Translate:** See the localization (l10n) section below + +## Contributor Agreement + +Please sign the [Contributor Agreement](https://cla-assistant.io/bitwarden/web) if you intend on contributing to any Github repository. Pull requests cannot be accepted and merged unless the author has signed the Contributor Agreement. + +## Pull Request Guidelines + +- use `npm run lint` and fix any linting suggestions before submitting a pull request +- commit any pull requests against the `master` branch +- include a link to your Community Forums post + +# Localization (l10n) + +[![Crowdin](https://d322cqt584bo4o.cloudfront.net/bitwarden-web/localized.svg)](https://crowdin.com/project/bitwarden-web) + +We use a translation tool called [Crowdin](https://crowdin.com) to help manage our localization efforts across many different languages. + +If you are interested in helping translate the Bitwarden web vault into another language (or make a translation correction), please register an account at Crowdin and join our project here: https://crowdin.com/project/bitwarden-web + +If the language that you are interested in translating is not already listed, create a new account on Crowdin, join the project, and contact the project owner (https://crowdin.com/profile/dwbit). + +You can read Crowdin's getting started guide for translators here: https://support.crowdin.com/crowdin-intro/ diff --git a/apps/web/Dockerfile b/apps/web/Dockerfile new file mode 100644 index 0000000000..41be86e584 --- /dev/null +++ b/apps/web/Dockerfile @@ -0,0 +1,20 @@ +FROM bitwarden/server + +LABEL com.bitwarden.product="bitwarden" + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + gosu \ + curl \ +&& rm -rf /var/lib/apt/lists/* + +ENV ASPNETCORE_URLS http://+:5000 +WORKDIR /app +EXPOSE 5000 +COPY ./build . +COPY entrypoint.sh / +RUN chmod +x /entrypoint.sh + +HEALTHCHECK CMD curl -f http://localhost:5000 || exit 1 + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/apps/web/LICENSE.txt b/apps/web/LICENSE.txt new file mode 100644 index 0000000000..55bf3b3f73 --- /dev/null +++ b/apps/web/LICENSE.txt @@ -0,0 +1,17 @@ +Source code in this repository is covered by one of two licenses: (i) the +GNU General Public License (GPL) v3.0 (ii) the Bitwarden License v1.0. The +default license throughout the repository is GPL v3.0 unless the header +specifies another license. Bitwarden Licensed code is found only in the +/bitwarden_license directory. + +GPL v3.0: +https://github.com/bitwarden/web/blob/master/LICENSE_GPL.txt + +Bitwarden License v1.0: +https://github.com/bitwarden/web/blob/master/LICENSE_BITWARDEN.txt + +No grant of any rights in the trademarks, service marks, or logos of Bitwarden is +made (except as may be necessary to comply with the notice requirements as +applicable), and use of any Bitwarden trademarks must comply with Bitwarden +Trademark Guidelines +. diff --git a/apps/web/LICENSE_BITWARDEN.txt b/apps/web/LICENSE_BITWARDEN.txt new file mode 100644 index 0000000000..fd037c0679 --- /dev/null +++ b/apps/web/LICENSE_BITWARDEN.txt @@ -0,0 +1,182 @@ +BITWARDEN LICENSE AGREEMENT +Version 1, 4 September 2020 + +PLEASE CAREFULLY READ THIS BITWARDEN LICENSE AGREEMENT ("AGREEMENT"). THIS +AGREEMENT CONSTITUTES A LEGALLY BINDING AGREEMENT BETWEEN YOU AND BITWARDEN, +INC. ("BITWARDEN") AND GOVERNS YOUR USE OF THE COMMERCIAL MODULES (DEFINED +BELOW). BY COPYING OR USING THE COMMERCIAL MODULES, YOU AGREE TO THIS AGREEMENT. +IF YOU DO NOT AGREE WITH THIS AGREEMENT, YOU MAY NOT COPY OR USE THE COMMERCIAL +MODULES. IF YOU ARE COPYING OR USING THE COMMERCIAL MODULES ON BEHALF OF A LEGAL +ENTITY, YOU REPRESENT AND WARRANT THAT YOU HAVE AUTHORITY TO AGREE TO THIS +AGREEMENT ON BEHALF OF SUCH ENTITY. IF YOU DO NOT HAVE SUCH AUTHORITY, DO NOT +COPY OR USE THE COMMERCIAL MODULES IN ANY MANNER. + +This Agreement is entered into by and between Bitwarden and you, or the legal +entity on behalf of whom you are acting (as applicable, "You" or "Your"). + +1. DEFINITIONS + +"Bitwarden Software" means the Bitwarden server software, libraries, and +Commercial Modules. + +"Commercial Modules" means the modules designed to work with and enhance the +Bitwarden Software to which this Agreement is linked, referenced, or appended. + +2. LICENSES, RESTRICTIONS AND THIRD PARTY CODE + +2.1 Commercial Module License. Subject to Your compliance with this Agreement, +Bitwarden hereby grants to You a limited, non-exclusive, non-transferable, +royalty-free license to use the Commercial Modules for the sole purposes of +internal development and internal testing, and only in a non-production +environment. + +2.2 Reservation of Rights. As between Bitwarden and You, Bitwarden owns all +right, title and interest in and to the Bitwarden Software, and except as +expressly set forth in Sections 2.1, no other license to the Bitwarden Software +is granted to You under this Agreement, by implication, estoppel, or otherwise. + +2.3 Restrictions. You agree not to: (i) except as expressly permitted in +Section 2.1, sell, rent, lease, distribute, sublicense, loan or otherwise +transfer the Commercial Modules to any third party; (ii) alter or remove any +trademarks, service mark, and logo included with the Commercial Modules, or +(iii) use the Commercial Modules to create a competing product or service. +Bitwarden is not obligated to provide maintenance and support services for the +Bitwarden Software licensed under this Agreement. + +2.4 Third Party Software. The Commercial Modules may contain or be provided +with third party open source libraries, components, utilities and other open +source software (collectively, "Open Source Software"). Notwithstanding anything +to the contrary herein, use of the Open Source Software will be subject to the +license terms and conditions applicable to such Open Source Software. To the +extent any condition of this Agreement conflicts with any license to the Open +Source Software, the Open Source Software license will govern with respect to +such Open Source Software only. + +2.5 This Agreement does not grant any rights in the trademarks, service marks, or +logos of any Contributor (except as may be necessary to comply with the notice +requirements in Section 2.3), and use of any Bitwarden trademarks must comply with +Bitwarden Trademark Guidelines +. + +3. TERMINATION + +3.1 Termination. This Agreement will automatically terminate upon notice from +Bitwarden, which notice may be by email or posting in the location where the +Commercial Modules are made available. + +3.2 Effect of Termination. Upon any termination of this Agreement, for any +reason, You will promptly cease use of the Commercial Modules and destroy any +copies thereof. For the avoidance of doubt, termination of this Agreement will +not affect Your right to Bitwarden Software, other than the Commercial Modules, +made available pursuant to an Open Source Software license. + +3.3 Survival. Sections 1, 2.2 -2.4, 3.2, 3.3, 4, and 5 will survive any +termination of this Agreement. + +4. DISCLAIMER AND LIMITATION OF LIABILITY + +4.1 Disclaimer of Warranties. TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE +LAW, THE BITWARDEN SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED REGARDING OR RELATING TO THE BITWARDEN SOFTWARE, INCLUDING +ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, +TITLE, AND NON-INFRINGEMENT. FURTHER, BITWARDEN DOES NOT WARRANT RESULTS OF USE +OR THAT THE BITWARDEN SOFTWARE WILL BE ERROR FREE OR THAT THE USE OF THE +BITWARDEN SOFTWARE WILL BE UNINTERRUPTED. + +4.2 Limitation of Liability. IN NO EVENT WILL BITWARDEN OR ITS LICENSORS BE +LIABLE TO YOU OR ANY THIRD PARTY UNDER THIS AGREEMENT FOR (I) ANY AMOUNTS IN +EXCESS OF US $25 OR (II) FOR ANY SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF +ANY KIND, INCLUDING FOR ANY LOSS OF PROFITS, LOSS OF USE, BUSINESS INTERRUPTION, +LOSS OF DATA, COST OF SUBSTITUTE GOODS OR SERVICES, WHETHER ALLEGED AS A BREACH +OF CONTRACT OR TORTIOUS CONDUCT, INCLUDING NEGLIGENCE, EVEN IF BITWARDEN HAS +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +5. MISCELLANEOUS + +5.1 Assignment. You may not assign or otherwise transfer this Agreement or any +rights or obligations hereunder, in whole or in part, whether by operation of +law or otherwise, to any third party without Bitwarden's prior written consent. +Any purported transfer, assignment or delegation without such prior written +consent will be null and void and of no force or effect. Bitwarden may assign +this Agreement to any successor to its business or assets to which this +Agreement relates, whether by merger, sale of assets, sale of stock, +reorganization or otherwise. Subject to this Section 5.1, this Agreement will be +binding upon and inure to the benefit of the parties hereto, and their +respective successors and permitted assigns. + +5.2 Entire Agreement; Modification; Waiver. This Agreement represents the +entire agreement between the parties, and supersedes all prior agreements and +understandings, written or oral, with respect to the matters covered by this +Agreement, and is not intended to confer upon any third party any rights or +remedies hereunder. You acknowledge that You have not entered in this Agreement +based on any representations other than those contained herein. No modification +of or amendment to this Agreement, nor any waiver of any rights under this +Agreement, will be effective unless in writing and signed by both parties. The +waiver of one breach or default or any delay in exercising any rights will not +constitute a waiver of any subsequent breach or default. + +5.3 Governing Law. This Agreement will in all respects be governed by the laws +of the State of California without reference to its principles of conflicts of +laws. The parties hereby agree that all disputes arising out of this Agreement +will be subject to the exclusive jurisdiction of and venue in the federal and +state courts within Los Angeles County, California. You hereby consent to the +personal and exclusive jurisdiction and venue of these courts. The parties +hereby disclaim and exclude the application hereto of the United Nations +Convention on Contracts for the International Sale of Goods. + +5.4 Severability. If any provision of this Agreement is held invalid or +unenforceable under applicable law by a court of competent jurisdiction, it will +be replaced with the valid provision that most closely reflects the intent of +the parties and the remaining provisions of the Agreement will remain in full +force and effect. + +5.5 Relationship of the Parties. Nothing in this Agreement is to be construed +as creating an agency, partnership, or joint venture relationship between the +parties hereto. Neither party will have any right or authority to assume or +create any obligations or to make any representations or warranties on behalf of +any other party, whether express or implied, or to bind the other party in any +respect whatsoever. + +5.6 Notices. All notices permitted or required under this Agreement will be in +writing and will be deemed to have been given when delivered in person +(including by overnight courier), or three (3) business days after being mailed +by first class, registered or certified mail, postage prepaid, to the address of +the party specified in this Agreement or such other address as either party may +specify in writing. + +5.7 U.S. Government Restricted Rights. If Commercial Modules is being licensed +by the U.S. Government, the Commercial Modules is deemed to be "commercial +computer software" and "commercial computer documentation" developed exclusively +at private expense, and (a) if acquired by or on behalf of a civilian agency, +will be subject solely to the terms of this computer software license as +specified in 48 C.F.R. 12.212 of the Federal Acquisition Regulations and its +successors; and (b) if acquired by or on behalf of units of the Department of +Defense ("DOD") will be subject to the terms of this commercial computer +software license as specified in 48 C.F.R. 227.7202-2, DOD FAR Supplement and +its successors. + +5.8 Injunctive Relief. A breach or threatened breach by You of Section 2 may +cause irreparable harm for which damages at law may not provide adequate relief, +and therefore Bitwarden will be entitled to seek injunctive relief in any +applicable jurisdiction without being required to post a bond. + +5.9 Export Law Assurances. You understand that the Commercial Modules is +subject to export control laws and regulations. You may not download or +otherwise export or re-export the Commercial Modules or any underlying +information or technology except in full compliance with all applicable laws and +regulations, in particular, but without limitation, United States export control +laws. None of the Commercial Modules or any underlying information or technology +may be downloaded or otherwise exported or re- exported: (a) into (or to a +national or resident of) any country to which the United States has embargoed +goods; or (b) to anyone on the U.S. Treasury Department's list of specially +designated nationals or the U.S. Commerce Department's list of prohibited +countries or debarred or denied persons or entities. You hereby agree to the +foregoing and represents and warrants that You are not located in, under control +of, or a national or resident of any such country or on any such list. + +5.10 Construction. The titles and section headings used in this Agreement are +for ease of reference only and will not be used in the interpretation or +construction of this Agreement. No rule of construction resolving any ambiguity +in favor of the non-drafting party will be applied hereto. The word "including", +when used herein, is illustrative rather than exclusive and means "including, +without limitation." diff --git a/apps/web/LICENSE_GPL.txt b/apps/web/LICENSE_GPL.txt new file mode 100644 index 0000000000..30ace6a873 --- /dev/null +++ b/apps/web/LICENSE_GPL.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. \ No newline at end of file diff --git a/apps/web/README.md b/apps/web/README.md new file mode 100644 index 0000000000..1b8dfe7726 --- /dev/null +++ b/apps/web/README.md @@ -0,0 +1,98 @@ +> **Repository Reorganization in Progress** +> +> We are currently migrating some projects over to a mono repository. For existing PR's we will be providing documentation on how to move/migrate them. To minimize the overhead we are actively reviewing open PRs. If possible please ensure any pending comments are resolved as soon as possible. +> +> New pull requests created during this transition period may not get addressed —if needed, please create a new PR after the reorganization is complete. + +

+ +

+

+ The Bitwarden web project is an Angular application that powers the web vault (https://vault.bitwarden.com/). +

+

+ + Github Workflow build on master + + + Crowdin + + + DockerHub + + + gitter chat + +

+ +## Build/Run + +### Requirements + +- [Node.js](https://nodejs.org) v16.13.1 or greater +- NPM v8 + +### Run the app + +For local development, run the app with: + +``` +npm install +npm run build:oss:watch +``` + +You can now access the web vault in your browser at `https://localhost:8080`. + +If you want to point the development web vault to the production APIs, you can run using: + +``` +npm install +ENV=cloud npm run build:oss:watch +``` + +You can also manually adjusting your API endpoint settings by adding `config/local.json` overriding any of the following values: + +```json +{ + "dev": { + "proxyApi": "http://your-api-url", + "proxyIdentity": "http://your-identity-url", + "proxyEvents": "http://your-events-url", + "proxyNotifications": "http://your-notifications-url", + "allowedHosts": ["hostnames-to-allow-in-webpack"] + }, + "urls": {} +} +``` + +Where the `urls` object is defined by the [Urls type in jslib](https://github.com/bitwarden/jslib/blob/master/common/src/abstractions/environment.service.ts). + +## We're Hiring! + +Interested in contributing in a big way? Consider joining our team! We're hiring for many positions. Please take a look at our [Careers page](https://bitwarden.com/careers/) to see what opportunities are currently open as well as what it's like to work at Bitwarden. + +## Contribute + +Code contributions are welcome! Please commit any pull requests against the `master` branch. Learn more about how to contribute by reading the [`CONTRIBUTING.md`](CONTRIBUTING.md) file. + +Security audits and feedback are welcome. Please open an issue or email us privately if the report is sensitive in nature. You can read our security policy in the [`SECURITY.md`](SECURITY.md) file. + +## Prettier + +We recently migrated to using Prettier as code formatter. All previous branches will need to updated to avoid large merge conflicts using the following steps: + +1. Check out your local Branch +2. Run `git merge 2b0a9d995e0147601ca8ae4778434a19354a60c2` +3. Resolve any merge conflicts, commit. +4. Run `npm run prettier` +5. Commit +6. Run `git merge -Xours 56477eb39cfd8a73c9920577d24d75fed36e2cf5` +7. Push + +### Git blame + +We also recommend that you configure git to ignore the prettier revision using: + +```bash +git config blame.ignoreRevsFile .git-blame-ignore-revs +``` diff --git a/apps/web/SECURITY.md b/apps/web/SECURITY.md new file mode 100644 index 0000000000..e6edb96da7 --- /dev/null +++ b/apps/web/SECURITY.md @@ -0,0 +1,21 @@ +Bitwarden believes that working with security researchers across the globe is crucial to keeping our users safe. If you believe you've found a security issue in our product or service, we encourage you to please submit a report through our [HackerOne Program](https://hackerone.com/bitwarden/). We welcome working with you to resolve the issue promptly. Thanks in advance! + +# Disclosure Policy + +- Let us know as soon as possible upon discovery of a potential security issue, and we'll make every effort to quickly resolve the issue. +- Provide us a reasonable amount of time to resolve the issue before any disclosure to the public or a third-party. We may publicly disclose the issue before resolving it, if appropriate. +- Make a good faith effort to avoid privacy violations, destruction of data, and interruption or degradation of our service. Only interact with accounts you own or with explicit permission of the account holder. +- If you would like to encrypt your report, please use the PGP key with long ID `0xDE6887086F892325FEC04CC0D847525B6931381F` (available in the public keyserver pool). + +While researching, we'd like to ask you to refrain from: + +- Denial of service +- Spamming +- Social engineering (including phishing) of Bitwarden staff or contractors +- Any physical attempts against Bitwarden property or data centers + +# We want to help you! + +If you have something that you feel is close to exploitation, or if you'd like some information regarding the internal API, or generally have any questions regarding the app that would help in your efforts, please email us at https://bitwarden.com/contact and ask for that information. As stated above, Bitwarden wants to help you find issues, and is more than willing to help. + +Thank you for helping keep Bitwarden and our users safe! diff --git a/apps/web/config.js b/apps/web/config.js new file mode 100644 index 0000000000..2bfc929d35 --- /dev/null +++ b/apps/web/config.js @@ -0,0 +1,36 @@ +function load(envName) { + return { + ...require("./config/base.json"), + ...loadConfig(envName), + ...loadConfig("local"), + dev: { + ...require("./config/base.json").dev, + ...loadConfig(envName).dev, + ...loadConfig("local").dev, + }, + }; +} + +function log(configObj) { + const repeatNum = 50; + console.log(`${"=".repeat(repeatNum)}\nenvConfig`); + console.log(JSON.stringify(configObj, null, 2)); + console.log(`${"=".repeat(repeatNum)}`); +} + +function loadConfig(configName) { + try { + return require(`./config/${configName}.json`); + } catch (e) { + if (e instanceof Error && e.code === "MODULE_NOT_FOUND") { + return {}; + } else { + throw e; + } + } +} + +module.exports = { + load, + log, +}; diff --git a/apps/web/config/base.json b/apps/web/config/base.json new file mode 100644 index 0000000000..b6a41c203e --- /dev/null +++ b/apps/web/config/base.json @@ -0,0 +1,13 @@ +{ + "urls": {}, + "stripeKey": "pk_test_KPoCfZXu7mznb9uSCPZ2JpTD", + "braintreeKey": "sandbox_r72q8jq6_9pnxkwm75f87sdc2", + "paypal": { + "businessId": "AD3LAUZSNVPJY", + "buttonAction": "https://www.sandbox.paypal.com/cgi-bin/webscr" + }, + "dev": { + "port": 8080, + "allowedHosts": "auto" + } +} diff --git a/apps/web/config/cloud.json b/apps/web/config/cloud.json new file mode 100644 index 0000000000..51f29a05f9 --- /dev/null +++ b/apps/web/config/cloud.json @@ -0,0 +1,17 @@ +{ + "urls": { + "icons": "https://icons.bitwarden.net", + "notifications": "https://notifications.bitwarden.com" + }, + "stripeKey": "pk_live_bpN0P37nMxrMQkcaHXtAybJk", + "braintreeKey": "production_qfbsv8kc_njj2zjtyngtjmbjd", + "paypal": { + "businessId": "4ZDA7DLUUJGMN", + "buttonAction": "https://www.paypal.com/cgi-bin/webscr" + }, + "dev": { + "proxyApi": "https://api.bitwarden.com", + "proxyIdentity": "https://identity.bitwarden.com", + "proxyEvents": "https://events.bitwarden.com" + } +} diff --git a/apps/web/config/development.json b/apps/web/config/development.json new file mode 100644 index 0000000000..7554af381d --- /dev/null +++ b/apps/web/config/development.json @@ -0,0 +1,11 @@ +{ + "urls": { + "notifications": "http://localhost:61840" + }, + "dev": { + "proxyApi": "http://localhost:4000", + "proxyIdentity": "http://localhost:33656", + "proxyEvents": "http://localhost:46273", + "proxyNotifications": "http://localhost:61840" + } +} diff --git a/apps/web/config/qa.json b/apps/web/config/qa.json new file mode 100644 index 0000000000..189b94d2a3 --- /dev/null +++ b/apps/web/config/qa.json @@ -0,0 +1,11 @@ +{ + "urls": { + "icons": "https://icons.qa.bitwarden.pw", + "notifications": "https://notifications.qa.bitwarden.pw" + }, + "dev": { + "proxyApi": "https://api.qa.bitwarden.pw", + "proxyIdentity": "https://identity.qa.bitwarden.pw", + "proxyEvents": "https://events.qa.bitwarden.pw" + } +} diff --git a/apps/web/config/selfhosted.json b/apps/web/config/selfhosted.json new file mode 100644 index 0000000000..208a355a85 --- /dev/null +++ b/apps/web/config/selfhosted.json @@ -0,0 +1,9 @@ +{ + "dev": { + "proxyApi": "http://localhost:4001", + "proxyIdentity": "http://localhost:33657", + "proxyEvents": "http://localhost:46274", + "proxyNotifications": "http://localhost:61841", + "port": 8081 + } +} diff --git a/apps/web/crowdin.yml b/apps/web/crowdin.yml new file mode 100644 index 0000000000..821f35d2c7 --- /dev/null +++ b/apps/web/crowdin.yml @@ -0,0 +1,18 @@ +project_id_env: _CROWDIN_PROJECT_ID +api_token_env: CROWDIN_API_TOKEN +preserve_hierarchy: true +files: + - source: /src/locales/en/messages.json + dest: /src/locales/en/%file_name%.%file_extension% + translation: /src/locales/%two_letters_code%/%original_file_name% + update_option: update_as_unapproved + languages_mapping: + two_letters_code: + pt-PT: pt_PT + pt-BR: pt_BR + zh-CN: zh_CN + zh-TW: zh_TW + en-GB: en_GB + en-IN: en_IN + sr-CY: sr_CY + sr-CS: sr_CS diff --git a/apps/web/dev-server.shared.pem b/apps/web/dev-server.shared.pem new file mode 100644 index 0000000000..908853556f --- /dev/null +++ b/apps/web/dev-server.shared.pem @@ -0,0 +1,45 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDaEy1cPw07irjg +4wUgaxshW7oQrgVoNZYRROmdU20K22L+HyG2ahW6usiWw8+6fPgVve7Y1z+/GYsK +DhaDdY1Ket3JvZHxoAJ/+6lYY+05PhtmYnyEZzZlnuYx/tu3vyGpsXqMpzL3ZrX2 +Mh2dWE7ZXKxsyig4wSDJhBPMrW8HKXLrLR/JPFhu/nz5MpRF5LfzWU13FEfmS43s +PEkBCn5ZxhVX4eNclQhTl7oOo5LU+KCWn+C/GPQir7pdmMoYF6D5j3qtbsq9irPe +qR7HsM9z6DnX+L0mF31P2S6OTgLT3kuWJn9vqLUwvQWGFvSSzpw7JgGBK3eX6zE9 +2koGWP9NAgMBAAECggEAIpwCie5TykxU1RQSfzegYaXuHLGRmB1RCMKYFOjlmGCD +EHOeZRXnBvCX3x2KfT1SHhk7q9xVeJ20LE9aEVj5qIVhZ6AXZnKPkwI8uRN61afe +r1wYCOdcgbo7LFoXQs0pqYXKPkJW217IqB8CBjO6p9KGZumago9cBb9ZaRVpVohZ +c6YHeatrna2mPb/EUPHdT0RHHQ5Dz2ToPjCkDtxsNHLZLekR35WIMtCBlp0xY5hb +5h54ZxnaMihvHTLa8L/pgxGEUsP+XFpdXkM1oREzh8tDRFcUL8mUVZq8bGyzALn5 +MxDhdXqxrnyD2cQ/cSqXLs1/2mh5eccU3g5IaNtrAQKBgQD0Q4K2UYXa8jWQu7jI +b37zwr2EypLFjeluqF4fxs+oz3UYEXeBDK0Td19/tze6/XieKibKDtFrOZQwDDKC +AVxD7Dm58T9Jf4LDHNYOfYL3X/E4H+JrVBh94s0B00jVJ6TnEQDMuLi+wMGtvTdW +huxoNefIWKf73ozvxIF+nsyeDQKBgQDkjYoXkBtfNgQR42RVA0/UdLLDWWctMU4F +sJYc1bLL3txbf+fK7QzbU/ggLMW0hv8/IdyirGJhW3G0K0yhpAOlPhe36qv4QyhD +o2nFlRrzfzvGJAgH9b1s+VcL/cSIuv4aCkbv97DAoQGPzAWEKv5gY1iw1DsGgrz5 +svZUvd7WQQKBgQDPrp7yuTngQNP+bT3dXb9JLqjIwRwt0E1LgugUiIuDcnCSuDct +iEOYK4UNKBDAckcd46T7Y8H3MwumFpjTJKj4L1+dk1tF+J6Lmnb99wVlozOLjsCK +lQQF9NJt3OEuKvjwZeqSJfUeavHB8QGeFjXnHP4nwAmEA2M9cYzQxeAf+QKBgCbS +U+6Er+GQT0iqk1RNZ7XyzJqaCQiII3Sb9iOXuPMgO9Xe+ARkF5b5wF/Wuw5bD+gt +XEjVdzCKU9oCsNWUAnqC/Yxj9CoLXj9+9mx1U0qhBgo1/Jc9ipuEDuEejc+b06Wg +sUP5krBlqNpAEX/Nvb+poFsI8a29b1QKrgTe64cBAoGALg92rZBG60N2n8fTokou +f1fui8Ftb+vOVGv9CM6icmNuwXeMF40A33Hvx14XLFk6B5p5dtVyOR660rRv4HRV +cBUm5wwCZjwR5Aj83XGR0PRbTNFNngHbawQiutSo6dw8cNNKCZMywVh2KX29dsLh +0Yj++kb8+G1kzFonR8WWoC8= +-----END PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIICwzCCAaugAwIBAgIJAN5sbMfEx05qMA0GCSqGSIb3DQEBCwUAMBQxEjAQBgNV +BAMTCWxvY2FsaG9zdDAeFw0xODA2MDUwMzMxNDhaFw0yODA2MDIwMzMxNDhaMBQx +EjAQBgNVBAMTCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBANoTLVw/DTuKuODjBSBrGyFbuhCuBWg1lhFE6Z1TbQrbYv4fIbZqFbq6yJbD +z7p8+BW97tjXP78ZiwoOFoN1jUp63cm9kfGgAn/7qVhj7Tk+G2ZifIRnNmWe5jH+ +27e/IamxeoynMvdmtfYyHZ1YTtlcrGzKKDjBIMmEE8ytbwcpcustH8k8WG7+fPky +lEXkt/NZTXcUR+ZLjew8SQEKflnGFVfh41yVCFOXug6jktT4oJaf4L8Y9CKvul2Y +yhgXoPmPeq1uyr2Ks96pHsewz3PoOdf4vSYXfU/ZLo5OAtPeS5Ymf2+otTC9BYYW +9JLOnDsmAYErd5frMT3aSgZY/00CAwEAAaMYMBYwFAYDVR0RBA0wC4IJbG9jYWxo +b3N0MA0GCSqGSIb3DQEBCwUAA4IBAQCBTn7szrcs+fSs1Q/a2O3ng35zcme6NRhp +T65RP0ooj3tPT9QlTJyKjo9Yb2RW2RGVbQO86mkYe9N9wcZkzurZ6KDqsfBn3FkI +eZA1G/za907Dt/25mOdrsav7NmFBwxo9iuZ/cozgneK1mAXOu4nDI5yYvAlvNA6E +iXgls4WX1LtHL5b9YV7Jz27d5tTmGxEimakMBo+zr10vCtMCsTlDs/ChamnI7ljN +7B4WIVUMI3xOZzqClLnSzFJNReAlapjtGtp1qH6Y+6aZ9OErIwZOjE9CYYvm6MbE +CblXQ9Uifpwrc09TA5S2Y/9+VxUBF9xlxh8hkcGLTzlNFDzVWdmR +-----END CERTIFICATE----- diff --git a/apps/web/entrypoint.sh b/apps/web/entrypoint.sh new file mode 100644 index 0000000000..16d1c78fb7 --- /dev/null +++ b/apps/web/entrypoint.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +# Setup + +GROUPNAME="bitwarden" +USERNAME="bitwarden" + +LUID=${LOCAL_UID:-0} +LGID=${LOCAL_GID:-0} + +# Step down from host root to well-known nobody/nogroup user + +if [ $LUID -eq 0 ] +then + LUID=65534 +fi +if [ $LGID -eq 0 ] +then + LGID=65534 +fi + +# Create user and group + +groupadd -o -g $LGID $GROUPNAME >/dev/null 2>&1 || +groupmod -o -g $LGID $GROUPNAME >/dev/null 2>&1 +useradd -o -u $LUID -g $GROUPNAME -s /bin/false $USERNAME >/dev/null 2>&1 || +usermod -o -u $LUID -g $GROUPNAME -s /bin/false $USERNAME >/dev/null 2>&1 +mkhomedir_helper $USERNAME + +# The rest... + +chown -R $USERNAME:$GROUPNAME /etc/bitwarden +cp /etc/bitwarden/web/app-id.json /app/app-id.json +chown -R $USERNAME:$GROUPNAME /app +chown -R $USERNAME:$GROUPNAME /bitwarden_server + +exec gosu $USERNAME:$GROUPNAME dotnet /bitwarden_server/Server.dll \ + /contentRoot=/app /webRoot=. /serveUnknown=false /webVault=true diff --git a/apps/web/package-lock.json b/apps/web/package-lock.json new file mode 100644 index 0000000000..8e68936355 --- /dev/null +++ b/apps/web/package-lock.json @@ -0,0 +1,13568 @@ +{ + "name": "@bitwarden/web-vault", + "version": "2022.05.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@bitwarden/web-vault", + "version": "2022.05.0", + "hasInstallScript": true, + "license": "GPL-3.0", + "dependencies": { + "@angular/animations": "^12.2.13", + "@angular/cdk": "^12.2.13", + "@angular/common": "^12.2.13", + "@angular/compiler": "^12.2.13", + "@angular/core": "^12.2.13", + "@angular/forms": "^12.2.13", + "@angular/platform-browser": "^12.2.13", + "@angular/platform-browser-dynamic": "^12.2.13", + "@angular/router": "^12.2.13", + "@bitwarden/jslib-angular": "file:jslib/angular", + "@bitwarden/jslib-common": "file:jslib/common", + "bootstrap": "4.6.0", + "braintree-web-drop-in": "1.33.1", + "browser-hrtime": "^1.1.8", + "core-js": "^3.11.0", + "date-input-polyfill": "^2.14.0", + "jquery": "3.6.0", + "jszip": "^3.7.1", + "ngx-infinite-scroll": "^10.0.1", + "ngx-toastr": "14.1.4", + "node-forge": "^1.3.1", + "popper.js": "1.16.1", + "qrious": "4.0.2", + "rxjs": "^7.4.0", + "sweetalert2": "^10.16.6", + "webcrypto-shim": "0.1.7", + "whatwg-fetch": "3.6.2", + "zone.js": "0.11.4" + }, + "devDependencies": { + "@angular/compiler-cli": "^12.2.13", + "@ngtools/webpack": "^12.2.13", + "@types/jquery": "^3.5.5", + "@types/node": "^16.11.12", + "@types/webcrypto": "^0.0.28", + "@types/webpack": "^5.28.0", + "@typescript-eslint/eslint-plugin": "^5.10.1", + "@typescript-eslint/parser": "^5.10.1", + "autoprefixer": "^10.4.2", + "buffer": "^6.0.3", + "clean-webpack-plugin": "^4.0.0", + "copy-webpack-plugin": "^10.0.0", + "cross-env": "^7.0.3", + "css-loader": "^6.5.1", + "eslint": "^8.7.0", + "eslint-config-prettier": "^8.3.0", + "eslint-import-resolver-typescript": "^2.5.0", + "eslint-plugin-import": "^2.25.4", + "gh-pages": "^3.1.0", + "html-loader": "^3.0.1", + "html-webpack-injector": "1.1.4", + "html-webpack-plugin": "^5.5.0", + "husky": "^7.0.4", + "lint-staged": "^12.1.2", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.6", + "postcss-loader": "^6.2.1", + "prettier": "2.5.1", + "process": "^0.11.10", + "rimraf": "^3.0.2", + "sass": "^1.32.10", + "sass-loader": "^12.4.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.18", + "terser-webpack-plugin": "^5.2.5", + "ts-loader": "^9.2.5", + "typescript": "4.3.5", + "util": "^0.12.4", + "webpack": "^5.64.4", + "webpack-cli": "^4.9.1", + "webpack-dev-server": "^4.6.0" + }, + "engines": { + "node": "~16", + "npm": "~8" + } + }, + "jslib/angular": { + "name": "@bitwarden/jslib-angular", + "version": "0.0.0", + "license": "GPL-3.0", + "dependencies": { + "@angular/animations": "^12.2.13", + "@angular/cdk": "^12.2.13", + "@angular/common": "^12.2.13", + "@angular/compiler": "^12.2.13", + "@angular/core": "^12.2.13", + "@angular/forms": "^12.2.13", + "@angular/platform-browser": "^12.2.13", + "@angular/platform-browser-dynamic": "^12.2.13", + "@angular/router": "^12.2.13", + "@bitwarden/jslib-common": "file:../common", + "duo_web_sdk": "git+https://github.com/duosecurity/duo_web_sdk.git", + "rxjs": "^7.4.0", + "tldjs": "^2.3.1", + "zone.js": "0.11.4" + }, + "devDependencies": { + "@types/duo_web_sdk": "^2.7.1", + "rimraf": "^3.0.2", + "typescript": "4.3.5" + } + }, + "jslib/common": { + "name": "@bitwarden/jslib-common", + "version": "0.0.0", + "license": "GPL-3.0", + "dependencies": { + "@microsoft/signalr": "5.0.10", + "@microsoft/signalr-protocol-msgpack": "5.0.10", + "big-integer": "1.6.48", + "browser-hrtime": "^1.1.8", + "lunr": "^2.3.9", + "node-forge": "^1.2.1", + "papaparse": "^5.3.0", + "rxjs": "^7.4.0", + "tldjs": "^2.3.1", + "zxcvbn": "^4.4.2" + }, + "devDependencies": { + "@types/lunr": "^2.3.3", + "@types/node": "^16.11.12", + "@types/node-forge": "^1.0.1", + "@types/papaparse": "^5.2.5", + "@types/tldjs": "^2.3.0", + "@types/zxcvbn": "^4.4.1", + "rimraf": "^3.0.2", + "typescript": "4.3.5" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular/animations": { + "version": "12.2.16", + "license": "MIT", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": "^12.14.1 || >=14.0.0" + }, + "peerDependencies": { + "@angular/core": "12.2.16" + } + }, + "node_modules/@angular/cdk": { + "version": "12.2.13", + "license": "MIT", + "dependencies": { + "tslib": "^2.2.0" + }, + "optionalDependencies": { + "parse5": "^5.0.0" + }, + "peerDependencies": { + "@angular/common": "^12.0.0 || ^13.0.0-0", + "@angular/core": "^12.0.0 || ^13.0.0-0", + "rxjs": "^6.5.3 || ^7.0.0" + } + }, + "node_modules/@angular/common": { + "version": "12.2.16", + "license": "MIT", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": "^12.14.1 || >=14.0.0" + }, + "peerDependencies": { + "@angular/core": "12.2.16", + "rxjs": "^6.5.3 || ^7.0.0" + } + }, + "node_modules/@angular/compiler": { + "version": "12.2.16", + "license": "MIT", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": "^12.14.1 || >=14.0.0" + } + }, + "node_modules/@angular/compiler-cli": { + "version": "12.2.16", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.8.6", + "@babel/types": "^7.8.6", + "canonical-path": "1.0.0", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.11.0", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "source-map": "^0.6.1", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.2.0", + "yargs": "^17.0.0" + }, + "bin": { + "ivy-ngcc": "ngcc/main-ivy-ngcc.js", + "ng-xi18n": "src/extract_i18n.js", + "ngc": "src/main.js", + "ngcc": "ngcc/main-ngcc.js" + }, + "engines": { + "node": "^12.14.1 || >=14.0.0" + }, + "peerDependencies": { + "@angular/compiler": "12.2.16", + "typescript": ">=4.2.3 <4.4" + } + }, + "node_modules/@angular/core": { + "version": "12.2.16", + "license": "MIT", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": "^12.14.1 || >=14.0.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.0.0", + "zone.js": "~0.11.4" + } + }, + "node_modules/@angular/forms": { + "version": "12.2.16", + "license": "MIT", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": "^12.14.1 || >=14.0.0" + }, + "peerDependencies": { + "@angular/common": "12.2.16", + "@angular/core": "12.2.16", + "@angular/platform-browser": "12.2.16", + "rxjs": "^6.5.3 || ^7.0.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "12.2.16", + "license": "MIT", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": "^12.14.1 || >=14.0.0" + }, + "peerDependencies": { + "@angular/animations": "12.2.16", + "@angular/common": "12.2.16", + "@angular/core": "12.2.16" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "12.2.16", + "license": "MIT", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": "^12.14.1 || >=14.0.0" + }, + "peerDependencies": { + "@angular/common": "12.2.16", + "@angular/compiler": "12.2.16", + "@angular/core": "12.2.16", + "@angular/platform-browser": "12.2.16" + } + }, + "node_modules/@angular/router": { + "version": "12.2.16", + "license": "MIT", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": "^12.14.1 || >=14.0.0" + }, + "peerDependencies": { + "@angular/common": "12.2.16", + "@angular/core": "12.2.16", + "@angular/platform-browser": "12.2.16", + "rxjs": "^6.5.3 || ^7.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.17.10", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.17.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.10", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.10", + "@babel/types": "^7.17.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.17.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.17.10", + "@jridgewell/gen-mapping": "^0.1.0", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.17.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.17.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.17.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.17.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.17.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.17.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.17.10", + "dev": true, + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.17.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.10", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.10", + "@babel/types": "^7.17.10", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.17.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bitwarden/jslib-angular": { + "resolved": "jslib/angular", + "link": true + }, + "node_modules/@bitwarden/jslib-common": { + "resolved": "jslib/common", + "link": true + }, + "node_modules/@braintree/asset-loader": { + "version": "0.4.4", + "license": "MIT", + "dependencies": { + "promise-polyfill": "^8.1.3" + } + }, + "node_modules/@braintree/browser-detection": { + "version": "1.12.1", + "license": "MIT" + }, + "node_modules/@braintree/class-list": { + "version": "0.2.0", + "license": "MIT" + }, + "node_modules/@braintree/event-emitter": { + "version": "0.4.1", + "license": "MIT" + }, + "node_modules/@braintree/extended-promise": { + "version": "0.4.1", + "license": "MIT" + }, + "node_modules/@braintree/iframer": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/@braintree/sanitize-url": { + "version": "6.0.0", + "license": "MIT" + }, + "node_modules/@braintree/uuid": { + "version": "0.1.0", + "license": "ISC" + }, + "node_modules/@braintree/wrap-promise": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.9.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.14.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@microsoft/signalr": { + "version": "5.0.10", + "license": "Apache-2.0", + "dependencies": { + "abort-controller": "^3.0.0", + "eventsource": "^1.0.7", + "fetch-cookie": "^0.7.3", + "node-fetch": "^2.6.0", + "ws": "^6.0.0" + } + }, + "node_modules/@microsoft/signalr-protocol-msgpack": { + "version": "5.0.10", + "license": "Apache-2.0", + "dependencies": { + "@microsoft/signalr": ">=5.0.10", + "msgpack5": "^4.5.0" + } + }, + "node_modules/@microsoft/signalr/node_modules/ws": { + "version": "6.2.2", + "license": "MIT", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/@ngtools/webpack": { + "version": "12.2.17", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.14.1 || >=14.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^12.0.0", + "typescript": "~4.2.3 || ~4.3.2", + "webpack": "^5.30.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@scarf/scarf": { + "version": "1.1.1", + "hasInstallScript": true, + "license": "Apache-2.0" + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/duo_web_sdk": { + "version": "2.7.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/eslint": { + "version": "8.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.13", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.28", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jquery": { + "version": "3.5.14", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/sizzle": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lunr": { + "version": "2.3.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "16.11.33", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node-forge": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/papaparse": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.13.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sizzle": { + "version": "2.3.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/tldjs": { + "version": "2.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/webcrypto": { + "version": "0.0.28", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/webpack": { + "version": "5.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "tapable": "^2.2.0", + "webpack": "^5" + } + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/zxcvbn": { + "version": "4.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/type-utils": "5.23.0", + "@typescript-eslint/utils": "5.23.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.23.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/typescript-estree": "5.23.0", + "debug": "^4.3.2" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "5.23.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.23.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.23.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/typescript-estree": "5.23.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.23.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.23.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "envinfo": "^7.7.3" + }, + "peerDependencies": { + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "1.6.1", + "dev": true, + "license": "MIT", + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.7.1", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-node": { + "version": "1.8.2", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.11.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.4", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.7", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.20.3", + "caniuse-lite": "^1.0.30001335", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "license": "MIT", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-runtime/node_modules/core-js": { + "version": "2.6.12", + "hasInstallScript": true, + "license": "MIT" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/batch": { + "version": "0.6.1", + "dev": true, + "license": "MIT" + }, + "node_modules/big-integer": { + "version": "1.6.48", + "license": "Unlicense", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "2.2.1", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/body-parser": { + "version": "1.20.0", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/bonjour-service": { + "version": "1.0.12", + "dev": true, + "license": "MIT", + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.4" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/bootstrap": { + "version": "4.6.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + }, + "peerDependencies": { + "jquery": "1.9.1 - 3", + "popper.js": "^1.16.1" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/braintree-web": { + "version": "3.85.3", + "license": "MIT", + "dependencies": { + "@braintree/asset-loader": "0.4.4", + "@braintree/browser-detection": "1.12.1", + "@braintree/class-list": "0.2.0", + "@braintree/event-emitter": "0.4.1", + "@braintree/extended-promise": "0.4.1", + "@braintree/iframer": "1.1.0", + "@braintree/sanitize-url": "6.0.0", + "@braintree/uuid": "0.1.0", + "@braintree/wrap-promise": "2.1.0", + "card-validator": "8.1.1", + "credit-card-type": "9.1.0", + "framebus": "5.1.2", + "inject-stylesheet": "5.0.0", + "promise-polyfill": "8.2.3", + "restricted-input": "3.0.5" + } + }, + "node_modules/braintree-web-drop-in": { + "version": "1.33.1", + "license": "MIT", + "dependencies": { + "@braintree/asset-loader": "0.4.4", + "@braintree/browser-detection": "1.12.1", + "@braintree/class-list": "0.2.0", + "@braintree/event-emitter": "0.4.1", + "@braintree/uuid": "0.1.0", + "@braintree/wrap-promise": "2.1.0", + "braintree-web": "3.85.3", + "promise-polyfill": "8.2.3" + } + }, + "node_modules/browser-hrtime": { + "version": "1.1.8", + "license": "MIT" + }, + "node_modules/browserslist": { + "version": "4.20.3", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001332", + "electron-to-chromium": "^1.4.118", + "escalade": "^3.1.1", + "node-releases": "^2.0.3", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/bytes": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001339", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/canonical-path": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/card-validator": { + "version": "8.1.1", + "license": "MIT", + "dependencies": { + "credit-card-type": "^9.1.0" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clean-css": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/clean-webpack-plugin": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "del": "^4.1.1" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": ">=4.0.0 <6.0.0" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-truncate": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.16", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, + "node_modules/commondir": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/compressible": { + "version": "2.0.18", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/content-type": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-webpack-plugin": { + "version": "10.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^12.0.2", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 12.20.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/array-union": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "12.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js": { + "version": "3.22.5", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/credit-card-type": { + "version": "9.1.0", + "license": "MIT" + }, + "node_modules/cross-env": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "6.7.1", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/date-input-polyfill": { + "version": "2.14.0", + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.11.6" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/defined": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/del": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/array-union": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "2.7.1", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/detective": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/dns-packet": { + "version": "5.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "4.3.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/duo_web_sdk": { + "version": "2.7.0", + "resolved": "git+ssh://git@github.com/duosecurity/duo_web_sdk.git#f43ff8f1325f8630d0cff1cd9fb0df13d22cf28d", + "license": "SEE LICENSE IN LICENSE" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.137", + "dev": true, + "license": "ISC" + }, + "node_modules/email-addresses": { + "version": "3.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.8.1", + "dev": true, + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.20.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.1", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "dev": true, + "license": "MIT" + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-denodeify": { + "version": "0.1.5", + "license": "Unlicense" + }, + "node_modules/escalade": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.15.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint/eslintrc": "^1.2.3", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "2.7.1", + "dev": true, + "license": "ISC", + "dependencies": { + "debug": "^4.3.4", + "glob": "^7.2.0", + "is-glob": "^4.0.3", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.3", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.14.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.3.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "original": "^1.0.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/express": { + "version": "4.18.1", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.10.3", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.12", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.13.0", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fetch-cookie": { + "version": "0.7.3", + "license": "Unlicense", + "dependencies": { + "es6-denodeify": "^0.1.1", + "tough-cookie": "^2.3.3" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.0", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreach": { + "version": "2.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/forwarded": { + "version": "0.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/framebus": { + "version": "5.1.2", + "license": "MIT", + "dependencies": { + "@braintree/uuid": "^0.1.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "dev": true, + "license": "Unlicense" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gh-pages": { + "version": "3.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "bin": { + "gh-pages": "bin/gh-pages.js", + "gh-pages-clean": "bin/gh-pages-clean.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gh-pages/node_modules/array-union": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages/node_modules/globby": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages/node_modules/pify": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/globals": { + "version": "11.12.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "dev": true, + "license": "ISC" + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/has": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/he": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "dev": true, + "license": "MIT" + }, + "node_modules/html-loader": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "html-minifier-terser": "^6.0.2", + "parse5": "^6.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/html-loader/node_modules/parse5": { + "version": "6.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "8.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-webpack-injector": { + "version": "1.1.4", + "dev": true, + "license": "ISC" + }, + "node_modules/html-webpack-plugin": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "webpack": "^5.20.0" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "dev": true, + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.6", + "dev": true, + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "dev": true, + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/husky": { + "version": "7.0.4", + "dev": true, + "license": "MIT", + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "license": "MIT" + }, + "node_modules/immutable": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/inject-stylesheet": { + "version": "5.0.0", + "license": "MIT" + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ipaddr.js": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.8", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jquery": { + "version": "3.6.0", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jszip": { + "version": "3.9.1", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lilconfig": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "dev": true, + "license": "MIT" + }, + "node_modules/lint-staged": { + "version": "12.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.16", + "commander": "^8.3.0", + "debug": "^4.3.3", + "execa": "^5.1.1", + "lilconfig": "2.0.4", + "listr2": "^4.0.1", + "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", + "object-inspect": "^1.12.0", + "pidtree": "^0.5.0", + "string-argv": "^0.3.1", + "supports-color": "^9.2.1", + "yaml": "^1.10.2" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/lint-staged/node_modules/commander": { + "version": "8.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/lint-staged/node_modules/supports-color": { + "version": "9.2.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/listr2": { + "version": "4.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.5", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/cli-truncate": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/listr2/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/p-map": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/slice-ansi": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-update/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lunr": { + "version": "2.3.9", + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.25.9", + "dev": true, + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.1", + "dev": true, + "license": "Unlicense", + "dependencies": { + "fs-monkey": "1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "dev": true, + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/msgpack5": { + "version": "4.5.1", + "license": "MIT", + "dependencies": { + "bl": "^2.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.3.6", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/multicast-dns": { + "version": "7.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "dev": true, + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/ngx-infinite-scroll": { + "version": "10.0.1", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@scarf/scarf": "^1.1.0", + "opencollective-postinstall": "^2.0.2" + } + }, + "node_modules/ngx-toastr": { + "version": "14.1.4", + "license": "MIT", + "dependencies": { + "tslib": "^2.2.0" + }, + "peerDependencies": { + "@angular/common": ">=12.0.0-0", + "@angular/core": ">=12.0.0-0", + "@angular/platform-browser": ">=12.0.0-0" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.0.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.12.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opencollective-postinstall": { + "version": "2.0.3", + "license": "MIT", + "bin": { + "opencollective-postinstall": "index.js" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/original": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "url-parse": "^1.4.3" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-map": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "license": "(MIT AND Zlib)" + }, + "node_modules/papaparse": { + "version": "5.3.2", + "license": "MIT" + }, + "node_modules/param-case": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "5.1.1", + "license": "MIT", + "optional": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "dev": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.5.0", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/popper.js": { + "version": "1.16.1", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/postcss": { + "version": "8.4.13", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.3", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-js": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "5.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.6" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.5.1", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/promise-polyfill": { + "version": "8.2.3", + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.8.0", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qrious": { + "version": "4.0.2", + "license": "GPL-3.0" + }, + "node_modules/qs": { + "version": "6.10.3", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.7.1", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/regenerator-runtime": { + "version": "0.11.1", + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restricted-input": { + "version": "3.0.5", + "license": "MIT", + "dependencies": { + "@braintree/browser-detection": "^1.12.1" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.5.5", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/sass": { + "version": "1.51.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/schema-utils": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.11.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/select-hose": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.3.7", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "dev": true, + "license": "ISC" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "dev": true, + "license": "ISC" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "dev": true, + "license": "ISC" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "dev": true, + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "dev": true, + "license": "MIT" + }, + "node_modules/spdy": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-argv": { + "version": "0.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-outer": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/style-loader": { + "version": "3.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sweetalert2": { + "version": "10.16.9", + "license": "MIT", + "funding": { + "url": "https://sweetalert2.github.io/#donations" + } + }, + "node_modules/tailwindcss": { + "version": "3.0.24", + "dev": true, + "license": "MIT", + "dependencies": { + "arg": "^5.0.1", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "detective": "^5.2.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "lilconfig": "^2.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.12", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.4", + "postcss-nested": "5.0.6", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/tailwindcss/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tailwindcss/node_modules/lilconfig": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.13.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map": "~0.8.0-beta.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.8.0-beta.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/through": { + "version": "2.3.8", + "dev": true, + "license": "MIT" + }, + "node_modules/thunky": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/tldjs": { + "version": "2.3.1", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "punycode": "^1.4.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/tldjs/node_modules/punycode": { + "version": "1.4.1", + "license": "MIT" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ts-loader": { + "version": "9.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ts-loader/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ts-loader/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ts-loader/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/ts-loader/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-loader/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "2.4.0", + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "dev": true, + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "4.3.5", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util": { + "version": "0.12.4", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/utila": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/watchpack": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "dev": true, + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webcrypto-shim": { + "version": "0.1.7", + "license": "MIT" + }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/webpack": { + "version": "5.72.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.9.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "4.9.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.1.1", + "@webpack-cli/info": "^1.4.1", + "@webpack-cli/serve": "^1.6.1", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.1", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.9.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.6.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.2", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.0.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/zone.js": { + "version": "0.11.4", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/zxcvbn": { + "version": "4.4.2", + "license": "MIT" + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@angular/animations": { + "version": "12.2.16", + "requires": { + "tslib": "^2.2.0" + } + }, + "@angular/cdk": { + "version": "12.2.13", + "requires": { + "parse5": "^5.0.0", + "tslib": "^2.2.0" + } + }, + "@angular/common": { + "version": "12.2.16", + "requires": { + "tslib": "^2.2.0" + } + }, + "@angular/compiler": { + "version": "12.2.16", + "requires": { + "tslib": "^2.2.0" + } + }, + "@angular/compiler-cli": { + "version": "12.2.16", + "dev": true, + "requires": { + "@babel/core": "^7.8.6", + "@babel/types": "^7.8.6", + "canonical-path": "1.0.0", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.11.0", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "source-map": "^0.6.1", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.2.0", + "yargs": "^17.0.0" + } + }, + "@angular/core": { + "version": "12.2.16", + "requires": { + "tslib": "^2.2.0" + } + }, + "@angular/forms": { + "version": "12.2.16", + "requires": { + "tslib": "^2.2.0" + } + }, + "@angular/platform-browser": { + "version": "12.2.16", + "requires": { + "tslib": "^2.2.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "12.2.16", + "requires": { + "tslib": "^2.2.0" + } + }, + "@angular/router": { + "version": "12.2.16", + "requires": { + "tslib": "^2.2.0" + } + }, + "@babel/code-frame": { + "version": "7.16.7", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/compat-data": { + "version": "7.17.10", + "dev": true + }, + "@babel/core": { + "version": "7.17.10", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.10", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.10", + "@babel/types": "^7.17.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.17.10", + "dev": true, + "requires": { + "@babel/types": "^7.17.10", + "@jridgewell/gen-mapping": "^0.1.0", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.17.10", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.16.7", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-function-name": { + "version": "7.17.9", + "dev": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.17.7", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.17.7", + "dev": true, + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "dev": true + }, + "@babel/helpers": { + "version": "7.17.9", + "dev": true, + "requires": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0" + } + }, + "@babel/highlight": { + "version": "7.17.9", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.17.10", + "dev": true + }, + "@babel/template": { + "version": "7.16.7", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.17.10", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.10", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.10", + "@babel/types": "^7.17.10", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.17.10", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "@bitwarden/jslib-angular": { + "version": "file:jslib/angular", + "requires": { + "@angular/animations": "^12.2.13", + "@angular/cdk": "^12.2.13", + "@angular/common": "^12.2.13", + "@angular/compiler": "^12.2.13", + "@angular/core": "^12.2.13", + "@angular/forms": "^12.2.13", + "@angular/platform-browser": "^12.2.13", + "@angular/platform-browser-dynamic": "^12.2.13", + "@angular/router": "^12.2.13", + "@bitwarden/jslib-common": "file:../common", + "@types/duo_web_sdk": "^2.7.1", + "duo_web_sdk": "git+https://github.com/duosecurity/duo_web_sdk.git", + "rimraf": "^3.0.2", + "rxjs": "^7.4.0", + "tldjs": "^2.3.1", + "typescript": "4.3.5", + "zone.js": "0.11.4" + } + }, + "@bitwarden/jslib-common": { + "version": "file:jslib/common", + "requires": { + "@microsoft/signalr": "5.0.10", + "@microsoft/signalr-protocol-msgpack": "5.0.10", + "@types/lunr": "^2.3.3", + "@types/node": "^16.11.12", + "@types/node-forge": "^1.0.1", + "@types/papaparse": "^5.2.5", + "@types/tldjs": "^2.3.0", + "@types/zxcvbn": "^4.4.1", + "big-integer": "1.6.48", + "browser-hrtime": "^1.1.8", + "lunr": "^2.3.9", + "node-forge": "^1.2.1", + "papaparse": "^5.3.0", + "rimraf": "^3.0.2", + "rxjs": "^7.4.0", + "tldjs": "^2.3.1", + "typescript": "4.3.5", + "zxcvbn": "^4.4.2" + } + }, + "@braintree/asset-loader": { + "version": "0.4.4", + "requires": { + "promise-polyfill": "^8.1.3" + } + }, + "@braintree/browser-detection": { + "version": "1.12.1" + }, + "@braintree/class-list": { + "version": "0.2.0" + }, + "@braintree/event-emitter": { + "version": "0.4.1" + }, + "@braintree/extended-promise": { + "version": "0.4.1" + }, + "@braintree/iframer": { + "version": "1.1.0" + }, + "@braintree/sanitize-url": { + "version": "6.0.0" + }, + "@braintree/uuid": { + "version": "0.1.0" + }, + "@braintree/wrap-promise": { + "version": "2.1.0" + }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "dev": true + }, + "@eslint/eslintrc": { + "version": "1.2.3", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.9.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "globals": { + "version": "13.14.0", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "type-fest": { + "version": "0.20.2", + "dev": true + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.0.7", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.1", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.11", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.4", + "dev": true + }, + "@microsoft/signalr": { + "version": "5.0.10", + "requires": { + "abort-controller": "^3.0.0", + "eventsource": "^1.0.7", + "fetch-cookie": "^0.7.3", + "node-fetch": "^2.6.0", + "ws": "^6.0.0" + }, + "dependencies": { + "ws": { + "version": "6.2.2", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "@microsoft/signalr-protocol-msgpack": { + "version": "5.0.10", + "requires": { + "@microsoft/signalr": ">=5.0.10", + "msgpack5": "^4.5.0" + } + }, + "@ngtools/webpack": { + "version": "12.2.17", + "dev": true, + "requires": {} + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@scarf/scarf": { + "version": "1.1.1" + }, + "@types/body-parser": { + "version": "1.19.2", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/bonjour": { + "version": "3.5.10", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.3.5", + "dev": true, + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/duo_web_sdk": { + "version": "2.7.1", + "dev": true + }, + "@types/eslint": { + "version": "8.4.2", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.3", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.51", + "dev": true + }, + "@types/express": { + "version": "4.17.13", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.28", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/glob": { + "version": "7.2.0", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/html-minifier-terser": { + "version": "6.1.0", + "dev": true + }, + "@types/http-proxy": { + "version": "1.17.9", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/jquery": { + "version": "3.5.14", + "dev": true, + "requires": { + "@types/sizzle": "*" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "dev": true + }, + "@types/lunr": { + "version": "2.3.4", + "dev": true + }, + "@types/mime": { + "version": "1.3.2", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.5", + "dev": true + }, + "@types/node": { + "version": "16.11.33", + "dev": true + }, + "@types/node-forge": { + "version": "1.0.2", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/papaparse": { + "version": "5.3.2", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/parse-json": { + "version": "4.0.0", + "dev": true + }, + "@types/qs": { + "version": "6.9.7", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.4", + "dev": true + }, + "@types/retry": { + "version": "0.12.0", + "dev": true + }, + "@types/serve-index": { + "version": "1.9.1", + "dev": true, + "requires": { + "@types/express": "*" + } + }, + "@types/serve-static": { + "version": "1.13.10", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/sizzle": { + "version": "2.3.3", + "dev": true + }, + "@types/sockjs": { + "version": "0.3.33", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/tldjs": { + "version": "2.3.1", + "dev": true + }, + "@types/webcrypto": { + "version": "0.0.28", + "dev": true + }, + "@types/webpack": { + "version": "5.28.0", + "dev": true, + "requires": { + "@types/node": "*", + "tapable": "^2.2.0", + "webpack": "^5" + } + }, + "@types/ws": { + "version": "8.5.3", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/zxcvbn": { + "version": "4.4.1", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.23.0", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/type-utils": "5.23.0", + "@typescript-eslint/utils": "5.23.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.23.0", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/typescript-estree": "5.23.0", + "debug": "^4.3.2" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.23.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.23.0", + "dev": true, + "requires": { + "@typescript-eslint/utils": "5.23.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.23.0", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.23.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.23.0", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/typescript-estree": "5.23.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.23.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.23.0", + "eslint-visitor-keys": "^3.0.0" + } + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webpack-cli/configtest": { + "version": "1.1.1", + "dev": true, + "requires": {} + }, + "@webpack-cli/info": { + "version": "1.4.1", + "dev": true, + "requires": { + "envinfo": "^7.7.3" + } + }, + "@webpack-cli/serve": { + "version": "1.6.1", + "dev": true, + "requires": {} + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "dev": true + }, + "abort-controller": { + "version": "3.0.0", + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "accepts": { + "version": "1.3.8", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.7.1", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "dev": true, + "requires": {} + }, + "acorn-jsx": { + "version": "5.3.2", + "dev": true, + "requires": {} + }, + "acorn-node": { + "version": "1.8.2", + "dev": true, + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "dev": true + } + } + }, + "acorn-walk": { + "version": "7.2.0", + "dev": true + }, + "aggregate-error": { + "version": "3.1.0", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "dev": true, + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "dev": true + } + } + }, + "ajv-keywords": { + "version": "3.5.2", + "dev": true, + "requires": {} + }, + "ansi-escapes": { + "version": "4.3.2", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-html-community": { + "version": "0.0.8", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "5.0.1", + "dev": true + }, + "argparse": { + "version": "2.0.1", + "dev": true + }, + "array-flatten": { + "version": "2.1.2", + "dev": true + }, + "array-includes": { + "version": "3.1.5", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "dev": true + }, + "array.prototype.flat": { + "version": "1.3.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + } + }, + "astral-regex": { + "version": "2.0.0", + "dev": true + }, + "async": { + "version": "2.6.4", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-limiter": { + "version": "1.0.1" + }, + "autoprefixer": { + "version": "10.4.7", + "dev": true, + "requires": { + "browserslist": "^4.20.3", + "caniuse-lite": "^1.0.30001335", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "dev": true + }, + "babel-runtime": { + "version": "6.26.0", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.12" + } + } + }, + "balanced-match": { + "version": "1.0.2", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "dev": true + }, + "batch": { + "version": "0.6.1", + "dev": true + }, + "big-integer": { + "version": "1.6.48" + }, + "binary-extensions": { + "version": "2.2.0", + "dev": true + }, + "bl": { + "version": "2.2.1", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "body-parser": { + "version": "1.20.0", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "dev": true + }, + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + } + } + }, + "bonjour-service": { + "version": "1.0.12", + "dev": true, + "requires": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.4" + } + }, + "boolbase": { + "version": "1.0.0", + "dev": true + }, + "bootstrap": { + "version": "4.6.0", + "requires": {} + }, + "brace-expansion": { + "version": "1.1.11", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "braintree-web": { + "version": "3.85.3", + "requires": { + "@braintree/asset-loader": "0.4.4", + "@braintree/browser-detection": "1.12.1", + "@braintree/class-list": "0.2.0", + "@braintree/event-emitter": "0.4.1", + "@braintree/extended-promise": "0.4.1", + "@braintree/iframer": "1.1.0", + "@braintree/sanitize-url": "6.0.0", + "@braintree/uuid": "0.1.0", + "@braintree/wrap-promise": "2.1.0", + "card-validator": "8.1.1", + "credit-card-type": "9.1.0", + "framebus": "5.1.2", + "inject-stylesheet": "5.0.0", + "promise-polyfill": "8.2.3", + "restricted-input": "3.0.5" + } + }, + "braintree-web-drop-in": { + "version": "1.33.1", + "requires": { + "@braintree/asset-loader": "0.4.4", + "@braintree/browser-detection": "1.12.1", + "@braintree/class-list": "0.2.0", + "@braintree/event-emitter": "0.4.1", + "@braintree/uuid": "0.1.0", + "@braintree/wrap-promise": "2.1.0", + "braintree-web": "3.85.3", + "promise-polyfill": "8.2.3" + } + }, + "browser-hrtime": { + "version": "1.1.8" + }, + "browserslist": { + "version": "4.20.3", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001332", + "electron-to-chromium": "^1.4.118", + "escalade": "^3.1.1", + "node-releases": "^2.0.3", + "picocolors": "^1.0.0" + } + }, + "buffer": { + "version": "6.0.3", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "buffer-from": { + "version": "1.1.2", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "dev": true + }, + "camel-case": { + "version": "4.1.2", + "dev": true, + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "camelcase-css": { + "version": "2.0.1", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001339", + "dev": true + }, + "canonical-path": { + "version": "1.0.0", + "dev": true + }, + "card-validator": { + "version": "8.1.1", + "requires": { + "credit-card-type": "^9.1.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.3", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "dev": true + }, + "clean-css": { + "version": "5.3.0", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "clean-stack": { + "version": "2.2.0", + "dev": true + }, + "clean-webpack-plugin": { + "version": "4.0.0", + "dev": true, + "requires": { + "del": "^4.1.1" + } + }, + "cli-cursor": { + "version": "3.1.0", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-truncate": { + "version": "3.1.0", + "dev": true, + "requires": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + } + }, + "cliui": { + "version": "7.0.4", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "clone-deep": { + "version": "4.0.1", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "colorette": { + "version": "2.0.16", + "dev": true + }, + "commander": { + "version": "2.20.3", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "dev": true + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "dev": true + }, + "content-disposition": { + "version": "0.5.4", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "dev": true + } + } + }, + "content-type": { + "version": "1.0.4", + "dev": true + }, + "convert-source-map": { + "version": "1.8.0", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.5.0", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "dev": true + }, + "copy-webpack-plugin": { + "version": "10.2.4", + "dev": true, + "requires": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^12.0.2", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "dependencies": { + "array-union": { + "version": "3.0.1", + "dev": true + }, + "glob-parent": { + "version": "6.0.2", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globby": { + "version": "12.2.0", + "dev": true, + "requires": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "slash": { + "version": "4.0.0", + "dev": true + } + } + }, + "core-js": { + "version": "3.22.5" + }, + "core-util-is": { + "version": "1.0.3" + }, + "cosmiconfig": { + "version": "7.0.1", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "credit-card-type": { + "version": "9.1.0" + }, + "cross-env": { + "version": "7.0.3", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, + "cross-spawn": { + "version": "7.0.3", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "css-loader": { + "version": "6.7.1", + "dev": true, + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + } + }, + "css-select": { + "version": "4.3.0", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "6.1.0", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "dev": true + }, + "date-input-polyfill": { + "version": "2.14.0", + "requires": { + "babel-runtime": "^6.11.6" + } + }, + "debug": { + "version": "4.3.4", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deep-is": { + "version": "0.1.4", + "dev": true + }, + "default-gateway": { + "version": "6.0.3", + "dev": true, + "requires": { + "execa": "^5.0.0" + } + }, + "define-lazy-prop": { + "version": "2.0.0", + "dev": true + }, + "define-properties": { + "version": "1.1.4", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "defined": { + "version": "1.0.0", + "dev": true + }, + "del": { + "version": "4.1.1", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "globby": { + "version": "6.1.0", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "dev": true + } + } + }, + "rimraf": { + "version": "2.7.1", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "depd": { + "version": "2.0.0", + "dev": true + }, + "dependency-graph": { + "version": "0.11.0", + "dev": true + }, + "destroy": { + "version": "1.2.0", + "dev": true + }, + "detect-node": { + "version": "2.1.0", + "dev": true + }, + "detective": { + "version": "5.2.0", + "dev": true, + "requires": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + } + }, + "didyoumean": { + "version": "1.2.2", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dlv": { + "version": "1.1.3", + "dev": true + }, + "dns-equal": { + "version": "1.0.0", + "dev": true + }, + "dns-packet": { + "version": "5.3.1", + "dev": true, + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "doctrine": { + "version": "3.0.0", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-converter": { + "version": "0.2.0", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "1.4.1", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "dev": true + }, + "domhandler": { + "version": "4.3.1", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "dot-case": { + "version": "3.0.4", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "duo_web_sdk": { + "version": "git+ssh://git@github.com/duosecurity/duo_web_sdk.git#f43ff8f1325f8630d0cff1cd9fb0df13d22cf28d", + "from": "duo_web_sdk@git+https://github.com/duosecurity/duo_web_sdk.git" + }, + "eastasianwidth": { + "version": "0.2.0", + "dev": true + }, + "ee-first": { + "version": "1.1.1", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.137", + "dev": true + }, + "email-addresses": { + "version": "3.1.0", + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "dev": true + }, + "enhanced-resolve": { + "version": "5.9.3", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "entities": { + "version": "2.2.0", + "dev": true + }, + "envinfo": { + "version": "7.8.1", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.20.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.1", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "dev": true + }, + "es-shim-unscopables": { + "version": "1.0.0", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-denodeify": { + "version": "0.1.5" + }, + "escalade": { + "version": "3.1.1", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "eslint": { + "version": "8.15.0", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.2.3", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + }, + "eslint-scope": { + "version": "7.1.1", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "dev": true + }, + "glob-parent": { + "version": "6.0.2", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.14.0", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "8.5.0", + "dev": true, + "requires": {} + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "dev": true, + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-import-resolver-typescript": { + "version": "2.7.1", + "dev": true, + "requires": { + "debug": "^4.3.4", + "glob": "^7.2.0", + "is-glob": "^4.0.3", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + } + }, + "eslint-module-utils": { + "version": "2.7.3", + "dev": true, + "requires": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.26.0", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "dev": true + }, + "espree": { + "version": "9.3.2", + "dev": true, + "requires": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.4.0", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "dev": true + }, + "etag": { + "version": "1.8.1", + "dev": true + }, + "event-target-shim": { + "version": "5.0.1" + }, + "eventemitter3": { + "version": "4.0.7", + "dev": true + }, + "events": { + "version": "3.3.0", + "dev": true + }, + "eventsource": { + "version": "1.1.0", + "requires": { + "original": "^1.0.0" + } + }, + "execa": { + "version": "5.1.1", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "express": { + "version": "4.18.1", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.10.3", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "dev": true + }, + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + }, + "safe-buffer": { + "version": "5.2.1", + "dev": true + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "dev": true + }, + "fast-glob": { + "version": "3.2.11", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.12", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fetch-cookie": { + "version": "0.7.3", + "requires": { + "es6-denodeify": "^0.1.1", + "tough-cookie": "^2.3.3" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "filename-reserved-regex": { + "version": "2.0.0", + "dev": true + }, + "filenamify": { + "version": "4.3.0", + "dev": true, + "requires": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + } + }, + "fill-range": { + "version": "7.0.1", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "2.1.0", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.5", + "dev": true + }, + "follow-redirects": { + "version": "1.15.0", + "dev": true + }, + "foreach": { + "version": "2.0.5", + "dev": true + }, + "forwarded": { + "version": "0.2.0", + "dev": true + }, + "fraction.js": { + "version": "4.2.0", + "dev": true + }, + "framebus": { + "version": "5.1.2", + "requires": { + "@braintree/uuid": "^0.1.0" + } + }, + "fresh": { + "version": "0.5.2", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stream": { + "version": "6.0.1", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "gh-pages": { + "version": "3.2.3", + "dev": true, + "requires": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "globby": { + "version": "6.1.0", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "dev": true + } + } + }, + "glob": { + "version": "7.2.0", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "dev": true + }, + "globals": { + "version": "11.12.0", + "dev": true + }, + "globby": { + "version": "11.1.0", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "dev": true + }, + "handle-thing": { + "version": "2.0.1", + "dev": true + }, + "has": { + "version": "1.0.3", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "he": { + "version": "1.2.0", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "html-entities": { + "version": "2.3.3", + "dev": true + }, + "html-loader": { + "version": "3.1.0", + "dev": true, + "requires": { + "html-minifier-terser": "^6.0.2", + "parse5": "^6.0.1" + }, + "dependencies": { + "parse5": { + "version": "6.0.1", + "dev": true + } + } + }, + "html-minifier-terser": { + "version": "6.1.0", + "dev": true, + "requires": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "dev": true + } + } + }, + "html-webpack-injector": { + "version": "1.1.4", + "dev": true + }, + "html-webpack-plugin": { + "version": "5.5.0", + "dev": true, + "requires": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + } + }, + "htmlparser2": { + "version": "6.1.0", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "http-deceiver": { + "version": "1.2.7", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-parser-js": { + "version": "0.5.6", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "2.0.6", + "dev": true, + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + } + }, + "human-signals": { + "version": "2.1.0", + "dev": true + }, + "husky": { + "version": "7.0.4", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "5.1.0", + "dev": true, + "requires": {} + }, + "ieee754": { + "version": "1.2.1", + "dev": true + }, + "ignore": { + "version": "5.2.0", + "dev": true + }, + "immediate": { + "version": "3.0.6" + }, + "immutable": { + "version": "4.0.0", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-local": { + "version": "3.1.0", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4" + }, + "inject-stylesheet": { + "version": "5.0.0" + }, + "internal-slot": { + "version": "1.0.3", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "interpret": { + "version": "2.2.0", + "dev": true + }, + "ipaddr.js": { + "version": "2.0.1", + "dev": true + }, + "is-arguments": { + "version": "1.1.1", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.4", + "dev": true + }, + "is-core-module": { + "version": "2.9.0", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "4.0.0", + "dev": true + }, + "is-generator-function": { + "version": "1.0.10", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-path-cwd": { + "version": "2.2.0", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-obj": { + "version": "3.0.0", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.1", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.8", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0" + } + }, + "is-weakref": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-wsl": { + "version": "2.2.0", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0" + }, + "isexe": { + "version": "2.0.0", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jquery": { + "version": "3.6.0" + }, + "js-tokens": { + "version": "4.0.0", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "jsesc": { + "version": "2.5.2", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true + }, + "json5": { + "version": "2.2.1", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jszip": { + "version": "3.9.1", + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "kind-of": { + "version": "6.0.3", + "dev": true + }, + "klona": { + "version": "2.0.5", + "dev": true + }, + "levn": { + "version": "0.4.1", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lie": { + "version": "3.3.0", + "requires": { + "immediate": "~3.0.5" + } + }, + "lilconfig": { + "version": "2.0.4", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "dev": true + }, + "lint-staged": { + "version": "12.4.1", + "dev": true, + "requires": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.16", + "commander": "^8.3.0", + "debug": "^4.3.3", + "execa": "^5.1.1", + "lilconfig": "2.0.4", + "listr2": "^4.0.1", + "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", + "object-inspect": "^1.12.0", + "pidtree": "^0.5.0", + "string-argv": "^0.3.1", + "supports-color": "^9.2.1", + "yaml": "^1.10.2" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "dev": true + }, + "supports-color": { + "version": "9.2.2", + "dev": true + } + } + }, + "listr2": { + "version": "4.0.5", + "dev": true, + "requires": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.5", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cli-truncate": { + "version": "2.1.0", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true + }, + "p-map": { + "version": "4.0.0", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "slice-ansi": { + "version": "3.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "loader-runner": { + "version": "4.3.0", + "dev": true + }, + "locate-path": { + "version": "2.0.0", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "dev": true + }, + "log-update": { + "version": "4.0.0", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "lower-case": { + "version": "2.0.2", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "lru-cache": { + "version": "6.0.0", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "lunr": { + "version": "2.3.9" + }, + "magic-string": { + "version": "0.25.9", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "dev": true + } + } + }, + "media-typer": { + "version": "0.3.0", + "dev": true + }, + "memfs": { + "version": "3.4.1", + "dev": true, + "requires": { + "fs-monkey": "1.0.3" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "dev": true + }, + "methods": { + "version": "1.1.2", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "2.6.0", + "dev": true, + "requires": { + "schema-utils": "^4.0.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "dev": true + }, + "ms": { + "version": "2.1.2", + "dev": true + }, + "msgpack5": { + "version": "4.5.1", + "requires": { + "bl": "^2.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.3.6", + "safe-buffer": "^5.1.2" + } + }, + "multicast-dns": { + "version": "7.2.4", + "dev": true, + "requires": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + } + }, + "nanoid": { + "version": "3.3.4", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "dev": true + }, + "ngx-infinite-scroll": { + "version": "10.0.1", + "requires": { + "@scarf/scarf": "^1.1.0", + "opencollective-postinstall": "^2.0.2" + } + }, + "ngx-toastr": { + "version": "14.1.4", + "requires": { + "tslib": "^2.2.0" + } + }, + "no-case": { + "version": "3.0.4", + "dev": true, + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-fetch": { + "version": "2.6.7", + "requires": { + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3" + }, + "webidl-conversions": { + "version": "3.0.1" + }, + "whatwg-url": { + "version": "5.0.0", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, + "node-forge": { + "version": "1.3.1" + }, + "node-releases": { + "version": "2.0.4", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "nth-check": { + "version": "2.0.1", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "dev": true + }, + "object-hash": { + "version": "3.0.0", + "dev": true + }, + "object-inspect": { + "version": "1.12.0", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.values": { + "version": "1.1.5", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "obuf": { + "version": "1.1.2", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "dev": true + }, + "once": { + "version": "1.4.0", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.4.0", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "opencollective-postinstall": { + "version": "2.0.3" + }, + "optionator": { + "version": "0.9.1", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "original": { + "version": "1.0.2", + "requires": { + "url-parse": "^1.4.3" + } + }, + "p-limit": { + "version": "1.3.0", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "2.1.0", + "dev": true + }, + "p-retry": { + "version": "4.6.2", + "dev": true, + "requires": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + } + }, + "p-try": { + "version": "1.0.0", + "dev": true + }, + "pako": { + "version": "1.0.11" + }, + "papaparse": { + "version": "5.3.2" + }, + "param-case": { + "version": "3.0.4", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "parent-module": { + "version": "1.0.1", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "5.1.1", + "optional": true + }, + "parseurl": { + "version": "1.3.3", + "dev": true + }, + "pascal-case": { + "version": "3.1.2", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-exists": { + "version": "3.0.0", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "dev": true + }, + "pidtree": { + "version": "0.5.0", + "dev": true + }, + "pify": { + "version": "4.0.1", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "dev": true + } + } + }, + "popper.js": { + "version": "1.16.1" + }, + "postcss": { + "version": "8.4.13", + "dev": true, + "requires": { + "nanoid": "^3.3.3", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-js": { + "version": "4.0.0", + "dev": true, + "requires": { + "camelcase-css": "^2.0.1" + } + }, + "postcss-load-config": { + "version": "3.1.4", + "dev": true, + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "dependencies": { + "lilconfig": { + "version": "2.0.5", + "dev": true + } + } + }, + "postcss-loader": { + "version": "6.2.1", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "dev": true, + "requires": {} + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-nested": { + "version": "5.0.6", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.6" + } + }, + "postcss-selector-parser": { + "version": "6.0.10", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "dev": true + }, + "prettier": { + "version": "2.5.1", + "dev": true + }, + "pretty-error": { + "version": "4.0.0", + "dev": true, + "requires": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "process": { + "version": "0.11.10", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1" + }, + "promise-polyfill": { + "version": "8.2.3" + }, + "proxy-addr": { + "version": "2.0.7", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "dev": true + } + } + }, + "psl": { + "version": "1.8.0" + }, + "punycode": { + "version": "2.1.1" + }, + "qrious": { + "version": "4.0.2" + }, + "qs": { + "version": "6.10.3", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "querystringify": { + "version": "2.2.0" + }, + "queue-microtask": { + "version": "1.2.3", + "dev": true + }, + "quick-lru": { + "version": "5.1.1", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "dev": true + }, + "raw-body": { + "version": "2.5.1", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "dev": true + } + } + }, + "readable-stream": { + "version": "2.3.7", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.7.1", + "dev": true, + "requires": { + "resolve": "^1.9.0" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1" + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "dev": true + }, + "relateurl": { + "version": "0.2.7", + "dev": true + }, + "renderkid": { + "version": "3.0.0", + "dev": true, + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "require-directory": { + "version": "2.1.1", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "dev": true + }, + "requires-port": { + "version": "1.0.0" + }, + "resolve": { + "version": "1.22.0", + "dev": true, + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "dev": true + } + } + }, + "resolve-from": { + "version": "4.0.0", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "restricted-input": { + "version": "3.0.5", + "requires": { + "@braintree/browser-detection": "^1.12.1" + } + }, + "retry": { + "version": "0.13.1", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "7.5.5", + "requires": { + "tslib": "^2.1.0" + } + }, + "safe-buffer": { + "version": "5.1.2" + }, + "safer-buffer": { + "version": "2.1.2", + "dev": true + }, + "sass": { + "version": "1.51.0", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "sass-loader": { + "version": "12.6.0", + "dev": true, + "requires": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + } + }, + "schema-utils": { + "version": "4.0.0", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "dev": true + } + } + }, + "select-hose": { + "version": "2.0.0", + "dev": true + }, + "selfsigned": { + "version": "2.0.1", + "dev": true, + "requires": { + "node-forge": "^1" + } + }, + "semver": { + "version": "7.3.7", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "send": { + "version": "0.18.0", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "dev": true + } + } + }, + "ms": { + "version": "2.1.3", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "6.0.0", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "dev": true + }, + "ms": { + "version": "2.0.0", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "dev": true + } + } + }, + "serve-static": { + "version": "1.15.0", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "set-immediate-shim": { + "version": "1.0.1" + }, + "setprototypeof": { + "version": "1.2.0", + "dev": true + }, + "shallow-clone": { + "version": "3.0.1", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "dev": true + }, + "slash": { + "version": "3.0.0", + "dev": true + }, + "slice-ansi": { + "version": "5.0.0", + "dev": true, + "requires": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "6.1.0", + "dev": true + } + } + }, + "sockjs": { + "version": "0.3.24", + "dev": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "source-map": { + "version": "0.6.1", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "statuses": { + "version": "2.0.1", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-argv": { + "version": "0.3.1", + "dev": true + }, + "string-width": { + "version": "5.1.2", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "dev": true + }, + "strip-ansi": { + "version": "7.0.1", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.5", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.5", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "strip-ansi": { + "version": "6.0.1", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "dev": true + }, + "strip-outer": { + "version": "1.0.1", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "style-loader": { + "version": "3.3.1", + "dev": true, + "requires": {} + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true + }, + "sweetalert2": { + "version": "10.16.9" + }, + "tailwindcss": { + "version": "3.0.24", + "dev": true, + "requires": { + "arg": "^5.0.1", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "detective": "^5.2.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "lilconfig": "^2.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.12", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.4", + "postcss-nested": "5.0.6", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.0" + }, + "dependencies": { + "color-name": { + "version": "1.1.4", + "dev": true + }, + "glob-parent": { + "version": "6.0.2", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "lilconfig": { + "version": "2.0.5", + "dev": true + } + } + }, + "tapable": { + "version": "2.2.1", + "dev": true + }, + "terser": { + "version": "5.13.1", + "dev": true, + "requires": { + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map": "~0.8.0-beta.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "source-map": { + "version": "0.8.0-beta.0", + "dev": true, + "requires": { + "whatwg-url": "^7.0.0" + } + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.1", + "dev": true, + "requires": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "dev": true + }, + "through": { + "version": "2.3.8", + "dev": true + }, + "thunky": { + "version": "1.1.0", + "dev": true + }, + "tldjs": { + "version": "2.3.1", + "requires": { + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1" + } + } + }, + "to-fast-properties": { + "version": "2.0.0", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "1.0.1", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "trim-repeated": { + "version": "1.0.0", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "ts-loader": { + "version": "9.3.0", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "tsconfig-paths": { + "version": "3.14.1", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "tslib": { + "version": "2.4.0" + }, + "tsutils": { + "version": "3.21.0", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "dev": true + } + } + }, + "type-check": { + "version": "0.4.0", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.21.3", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typescript": { + "version": "4.3.5", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "universalify": { + "version": "0.1.2", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse": { + "version": "1.5.10", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "util": { + "version": "0.12.4", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2" + }, + "utila": { + "version": "0.4.0", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "dev": true + }, + "vary": { + "version": "1.1.2", + "dev": true + }, + "watchpack": { + "version": "2.3.1", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wbuf": { + "version": "1.7.3", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webcrypto-shim": { + "version": "0.1.7" + }, + "webidl-conversions": { + "version": "4.0.2", + "dev": true + }, + "webpack": { + "version": "5.72.1", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.9.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "webpack-cli": { + "version": "4.9.2", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.1.1", + "@webpack-cli/info": "^1.4.1", + "@webpack-cli/serve": "^1.6.1", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "dev": true + } + } + }, + "webpack-dev-middleware": { + "version": "5.3.1", + "dev": true, + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.1", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + } + }, + "webpack-dev-server": { + "version": "4.9.0", + "dev": true, + "requires": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + } + }, + "webpack-merge": { + "version": "5.8.0", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "3.2.3", + "dev": true + }, + "websocket-driver": { + "version": "0.7.4", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "dev": true + }, + "whatwg-fetch": { + "version": "3.6.2" + }, + "whatwg-url": { + "version": "7.1.0", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "which": { + "version": "2.0.2", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.7", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.7" + } + }, + "wildcard": { + "version": "2.0.0", + "dev": true + }, + "word-wrap": { + "version": "1.2.3", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "dev": true + }, + "ws": { + "version": "8.6.0", + "dev": true, + "requires": {} + }, + "xtend": { + "version": "4.0.2", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "dev": true + }, + "yargs": { + "version": "17.4.1", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "yargs-parser": { + "version": "21.0.1", + "dev": true + }, + "zone.js": { + "version": "0.11.4", + "requires": { + "tslib": "^2.0.0" + } + }, + "zxcvbn": { + "version": "4.4.2" + } + } +} diff --git a/apps/web/package.json b/apps/web/package.json new file mode 100644 index 0000000000..9fe29fcd9c --- /dev/null +++ b/apps/web/package.json @@ -0,0 +1,119 @@ +{ + "name": "@bitwarden/web-vault", + "version": "2022.05.0", + "license": "GPL-3.0", + "repository": "https://github.com/bitwarden/web", + "scripts": { + "sub:init": "git submodule update --init --recursive", + "sub:update": "git submodule update --remote", + "sub:pull": "git submodule foreach git pull origin master", + "preinstall": "npm run sub:init", + "symlink:win": "rm -rf ./jslib && cmd /c mklink /J .\\jslib ..\\jslib", + "symlink:mac": "npm run symlink:lin", + "symlink:lin": "rm -rf ./jslib && ln -s ../jslib ./jslib", + "build:oss": "webpack", + "build:bit": "webpack -c bitwarden_license/webpack.config.js", + "build:oss:watch": "webpack serve", + "build:bit:watch": "webpack serve -c bitwarden_license/webpack.config.js", + "build:bit:dev": "cross-env ENV=development npm run build:bit", + "build:bit:dev:watch": "cross-env ENV=development npm run build:bit:watch", + "build:bit:qa": "cross-env NODE_ENV=production ENV=qa npm run build:bit", + "build:bit:cloud": "cross-env NODE_ENV=production ENV=cloud npm run build:bit", + "build:oss:selfhost:watch": "cross-env ENV=selfhosted npm run build:oss:watch", + "build:bit:selfhost:watch": "cross-env ENV=selfhosted npm run build:bit:watch", + "build:oss:selfhost:prod": "cross-env ENV=selfhosted NODE_ENV=production npm run build:oss", + "build:bit:selfhost:prod": "cross-env ENV=selfhosted NODE_ENV=production npm run build:bit", + "clean:l10n": "git push origin --delete l10n_master", + "dist:bit:cloud": "npm run build:bit:cloud", + "dist:oss:selfhost": "npm run build:oss:selfhost:prod", + "dist:bit:selfhost": "npm run build:bit:selfhost:prod", + "deploy": "npm run dist:bit && gh-pages -d build", + "deploy:dev": "npm run dist:bit && gh-pages -d build -r git@github.com:kspearrin/bitwarden-web-dev.git", + "lint": "eslint . && prettier --check .", + "lint:fix": "eslint . --fix", + "prettier": "prettier --write .", + "prepare": "husky install" + }, + "devDependencies": { + "@angular/compiler-cli": "^12.2.13", + "@ngtools/webpack": "^12.2.13", + "@types/jquery": "^3.5.5", + "@types/node": "^16.11.12", + "@types/webcrypto": "^0.0.28", + "@types/webpack": "^5.28.0", + "@typescript-eslint/eslint-plugin": "^5.10.1", + "@typescript-eslint/parser": "^5.10.1", + "autoprefixer": "^10.4.2", + "buffer": "^6.0.3", + "clean-webpack-plugin": "^4.0.0", + "copy-webpack-plugin": "^10.0.0", + "cross-env": "^7.0.3", + "css-loader": "^6.5.1", + "eslint": "^8.7.0", + "eslint-config-prettier": "^8.3.0", + "eslint-import-resolver-typescript": "^2.5.0", + "eslint-plugin-import": "^2.25.4", + "gh-pages": "^3.1.0", + "html-loader": "^3.0.1", + "html-webpack-injector": "1.1.4", + "html-webpack-plugin": "^5.5.0", + "husky": "^7.0.4", + "lint-staged": "^12.1.2", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.6", + "postcss-loader": "^6.2.1", + "prettier": "2.5.1", + "process": "^0.11.10", + "rimraf": "^3.0.2", + "sass": "^1.32.10", + "sass-loader": "^12.4.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.18", + "terser-webpack-plugin": "^5.2.5", + "ts-loader": "^9.2.5", + "typescript": "4.3.5", + "util": "^0.12.4", + "webpack": "^5.64.4", + "webpack-cli": "^4.9.1", + "webpack-dev-server": "^4.6.0" + }, + "dependencies": { + "@angular/animations": "^12.2.13", + "@angular/cdk": "^12.2.13", + "@angular/common": "^12.2.13", + "@angular/compiler": "^12.2.13", + "@angular/core": "^12.2.13", + "@angular/forms": "^12.2.13", + "@angular/platform-browser": "^12.2.13", + "@angular/platform-browser-dynamic": "^12.2.13", + "@angular/router": "^12.2.13", + "@bitwarden/jslib-angular": "file:jslib/angular", + "@bitwarden/jslib-common": "file:jslib/common", + "bootstrap": "4.6.0", + "braintree-web-drop-in": "1.33.1", + "browser-hrtime": "^1.1.8", + "core-js": "^3.11.0", + "date-input-polyfill": "^2.14.0", + "jquery": "3.6.0", + "jszip": "^3.7.1", + "ngx-infinite-scroll": "^10.0.1", + "ngx-toastr": "14.1.4", + "node-forge": "^1.3.1", + "popper.js": "1.16.1", + "qrious": "4.0.2", + "rxjs": "^7.4.0", + "sweetalert2": "^10.16.6", + "webcrypto-shim": "0.1.7", + "whatwg-fetch": "3.6.2", + "zone.js": "0.11.4" + }, + "engines": { + "node": "~16", + "npm": "~8" + }, + "lint-staged": { + "./!(jslib)**": "prettier --ignore-unknown --write", + "*.ts": "eslint --fix", + "*.png": "node scripts/optimize.js" + } +} diff --git a/apps/web/postcss.config.js b/apps/web/postcss.config.js new file mode 100644 index 0000000000..c4513687e8 --- /dev/null +++ b/apps/web/postcss.config.js @@ -0,0 +1,4 @@ +/* eslint-disable no-undef */ +module.exports = { + plugins: [require("tailwindcss"), require("autoprefixer"), require("postcss-nested")], +}; diff --git a/apps/web/scripts/optimize.js b/apps/web/scripts/optimize.js new file mode 100644 index 0000000000..217a91e3db --- /dev/null +++ b/apps/web/scripts/optimize.js @@ -0,0 +1,21 @@ +const child_process = require("child_process"); +const path = require("path"); + +const images = process.argv.slice(2); + +images.forEach((img) => { + switch (img.split(".").pop()) { + case "png": + child_process.execSync( + `npx @squoosh/cli --oxipng {} --output-dir "${path.dirname(img)}" "${img}"` + ); + break; + case "jpg": + child_process.execSync( + `npx @squoosh/cli --mozjpeg {"quality":85,"baseline":false,"arithmetic":false,"progressive":true,"optimize_coding":true,"smoothing":0,"color_space":3,"quant_table":3,"trellis_multipass":false,"trellis_opt_zero":false,"trellis_opt_table":false,"trellis_loops":1,"auto_subsample":true,"chroma_subsample":2,"separate_chroma_quality":false,"chroma_quality":75} --output-dir "${path.dirname( + img + )}" "${img}"` + ); + break; + } +}); diff --git a/apps/web/src/.nojekyll b/apps/web/src/.nojekyll new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/web/src/404.html b/apps/web/src/404.html new file mode 100644 index 0000000000..6cf5e363d5 --- /dev/null +++ b/apps/web/src/404.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + Page not found! + + + + + +
+

Page not found!

+

Sorry, but the page you were looking for could not be found.

+

+ + 404 image + +

+

+ You can return to the web vault, check our + status page or + contact us. +

+
+ + + diff --git a/apps/web/src/404/bootstrap.min.css b/apps/web/src/404/bootstrap.min.css new file mode 100644 index 0000000000..282380667e --- /dev/null +++ b/apps/web/src/404/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.6.0 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label::after,.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.form-control:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;overflow:hidden;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;overflow:hidden;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:50%/100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{-ms-flex-preferred-size:350px;flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} +/*# sourceMappingURL=bootstrap.min.css.map */ diff --git a/apps/web/src/404/styles.css b/apps/web/src/404/styles.css new file mode 100644 index 0000000000..7dec3947a6 --- /dev/null +++ b/apps/web/src/404/styles.css @@ -0,0 +1,151 @@ +@font-face { + font-family: "Open Sans"; + font-style: italic; + font-weight: 300; + src: url(../fonts/Open_Sans-italic-300.woff) format("woff"); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: "Open Sans"; + font-style: italic; + font-weight: 400; + src: url(../fonts/Open_Sans-italic-400.woff) format("woff"); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: "Open Sans"; + font-style: italic; + font-weight: 600; + src: url(../fonts/Open_Sans-italic-600.woff) format("woff"); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: "Open Sans"; + font-style: italic; + font-weight: 700; + src: url(../fonts/Open_Sans-italic-700.woff) format("woff"); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: "Open Sans"; + font-style: italic; + font-weight: 800; + src: url(../fonts/Open_Sans-italic-800.woff) format("woff"); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: "Open Sans"; + font-style: normal; + font-weight: 300; + src: url(../fonts/Open_Sans-normal-300.woff) format("woff"); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: "Open Sans"; + font-style: normal; + font-weight: 400; + src: url(../fonts/Open_Sans-normal-400.woff) format("woff"); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: "Open Sans"; + font-style: normal; + font-weight: 600; + src: url(../fonts/Open_Sans-normal-600.woff) format("woff"); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: "Open Sans"; + font-style: normal; + font-weight: 700; + src: url(../fonts/Open_Sans-normal-700.woff) format("woff"); + unicode-range: U+0-10FFFF; +} + +@font-face { + font-family: "Open Sans"; + font-style: normal; + font-weight: 800; + src: url(../fonts/Open_Sans-normal-800.woff) format("woff"); + unicode-range: U+0-10FFFF; +} + +body { + font-family: "Open Sans"; +} + +html, +body, +.row { + height: 100%; + -webkit-font-smoothing: antialiased; +} + +h2 { + font-size: 25px; + margin-bottom: 12.5px; + font-weight: 500; + line-height: 1.1; +} + +.brand { + font-size: 23px; + line-height: 25px; + color: #fff; + font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +.banner { + background-color: #175ddc; + height: 56px; +} + +.content { + padding-top: 20px; + padding-bottom: 20px; + padding-left: 15px; + padding-right: 15px; +} + +.footer { + padding: 40px 0 40px 0; + border-top: 1px solid #dee2e6; +} + +/* Bitwarden icons, manually copied */ + +@font-face { + font-family: "bwi-font"; + src: url(../images/bwi-font.svg) format("svg"), url(../fonts/bwi-font.ttf) format("truetype"), + url(../fonts/bwi-font.woff) format("woff"), url(../fonts/bwi-font.woff2) format("woff2"); + font-weight: normal; + font-style: normal; + font-display: block; +} + +.bwi { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: "bwi-font" !important; + speak: never; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + display: inline-block; + /* Better Font Rendering */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.bwi-shield:before { + content: "\e932"; +} diff --git a/apps/web/src/abstractions/state.service.ts b/apps/web/src/abstractions/state.service.ts new file mode 100644 index 0000000000..f5faf5f7d6 --- /dev/null +++ b/apps/web/src/abstractions/state.service.ts @@ -0,0 +1,9 @@ +import { StateService as BaseStateService } from "jslib-common/abstractions/state.service"; +import { StorageOptions } from "jslib-common/models/domain/storageOptions"; + +import { Account } from "src/models/account"; + +export abstract class StateService extends BaseStateService { + getRememberEmail: (options?: StorageOptions) => Promise; + setRememberEmail: (value: boolean, options?: StorageOptions) => Promise; +} diff --git a/apps/web/src/app-id.json b/apps/web/src/app-id.json new file mode 100644 index 0000000000..2015f662b7 --- /dev/null +++ b/apps/web/src/app-id.json @@ -0,0 +1,15 @@ +{ + "trustedFacets": [ + { + "version": { + "major": 1, + "minor": 0 + }, + "ids": [ + "https://vault.bitwarden.com", + "ios:bundle-id:com.8bit.bitwarden", + "android:apk-key-hash:dUGFzUzf3lmHSLBDBIv+WaFyZMI" + ] + } + ] +} diff --git a/apps/web/src/app/accounts/accept-emergency.component.html b/apps/web/src/app/accounts/accept-emergency.component.html new file mode 100644 index 0000000000..4690a4e63a --- /dev/null +++ b/apps/web/src/app/accounts/accept-emergency.component.html @@ -0,0 +1,45 @@ +
+
+ +

+ + {{ "loading" | i18n }} +

+
+
+
+
+
+

{{ "emergencyAccess" | i18n }}

+
+
+

+ {{ name }} +

+

{{ "acceptEmergencyAccess" | i18n }}

+
+ +
+
+
+
+
diff --git a/apps/web/src/app/accounts/accept-emergency.component.ts b/apps/web/src/app/accounts/accept-emergency.component.ts new file mode 100644 index 0000000000..c790a924be --- /dev/null +++ b/apps/web/src/app/accounts/accept-emergency.component.ts @@ -0,0 +1,55 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { EmergencyAccessAcceptRequest } from "jslib-common/models/request/emergencyAccessAcceptRequest"; + +import { BaseAcceptComponent } from "../common/base.accept.component"; + +@Component({ + selector: "app-accept-emergency", + templateUrl: "accept-emergency.component.html", +}) +export class AcceptEmergencyComponent extends BaseAcceptComponent { + name: string; + + protected requiredParameters: string[] = ["id", "name", "email", "token"]; + protected failedShortMessage = "emergencyInviteAcceptFailedShort"; + protected failedMessage = "emergencyInviteAcceptFailed"; + + constructor( + router: Router, + platformUtilsService: PlatformUtilsService, + i18nService: I18nService, + route: ActivatedRoute, + private apiService: ApiService, + stateService: StateService + ) { + super(router, platformUtilsService, i18nService, route, stateService); + } + + async authedHandler(qParams: any): Promise { + const request = new EmergencyAccessAcceptRequest(); + request.token = qParams.token; + this.actionPromise = this.apiService.postEmergencyAccessAccept(qParams.id, request); + await this.actionPromise; + this.platformUtilService.showToast( + "success", + this.i18nService.t("inviteAccepted"), + this.i18nService.t("emergencyInviteAcceptedDesc"), + { timeout: 10000 } + ); + this.router.navigate(["/vault"]); + } + + async unauthedHandler(qParams: any): Promise { + this.name = qParams.name; + if (this.name != null) { + // Fix URL encoding of space issue with Angular + this.name = this.name.replace(/\+/g, " "); + } + } +} diff --git a/apps/web/src/app/accounts/accept-organization.component.html b/apps/web/src/app/accounts/accept-organization.component.html new file mode 100644 index 0000000000..25d90d93e0 --- /dev/null +++ b/apps/web/src/app/accounts/accept-organization.component.html @@ -0,0 +1,46 @@ +
+
+ +

+ + {{ "loading" | i18n }} +

+
+
+
+
+
+

{{ "joinOrganization" | i18n }}

+
+
+

+ {{ orgName }} + {{ email }} +

+

{{ "joinOrganizationDesc" | i18n }}

+
+ +
+
+
+
+
diff --git a/apps/web/src/app/accounts/accept-organization.component.ts b/apps/web/src/app/accounts/accept-organization.component.ts new file mode 100644 index 0000000000..0d59562a66 --- /dev/null +++ b/apps/web/src/app/accounts/accept-organization.component.ts @@ -0,0 +1,126 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { Utils } from "jslib-common/misc/utils"; +import { Policy } from "jslib-common/models/domain/policy"; +import { OrganizationUserAcceptRequest } from "jslib-common/models/request/organizationUserAcceptRequest"; +import { OrganizationUserResetPasswordEnrollmentRequest } from "jslib-common/models/request/organizationUserResetPasswordEnrollmentRequest"; + +import { BaseAcceptComponent } from "../common/base.accept.component"; + +@Component({ + selector: "app-accept-organization", + templateUrl: "accept-organization.component.html", +}) +export class AcceptOrganizationComponent extends BaseAcceptComponent { + orgName: string; + + protected requiredParameters: string[] = ["organizationId", "organizationUserId", "token"]; + + constructor( + router: Router, + platformUtilsService: PlatformUtilsService, + i18nService: I18nService, + route: ActivatedRoute, + private apiService: ApiService, + stateService: StateService, + private cryptoService: CryptoService, + private policyService: PolicyService, + private logService: LogService + ) { + super(router, platformUtilsService, i18nService, route, stateService); + } + + async authedHandler(qParams: any): Promise { + const request = new OrganizationUserAcceptRequest(); + request.token = qParams.token; + if (await this.performResetPasswordAutoEnroll(qParams)) { + this.actionPromise = this.apiService + .postOrganizationUserAccept(qParams.organizationId, qParams.organizationUserId, request) + .then(() => { + // Retrieve Public Key + return this.apiService.getOrganizationKeys(qParams.organizationId); + }) + .then(async (response) => { + if (response == null) { + throw new Error(this.i18nService.t("resetPasswordOrgKeysError")); + } + + const publicKey = Utils.fromB64ToArray(response.publicKey); + + // RSA Encrypt user's encKey.key with organization public key + const encKey = await this.cryptoService.getEncKey(); + const encryptedKey = await this.cryptoService.rsaEncrypt(encKey.key, publicKey.buffer); + + // Create request and execute enrollment + const resetRequest = new OrganizationUserResetPasswordEnrollmentRequest(); + resetRequest.resetPasswordKey = encryptedKey.encryptedString; + + return this.apiService.putOrganizationUserResetPasswordEnrollment( + qParams.organizationId, + await this.stateService.getUserId(), + resetRequest + ); + }); + } else { + this.actionPromise = this.apiService.postOrganizationUserAccept( + qParams.organizationId, + qParams.organizationUserId, + request + ); + } + + await this.actionPromise; + this.platformUtilService.showToast( + "success", + this.i18nService.t("inviteAccepted"), + this.i18nService.t("inviteAcceptedDesc"), + { timeout: 10000 } + ); + + await this.stateService.setOrganizationInvitation(null); + this.router.navigate(["/vault"]); + } + + async unauthedHandler(qParams: any): Promise { + this.orgName = qParams.organizationName; + if (this.orgName != null) { + // Fix URL encoding of space issue with Angular + this.orgName = this.orgName.replace(/\+/g, " "); + } + await this.stateService.setOrganizationInvitation(qParams); + } + + private async performResetPasswordAutoEnroll(qParams: any): Promise { + let policyList: Policy[] = null; + try { + const policies = await this.apiService.getPoliciesByToken( + qParams.organizationId, + qParams.token, + qParams.email, + qParams.organizationUserId + ); + policyList = this.policyService.mapPoliciesFromToken(policies); + } catch (e) { + this.logService.error(e); + } + + if (policyList != null) { + const result = this.policyService.getResetPasswordPolicyOptions( + policyList, + qParams.organizationId + ); + // Return true if policy enabled and auto-enroll enabled + return result[1] && result[0].autoEnrollEnabled; + } + + return false; + } +} diff --git a/apps/web/src/app/accounts/hint.component.html b/apps/web/src/app/accounts/hint.component.html new file mode 100644 index 0000000000..786643d947 --- /dev/null +++ b/apps/web/src/app/accounts/hint.component.html @@ -0,0 +1,44 @@ +
+
+
+

{{ "passwordHint" | i18n }}

+
+
+
+ + + {{ "enterEmailToGetHint" | i18n }} +
+
+
+ + + {{ "cancel" | i18n }} + +
+
+
+
+
+
diff --git a/apps/web/src/app/accounts/hint.component.ts b/apps/web/src/app/accounts/hint.component.ts new file mode 100644 index 0000000000..d47b8b52d7 --- /dev/null +++ b/apps/web/src/app/accounts/hint.component.ts @@ -0,0 +1,24 @@ +import { Component } from "@angular/core"; +import { Router } from "@angular/router"; + +import { HintComponent as BaseHintComponent } from "jslib-angular/components/hint.component"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; + +@Component({ + selector: "app-hint", + templateUrl: "hint.component.html", +}) +export class HintComponent extends BaseHintComponent { + constructor( + router: Router, + i18nService: I18nService, + apiService: ApiService, + platformUtilsService: PlatformUtilsService, + logService: LogService + ) { + super(router, i18nService, apiService, platformUtilsService, logService); + } +} diff --git a/apps/web/src/app/accounts/lock.component.html b/apps/web/src/app/accounts/lock.component.html new file mode 100644 index 0000000000..a45ef0d5af --- /dev/null +++ b/apps/web/src/app/accounts/lock.component.html @@ -0,0 +1,66 @@ +
+
+
+

+ +

+

{{ "yourVaultIsLocked" | i18n }}

+
+
+
+ +
+ + +
+ + {{ "loggedInAsEmailOn" | i18n: email:webVaultHostname }} + +
+
+
+ + +
+
+
+
+
+
diff --git a/apps/web/src/app/accounts/lock.component.ts b/apps/web/src/app/accounts/lock.component.ts new file mode 100644 index 0000000000..791481003c --- /dev/null +++ b/apps/web/src/app/accounts/lock.component.ts @@ -0,0 +1,64 @@ +import { Component, NgZone } from "@angular/core"; +import { Router } from "@angular/router"; + +import { LockComponent as BaseLockComponent } from "jslib-angular/components/lock.component"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { EnvironmentService } from "jslib-common/abstractions/environment.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { KeyConnectorService } from "jslib-common/abstractions/keyConnector.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { VaultTimeoutService } from "jslib-common/abstractions/vaultTimeout.service"; + +import { RouterService } from "../services/router.service"; + +@Component({ + selector: "app-lock", + templateUrl: "lock.component.html", +}) +export class LockComponent extends BaseLockComponent { + constructor( + router: Router, + i18nService: I18nService, + platformUtilsService: PlatformUtilsService, + messagingService: MessagingService, + cryptoService: CryptoService, + vaultTimeoutService: VaultTimeoutService, + environmentService: EnvironmentService, + private routerService: RouterService, + stateService: StateService, + apiService: ApiService, + logService: LogService, + keyConnectorService: KeyConnectorService, + ngZone: NgZone + ) { + super( + router, + i18nService, + platformUtilsService, + messagingService, + cryptoService, + vaultTimeoutService, + environmentService, + stateService, + apiService, + logService, + keyConnectorService, + ngZone + ); + } + + async ngOnInit() { + await super.ngOnInit(); + this.onSuccessfulSubmit = async () => { + const previousUrl = this.routerService.getPreviousUrl(); + if (previousUrl && previousUrl !== "/" && previousUrl.indexOf("lock") === -1) { + this.successRoute = previousUrl; + } + this.router.navigateByUrl(this.successRoute); + }; + } +} diff --git a/apps/web/src/app/accounts/login.component.html b/apps/web/src/app/accounts/login.component.html new file mode 100644 index 0000000000..e0c4ef68db --- /dev/null +++ b/apps/web/src/app/accounts/login.component.html @@ -0,0 +1,102 @@ +
+
+
+ +

{{ "loginOrCreateNewAccount" | i18n }}

+
+
+ + {{ "resetPasswordAutoEnrollInviteWarning" | i18n }} + +
+ + +
+
+ +
+ + +
+ + {{ "getMasterPasswordHint" | i18n }} + +
+
+ + +
+
+ +
+
+
+ + + + {{ "createAccount" | i18n }} + +
+ +
+
+
+
+
diff --git a/apps/web/src/app/accounts/login.component.ts b/apps/web/src/app/accounts/login.component.ts new file mode 100644 index 0000000000..524137a680 --- /dev/null +++ b/apps/web/src/app/accounts/login.component.ts @@ -0,0 +1,179 @@ +import { Component, NgZone } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; +import { first } from "rxjs/operators"; + +import { LoginComponent as BaseLoginComponent } from "jslib-angular/components/login.component"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { AuthService } from "jslib-common/abstractions/auth.service"; +import { CryptoFunctionService } from "jslib-common/abstractions/cryptoFunction.service"; +import { EnvironmentService } from "jslib-common/abstractions/environment.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { PolicyData } from "jslib-common/models/data/policyData"; +import { MasterPasswordPolicyOptions } from "jslib-common/models/domain/masterPasswordPolicyOptions"; +import { Policy } from "jslib-common/models/domain/policy"; +import { ListResponse } from "jslib-common/models/response/listResponse"; +import { PolicyResponse } from "jslib-common/models/response/policyResponse"; + +import { StateService } from "../../abstractions/state.service"; +import { RouterService } from "../services/router.service"; + +@Component({ + selector: "app-login", + templateUrl: "login.component.html", +}) +export class LoginComponent extends BaseLoginComponent { + showResetPasswordAutoEnrollWarning = false; + enforcedPasswordPolicyOptions: MasterPasswordPolicyOptions; + policies: ListResponse; + + constructor( + authService: AuthService, + router: Router, + i18nService: I18nService, + private route: ActivatedRoute, + platformUtilsService: PlatformUtilsService, + environmentService: EnvironmentService, + passwordGenerationService: PasswordGenerationService, + cryptoFunctionService: CryptoFunctionService, + private apiService: ApiService, + private policyService: PolicyService, + logService: LogService, + ngZone: NgZone, + protected stateService: StateService, + private messagingService: MessagingService, + private routerService: RouterService + ) { + super( + authService, + router, + platformUtilsService, + i18nService, + stateService, + environmentService, + passwordGenerationService, + cryptoFunctionService, + logService, + ngZone + ); + this.onSuccessfulLogin = async () => { + this.messagingService.send("setFullWidth"); + }; + this.onSuccessfulLoginNavigate = this.goAfterLogIn; + } + + async ngOnInit() { + this.route.queryParams.pipe(first()).subscribe(async (qParams) => { + if (qParams.email != null && qParams.email.indexOf("@") > -1) { + this.email = qParams.email; + } + if (qParams.premium != null) { + this.routerService.setPreviousUrl("/settings/premium"); + } else if (qParams.org != null) { + const route = this.router.createUrlTree(["create-organization"], { + queryParams: { plan: qParams.org }, + }); + this.routerService.setPreviousUrl(route.toString()); + } + + // Are they coming from an email for sponsoring a families organization + if (qParams.sponsorshipToken != null) { + const route = this.router.createUrlTree(["setup/families-for-enterprise"], { + queryParams: { token: qParams.sponsorshipToken }, + }); + this.routerService.setPreviousUrl(route.toString()); + } + await super.ngOnInit(); + this.rememberEmail = await this.stateService.getRememberEmail(); + }); + + const invite = await this.stateService.getOrganizationInvitation(); + if (invite != null) { + let policyList: Policy[] = null; + try { + this.policies = await this.apiService.getPoliciesByToken( + invite.organizationId, + invite.token, + invite.email, + invite.organizationUserId + ); + policyList = this.policyService.mapPoliciesFromToken(this.policies); + } catch (e) { + this.logService.error(e); + } + + if (policyList != null) { + const resetPasswordPolicy = this.policyService.getResetPasswordPolicyOptions( + policyList, + invite.organizationId + ); + // Set to true if policy enabled and auto-enroll enabled + this.showResetPasswordAutoEnrollWarning = + resetPasswordPolicy[1] && resetPasswordPolicy[0].autoEnrollEnabled; + + this.enforcedPasswordPolicyOptions = + await this.policyService.getMasterPasswordPolicyOptions(policyList); + } + } + } + + async goAfterLogIn() { + // Check master password against policy + if (this.enforcedPasswordPolicyOptions != null) { + const strengthResult = this.passwordGenerationService.passwordStrength( + this.masterPassword, + this.getPasswordStrengthUserInput() + ); + const masterPasswordScore = strengthResult == null ? null : strengthResult.score; + + // If invalid, save policies and require update + if ( + !this.policyService.evaluateMasterPassword( + masterPasswordScore, + this.masterPassword, + this.enforcedPasswordPolicyOptions + ) + ) { + const policiesData: { [id: string]: PolicyData } = {}; + this.policies.data.map((p) => (policiesData[p.id] = new PolicyData(p))); + await this.policyService.replace(policiesData); + this.router.navigate(["update-password"]); + return; + } + } + + const previousUrl = this.routerService.getPreviousUrl(); + if (previousUrl) { + this.router.navigateByUrl(previousUrl); + } else { + this.router.navigate([this.successRoute]); + } + } + + async submit() { + await this.stateService.setRememberEmail(this.rememberEmail); + if (!this.rememberEmail) { + await this.stateService.setRememberedEmail(null); + } + await super.submit(); + } + + private getPasswordStrengthUserInput() { + let userInput: string[] = []; + const atPosition = this.email.indexOf("@"); + if (atPosition > -1) { + userInput = userInput.concat( + this.email + .substr(0, atPosition) + .trim() + .toLowerCase() + .split(/[^A-Za-z0-9]/) + ); + } + return userInput; + } +} diff --git a/apps/web/src/app/accounts/recover-delete.component.html b/apps/web/src/app/accounts/recover-delete.component.html new file mode 100644 index 0000000000..5b3ba90565 --- /dev/null +++ b/apps/web/src/app/accounts/recover-delete.component.html @@ -0,0 +1,44 @@ +
+
+
+

{{ "deleteAccount" | i18n }}

+
+
+

{{ "deleteRecoverDesc" | i18n }}

+
+ + +
+
+
+ + + {{ "cancel" | i18n }} + +
+
+
+
+
+
diff --git a/apps/web/src/app/accounts/recover-delete.component.ts b/apps/web/src/app/accounts/recover-delete.component.ts new file mode 100644 index 0000000000..00b69d1248 --- /dev/null +++ b/apps/web/src/app/accounts/recover-delete.component.ts @@ -0,0 +1,42 @@ +import { Component } from "@angular/core"; +import { Router } from "@angular/router"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { DeleteRecoverRequest } from "jslib-common/models/request/deleteRecoverRequest"; + +@Component({ + selector: "app-recover-delete", + templateUrl: "recover-delete.component.html", +}) +export class RecoverDeleteComponent { + email: string; + formPromise: Promise; + + constructor( + private router: Router, + private apiService: ApiService, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private logService: LogService + ) {} + + async submit() { + try { + const request = new DeleteRecoverRequest(); + request.email = this.email.trim().toLowerCase(); + this.formPromise = this.apiService.postAccountRecoverDelete(request); + await this.formPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("deleteRecoverEmailSent") + ); + this.router.navigate(["/"]); + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/apps/web/src/app/accounts/recover-two-factor.component.html b/apps/web/src/app/accounts/recover-two-factor.component.html new file mode 100644 index 0000000000..744ce3dae1 --- /dev/null +++ b/apps/web/src/app/accounts/recover-two-factor.component.html @@ -0,0 +1,76 @@ +
+
+
+

{{ "recoverAccountTwoStep" | i18n }}

+
+
+

+ {{ "recoverAccountTwoStepDesc" | i18n }} + {{ "learnMore" | i18n }} +

+
+ + +
+
+ + +
+
+ + +
+
+
+ + + {{ "cancel" | i18n }} + +
+
+
+
+
+
diff --git a/apps/web/src/app/accounts/recover-two-factor.component.ts b/apps/web/src/app/accounts/recover-two-factor.component.ts new file mode 100644 index 0000000000..b7b219ffee --- /dev/null +++ b/apps/web/src/app/accounts/recover-two-factor.component.ts @@ -0,0 +1,51 @@ +import { Component } from "@angular/core"; +import { Router } from "@angular/router"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { AuthService } from "jslib-common/abstractions/auth.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { TwoFactorRecoveryRequest } from "jslib-common/models/request/twoFactorRecoveryRequest"; + +@Component({ + selector: "app-recover-two-factor", + templateUrl: "recover-two-factor.component.html", +}) +export class RecoverTwoFactorComponent { + email: string; + masterPassword: string; + recoveryCode: string; + formPromise: Promise; + + constructor( + private router: Router, + private apiService: ApiService, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private cryptoService: CryptoService, + private authService: AuthService, + private logService: LogService + ) {} + + async submit() { + try { + const request = new TwoFactorRecoveryRequest(); + request.recoveryCode = this.recoveryCode.replace(/\s/g, "").toLowerCase(); + request.email = this.email.trim().toLowerCase(); + const key = await this.authService.makePreloginKey(this.masterPassword, request.email); + request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, key); + this.formPromise = this.apiService.postTwoFactorRecover(request); + await this.formPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("twoStepRecoverDisabled") + ); + this.router.navigate(["/"]); + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/apps/web/src/app/accounts/register.component.html b/apps/web/src/app/accounts/register.component.html new file mode 100644 index 0000000000..970c2c13de --- /dev/null +++ b/apps/web/src/app/accounts/register.component.html @@ -0,0 +1,355 @@ +
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+

The Bitwarden Password Manager

+

+ Trusted by millions of individuals, teams, and organizations worldwide for secure + password storage and sharing. +

+

Store logins, secure notes, and more

+

Collaborate and share securely

+

Access anywhere on any device

+

Create your account to get started

+
+ + +
+

+ Start Your Teams
Enterprise Free Trial Now +

+

+ Millions of individuals, teams, and organizations worldwide trust Bitwarden for secure + password storage and sharing. +

+

Collaborate and share securely

+

Deploy and manage quickly and easily

+

Access anywhere on any device

+

Create your account to get started

+
+ + +
+

+ Start Your Teams
Enterprise Free Trial Now +

+

+ Millions of individuals, teams, and organizations worldwide trust Bitwarden for secure + password storage and sharing. +

+

Collaborate and share securely

+

Deploy and manage quickly and easily

+

Access anywhere on any device

+

Create your account to get started

+
+ + +
+

Start Your Premium Account Now

+

+ Millions of individuals, teams, and organizations worldwide trust Bitwarden for secure + password storage and sharing. +

+

Store logins, secure notes, and more

+

Secure your account with advanced two-step login

+

Access anywhere on any device

+

Create your account to get started

+
+
+
+
+
+
+

{{ "createAccount" | i18n }}

+
+
+ + {{ "createOrganizationCreatePersonalAccount" | i18n }} + +
+ + + {{ "emailAddressDesc" | i18n }} +
+
+ + + {{ "yourNameDesc" | i18n }} +
+
+ + + +
+
+ + + +
+
+ + +
+
+ {{ "masterPassDesc" | i18n }} +
+
+ +
+ + +
+
+
+ + + {{ "masterPassHintDesc" | i18n }} +
+
+ +
+
+
+ + +
+
+
+
+ + + {{ "cancel" | i18n }} + +
+
+
+
+
+
+
+
+
+
+
+
+ + cnet logo + +
+
+ "No more excuses; start using Bitwarden today. The identity you save could be your + own. The money definitely will be." +
+
+
+ +
+
+
+ + Forbes Logo + +
+
+ “Bitwarden boasts the backing of some of the world's best security experts and an + attractive, easy-to-use interface” +
+
+
+
+
+ US News 360 Reviews Best Password Manager +
+
+ US News 360 Reviews Best Password Manager +
+
+
+
diff --git a/apps/web/src/app/accounts/register.component.ts b/apps/web/src/app/accounts/register.component.ts new file mode 100644 index 0000000000..542bb8e3cb --- /dev/null +++ b/apps/web/src/app/accounts/register.component.ts @@ -0,0 +1,149 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; +import { first } from "rxjs/operators"; + +import { RegisterComponent as BaseRegisterComponent } from "jslib-angular/components/register.component"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { AuthService } from "jslib-common/abstractions/auth.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { EnvironmentService } from "jslib-common/abstractions/environment.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { PolicyData } from "jslib-common/models/data/policyData"; +import { MasterPasswordPolicyOptions } from "jslib-common/models/domain/masterPasswordPolicyOptions"; +import { Policy } from "jslib-common/models/domain/policy"; +import { ReferenceEventRequest } from "jslib-common/models/request/referenceEventRequest"; + +import { RouterService } from "../services/router.service"; + +@Component({ + selector: "app-register", + templateUrl: "register.component.html", +}) +export class RegisterComponent extends BaseRegisterComponent { + showCreateOrgMessage = false; + layout = ""; + enforcedPolicyOptions: MasterPasswordPolicyOptions; + + private policies: Policy[]; + + constructor( + authService: AuthService, + router: Router, + i18nService: I18nService, + cryptoService: CryptoService, + apiService: ApiService, + private route: ActivatedRoute, + stateService: StateService, + platformUtilsService: PlatformUtilsService, + passwordGenerationService: PasswordGenerationService, + private policyService: PolicyService, + environmentService: EnvironmentService, + logService: LogService, + private routerService: RouterService + ) { + super( + authService, + router, + i18nService, + cryptoService, + apiService, + stateService, + platformUtilsService, + passwordGenerationService, + environmentService, + logService + ); + } + + async ngOnInit() { + this.route.queryParams.pipe(first()).subscribe((qParams) => { + this.referenceData = new ReferenceEventRequest(); + if (qParams.email != null && qParams.email.indexOf("@") > -1) { + this.email = qParams.email; + } + if (qParams.premium != null) { + this.routerService.setPreviousUrl("/settings/premium"); + } else if (qParams.org != null) { + this.showCreateOrgMessage = true; + this.referenceData.flow = qParams.org; + const route = this.router.createUrlTree(["create-organization"], { + queryParams: { plan: qParams.org }, + }); + this.routerService.setPreviousUrl(route.toString()); + } + if (qParams.layout != null) { + this.layout = this.referenceData.layout = qParams.layout; + } + if (qParams.reference != null) { + this.referenceData.id = qParams.reference; + } else { + this.referenceData.id = ("; " + document.cookie) + .split("; reference=") + .pop() + .split(";") + .shift(); + } + // Are they coming from an email for sponsoring a families organization + if (qParams.sponsorshipToken != null) { + // After logging in redirect them to setup the families sponsorship + const route = this.router.createUrlTree(["setup/families-for-enterprise"], { + queryParams: { plan: qParams.sponsorshipToken }, + }); + this.routerService.setPreviousUrl(route.toString()); + } + if (this.referenceData.id === "") { + this.referenceData.id = null; + } + }); + const invite = await this.stateService.getOrganizationInvitation(); + if (invite != null) { + try { + const policies = await this.apiService.getPoliciesByToken( + invite.organizationId, + invite.token, + invite.email, + invite.organizationUserId + ); + if (policies.data != null) { + const policiesData = policies.data.map((p) => new PolicyData(p)); + this.policies = policiesData.map((p) => new Policy(p)); + } + } catch (e) { + this.logService.error(e); + } + } + + if (this.policies != null) { + this.enforcedPolicyOptions = await this.policyService.getMasterPasswordPolicyOptions( + this.policies + ); + } + + await super.ngOnInit(); + } + + async submit() { + if ( + this.enforcedPolicyOptions != null && + !this.policyService.evaluateMasterPassword( + this.masterPasswordScore, + this.masterPassword, + this.enforcedPolicyOptions + ) + ) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("masterPasswordPolicyRequirementsNotMet") + ); + return; + } + + await super.submit(); + } +} diff --git a/apps/web/src/app/accounts/remove-password.component.html b/apps/web/src/app/accounts/remove-password.component.html new file mode 100644 index 0000000000..19e0d63572 --- /dev/null +++ b/apps/web/src/app/accounts/remove-password.component.html @@ -0,0 +1,55 @@ +
+
+ +

+ + {{ "loading" | i18n }} +

+
+
+
+
+
+

{{ "removeMasterPassword" | i18n }}

+
+
+
+

{{ "convertOrganizationEncryptionDesc" | i18n: organization.name }}

+ + + +
+
+
+
+
diff --git a/apps/web/src/app/accounts/remove-password.component.ts b/apps/web/src/app/accounts/remove-password.component.ts new file mode 100644 index 0000000000..cdb75058ab --- /dev/null +++ b/apps/web/src/app/accounts/remove-password.component.ts @@ -0,0 +1,9 @@ +import { Component } from "@angular/core"; + +import { RemovePasswordComponent as BaseRemovePasswordComponent } from "jslib-angular/components/remove-password.component"; + +@Component({ + selector: "app-remove-password", + templateUrl: "remove-password.component.html", +}) +export class RemovePasswordComponent extends BaseRemovePasswordComponent {} diff --git a/apps/web/src/app/accounts/set-password.component.html b/apps/web/src/app/accounts/set-password.component.html new file mode 100644 index 0000000000..f02eee904b --- /dev/null +++ b/apps/web/src/app/accounts/set-password.component.html @@ -0,0 +1,117 @@ +
+
+
+

{{ "setMasterPassword" | i18n }}

+
+
+ + {{ "loading" | i18n }} +
+
+ {{ "ssoCompleteRegistration" | i18n }} + + {{ "resetPasswordAutoEnrollInviteWarning" | i18n }} + +
+ + + +
+
+ + + +
+
+ + +
+
+ {{ "masterPassDesc" | i18n }} +
+
+ +
+ + +
+
+
+ + + {{ "masterPassHintDesc" | i18n }} +
+
+
+ + +
+
+
+
+
+
diff --git a/apps/web/src/app/accounts/set-password.component.ts b/apps/web/src/app/accounts/set-password.component.ts new file mode 100644 index 0000000000..604df7d73d --- /dev/null +++ b/apps/web/src/app/accounts/set-password.component.ts @@ -0,0 +1,47 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; + +import { SetPasswordComponent as BaseSetPasswordComponent } from "jslib-angular/components/set-password.component"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; + +@Component({ + selector: "app-set-password", + templateUrl: "set-password.component.html", +}) +export class SetPasswordComponent extends BaseSetPasswordComponent { + constructor( + apiService: ApiService, + i18nService: I18nService, + cryptoService: CryptoService, + messagingService: MessagingService, + passwordGenerationService: PasswordGenerationService, + platformUtilsService: PlatformUtilsService, + policyService: PolicyService, + router: Router, + syncService: SyncService, + route: ActivatedRoute, + stateService: StateService + ) { + super( + i18nService, + cryptoService, + messagingService, + passwordGenerationService, + platformUtilsService, + policyService, + router, + apiService, + syncService, + route, + stateService + ); + } +} diff --git a/apps/web/src/app/accounts/sso.component.html b/apps/web/src/app/accounts/sso.component.html new file mode 100644 index 0000000000..f558895398 --- /dev/null +++ b/apps/web/src/app/accounts/sso.component.html @@ -0,0 +1,52 @@ +
+
+
+ +
+
+ + {{ "loading" | i18n }} +
+
+

{{ "ssoLogInWithOrgIdentifier" | i18n }}

+
+ + +
+
+
+ + + {{ "cancel" | i18n }} + +
+
+
+
+
+
diff --git a/apps/web/src/app/accounts/sso.component.ts b/apps/web/src/app/accounts/sso.component.ts new file mode 100644 index 0000000000..27ee8bcc73 --- /dev/null +++ b/apps/web/src/app/accounts/sso.component.ts @@ -0,0 +1,72 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; +import { first } from "rxjs/operators"; + +import { SsoComponent as BaseSsoComponent } from "jslib-angular/components/sso.component"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { AuthService } from "jslib-common/abstractions/auth.service"; +import { CryptoFunctionService } from "jslib-common/abstractions/cryptoFunction.service"; +import { EnvironmentService } from "jslib-common/abstractions/environment.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; + +@Component({ + selector: "app-sso", + templateUrl: "sso.component.html", +}) +export class SsoComponent extends BaseSsoComponent { + constructor( + authService: AuthService, + router: Router, + i18nService: I18nService, + route: ActivatedRoute, + stateService: StateService, + platformUtilsService: PlatformUtilsService, + apiService: ApiService, + cryptoFunctionService: CryptoFunctionService, + environmentService: EnvironmentService, + passwordGenerationService: PasswordGenerationService, + logService: LogService + ) { + super( + authService, + router, + i18nService, + route, + stateService, + platformUtilsService, + apiService, + cryptoFunctionService, + environmentService, + passwordGenerationService, + logService + ); + this.redirectUri = window.location.origin + "/sso-connector.html"; + this.clientId = "web"; + } + + async ngOnInit() { + super.ngOnInit(); + this.route.queryParams.pipe(first()).subscribe(async (qParams) => { + if (qParams.identifier != null) { + this.identifier = qParams.identifier; + } else { + const storedIdentifier = await this.stateService.getSsoOrgIdentifier(); + if (storedIdentifier != null) { + this.identifier = storedIdentifier; + } + } + }); + } + + async submit() { + await this.stateService.setSsoOrganizationIdentifier(this.identifier); + if (this.clientId === "browser") { + document.cookie = `ssoHandOffMessage=${this.i18nService.t("ssoHandOff")};SameSite=strict`; + } + super.submit(); + } +} diff --git a/apps/web/src/app/accounts/two-factor-options.component.html b/apps/web/src/app/accounts/two-factor-options.component.html new file mode 100644 index 0000000000..690d0a1d99 --- /dev/null +++ b/apps/web/src/app/accounts/two-factor-options.component.html @@ -0,0 +1,68 @@ + diff --git a/apps/web/src/app/accounts/two-factor-options.component.ts b/apps/web/src/app/accounts/two-factor-options.component.ts new file mode 100644 index 0000000000..892c971bf9 --- /dev/null +++ b/apps/web/src/app/accounts/two-factor-options.component.ts @@ -0,0 +1,22 @@ +import { Component } from "@angular/core"; +import { Router } from "@angular/router"; + +import { TwoFactorOptionsComponent as BaseTwoFactorOptionsComponent } from "jslib-angular/components/two-factor-options.component"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { TwoFactorService } from "jslib-common/abstractions/twoFactor.service"; + +@Component({ + selector: "app-two-factor-options", + templateUrl: "two-factor-options.component.html", +}) +export class TwoFactorOptionsComponent extends BaseTwoFactorOptionsComponent { + constructor( + twoFactorService: TwoFactorService, + router: Router, + i18nService: I18nService, + platformUtilsService: PlatformUtilsService + ) { + super(twoFactorService, router, i18nService, platformUtilsService, window); + } +} diff --git a/apps/web/src/app/accounts/two-factor.component.html b/apps/web/src/app/accounts/two-factor.component.html new file mode 100644 index 0000000000..835fd12e78 --- /dev/null +++ b/apps/web/src/app/accounts/two-factor.component.html @@ -0,0 +1,155 @@ +
+
+
+

{{ title }}

+
+
+ +

+ {{ "enterVerificationCodeApp" | i18n }} +

+

+ {{ "enterVerificationCodeEmail" | i18n: twoFactorEmail }} +

+
+ + + + + {{ "sendVerificationCodeEmailAgain" | i18n }} + + +
+
+ +

{{ "insertYubiKey" | i18n }}

+ + + + + +
+ + +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ + +
+ +

{{ "noTwoStepProviders" | i18n }}

+

{{ "noTwoStepProviders2" | i18n }}

+
+
+
+ +
+
+ + + {{ "cancel" | i18n }} + +
+ +
+
+
+
+
+ diff --git a/apps/web/src/app/accounts/two-factor.component.ts b/apps/web/src/app/accounts/two-factor.component.ts new file mode 100644 index 0000000000..72aa8cf24c --- /dev/null +++ b/apps/web/src/app/accounts/two-factor.component.ts @@ -0,0 +1,90 @@ +import { Component, ViewChild, ViewContainerRef } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; + +import { TwoFactorComponent as BaseTwoFactorComponent } from "jslib-angular/components/two-factor.component"; +import { ModalService } from "jslib-angular/services/modal.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { AppIdService } from "jslib-common/abstractions/appId.service"; +import { AuthService } from "jslib-common/abstractions/auth.service"; +import { EnvironmentService } from "jslib-common/abstractions/environment.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { TwoFactorService } from "jslib-common/abstractions/twoFactor.service"; +import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; + +import { RouterService } from "../services/router.service"; + +import { TwoFactorOptionsComponent } from "./two-factor-options.component"; + +@Component({ + selector: "app-two-factor", + templateUrl: "two-factor.component.html", +}) +export class TwoFactorComponent extends BaseTwoFactorComponent { + @ViewChild("twoFactorOptions", { read: ViewContainerRef, static: true }) + twoFactorOptionsModal: ViewContainerRef; + + constructor( + authService: AuthService, + router: Router, + i18nService: I18nService, + apiService: ApiService, + platformUtilsService: PlatformUtilsService, + stateService: StateService, + environmentService: EnvironmentService, + private modalService: ModalService, + route: ActivatedRoute, + logService: LogService, + twoFactorService: TwoFactorService, + appIdService: AppIdService, + private routerService: RouterService + ) { + super( + authService, + router, + i18nService, + apiService, + platformUtilsService, + window, + environmentService, + stateService, + route, + logService, + twoFactorService, + appIdService + ); + this.onSuccessfulLoginNavigate = this.goAfterLogIn; + } + + async anotherMethod() { + const [modal] = await this.modalService.openViewRef( + TwoFactorOptionsComponent, + this.twoFactorOptionsModal, + (comp) => { + comp.onProviderSelected.subscribe(async (provider: TwoFactorProviderType) => { + modal.close(); + this.selectedProviderType = provider; + await this.init(); + }); + comp.onRecoverSelected.subscribe(() => { + modal.close(); + }); + } + ); + } + + async goAfterLogIn() { + const previousUrl = this.routerService.getPreviousUrl(); + if (previousUrl) { + this.router.navigateByUrl(previousUrl); + } else { + this.router.navigate([this.successRoute], { + queryParams: { + identifier: this.identifier, + }, + }); + } + } +} diff --git a/apps/web/src/app/accounts/update-password.component.html b/apps/web/src/app/accounts/update-password.component.html new file mode 100644 index 0000000000..46bf988d9b --- /dev/null +++ b/apps/web/src/app/accounts/update-password.component.html @@ -0,0 +1,90 @@ +
+
+
+

{{ "updateMasterPassword" | i18n }}

+
+
+ {{ "masterPasswordInvalidWarning" | i18n }} + + + +
+
+
+ + +
+
+
+
+
+
+ + + +
+
+
+
+ + +
+
+
+ + + +
+
+
+
+ diff --git a/apps/web/src/app/accounts/update-password.component.ts b/apps/web/src/app/accounts/update-password.component.ts new file mode 100644 index 0000000000..ec1aa3f515 --- /dev/null +++ b/apps/web/src/app/accounts/update-password.component.ts @@ -0,0 +1,48 @@ +import { Component } from "@angular/core"; +import { Router } from "@angular/router"; + +import { UpdatePasswordComponent as BaseUpdatePasswordComponent } from "jslib-angular/components/update-password.component"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; + +@Component({ + selector: "app-update-password", + templateUrl: "update-password.component.html", +}) +export class UpdatePasswordComponent extends BaseUpdatePasswordComponent { + constructor( + router: Router, + i18nService: I18nService, + platformUtilsService: PlatformUtilsService, + passwordGenerationService: PasswordGenerationService, + policyService: PolicyService, + cryptoService: CryptoService, + messagingService: MessagingService, + apiService: ApiService, + logService: LogService, + stateService: StateService, + userVerificationService: UserVerificationService + ) { + super( + router, + i18nService, + platformUtilsService, + passwordGenerationService, + policyService, + cryptoService, + messagingService, + apiService, + stateService, + userVerificationService, + logService + ); + } +} diff --git a/apps/web/src/app/accounts/update-temp-password.component.html b/apps/web/src/app/accounts/update-temp-password.component.html new file mode 100644 index 0000000000..27e8a4ec10 --- /dev/null +++ b/apps/web/src/app/accounts/update-temp-password.component.html @@ -0,0 +1,105 @@ +
+
+
+

{{ "updateMasterPassword" | i18n }}

+
+
+ {{ "updateMasterPasswordWarning" | i18n }} +
+ + + +
+
+ + + +
+
+ + +
+
+
+
+ +
+ + +
+
+
+ + + {{ "masterPassHintDesc" | i18n }} +
+
+
+ + +
+
+
+
+
+
diff --git a/apps/web/src/app/accounts/update-temp-password.component.ts b/apps/web/src/app/accounts/update-temp-password.component.ts new file mode 100644 index 0000000000..53cd46f3d4 --- /dev/null +++ b/apps/web/src/app/accounts/update-temp-password.component.ts @@ -0,0 +1,45 @@ +import { Component } from "@angular/core"; + +import { UpdateTempPasswordComponent as BaseUpdateTempPasswordComponent } from "jslib-angular/components/update-temp-password.component"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; + +@Component({ + selector: "app-update-temp-password", + templateUrl: "update-temp-password.component.html", +}) +export class UpdateTempPasswordComponent extends BaseUpdateTempPasswordComponent { + constructor( + i18nService: I18nService, + platformUtilsService: PlatformUtilsService, + passwordGenerationService: PasswordGenerationService, + policyService: PolicyService, + cryptoService: CryptoService, + messagingService: MessagingService, + apiService: ApiService, + logService: LogService, + stateService: StateService, + syncService: SyncService + ) { + super( + i18nService, + platformUtilsService, + passwordGenerationService, + policyService, + cryptoService, + messagingService, + apiService, + stateService, + syncService, + logService + ); + } +} diff --git a/apps/web/src/app/accounts/verify-email-token.component.html b/apps/web/src/app/accounts/verify-email-token.component.html new file mode 100644 index 0000000000..9e0aad8b38 --- /dev/null +++ b/apps/web/src/app/accounts/verify-email-token.component.html @@ -0,0 +1,13 @@ +
+
+ +

+ + {{ "loading" | i18n }} +

+
+
diff --git a/apps/web/src/app/accounts/verify-email-token.component.ts b/apps/web/src/app/accounts/verify-email-token.component.ts new file mode 100644 index 0000000000..2517aad132 --- /dev/null +++ b/apps/web/src/app/accounts/verify-email-token.component.ts @@ -0,0 +1,48 @@ +import { Component, OnInit } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; +import { first } from "rxjs/operators"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { VerifyEmailRequest } from "jslib-common/models/request/verifyEmailRequest"; + +@Component({ + selector: "app-verify-email-token", + templateUrl: "verify-email-token.component.html", +}) +export class VerifyEmailTokenComponent implements OnInit { + constructor( + private router: Router, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private route: ActivatedRoute, + private apiService: ApiService, + private logService: LogService, + private stateService: StateService + ) {} + + ngOnInit() { + this.route.queryParams.pipe(first()).subscribe(async (qParams) => { + if (qParams.userId != null && qParams.token != null) { + try { + await this.apiService.postAccountVerifyEmailToken( + new VerifyEmailRequest(qParams.userId, qParams.token) + ); + if (await this.stateService.getIsAuthenticated()) { + await this.apiService.refreshIdentityToken(); + } + this.platformUtilsService.showToast("success", null, this.i18nService.t("emailVerified")); + this.router.navigate(["/"]); + return; + } catch (e) { + this.logService.error(e); + } + } + this.platformUtilsService.showToast("error", null, this.i18nService.t("emailVerifiedFailed")); + this.router.navigate(["/"]); + }); + } +} diff --git a/apps/web/src/app/accounts/verify-recover-delete.component.html b/apps/web/src/app/accounts/verify-recover-delete.component.html new file mode 100644 index 0000000000..975858ac5e --- /dev/null +++ b/apps/web/src/app/accounts/verify-recover-delete.component.html @@ -0,0 +1,34 @@ +
+
+
+

{{ "deleteAccount" | i18n }}

+
+
+ {{ "deleteAccountWarning" | i18n }} +

+ {{ email }} +

+

{{ "deleteRecoverConfirmDesc" | i18n }}

+
+
+ + + {{ "cancel" | i18n }} + +
+
+
+
+
+
diff --git a/apps/web/src/app/accounts/verify-recover-delete.component.ts b/apps/web/src/app/accounts/verify-recover-delete.component.ts new file mode 100644 index 0000000000..6515569575 --- /dev/null +++ b/apps/web/src/app/accounts/verify-recover-delete.component.ts @@ -0,0 +1,58 @@ +import { Component, OnInit } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; +import { first } from "rxjs/operators"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { VerifyDeleteRecoverRequest } from "jslib-common/models/request/verifyDeleteRecoverRequest"; + +@Component({ + selector: "app-verify-recover-delete", + templateUrl: "verify-recover-delete.component.html", +}) +export class VerifyRecoverDeleteComponent implements OnInit { + email: string; + formPromise: Promise; + + private userId: string; + private token: string; + + constructor( + private router: Router, + private apiService: ApiService, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private route: ActivatedRoute, + private logService: LogService + ) {} + + ngOnInit() { + this.route.queryParams.pipe(first()).subscribe(async (qParams) => { + if (qParams.userId != null && qParams.token != null && qParams.email != null) { + this.userId = qParams.userId; + this.token = qParams.token; + this.email = qParams.email; + } else { + this.router.navigate(["/"]); + } + }); + } + + async submit() { + try { + const request = new VerifyDeleteRecoverRequest(this.userId, this.token); + this.formPromise = this.apiService.postAccountRecoverDeleteToken(request); + await this.formPromise; + this.platformUtilsService.showToast( + "success", + this.i18nService.t("accountDeleted"), + this.i18nService.t("accountDeletedDesc") + ); + this.router.navigate(["/"]); + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/apps/web/src/app/app.component.html b/apps/web/src/app/app.component.html new file mode 100644 index 0000000000..0680b43f9c --- /dev/null +++ b/apps/web/src/app/app.component.html @@ -0,0 +1 @@ + diff --git a/apps/web/src/app/app.component.ts b/apps/web/src/app/app.component.ts new file mode 100644 index 0000000000..9e26f68078 --- /dev/null +++ b/apps/web/src/app/app.component.ts @@ -0,0 +1,315 @@ +import { Component, NgZone, OnDestroy, OnInit, SecurityContext } from "@angular/core"; +import { DomSanitizer } from "@angular/platform-browser"; +import { NavigationEnd, Router } from "@angular/router"; +import * as jq from "jquery"; +import { IndividualConfig, ToastrService } from "ngx-toastr"; +import Swal from "sweetalert2"; + +import { AuthService } from "jslib-common/abstractions/auth.service"; +import { BroadcasterService } from "jslib-common/abstractions/broadcaster.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { CollectionService } from "jslib-common/abstractions/collection.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { EventService } from "jslib-common/abstractions/event.service"; +import { FolderService } from "jslib-common/abstractions/folder.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { KeyConnectorService } from "jslib-common/abstractions/keyConnector.service"; +import { NotificationsService } from "jslib-common/abstractions/notifications.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { SearchService } from "jslib-common/abstractions/search.service"; +import { SettingsService } from "jslib-common/abstractions/settings.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { TokenService } from "jslib-common/abstractions/token.service"; +import { VaultTimeoutService } from "jslib-common/abstractions/vaultTimeout.service"; + +import { DisableSendPolicy } from "./organizations/policies/disable-send.component"; +import { MasterPasswordPolicy } from "./organizations/policies/master-password.component"; +import { PasswordGeneratorPolicy } from "./organizations/policies/password-generator.component"; +import { PersonalOwnershipPolicy } from "./organizations/policies/personal-ownership.component"; +import { RequireSsoPolicy } from "./organizations/policies/require-sso.component"; +import { ResetPasswordPolicy } from "./organizations/policies/reset-password.component"; +import { SendOptionsPolicy } from "./organizations/policies/send-options.component"; +import { SingleOrgPolicy } from "./organizations/policies/single-org.component"; +import { TwoFactorAuthenticationPolicy } from "./organizations/policies/two-factor-authentication.component"; +import { PolicyListService } from "./services/policy-list.service"; +import { RouterService } from "./services/router.service"; + +const BroadcasterSubscriptionId = "AppComponent"; +const IdleTimeout = 60000 * 10; // 10 minutes + +@Component({ + selector: "app-root", + templateUrl: "app.component.html", +}) +export class AppComponent implements OnDestroy, OnInit { + private lastActivity: number = null; + private idleTimer: number = null; + private isIdle = false; + + constructor( + private broadcasterService: BroadcasterService, + private tokenService: TokenService, + private folderService: FolderService, + private settingsService: SettingsService, + private syncService: SyncService, + private passwordGenerationService: PasswordGenerationService, + private cipherService: CipherService, + private authService: AuthService, + private router: Router, + private toastrService: ToastrService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private ngZone: NgZone, + private vaultTimeoutService: VaultTimeoutService, + private cryptoService: CryptoService, + private collectionService: CollectionService, + private sanitizer: DomSanitizer, + private searchService: SearchService, + private notificationsService: NotificationsService, + private routerService: RouterService, + private stateService: StateService, + private eventService: EventService, + private policyService: PolicyService, + protected policyListService: PolicyListService, + private keyConnectorService: KeyConnectorService + ) {} + + ngOnInit() { + this.ngZone.runOutsideAngular(() => { + window.onmousemove = () => this.recordActivity(); + window.onmousedown = () => this.recordActivity(); + window.ontouchstart = () => this.recordActivity(); + window.onclick = () => this.recordActivity(); + window.onscroll = () => this.recordActivity(); + window.onkeypress = () => this.recordActivity(); + }); + + this.broadcasterService.subscribe(BroadcasterSubscriptionId, async (message: any) => { + this.ngZone.run(async () => { + switch (message.command) { + case "loggedIn": + this.notificationsService.updateConnection(false); + break; + case "loggedOut": + this.routerService.setPreviousUrl(null); + this.notificationsService.updateConnection(false); + break; + case "unlocked": + this.notificationsService.updateConnection(false); + break; + case "authBlocked": + this.routerService.setPreviousUrl(message.url); + this.router.navigate(["/"]); + break; + case "logout": + this.logOut(!!message.expired); + break; + case "lockVault": + await this.vaultTimeoutService.lock(); + break; + case "locked": + this.notificationsService.updateConnection(false); + this.router.navigate(["lock"]); + break; + case "lockedUrl": + this.routerService.setPreviousUrl(message.url); + break; + case "syncStarted": + break; + case "syncCompleted": + break; + case "upgradeOrganization": { + const upgradeConfirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("upgradeOrganizationDesc"), + this.i18nService.t("upgradeOrganization"), + this.i18nService.t("upgradeOrganization"), + this.i18nService.t("cancel") + ); + if (upgradeConfirmed) { + this.router.navigate([ + "organizations", + message.organizationId, + "settings", + "billing", + ]); + } + break; + } + case "premiumRequired": { + const premiumConfirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("premiumRequiredDesc"), + this.i18nService.t("premiumRequired"), + this.i18nService.t("learnMore"), + this.i18nService.t("cancel") + ); + if (premiumConfirmed) { + this.router.navigate(["settings/premium"]); + } + break; + } + case "emailVerificationRequired": { + const emailVerificationConfirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("emailVerificationRequiredDesc"), + this.i18nService.t("emailVerificationRequired"), + this.i18nService.t("learnMore"), + this.i18nService.t("cancel") + ); + if (emailVerificationConfirmed) { + this.platformUtilsService.launchUri( + "https://bitwarden.com/help/create-bitwarden-account/" + ); + } + break; + } + case "showToast": + this.showToast(message); + break; + case "setFullWidth": + this.setFullWidth(); + break; + case "convertAccountToKeyConnector": + this.router.navigate(["/remove-password"]); + break; + default: + break; + } + }); + }); + + this.router.events.subscribe((event) => { + if (event instanceof NavigationEnd) { + const modals = Array.from(document.querySelectorAll(".modal")); + for (const modal of modals) { + (jq(modal) as any).modal("hide"); + } + + if (document.querySelector(".swal-modal") != null) { + Swal.close(undefined); + } + } + }); + + this.policyListService.addPolicies([ + new TwoFactorAuthenticationPolicy(), + new MasterPasswordPolicy(), + new PasswordGeneratorPolicy(), + new SingleOrgPolicy(), + new RequireSsoPolicy(), + new PersonalOwnershipPolicy(), + new DisableSendPolicy(), + new SendOptionsPolicy(), + new ResetPasswordPolicy(), + ]); + + this.setFullWidth(); + } + + ngOnDestroy() { + this.broadcasterService.unsubscribe(BroadcasterSubscriptionId); + } + + private async logOut(expired: boolean) { + await this.eventService.uploadEvents(); + const userId = await this.stateService.getUserId(); + await Promise.all([ + this.eventService.clearEvents(), + this.syncService.setLastSync(new Date(0)), + this.cryptoService.clearKeys(), + this.settingsService.clear(userId), + this.cipherService.clear(userId), + this.folderService.clear(userId), + this.collectionService.clear(userId), + this.policyService.clear(userId), + this.passwordGenerationService.clear(), + this.keyConnectorService.clear(), + ]); + + this.searchService.clearIndex(); + this.authService.logOut(async () => { + if (expired) { + this.platformUtilsService.showToast( + "warning", + this.i18nService.t("loggedOut"), + this.i18nService.t("loginExpired") + ); + } + + await this.stateService.clean({ userId: userId }); + Swal.close(); + this.router.navigate(["/"]); + }); + } + + private async recordActivity() { + const now = new Date().getTime(); + if (this.lastActivity != null && now - this.lastActivity < 250) { + return; + } + + this.lastActivity = now; + this.stateService.setLastActive(now); + // Idle states + if (this.isIdle) { + this.isIdle = false; + this.idleStateChanged(); + } + if (this.idleTimer != null) { + window.clearTimeout(this.idleTimer); + this.idleTimer = null; + } + this.idleTimer = window.setTimeout(() => { + if (!this.isIdle) { + this.isIdle = true; + this.idleStateChanged(); + } + }, IdleTimeout); + } + + private showToast(msg: any) { + let message = ""; + + const options: Partial = {}; + + if (typeof msg.text === "string") { + message = msg.text; + } else if (msg.text.length === 1) { + message = msg.text[0]; + } else { + msg.text.forEach( + (t: string) => + (message += "

" + this.sanitizer.sanitize(SecurityContext.HTML, t) + "

") + ); + options.enableHtml = true; + } + if (msg.options != null) { + if (msg.options.trustedHtml === true) { + options.enableHtml = true; + } + if (msg.options.timeout != null && msg.options.timeout > 0) { + options.timeOut = msg.options.timeout; + } + } + + this.toastrService.show(message, msg.title, options, "toast-" + msg.type); + } + + private idleStateChanged() { + if (this.isIdle) { + this.notificationsService.disconnectFromInactivity(); + } else { + this.notificationsService.reconnectFromActivity(); + } + } + + private async setFullWidth() { + const enableFullWidth = await this.stateService.getEnableFullWidth(); + if (enableFullWidth) { + document.body.classList.add("full-width"); + } else { + document.body.classList.remove("full-width"); + } + } +} diff --git a/apps/web/src/app/app.module.ts b/apps/web/src/app/app.module.ts new file mode 100644 index 0000000000..15d5a1900f --- /dev/null +++ b/apps/web/src/app/app.module.ts @@ -0,0 +1,27 @@ +import { DragDropModule } from "@angular/cdk/drag-drop"; +import { NgModule } from "@angular/core"; +import { FormsModule } from "@angular/forms"; +import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; +import { InfiniteScrollModule } from "ngx-infinite-scroll"; + +import { AppComponent } from "./app.component"; +import { OssRoutingModule } from "./oss-routing.module"; +import { OssModule } from "./oss.module"; +import { ServicesModule } from "./services/services.module"; +import { WildcardRoutingModule } from "./wildcard-routing.module"; + +@NgModule({ + imports: [ + OssModule, + BrowserAnimationsModule, + FormsModule, + ServicesModule, + InfiniteScrollModule, + DragDropModule, + OssRoutingModule, + WildcardRoutingModule, // Needs to be last to catch all non-existing routes + ], + declarations: [AppComponent], + bootstrap: [AppComponent], +}) +export class AppModule {} diff --git a/apps/web/src/app/common/base.accept.component.ts b/apps/web/src/app/common/base.accept.component.ts new file mode 100644 index 0000000000..36375fbd1e --- /dev/null +++ b/apps/web/src/app/common/base.accept.component.ts @@ -0,0 +1,63 @@ +import { Directive, OnInit } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; +import { first } from "rxjs/operators"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; + +@Directive() +export abstract class BaseAcceptComponent implements OnInit { + loading = true; + authed = false; + email: string; + actionPromise: Promise; + + protected requiredParameters: string[] = []; + protected failedShortMessage = "inviteAcceptFailedShort"; + protected failedMessage = "inviteAcceptFailed"; + + constructor( + protected router: Router, + protected platformUtilService: PlatformUtilsService, + protected i18nService: I18nService, + protected route: ActivatedRoute, + protected stateService: StateService + ) {} + + abstract authedHandler(qParams: any): Promise; + abstract unauthedHandler(qParams: any): Promise; + + ngOnInit() { + this.route.queryParams.pipe(first()).subscribe(async (qParams) => { + let error = this.requiredParameters.some((e) => qParams?.[e] == null || qParams[e] === ""); + let errorMessage: string = null; + if (!error) { + this.authed = await this.stateService.getIsAuthenticated(); + + if (this.authed) { + try { + await this.authedHandler(qParams); + } catch (e) { + error = true; + errorMessage = e.message; + } + } else { + this.email = qParams.email; + await this.unauthedHandler(qParams); + } + } + + if (error) { + const message = + errorMessage != null + ? this.i18nService.t(this.failedShortMessage, errorMessage) + : this.i18nService.t(this.failedMessage); + this.platformUtilService.showToast("error", null, message, { timeout: 10000 }); + this.router.navigate(["/"]); + } + + this.loading = false; + }); + } +} diff --git a/apps/web/src/app/common/base.events.component.ts b/apps/web/src/app/common/base.events.component.ts new file mode 100644 index 0000000000..11ad5c453f --- /dev/null +++ b/apps/web/src/app/common/base.events.component.ts @@ -0,0 +1,178 @@ +import { Directive } from "@angular/core"; + +import { ExportService } from "jslib-common/abstractions/export.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { EventResponse } from "jslib-common/models/response/eventResponse"; +import { ListResponse } from "jslib-common/models/response/listResponse"; +import { EventView } from "jslib-common/models/view/eventView"; + +import { EventService } from "src/app/services/event.service"; + +@Directive() +export abstract class BaseEventsComponent { + loading = true; + loaded = false; + events: EventView[]; + start: string; + end: string; + dirtyDates = true; + continuationToken: string; + refreshPromise: Promise; + exportPromise: Promise; + morePromise: Promise; + + abstract readonly exportFileName: string; + + constructor( + protected eventService: EventService, + protected i18nService: I18nService, + protected exportService: ExportService, + protected platformUtilsService: PlatformUtilsService, + protected logService: LogService + ) { + const defaultDates = this.eventService.getDefaultDateFilters(); + this.start = defaultDates[0]; + this.end = defaultDates[1]; + } + + async exportEvents() { + if (this.appApiPromiseUnfulfilled() || this.dirtyDates) { + return; + } + + this.loading = true; + + const dates = this.parseDates(); + if (dates == null) { + return; + } + + try { + this.exportPromise = this.export(dates[0], dates[1]); + + await this.exportPromise; + } catch (e) { + this.logService.error(`Handled exception: ${e}`); + } + + this.exportPromise = null; + this.loading = false; + } + + async loadEvents(clearExisting: boolean) { + if (this.appApiPromiseUnfulfilled()) { + return; + } + + const dates = this.parseDates(); + if (dates == null) { + return; + } + + this.loading = true; + let events: EventView[] = []; + try { + const promise = this.loadAndParseEvents( + dates[0], + dates[1], + clearExisting ? null : this.continuationToken + ); + if (clearExisting) { + this.refreshPromise = promise; + } else { + this.morePromise = promise; + } + const result = await promise; + this.continuationToken = result.continuationToken; + events = result.events; + } catch (e) { + this.logService.error(`Handled exception: ${e}`); + } + + if (!clearExisting && this.events != null && this.events.length > 0) { + this.events = this.events.concat(events); + } else { + this.events = events; + } + + this.dirtyDates = false; + this.loading = false; + this.morePromise = null; + this.refreshPromise = null; + } + + protected abstract requestEvents( + startDate: string, + endDate: string, + continuationToken: string + ): Promise>; + protected abstract getUserName(r: EventResponse, userId: string): { name: string; email: string }; + + protected async loadAndParseEvents( + startDate: string, + endDate: string, + continuationToken: string + ) { + const response = await this.requestEvents(startDate, endDate, continuationToken); + + const events = await Promise.all( + response.data.map(async (r) => { + const userId = r.actingUserId == null ? r.userId : r.actingUserId; + const eventInfo = await this.eventService.getEventInfo(r); + const user = this.getUserName(r, userId); + const userName = user != null ? user.name : this.i18nService.t("unknown"); + + return new EventView({ + message: eventInfo.message, + humanReadableMessage: eventInfo.humanReadableMessage, + appIcon: eventInfo.appIcon, + appName: eventInfo.appName, + userId: userId, + userName: r.installationId != null ? `Installation: ${r.installationId}` : userName, + userEmail: user != null ? user.email : "", + date: r.date, + ip: r.ipAddress, + type: r.type, + installationId: r.installationId, + }); + }) + ); + return { continuationToken: response.continuationToken, events: events }; + } + + protected parseDates() { + let dates: string[] = null; + try { + dates = this.eventService.formatDateFilters(this.start, this.end); + } catch (e) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("invalidDateRange") + ); + return null; + } + return dates; + } + + protected appApiPromiseUnfulfilled() { + return this.refreshPromise != null || this.morePromise != null || this.exportPromise != null; + } + + private async export(start: string, end: string) { + let continuationToken = this.continuationToken; + let events = [].concat(this.events); + + while (continuationToken != null) { + const result = await this.loadAndParseEvents(start, end, continuationToken); + continuationToken = result.continuationToken; + events = events.concat(result.events); + } + + const data = await this.exportService.getEventExport(events); + const fileName = this.exportService.getFileName(this.exportFileName, "csv"); + this.platformUtilsService.saveFile(window, data, { type: "text/plain" }, fileName); + } +} diff --git a/apps/web/src/app/common/base.people.component.ts b/apps/web/src/app/common/base.people.component.ts new file mode 100644 index 0000000000..b93e9482b2 --- /dev/null +++ b/apps/web/src/app/common/base.people.component.ts @@ -0,0 +1,345 @@ +import { Directive, ViewChild, ViewContainerRef } from "@angular/core"; + +import { SearchPipe } from "jslib-angular/pipes/search.pipe"; +import { UserNamePipe } from "jslib-angular/pipes/user-name.pipe"; +import { ModalService } from "jslib-angular/services/modal.service"; +import { ValidationService } from "jslib-angular/services/validation.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { SearchService } from "jslib-common/abstractions/search.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { OrganizationUserStatusType } from "jslib-common/enums/organizationUserStatusType"; +import { OrganizationUserType } from "jslib-common/enums/organizationUserType"; +import { ProviderUserStatusType } from "jslib-common/enums/providerUserStatusType"; +import { ProviderUserType } from "jslib-common/enums/providerUserType"; +import { Utils } from "jslib-common/misc/utils"; +import { ListResponse } from "jslib-common/models/response/listResponse"; +import { OrganizationUserUserDetailsResponse } from "jslib-common/models/response/organizationUserResponse"; +import { ProviderUserUserDetailsResponse } from "jslib-common/models/response/provider/providerUserResponse"; + +import { UserConfirmComponent } from "../organizations/manage/user-confirm.component"; + +type StatusType = OrganizationUserStatusType | ProviderUserStatusType; + +const MaxCheckedCount = 500; + +@Directive() +export abstract class BasePeopleComponent< + UserType extends ProviderUserUserDetailsResponse | OrganizationUserUserDetailsResponse +> { + @ViewChild("confirmTemplate", { read: ViewContainerRef, static: true }) + confirmModalRef: ViewContainerRef; + + get allCount() { + return this.allUsers != null ? this.allUsers.length : 0; + } + + get invitedCount() { + return this.statusMap.has(this.userStatusType.Invited) + ? this.statusMap.get(this.userStatusType.Invited).length + : 0; + } + + get acceptedCount() { + return this.statusMap.has(this.userStatusType.Accepted) + ? this.statusMap.get(this.userStatusType.Accepted).length + : 0; + } + + get confirmedCount() { + return this.statusMap.has(this.userStatusType.Confirmed) + ? this.statusMap.get(this.userStatusType.Confirmed).length + : 0; + } + + get showConfirmUsers(): boolean { + return ( + this.allUsers != null && + this.statusMap != null && + this.allUsers.length > 1 && + this.confirmedCount > 0 && + this.confirmedCount < 3 && + this.acceptedCount > 0 + ); + } + + get showBulkConfirmUsers(): boolean { + return this.acceptedCount > 0; + } + + abstract userType: typeof OrganizationUserType | typeof ProviderUserType; + abstract userStatusType: typeof OrganizationUserStatusType | typeof ProviderUserStatusType; + + loading = true; + statusMap = new Map(); + status: StatusType; + users: UserType[] = []; + pagedUsers: UserType[] = []; + searchText: string; + actionPromise: Promise; + + protected allUsers: UserType[] = []; + + protected didScroll = false; + protected pageSize = 100; + + private pagedUsersCount = 0; + + constructor( + protected apiService: ApiService, + private searchService: SearchService, + protected i18nService: I18nService, + protected platformUtilsService: PlatformUtilsService, + protected cryptoService: CryptoService, + protected validationService: ValidationService, + protected modalService: ModalService, + private logService: LogService, + private searchPipe: SearchPipe, + protected userNamePipe: UserNamePipe, + protected stateService: StateService + ) {} + + abstract edit(user: UserType): void; + abstract getUsers(): Promise>; + abstract deleteUser(id: string): Promise; + abstract reinviteUser(id: string): Promise; + abstract confirmUser(user: UserType, publicKey: Uint8Array): Promise; + + async load() { + const response = await this.getUsers(); + this.statusMap.clear(); + for (const status of Utils.iterateEnum(this.userStatusType)) { + this.statusMap.set(status, []); + } + + this.allUsers = response.data != null && response.data.length > 0 ? response.data : []; + this.allUsers.sort(Utils.getSortFunction(this.i18nService, "email")); + this.allUsers.forEach((u) => { + if (!this.statusMap.has(u.status)) { + this.statusMap.set(u.status, [u]); + } else { + this.statusMap.get(u.status).push(u); + } + }); + this.filter(this.status); + this.loading = false; + } + + filter(status: StatusType) { + this.status = status; + if (this.status != null) { + this.users = this.statusMap.get(this.status); + } else { + this.users = this.allUsers; + } + // Reset checkbox selecton + this.selectAll(false); + this.resetPaging(); + } + + loadMore() { + if (!this.users || this.users.length <= this.pageSize) { + return; + } + const pagedLength = this.pagedUsers.length; + let pagedSize = this.pageSize; + if (pagedLength === 0 && this.pagedUsersCount > this.pageSize) { + pagedSize = this.pagedUsersCount; + } + if (this.users.length > pagedLength) { + this.pagedUsers = this.pagedUsers.concat( + this.users.slice(pagedLength, pagedLength + pagedSize) + ); + } + this.pagedUsersCount = this.pagedUsers.length; + this.didScroll = this.pagedUsers.length > this.pageSize; + } + + checkUser(user: OrganizationUserUserDetailsResponse, select?: boolean) { + (user as any).checked = select == null ? !(user as any).checked : select; + } + + selectAll(select: boolean) { + if (select) { + this.selectAll(false); + } + + const filteredUsers = this.searchPipe.transform( + this.users, + this.searchText, + "name", + "email", + "id" + ); + + const selectCount = + select && filteredUsers.length > MaxCheckedCount ? MaxCheckedCount : filteredUsers.length; + for (let i = 0; i < selectCount; i++) { + this.checkUser(filteredUsers[i], select); + } + } + + async resetPaging() { + this.pagedUsers = []; + this.loadMore(); + } + + invite() { + this.edit(null); + } + + async remove(user: UserType) { + const confirmed = await this.platformUtilsService.showDialog( + this.deleteWarningMessage(user), + this.userNamePipe.transform(user), + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + + if (!confirmed) { + return false; + } + + this.actionPromise = this.deleteUser(user.id); + try { + await this.actionPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("removedUserId", this.userNamePipe.transform(user)) + ); + this.removeUser(user); + } catch (e) { + this.validationService.showError(e); + } + this.actionPromise = null; + } + + async reinvite(user: UserType) { + if (this.actionPromise != null) { + return; + } + + this.actionPromise = this.reinviteUser(user.id); + try { + await this.actionPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("hasBeenReinvited", this.userNamePipe.transform(user)) + ); + } catch (e) { + this.validationService.showError(e); + } + this.actionPromise = null; + } + + async confirm(user: UserType) { + function updateUser(self: BasePeopleComponent) { + user.status = self.userStatusType.Confirmed; + const mapIndex = self.statusMap.get(self.userStatusType.Accepted).indexOf(user); + if (mapIndex > -1) { + self.statusMap.get(self.userStatusType.Accepted).splice(mapIndex, 1); + self.statusMap.get(self.userStatusType.Confirmed).push(user); + } + } + + const confirmUser = async (publicKey: Uint8Array) => { + try { + this.actionPromise = this.confirmUser(user, publicKey); + await this.actionPromise; + updateUser(this); + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("hasBeenConfirmed", this.userNamePipe.transform(user)) + ); + } catch (e) { + this.validationService.showError(e); + throw e; + } finally { + this.actionPromise = null; + } + }; + + if (this.actionPromise != null) { + return; + } + + try { + const publicKeyResponse = await this.apiService.getUserPublicKey(user.userId); + const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey); + + const autoConfirm = await this.stateService.getAutoConfirmFingerPrints(); + if (autoConfirm == null || !autoConfirm) { + const [modal] = await this.modalService.openViewRef( + UserConfirmComponent, + this.confirmModalRef, + (comp) => { + comp.name = this.userNamePipe.transform(user); + comp.userId = user != null ? user.userId : null; + comp.publicKey = publicKey; + comp.onConfirmedUser.subscribe(async () => { + try { + comp.formPromise = confirmUser(publicKey); + await comp.formPromise; + modal.close(); + } catch (e) { + this.logService.error(e); + } + }); + } + ); + return; + } + + try { + const fingerprint = await this.cryptoService.getFingerprint(user.userId, publicKey.buffer); + this.logService.info(`User's fingerprint: ${fingerprint.join("-")}`); + } catch (e) { + this.logService.error(e); + } + await confirmUser(publicKey); + } catch (e) { + this.logService.error(`Handled exception: ${e}`); + } + } + + isSearching() { + return this.searchService.isSearchable(this.searchText); + } + + isPaging() { + const searching = this.isSearching(); + if (searching && this.didScroll) { + this.resetPaging(); + } + return !searching && this.users && this.users.length > this.pageSize; + } + + protected deleteWarningMessage(user: UserType): string { + return this.i18nService.t("removeUserConfirmation"); + } + + protected getCheckedUsers() { + return this.users.filter((u) => (u as any).checked); + } + + protected removeUser(user: UserType) { + let index = this.users.indexOf(user); + if (index > -1) { + this.users.splice(index, 1); + this.resetPaging(); + } + if (this.statusMap.has(user.status)) { + index = this.statusMap.get(user.status).indexOf(user); + if (index > -1) { + this.statusMap.get(user.status).splice(index, 1); + } + } + } +} diff --git a/apps/web/src/app/components/nested-checkbox.component.html b/apps/web/src/app/components/nested-checkbox.component.html new file mode 100644 index 0000000000..9f585e6642 --- /dev/null +++ b/apps/web/src/app/components/nested-checkbox.component.html @@ -0,0 +1,30 @@ +
+
+ + +
+
+
+ + +
+
+
diff --git a/apps/web/src/app/components/nested-checkbox.component.ts b/apps/web/src/app/components/nested-checkbox.component.ts new file mode 100644 index 0000000000..32a999a038 --- /dev/null +++ b/apps/web/src/app/components/nested-checkbox.component.ts @@ -0,0 +1,32 @@ +import { Component, EventEmitter, Input, Output } from "@angular/core"; + +import { Utils } from "jslib-common/misc/utils"; + +@Component({ + selector: "app-nested-checkbox", + templateUrl: "nested-checkbox.component.html", +}) +export class NestedCheckboxComponent { + @Input() parentId: string; + @Input() checkboxes: { id: string; get: () => boolean; set: (v: boolean) => void }[]; + @Output() onSavedUser = new EventEmitter(); + @Output() onDeletedUser = new EventEmitter(); + + get parentIndeterminate() { + return !this.parentChecked && this.checkboxes.some((c) => c.get()); + } + + get parentChecked() { + return this.checkboxes.every((c) => c.get()); + } + + set parentChecked(value: boolean) { + this.checkboxes.forEach((c) => { + c.set(value); + }); + } + + pascalize(s: string) { + return Utils.camelToPascalCase(s); + } +} diff --git a/apps/web/src/app/components/organization-switcher.component.html b/apps/web/src/app/components/organization-switcher.component.html new file mode 100644 index 0000000000..221985a6cf --- /dev/null +++ b/apps/web/src/app/components/organization-switcher.component.html @@ -0,0 +1,68 @@ +
+ +
+
+
+ + {{ "organizationIsDisabled" | i18n }} +
+
+
+
+ + {{ "accessingUsingProvider" | i18n: activeOrganization.providerName }} +
+
+
+ + + + +
diff --git a/apps/web/src/app/components/organization-switcher.component.ts b/apps/web/src/app/components/organization-switcher.component.ts new file mode 100644 index 0000000000..a71cf1760d --- /dev/null +++ b/apps/web/src/app/components/organization-switcher.component.ts @@ -0,0 +1,34 @@ +import { Component, Input, OnInit } from "@angular/core"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { Utils } from "jslib-common/misc/utils"; +import { Organization } from "jslib-common/models/domain/organization"; + +import { NavigationPermissionsService } from "../organizations/services/navigation-permissions.service"; + +@Component({ + selector: "app-organization-switcher", + templateUrl: "organization-switcher.component.html", +}) +export class OrganizationSwitcherComponent implements OnInit { + constructor(private organizationService: OrganizationService, private i18nService: I18nService) {} + + @Input() activeOrganization: Organization = null; + organizations: Organization[] = []; + + loaded = false; + + async ngOnInit() { + await this.load(); + } + + async load() { + const orgs = await this.organizationService.getAll(); + this.organizations = orgs + .filter((org) => NavigationPermissionsService.canAccessAdmin(org)) + .sort(Utils.getSortFunction(this.i18nService, "name")); + + this.loaded = true; + } +} diff --git a/apps/web/src/app/components/password-reprompt.component.html b/apps/web/src/app/components/password-reprompt.component.html new file mode 100644 index 0000000000..b2c068e902 --- /dev/null +++ b/apps/web/src/app/components/password-reprompt.component.html @@ -0,0 +1,53 @@ + diff --git a/apps/web/src/app/components/password-reprompt.component.ts b/apps/web/src/app/components/password-reprompt.component.ts new file mode 100644 index 0000000000..442a0ab5ee --- /dev/null +++ b/apps/web/src/app/components/password-reprompt.component.ts @@ -0,0 +1,8 @@ +import { Component } from "@angular/core"; + +import { PasswordRepromptComponent as BasePasswordRepromptComponent } from "jslib-angular/components/password-reprompt.component"; + +@Component({ + templateUrl: "password-reprompt.component.html", +}) +export class PasswordRepromptComponent extends BasePasswordRepromptComponent {} diff --git a/apps/web/src/app/components/password-strength.component.html b/apps/web/src/app/components/password-strength.component.html new file mode 100644 index 0000000000..c9eec73899 --- /dev/null +++ b/apps/web/src/app/components/password-strength.component.html @@ -0,0 +1,14 @@ +
+
+ + {{ text }} + +
+
diff --git a/apps/web/src/app/components/password-strength.component.ts b/apps/web/src/app/components/password-strength.component.ts new file mode 100644 index 0000000000..53233b90f6 --- /dev/null +++ b/apps/web/src/app/components/password-strength.component.ts @@ -0,0 +1,40 @@ +import { Component, Input, OnChanges } from "@angular/core"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; + +@Component({ + selector: "app-password-strength", + templateUrl: "password-strength.component.html", +}) +export class PasswordStrengthComponent implements OnChanges { + @Input() score?: number; + @Input() showText = false; + + scoreWidth = 0; + color = "bg-danger"; + text: string; + + constructor(private i18nService: I18nService) {} + + ngOnChanges(): void { + this.scoreWidth = this.score == null ? 0 : (this.score + 1) * 20; + switch (this.score) { + case 4: + this.color = "bg-success"; + this.text = this.i18nService.t("strong"); + break; + case 3: + this.color = "bg-primary"; + this.text = this.i18nService.t("good"); + break; + case 2: + this.color = "bg-warning"; + this.text = this.i18nService.t("weak"); + break; + default: + this.color = "bg-danger"; + this.text = this.score != null ? this.i18nService.t("weak") : null; + break; + } + } +} diff --git a/apps/web/src/app/components/premium-badge.component.ts b/apps/web/src/app/components/premium-badge.component.ts new file mode 100644 index 0000000000..0628621f17 --- /dev/null +++ b/apps/web/src/app/components/premium-badge.component.ts @@ -0,0 +1,19 @@ +import { Component } from "@angular/core"; + +import { MessagingService } from "jslib-common/abstractions/messaging.service"; + +@Component({ + selector: "app-premium-badge", + template: ` + + `, +}) +export class PremiumBadgeComponent { + constructor(private messagingService: MessagingService) {} + + premiumRequired() { + this.messagingService.send("premiumRequired"); + } +} diff --git a/apps/web/src/app/guards/home.guard.ts b/apps/web/src/app/guards/home.guard.ts new file mode 100644 index 0000000000..5dfed1dba8 --- /dev/null +++ b/apps/web/src/app/guards/home.guard.ts @@ -0,0 +1,22 @@ +import { Injectable } from "@angular/core"; +import { ActivatedRouteSnapshot, CanActivate, Router } from "@angular/router"; + +import { AuthService } from "jslib-common/abstractions/auth.service"; +import { AuthenticationStatus } from "jslib-common/enums/authenticationStatus"; + +@Injectable() +export class HomeGuard implements CanActivate { + constructor(private router: Router, private authService: AuthService) {} + + async canActivate(route: ActivatedRouteSnapshot) { + const authStatus = await this.authService.getAuthStatus(); + + if (authStatus === AuthenticationStatus.LoggedOut) { + return this.router.createUrlTree(["/login"], { queryParams: route.queryParams }); + } + if (authStatus === AuthenticationStatus.Locked) { + return this.router.createUrlTree(["/lock"], { queryParams: route.queryParams }); + } + return this.router.createUrlTree(["/vault"], { queryParams: route.queryParams }); + } +} diff --git a/apps/web/src/app/layouts/footer.component.html b/apps/web/src/app/layouts/footer.component.html new file mode 100644 index 0000000000..98836bfd5d --- /dev/null +++ b/apps/web/src/app/layouts/footer.component.html @@ -0,0 +1,9 @@ + diff --git a/apps/web/src/app/layouts/footer.component.ts b/apps/web/src/app/layouts/footer.component.ts new file mode 100644 index 0000000000..01e079655d --- /dev/null +++ b/apps/web/src/app/layouts/footer.component.ts @@ -0,0 +1,19 @@ +import { Component, OnInit } from "@angular/core"; + +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; + +@Component({ + selector: "app-footer", + templateUrl: "footer.component.html", +}) +export class FooterComponent implements OnInit { + version: string; + year = "2015"; + + constructor(private platformUtilsService: PlatformUtilsService) {} + + async ngOnInit() { + this.year = new Date().getFullYear().toString(); + this.version = await this.platformUtilsService.getApplicationVersion(); + } +} diff --git a/apps/web/src/app/layouts/frontend-layout.component.html b/apps/web/src/app/layouts/frontend-layout.component.html new file mode 100644 index 0000000000..d737bc9f02 --- /dev/null +++ b/apps/web/src/app/layouts/frontend-layout.component.html @@ -0,0 +1,5 @@ + +
+ © {{ year }} Bitwarden Inc.
+ {{ "versionNumber" | i18n: version }} +
diff --git a/apps/web/src/app/layouts/frontend-layout.component.ts b/apps/web/src/app/layouts/frontend-layout.component.ts new file mode 100644 index 0000000000..47580a496a --- /dev/null +++ b/apps/web/src/app/layouts/frontend-layout.component.ts @@ -0,0 +1,24 @@ +import { Component, OnDestroy, OnInit } from "@angular/core"; + +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; + +@Component({ + selector: "app-frontend-layout", + templateUrl: "frontend-layout.component.html", +}) +export class FrontendLayoutComponent implements OnInit, OnDestroy { + version: string; + year = "2015"; + + constructor(private platformUtilsService: PlatformUtilsService) {} + + async ngOnInit() { + this.year = new Date().getFullYear().toString(); + this.version = await this.platformUtilsService.getApplicationVersion(); + document.body.classList.add("layout_frontend"); + } + + ngOnDestroy() { + document.body.classList.remove("layout_frontend"); + } +} diff --git a/apps/web/src/app/layouts/navbar.component.html b/apps/web/src/app/layouts/navbar.component.html new file mode 100644 index 0000000000..edc5d34d69 --- /dev/null +++ b/apps/web/src/app/layouts/navbar.component.html @@ -0,0 +1,94 @@ + diff --git a/apps/web/src/app/layouts/navbar.component.ts b/apps/web/src/app/layouts/navbar.component.ts new file mode 100644 index 0000000000..d93ec65d27 --- /dev/null +++ b/apps/web/src/app/layouts/navbar.component.ts @@ -0,0 +1,84 @@ +import { Component, NgZone, OnInit } from "@angular/core"; + +import { BroadcasterService } from "jslib-common/abstractions/broadcaster.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { ProviderService } from "jslib-common/abstractions/provider.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { TokenService } from "jslib-common/abstractions/token.service"; +import { Utils } from "jslib-common/misc/utils"; +import { Organization } from "jslib-common/models/domain/organization"; +import { Provider } from "jslib-common/models/domain/provider"; + +import { NavigationPermissionsService as OrgNavigationPermissionsService } from "../organizations/services/navigation-permissions.service"; + +@Component({ + selector: "app-navbar", + templateUrl: "navbar.component.html", +}) +export class NavbarComponent implements OnInit { + selfHosted = false; + name: string; + email: string; + providers: Provider[] = []; + organizations: Organization[] = []; + + constructor( + private messagingService: MessagingService, + private platformUtilsService: PlatformUtilsService, + private tokenService: TokenService, + private providerService: ProviderService, + private syncService: SyncService, + private organizationService: OrganizationService, + private i18nService: I18nService, + private broadcasterService: BroadcasterService, + private ngZone: NgZone + ) { + this.selfHosted = this.platformUtilsService.isSelfHost(); + } + + async ngOnInit() { + this.name = await this.tokenService.getName(); + this.email = await this.tokenService.getEmail(); + if (this.name == null || this.name.trim() === "") { + this.name = this.email; + } + + // Ensure providers and organizations are loaded + if ((await this.syncService.getLastSync()) == null) { + await this.syncService.fullSync(false); + } + this.providers = await this.providerService.getAll(); + + this.organizations = await this.buildOrganizations(); + + this.broadcasterService.subscribe(this.constructor.name, async (message: any) => { + this.ngZone.run(async () => { + switch (message.command) { + case "organizationCreated": + if (this.organizations.length < 1) { + this.organizations = await this.buildOrganizations(); + } + break; + } + }); + }); + } + + async buildOrganizations() { + const allOrgs = await this.organizationService.getAll(); + return allOrgs + .filter((org) => OrgNavigationPermissionsService.canAccessAdmin(org)) + .sort(Utils.getSortFunction(this.i18nService, "name")); + } + + lock() { + this.messagingService.send("lockVault"); + } + + logOut() { + this.messagingService.send("logout"); + } +} diff --git a/apps/web/src/app/layouts/user-layout.component.html b/apps/web/src/app/layouts/user-layout.component.html new file mode 100644 index 0000000000..28dca81162 --- /dev/null +++ b/apps/web/src/app/layouts/user-layout.component.html @@ -0,0 +1,3 @@ + + + diff --git a/apps/web/src/app/layouts/user-layout.component.ts b/apps/web/src/app/layouts/user-layout.component.ts new file mode 100644 index 0000000000..c35f952ead --- /dev/null +++ b/apps/web/src/app/layouts/user-layout.component.ts @@ -0,0 +1,11 @@ +import { Component, OnInit } from "@angular/core"; + +@Component({ + selector: "app-user-layout", + templateUrl: "user-layout.component.html", +}) +export class UserLayoutComponent implements OnInit { + ngOnInit() { + document.body.classList.remove("layout_frontend"); + } +} diff --git a/apps/web/src/app/main.ts b/apps/web/src/app/main.ts new file mode 100644 index 0000000000..8749ffce34 --- /dev/null +++ b/apps/web/src/app/main.ts @@ -0,0 +1,17 @@ +import { enableProdMode } from "@angular/core"; +import { platformBrowserDynamic } from "@angular/platform-browser-dynamic"; + +import "bootstrap"; +import "jquery"; +import "popper.js"; + +require("../scss/styles.scss"); +require("../scss/tailwind.css"); + +import { AppModule } from "./app.module"; + +if (process.env.NODE_ENV === "production") { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule, { preserveWhitespaces: true }); diff --git a/apps/web/src/app/modules/loose-components.module.ts b/apps/web/src/app/modules/loose-components.module.ts new file mode 100644 index 0000000000..8f01eb40bd --- /dev/null +++ b/apps/web/src/app/modules/loose-components.module.ts @@ -0,0 +1,493 @@ +import { NgModule } from "@angular/core"; + +import { UserVerificationComponent } from "jslib-angular/components/user-verification.component"; + +import { AcceptEmergencyComponent } from "../accounts/accept-emergency.component"; +import { AcceptOrganizationComponent } from "../accounts/accept-organization.component"; +import { HintComponent } from "../accounts/hint.component"; +import { LockComponent } from "../accounts/lock.component"; +import { LoginComponent } from "../accounts/login.component"; +import { RecoverDeleteComponent } from "../accounts/recover-delete.component"; +import { RecoverTwoFactorComponent } from "../accounts/recover-two-factor.component"; +import { RegisterComponent } from "../accounts/register.component"; +import { RemovePasswordComponent } from "../accounts/remove-password.component"; +import { SetPasswordComponent } from "../accounts/set-password.component"; +import { SsoComponent } from "../accounts/sso.component"; +import { TwoFactorOptionsComponent } from "../accounts/two-factor-options.component"; +import { TwoFactorComponent } from "../accounts/two-factor.component"; +import { UpdatePasswordComponent } from "../accounts/update-password.component"; +import { UpdateTempPasswordComponent } from "../accounts/update-temp-password.component"; +import { VerifyEmailTokenComponent } from "../accounts/verify-email-token.component"; +import { VerifyRecoverDeleteComponent } from "../accounts/verify-recover-delete.component"; +import { NestedCheckboxComponent } from "../components/nested-checkbox.component"; +import { OrganizationSwitcherComponent } from "../components/organization-switcher.component"; +import { PasswordRepromptComponent } from "../components/password-reprompt.component"; +import { PasswordStrengthComponent } from "../components/password-strength.component"; +import { PremiumBadgeComponent } from "../components/premium-badge.component"; +import { FooterComponent } from "../layouts/footer.component"; +import { FrontendLayoutComponent } from "../layouts/frontend-layout.component"; +import { NavbarComponent } from "../layouts/navbar.component"; +import { UserLayoutComponent } from "../layouts/user-layout.component"; +import { OrganizationLayoutComponent } from "../organizations/layouts/organization-layout.component"; +import { BulkConfirmComponent as OrgBulkConfirmComponent } from "../organizations/manage/bulk/bulk-confirm.component"; +import { BulkRemoveComponent as OrgBulkRemoveComponent } from "../organizations/manage/bulk/bulk-remove.component"; +import { BulkStatusComponent as OrgBulkStatusComponent } from "../organizations/manage/bulk/bulk-status.component"; +import { CollectionAddEditComponent as OrgCollectionAddEditComponent } from "../organizations/manage/collection-add-edit.component"; +import { CollectionsComponent as OrgManageCollectionsComponent } from "../organizations/manage/collections.component"; +import { EntityEventsComponent as OrgEntityEventsComponent } from "../organizations/manage/entity-events.component"; +import { EventsComponent as OrgEventsComponent } from "../organizations/manage/events.component"; +import { GroupAddEditComponent as OrgGroupAddEditComponent } from "../organizations/manage/group-add-edit.component"; +import { GroupsComponent as OrgGroupsComponent } from "../organizations/manage/groups.component"; +import { ManageComponent as OrgManageComponent } from "../organizations/manage/manage.component"; +import { PeopleComponent as OrgPeopleComponent } from "../organizations/manage/people.component"; +import { PoliciesComponent as OrgPoliciesComponent } from "../organizations/manage/policies.component"; +import { PolicyEditComponent as OrgPolicyEditComponent } from "../organizations/manage/policy-edit.component"; +import { ResetPasswordComponent as OrgResetPasswordComponent } from "../organizations/manage/reset-password.component"; +import { UserAddEditComponent as OrgUserAddEditComponent } from "../organizations/manage/user-add-edit.component"; +import { UserConfirmComponent as OrgUserConfirmComponent } from "../organizations/manage/user-confirm.component"; +import { UserGroupsComponent as OrgUserGroupsComponent } from "../organizations/manage/user-groups.component"; +import { DisableSendPolicyComponent } from "../organizations/policies/disable-send.component"; +import { MasterPasswordPolicyComponent } from "../organizations/policies/master-password.component"; +import { PasswordGeneratorPolicyComponent } from "../organizations/policies/password-generator.component"; +import { PersonalOwnershipPolicyComponent } from "../organizations/policies/personal-ownership.component"; +import { RequireSsoPolicyComponent } from "../organizations/policies/require-sso.component"; +import { ResetPasswordPolicyComponent } from "../organizations/policies/reset-password.component"; +import { SendOptionsPolicyComponent } from "../organizations/policies/send-options.component"; +import { SingleOrgPolicyComponent } from "../organizations/policies/single-org.component"; +import { TwoFactorAuthenticationPolicyComponent } from "../organizations/policies/two-factor-authentication.component"; +import { AccountComponent as OrgAccountComponent } from "../organizations/settings/account.component"; +import { AdjustSubscription } from "../organizations/settings/adjust-subscription.component"; +import { BillingSyncApiKeyComponent } from "../organizations/settings/billing-sync-api-key.component"; +import { ChangePlanComponent } from "../organizations/settings/change-plan.component"; +import { DeleteOrganizationComponent } from "../organizations/settings/delete-organization.component"; +import { DownloadLicenseComponent } from "../organizations/settings/download-license.component"; +import { ImageSubscriptionHiddenComponent as OrgSubscriptionHiddenComponent } from "../organizations/settings/image-subscription-hidden.component"; +import { OrganizationBillingComponent } from "../organizations/settings/organization-billing.component"; +import { OrganizationSubscriptionComponent } from "../organizations/settings/organization-subscription.component"; +import { SettingsComponent as OrgSettingComponent } from "../organizations/settings/settings.component"; +import { TwoFactorSetupComponent as OrgTwoFactorSetupComponent } from "../organizations/settings/two-factor-setup.component"; +import { AcceptFamilySponsorshipComponent } from "../organizations/sponsorships/accept-family-sponsorship.component"; +import { FamiliesForEnterpriseSetupComponent } from "../organizations/sponsorships/families-for-enterprise-setup.component"; +import { ExportComponent as OrgExportComponent } from "../organizations/tools/export.component"; +import { ExposedPasswordsReportComponent as OrgExposedPasswordsReportComponent } from "../organizations/tools/exposed-passwords-report.component"; +import { ImportComponent as OrgImportComponent } from "../organizations/tools/import.component"; +import { InactiveTwoFactorReportComponent as OrgInactiveTwoFactorReportComponent } from "../organizations/tools/inactive-two-factor-report.component"; +import { ReusedPasswordsReportComponent as OrgReusedPasswordsReportComponent } from "../organizations/tools/reused-passwords-report.component"; +import { ToolsComponent as OrgToolsComponent } from "../organizations/tools/tools.component"; +import { UnsecuredWebsitesReportComponent as OrgUnsecuredWebsitesReportComponent } from "../organizations/tools/unsecured-websites-report.component"; +import { WeakPasswordsReportComponent as OrgWeakPasswordsReportComponent } from "../organizations/tools/weak-passwords-report.component"; +import { AddEditComponent as OrgAddEditComponent } from "../organizations/vault/add-edit.component"; +import { AttachmentsComponent as OrgAttachmentsComponent } from "../organizations/vault/attachments.component"; +import { CiphersComponent as OrgCiphersComponent } from "../organizations/vault/ciphers.component"; +import { CollectionsComponent as OrgCollectionsComponent } from "../organizations/vault/collections.component"; +import { ProvidersComponent } from "../providers/providers.component"; +import { BreachReportComponent } from "../reports/breach-report.component"; +import { ExposedPasswordsReportComponent } from "../reports/exposed-passwords-report.component"; +import { InactiveTwoFactorReportComponent } from "../reports/inactive-two-factor-report.component"; +import { ReportCardComponent } from "../reports/report-card.component"; +import { ReportListComponent } from "../reports/report-list.component"; +import { ReportsComponent } from "../reports/reports.component"; +import { ReusedPasswordsReportComponent } from "../reports/reused-passwords-report.component"; +import { UnsecuredWebsitesReportComponent } from "../reports/unsecured-websites-report.component"; +import { WeakPasswordsReportComponent } from "../reports/weak-passwords-report.component"; +import { AccessComponent } from "../send/access.component"; +import { AddEditComponent as SendAddEditComponent } from "../send/add-edit.component"; +import { EffluxDatesComponent as SendEffluxDatesComponent } from "../send/efflux-dates.component"; +import { SendComponent } from "../send/send.component"; +import { AccountComponent } from "../settings/account.component"; +import { AddCreditComponent } from "../settings/add-credit.component"; +import { AdjustPaymentComponent } from "../settings/adjust-payment.component"; +import { AdjustStorageComponent } from "../settings/adjust-storage.component"; +import { ApiKeyComponent } from "../settings/api-key.component"; +import { BillingSyncKeyComponent } from "../settings/billing-sync-key.component"; +import { ChangeEmailComponent } from "../settings/change-email.component"; +import { ChangeKdfComponent } from "../settings/change-kdf.component"; +import { ChangePasswordComponent } from "../settings/change-password.component"; +import { CreateOrganizationComponent } from "../settings/create-organization.component"; +import { DeauthorizeSessionsComponent } from "../settings/deauthorize-sessions.component"; +import { DeleteAccountComponent } from "../settings/delete-account.component"; +import { DomainRulesComponent } from "../settings/domain-rules.component"; +import { EmergencyAccessAddEditComponent } from "../settings/emergency-access-add-edit.component"; +import { EmergencyAccessAttachmentsComponent } from "../settings/emergency-access-attachments.component"; +import { EmergencyAccessConfirmComponent } from "../settings/emergency-access-confirm.component"; +import { EmergencyAccessTakeoverComponent } from "../settings/emergency-access-takeover.component"; +import { EmergencyAccessViewComponent } from "../settings/emergency-access-view.component"; +import { EmergencyAccessComponent } from "../settings/emergency-access.component"; +import { EmergencyAddEditComponent } from "../settings/emergency-add-edit.component"; +import { OrganizationPlansComponent } from "../settings/organization-plans.component"; +import { PaymentMethodComponent } from "../settings/payment-method.component"; +import { PaymentComponent } from "../settings/payment.component"; +import { PreferencesComponent } from "../settings/preferences.component"; +import { PremiumComponent } from "../settings/premium.component"; +import { ProfileComponent } from "../settings/profile.component"; +import { PurgeVaultComponent } from "../settings/purge-vault.component"; +import { SecurityKeysComponent } from "../settings/security-keys.component"; +import { SecurityComponent } from "../settings/security.component"; +import { SettingsComponent } from "../settings/settings.component"; +import { SponsoredFamiliesComponent } from "../settings/sponsored-families.component"; +import { SponsoringOrgRowComponent } from "../settings/sponsoring-org-row.component"; +import { SubscriptionComponent } from "../settings/subscription.component"; +import { TaxInfoComponent } from "../settings/tax-info.component"; +import { TwoFactorAuthenticatorComponent } from "../settings/two-factor-authenticator.component"; +import { TwoFactorDuoComponent } from "../settings/two-factor-duo.component"; +import { TwoFactorEmailComponent } from "../settings/two-factor-email.component"; +import { TwoFactorRecoveryComponent } from "../settings/two-factor-recovery.component"; +import { TwoFactorSetupComponent } from "../settings/two-factor-setup.component"; +import { TwoFactorVerifyComponent } from "../settings/two-factor-verify.component"; +import { TwoFactorWebAuthnComponent } from "../settings/two-factor-webauthn.component"; +import { TwoFactorYubiKeyComponent } from "../settings/two-factor-yubikey.component"; +import { UpdateKeyComponent } from "../settings/update-key.component"; +import { UpdateLicenseComponent } from "../settings/update-license.component"; +import { UserBillingHistoryComponent } from "../settings/user-billing-history.component"; +import { UserSubscriptionComponent } from "../settings/user-subscription.component"; +import { VaultTimeoutInputComponent } from "../settings/vault-timeout-input.component"; +import { VerifyEmailComponent } from "../settings/verify-email.component"; +import { ExportComponent } from "../tools/export.component"; +import { GeneratorComponent } from "../tools/generator.component"; +import { ImportComponent } from "../tools/import.component"; +import { PasswordGeneratorHistoryComponent } from "../tools/password-generator-history.component"; +import { ToolsComponent } from "../tools/tools.component"; +import { AddEditCustomFieldsComponent } from "../vault/add-edit-custom-fields.component"; +import { AddEditComponent } from "../vault/add-edit.component"; +import { AttachmentsComponent } from "../vault/attachments.component"; +import { BulkActionsComponent } from "../vault/bulk-actions.component"; +import { BulkDeleteComponent } from "../vault/bulk-delete.component"; +import { BulkMoveComponent } from "../vault/bulk-move.component"; +import { BulkRestoreComponent } from "../vault/bulk-restore.component"; +import { BulkShareComponent } from "../vault/bulk-share.component"; +import { CiphersComponent } from "../vault/ciphers.component"; +import { CollectionsComponent } from "../vault/collections.component"; +import { FolderAddEditComponent } from "../vault/folder-add-edit.component"; +import { ShareComponent } from "../vault/share.component"; + +import { PipesModule } from "./pipes/pipes.module"; +import { SharedModule } from "./shared.module"; +import { VaultFilterModule } from "./vault-filter/vault-filter.module"; +import { OrganizationBadgeModule } from "./vault/modules/organization-badge/organization-badge.module"; + +// Please do not add to this list of declarations - we should refactor these into modules when doing so makes sense until there are none left. +// If you are building new functionality, please create or extend a feature module instead. +@NgModule({ + imports: [SharedModule, VaultFilterModule, OrganizationBadgeModule, PipesModule], + declarations: [ + PremiumBadgeComponent, + AcceptEmergencyComponent, + AcceptFamilySponsorshipComponent, + AcceptOrganizationComponent, + AccessComponent, + AccountComponent, + AddCreditComponent, + AddEditComponent, + AddEditCustomFieldsComponent, + AddEditCustomFieldsComponent, + AdjustPaymentComponent, + AdjustStorageComponent, + AdjustSubscription, + ApiKeyComponent, + AttachmentsComponent, + BillingSyncApiKeyComponent, + BillingSyncKeyComponent, + BreachReportComponent, + BulkActionsComponent, + BulkDeleteComponent, + BulkMoveComponent, + BulkRestoreComponent, + BulkShareComponent, + ChangeEmailComponent, + ChangeKdfComponent, + ChangePasswordComponent, + ChangePlanComponent, + CiphersComponent, + CollectionsComponent, + CreateOrganizationComponent, + DeauthorizeSessionsComponent, + DeleteAccountComponent, + DeleteOrganizationComponent, + DisableSendPolicyComponent, + DomainRulesComponent, + DownloadLicenseComponent, + EmergencyAccessAddEditComponent, + EmergencyAccessAttachmentsComponent, + EmergencyAccessComponent, + EmergencyAccessConfirmComponent, + EmergencyAccessTakeoverComponent, + EmergencyAccessViewComponent, + EmergencyAddEditComponent, + ExportComponent, + ExposedPasswordsReportComponent, + FamiliesForEnterpriseSetupComponent, + FolderAddEditComponent, + FooterComponent, + FrontendLayoutComponent, + HintComponent, + ImportComponent, + InactiveTwoFactorReportComponent, + LockComponent, + LoginComponent, + MasterPasswordPolicyComponent, + NavbarComponent, + NestedCheckboxComponent, + OrganizationSwitcherComponent, + OrgAccountComponent, + OrgAddEditComponent, + OrganizationBillingComponent, + OrganizationLayoutComponent, + OrganizationPlansComponent, + OrganizationSubscriptionComponent, + OrgAttachmentsComponent, + OrgBulkConfirmComponent, + OrgBulkRemoveComponent, + OrgBulkStatusComponent, + OrgCiphersComponent, + OrgCollectionAddEditComponent, + OrgCollectionsComponent, + OrgEntityEventsComponent, + OrgEventsComponent, + OrgExportComponent, + OrgExposedPasswordsReportComponent, + OrgGroupAddEditComponent, + OrgGroupsComponent, + OrgImportComponent, + OrgInactiveTwoFactorReportComponent, + OrgManageCollectionsComponent, + OrgManageComponent, + OrgPeopleComponent, + OrgPoliciesComponent, + OrgPolicyEditComponent, + OrgResetPasswordComponent, + OrgReusedPasswordsReportComponent, + OrgSettingComponent, + OrgToolsComponent, + OrgTwoFactorSetupComponent, + OrgSubscriptionHiddenComponent, + OrgUnsecuredWebsitesReportComponent, + OrgUserAddEditComponent, + OrgUserConfirmComponent, + OrgUserGroupsComponent, + OrgWeakPasswordsReportComponent, + GeneratorComponent, + PasswordGeneratorHistoryComponent, + PasswordGeneratorPolicyComponent, + PasswordRepromptComponent, + PasswordStrengthComponent, + PaymentComponent, + PaymentMethodComponent, + PersonalOwnershipPolicyComponent, + PreferencesComponent, + PremiumBadgeComponent, + PremiumComponent, + ProfileComponent, + ProvidersComponent, + PurgeVaultComponent, + RecoverDeleteComponent, + RecoverTwoFactorComponent, + RegisterComponent, + RemovePasswordComponent, + ReportCardComponent, + ReportListComponent, + ReportsComponent, + RequireSsoPolicyComponent, + ResetPasswordPolicyComponent, + ReusedPasswordsReportComponent, + SecurityComponent, + SecurityKeysComponent, + SendAddEditComponent, + SendComponent, + SendEffluxDatesComponent, + SendOptionsPolicyComponent, + SetPasswordComponent, + SettingsComponent, + ShareComponent, + SingleOrgPolicyComponent, + SponsoredFamiliesComponent, + SponsoringOrgRowComponent, + SsoComponent, + SubscriptionComponent, + TaxInfoComponent, + ToolsComponent, + TwoFactorAuthenticationPolicyComponent, + TwoFactorAuthenticatorComponent, + TwoFactorComponent, + TwoFactorDuoComponent, + TwoFactorEmailComponent, + TwoFactorOptionsComponent, + TwoFactorRecoveryComponent, + TwoFactorSetupComponent, + TwoFactorVerifyComponent, + TwoFactorWebAuthnComponent, + TwoFactorYubiKeyComponent, + UnsecuredWebsitesReportComponent, + UpdateKeyComponent, + UpdateLicenseComponent, + UpdatePasswordComponent, + UpdateTempPasswordComponent, + UserBillingHistoryComponent, + UserLayoutComponent, + UserSubscriptionComponent, + UserVerificationComponent, + VaultTimeoutInputComponent, + VerifyEmailComponent, + VerifyEmailTokenComponent, + VerifyRecoverDeleteComponent, + WeakPasswordsReportComponent, + ], + exports: [ + PremiumBadgeComponent, + AcceptEmergencyComponent, + AcceptOrganizationComponent, + AccessComponent, + AccountComponent, + AddCreditComponent, + AddEditComponent, + AddEditCustomFieldsComponent, + AddEditCustomFieldsComponent, + AdjustPaymentComponent, + AdjustStorageComponent, + AdjustSubscription, + ApiKeyComponent, + AttachmentsComponent, + BreachReportComponent, + BulkActionsComponent, + BulkDeleteComponent, + BulkMoveComponent, + BulkRestoreComponent, + BulkShareComponent, + ChangeEmailComponent, + ChangeKdfComponent, + ChangePasswordComponent, + ChangePlanComponent, + CiphersComponent, + CollectionsComponent, + CreateOrganizationComponent, + DeauthorizeSessionsComponent, + DeleteAccountComponent, + DeleteOrganizationComponent, + DisableSendPolicyComponent, + DomainRulesComponent, + DownloadLicenseComponent, + EmergencyAccessAddEditComponent, + EmergencyAccessAttachmentsComponent, + EmergencyAccessComponent, + EmergencyAccessConfirmComponent, + EmergencyAccessTakeoverComponent, + EmergencyAccessViewComponent, + EmergencyAddEditComponent, + ExportComponent, + ExposedPasswordsReportComponent, + FamiliesForEnterpriseSetupComponent, + FolderAddEditComponent, + FooterComponent, + FrontendLayoutComponent, + HintComponent, + ImportComponent, + InactiveTwoFactorReportComponent, + LockComponent, + LoginComponent, + MasterPasswordPolicyComponent, + NavbarComponent, + NestedCheckboxComponent, + OrganizationSwitcherComponent, + OrgAccountComponent, + OrgAddEditComponent, + OrganizationBillingComponent, + OrganizationLayoutComponent, + OrganizationPlansComponent, + OrganizationSubscriptionComponent, + OrgAttachmentsComponent, + OrgBulkConfirmComponent, + OrgBulkRemoveComponent, + OrgBulkStatusComponent, + OrgCiphersComponent, + OrgCollectionAddEditComponent, + OrgCollectionsComponent, + OrgEntityEventsComponent, + OrgEventsComponent, + OrgExportComponent, + OrgExposedPasswordsReportComponent, + OrgGroupAddEditComponent, + OrgGroupsComponent, + OrgImportComponent, + OrgInactiveTwoFactorReportComponent, + OrgManageCollectionsComponent, + OrgManageComponent, + OrgPeopleComponent, + OrgPoliciesComponent, + OrgPolicyEditComponent, + OrgResetPasswordComponent, + OrgReusedPasswordsReportComponent, + OrgSettingComponent, + OrgToolsComponent, + OrgTwoFactorSetupComponent, + OrgUnsecuredWebsitesReportComponent, + OrgUserAddEditComponent, + OrgUserConfirmComponent, + OrgUserGroupsComponent, + OrgWeakPasswordsReportComponent, + GeneratorComponent, + PasswordGeneratorHistoryComponent, + PasswordGeneratorPolicyComponent, + PasswordRepromptComponent, + PasswordStrengthComponent, + PaymentComponent, + PaymentMethodComponent, + PersonalOwnershipPolicyComponent, + PreferencesComponent, + PremiumBadgeComponent, + PremiumComponent, + ProfileComponent, + ProvidersComponent, + PurgeVaultComponent, + RecoverDeleteComponent, + RecoverTwoFactorComponent, + RegisterComponent, + RemovePasswordComponent, + ReportCardComponent, + ReportListComponent, + ReportsComponent, + RequireSsoPolicyComponent, + ResetPasswordPolicyComponent, + ReusedPasswordsReportComponent, + SecurityComponent, + SecurityKeysComponent, + SendAddEditComponent, + SendComponent, + SendEffluxDatesComponent, + SendOptionsPolicyComponent, + SetPasswordComponent, + SettingsComponent, + ShareComponent, + SingleOrgPolicyComponent, + SponsoredFamiliesComponent, + SponsoringOrgRowComponent, + SsoComponent, + SubscriptionComponent, + TaxInfoComponent, + ToolsComponent, + TwoFactorAuthenticationPolicyComponent, + TwoFactorAuthenticatorComponent, + TwoFactorComponent, + TwoFactorDuoComponent, + TwoFactorEmailComponent, + TwoFactorOptionsComponent, + TwoFactorRecoveryComponent, + TwoFactorSetupComponent, + TwoFactorVerifyComponent, + TwoFactorWebAuthnComponent, + TwoFactorYubiKeyComponent, + UnsecuredWebsitesReportComponent, + UpdateKeyComponent, + UpdateLicenseComponent, + UpdatePasswordComponent, + UpdateTempPasswordComponent, + UserBillingHistoryComponent, + UserLayoutComponent, + UserSubscriptionComponent, + UserVerificationComponent, + VaultTimeoutInputComponent, + VerifyEmailComponent, + VerifyEmailTokenComponent, + VerifyRecoverDeleteComponent, + WeakPasswordsReportComponent, + ], +}) +export class LooseComponentsModule {} diff --git a/apps/web/src/app/modules/organizations/manage/entity-users.component.html b/apps/web/src/app/modules/organizations/manage/entity-users.component.html new file mode 100644 index 0000000000..f4c157a941 --- /dev/null +++ b/apps/web/src/app/modules/organizations/manage/entity-users.component.html @@ -0,0 +1,180 @@ + diff --git a/apps/web/src/app/modules/organizations/manage/entity-users.component.ts b/apps/web/src/app/modules/organizations/manage/entity-users.component.ts new file mode 100644 index 0000000000..5d81f65a64 --- /dev/null +++ b/apps/web/src/app/modules/organizations/manage/entity-users.component.ts @@ -0,0 +1,156 @@ +import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core"; + +import { SearchPipe } from "jslib-angular/pipes/search.pipe"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { OrganizationUserStatusType } from "jslib-common/enums/organizationUserStatusType"; +import { OrganizationUserType } from "jslib-common/enums/organizationUserType"; +import { Utils } from "jslib-common/misc/utils"; +import { SelectionReadOnlyRequest } from "jslib-common/models/request/selectionReadOnlyRequest"; +import { OrganizationUserUserDetailsResponse } from "jslib-common/models/response/organizationUserResponse"; + +@Component({ + selector: "app-entity-users", + templateUrl: "entity-users.component.html", + providers: [SearchPipe], +}) +export class EntityUsersComponent implements OnInit { + @Input() entity: "group" | "collection"; + @Input() entityId: string; + @Input() entityName: string; + @Input() organizationId: string; + @Output() onEditedUsers = new EventEmitter(); + + organizationUserType = OrganizationUserType; + organizationUserStatusType = OrganizationUserStatusType; + + showSelected = false; + loading = true; + formPromise: Promise; + selectedCount = 0; + searchText: string; + + private allUsers: OrganizationUserUserDetailsResponse[] = []; + + constructor( + private search: SearchPipe, + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private logService: LogService + ) {} + + async ngOnInit() { + await this.loadUsers(); + this.loading = false; + } + + get users() { + if (this.showSelected) { + return this.allUsers.filter((u) => (u as any).checked); + } else { + return this.allUsers; + } + } + + get searchedUsers() { + return this.search.transform(this.users, this.searchText, "name", "email", "id"); + } + + get scrollViewportStyle() { + return `min-height: 120px; height: ${120 + this.searchedUsers.length * 46}px`; + } + + async loadUsers() { + const users = await this.apiService.getOrganizationUsers(this.organizationId); + this.allUsers = users.data.map((r) => r).sort(Utils.getSortFunction(this.i18nService, "email")); + if (this.entity === "group") { + const response = await this.apiService.getGroupUsers(this.organizationId, this.entityId); + if (response != null && users.data.length > 0) { + response.forEach((s) => { + const user = users.data.filter((u) => u.id === s); + if (user != null && user.length > 0) { + (user[0] as any).checked = true; + } + }); + } + } else if (this.entity === "collection") { + const response = await this.apiService.getCollectionUsers(this.organizationId, this.entityId); + if (response != null && users.data.length > 0) { + response.forEach((s) => { + const user = users.data.filter((u) => !u.accessAll && u.id === s.id); + if (user != null && user.length > 0) { + (user[0] as any).checked = true; + (user[0] as any).readOnly = s.readOnly; + (user[0] as any).hidePasswords = s.hidePasswords; + } + }); + } + } + + this.allUsers.forEach((u) => { + if (this.entity === "collection" && u.accessAll) { + (u as any).checked = true; + } + if ((u as any).checked) { + this.selectedCount++; + } + }); + } + + check(u: OrganizationUserUserDetailsResponse) { + if (this.entity === "collection" && u.accessAll) { + return; + } + (u as any).checked = !(u as any).checked; + this.selectedChanged(u); + } + + selectedChanged(u: OrganizationUserUserDetailsResponse) { + if ((u as any).checked) { + this.selectedCount++; + } else { + if (this.entity === "collection") { + (u as any).readOnly = false; + (u as any).hidePasswords = false; + } + this.selectedCount--; + } + } + + filterSelected(showSelected: boolean) { + this.showSelected = showSelected; + } + + async submit() { + try { + if (this.entity === "group") { + const selections = this.users.filter((u) => (u as any).checked).map((u) => u.id); + this.formPromise = this.apiService.putGroupUsers( + this.organizationId, + this.entityId, + selections + ); + } else { + const selections = this.users + .filter((u) => (u as any).checked && !u.accessAll) + .map( + (u) => + new SelectionReadOnlyRequest(u.id, !!(u as any).readOnly, !!(u as any).hidePasswords) + ); + this.formPromise = this.apiService.putCollectionUsers( + this.organizationId, + this.entityId, + selections + ); + } + await this.formPromise; + this.platformUtilsService.showToast("success", null, this.i18nService.t("updatedUsers")); + this.onEditedUsers.emit(); + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/apps/web/src/app/modules/organizations/manage/organization-manage.module.ts b/apps/web/src/app/modules/organizations/manage/organization-manage.module.ts new file mode 100644 index 0000000000..263e3a4aff --- /dev/null +++ b/apps/web/src/app/modules/organizations/manage/organization-manage.module.ts @@ -0,0 +1,13 @@ +import { ScrollingModule } from "@angular/cdk/scrolling"; +import { NgModule } from "@angular/core"; + +import { SharedModule } from "../../shared.module"; + +import { EntityUsersComponent } from "./entity-users.component"; + +@NgModule({ + imports: [SharedModule, ScrollingModule], + declarations: [EntityUsersComponent], + exports: [EntityUsersComponent], +}) +export class OrganizationManageModule {} diff --git a/apps/web/src/app/modules/organizations/users/enroll-master-password-reset.component.html b/apps/web/src/app/modules/organizations/users/enroll-master-password-reset.component.html new file mode 100644 index 0000000000..c8d15a3956 --- /dev/null +++ b/apps/web/src/app/modules/organizations/users/enroll-master-password-reset.component.html @@ -0,0 +1,59 @@ + diff --git a/apps/web/src/app/modules/organizations/users/enroll-master-password-reset.component.ts b/apps/web/src/app/modules/organizations/users/enroll-master-password-reset.component.ts new file mode 100644 index 0000000000..b996493d85 --- /dev/null +++ b/apps/web/src/app/modules/organizations/users/enroll-master-password-reset.component.ts @@ -0,0 +1,97 @@ +import { Component } from "@angular/core"; + +import { ModalRef } from "jslib-angular/components/modal/modal.ref"; +import { ModalConfig } from "jslib-angular/services/modal.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; +import { Utils } from "jslib-common/misc/utils"; +import { Organization } from "jslib-common/models/domain/organization"; +import { OrganizationUserResetPasswordEnrollmentRequest } from "jslib-common/models/request/organizationUserResetPasswordEnrollmentRequest"; +import { Verification } from "jslib-common/types/verification"; + +@Component({ + selector: "app-enroll-master-password-reset", + templateUrl: "enroll-master-password-reset.component.html", +}) +export class EnrollMasterPasswordReset { + organization: Organization; + + verification: Verification; + formPromise: Promise; + + constructor( + private userVerificationService: UserVerificationService, + private apiService: ApiService, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private cryptoService: CryptoService, + private syncService: SyncService, + private logService: LogService, + private modalRef: ModalRef, + config: ModalConfig + ) { + this.organization = config.data.organization; + } + + async submit() { + let toastStringRef = "withdrawPasswordResetSuccess"; + + this.formPromise = this.userVerificationService + .buildRequest(this.verification, OrganizationUserResetPasswordEnrollmentRequest) + .then(async (request) => { + // Set variables + let keyString: string = null; + + // Enrolling + if (!this.organization.resetPasswordEnrolled) { + // Retrieve Public Key + const orgKeys = await this.apiService.getOrganizationKeys(this.organization.id); + if (orgKeys == null) { + throw new Error(this.i18nService.t("resetPasswordOrgKeysError")); + } + + const publicKey = Utils.fromB64ToArray(orgKeys.publicKey); + + // RSA Encrypt user's encKey.key with organization public key + const encKey = await this.cryptoService.getEncKey(); + const encryptedKey = await this.cryptoService.rsaEncrypt(encKey.key, publicKey.buffer); + keyString = encryptedKey.encryptedString; + toastStringRef = "enrollPasswordResetSuccess"; + + // Create request and execute enrollment + request.resetPasswordKey = keyString; + await this.apiService.putOrganizationUserResetPasswordEnrollment( + this.organization.id, + this.organization.userId, + request + ); + } else { + // Withdrawal + request.resetPasswordKey = keyString; + await this.apiService.putOrganizationUserResetPasswordEnrollment( + this.organization.id, + this.organization.userId, + request + ); + } + + await this.syncService.fullSync(true); + }); + try { + await this.formPromise; + this.platformUtilsService.showToast("success", null, this.i18nService.t(toastStringRef)); + this.modalRef.close(); + } catch (e) { + this.logService.error(e); + } + } + + get isEnrolled(): boolean { + return this.organization.resetPasswordEnrolled; + } +} diff --git a/apps/web/src/app/modules/organizations/users/organization-user.module.ts b/apps/web/src/app/modules/organizations/users/organization-user.module.ts new file mode 100644 index 0000000000..aed0ac6629 --- /dev/null +++ b/apps/web/src/app/modules/organizations/users/organization-user.module.ts @@ -0,0 +1,14 @@ +import { ScrollingModule } from "@angular/cdk/scrolling"; +import { NgModule } from "@angular/core"; + +import { LooseComponentsModule } from "../../loose-components.module"; +import { SharedModule } from "../../shared.module"; + +import { EnrollMasterPasswordReset } from "./enroll-master-password-reset.component"; + +@NgModule({ + imports: [SharedModule, ScrollingModule, LooseComponentsModule], + declarations: [EnrollMasterPasswordReset], + exports: [EnrollMasterPasswordReset], +}) +export class OrganizationUserModule {} diff --git a/apps/web/src/app/modules/pipes/get-organization-name.pipe.ts b/apps/web/src/app/modules/pipes/get-organization-name.pipe.ts new file mode 100644 index 0000000000..5745933c3a --- /dev/null +++ b/apps/web/src/app/modules/pipes/get-organization-name.pipe.ts @@ -0,0 +1,14 @@ +import { Pipe, PipeTransform } from "@angular/core"; + +import { Organization } from "jslib-common/models/domain/organization"; + +@Pipe({ + name: "orgNameFromId", + pure: true, +}) +export class GetOrgNameFromIdPipe implements PipeTransform { + transform(value: string, organizations: Organization[]) { + const orgName = organizations.find((o) => o.id === value)?.name; + return orgName; + } +} diff --git a/apps/web/src/app/modules/pipes/pipes.module.ts b/apps/web/src/app/modules/pipes/pipes.module.ts new file mode 100644 index 0000000000..19015baec9 --- /dev/null +++ b/apps/web/src/app/modules/pipes/pipes.module.ts @@ -0,0 +1,10 @@ +import { NgModule } from "@angular/core"; + +import { GetOrgNameFromIdPipe } from "./get-organization-name.pipe"; + +@NgModule({ + imports: [], + declarations: [GetOrgNameFromIdPipe], + exports: [GetOrgNameFromIdPipe], +}) +export class PipesModule {} diff --git a/apps/web/src/app/modules/shared.module.ts b/apps/web/src/app/modules/shared.module.ts new file mode 100644 index 0000000000..2455bd03fc --- /dev/null +++ b/apps/web/src/app/modules/shared.module.ts @@ -0,0 +1,149 @@ +import { DragDropModule } from "@angular/cdk/drag-drop"; +import { DatePipe, registerLocaleData, CommonModule } from "@angular/common"; +import localeAf from "@angular/common/locales/af"; +import localeAz from "@angular/common/locales/az"; +import localeBe from "@angular/common/locales/be"; +import localeBg from "@angular/common/locales/bg"; +import localeBn from "@angular/common/locales/bn"; +import localeBs from "@angular/common/locales/bs"; +import localeCa from "@angular/common/locales/ca"; +import localeCs from "@angular/common/locales/cs"; +import localeDa from "@angular/common/locales/da"; +import localeDe from "@angular/common/locales/de"; +import localeEl from "@angular/common/locales/el"; +import localeEnGb from "@angular/common/locales/en-GB"; +import localeEnIn from "@angular/common/locales/en-IN"; +import localeEo from "@angular/common/locales/eo"; +import localeEs from "@angular/common/locales/es"; +import localeEt from "@angular/common/locales/et"; +import localeFi from "@angular/common/locales/fi"; +import localeFil from "@angular/common/locales/fil"; +import localeFr from "@angular/common/locales/fr"; +import localeHe from "@angular/common/locales/he"; +import localeHi from "@angular/common/locales/hi"; +import localeHr from "@angular/common/locales/hr"; +import localeHu from "@angular/common/locales/hu"; +import localeId from "@angular/common/locales/id"; +import localeIt from "@angular/common/locales/it"; +import localeJa from "@angular/common/locales/ja"; +import localeKa from "@angular/common/locales/ka"; +import localeKm from "@angular/common/locales/km"; +import localeKn from "@angular/common/locales/kn"; +import localeKo from "@angular/common/locales/ko"; +import localeLv from "@angular/common/locales/lv"; +import localeMl from "@angular/common/locales/ml"; +import localeNb from "@angular/common/locales/nb"; +import localeNl from "@angular/common/locales/nl"; +import localeNn from "@angular/common/locales/nn"; +import localePl from "@angular/common/locales/pl"; +import localePtBr from "@angular/common/locales/pt"; +import localePtPt from "@angular/common/locales/pt-PT"; +import localeRo from "@angular/common/locales/ro"; +import localeRu from "@angular/common/locales/ru"; +import localeSi from "@angular/common/locales/si"; +import localeSk from "@angular/common/locales/sk"; +import localeSl from "@angular/common/locales/sl"; +import localeSr from "@angular/common/locales/sr"; +import localeSv from "@angular/common/locales/sv"; +import localeTr from "@angular/common/locales/tr"; +import localeUk from "@angular/common/locales/uk"; +import localeVi from "@angular/common/locales/vi"; +import localeZhCn from "@angular/common/locales/zh-Hans"; +import localeZhTw from "@angular/common/locales/zh-Hant"; +import { NgModule } from "@angular/core"; +import { FormsModule, ReactiveFormsModule } from "@angular/forms"; +import { RouterModule } from "@angular/router"; +import { BadgeModule, ButtonModule, CalloutModule, MenuModule } from "@bitwarden/components"; +import { InfiniteScrollModule } from "ngx-infinite-scroll"; +import { ToastrModule } from "ngx-toastr"; + +import { JslibModule } from "jslib-angular/jslib.module"; + +registerLocaleData(localeAf, "af"); +registerLocaleData(localeAz, "az"); +registerLocaleData(localeBe, "be"); +registerLocaleData(localeBg, "bg"); +registerLocaleData(localeBn, "bn"); +registerLocaleData(localeBs, "bs"); +registerLocaleData(localeCa, "ca"); +registerLocaleData(localeCs, "cs"); +registerLocaleData(localeDa, "da"); +registerLocaleData(localeDe, "de"); +registerLocaleData(localeEl, "el"); +registerLocaleData(localeEnGb, "en-GB"); +registerLocaleData(localeEnIn, "en-IN"); +registerLocaleData(localeEo, "eo"); +registerLocaleData(localeEs, "es"); +registerLocaleData(localeEt, "et"); +registerLocaleData(localeFi, "fi"); +registerLocaleData(localeFil, "fil"); +registerLocaleData(localeFr, "fr"); +registerLocaleData(localeHe, "he"); +registerLocaleData(localeHi, "hi"); +registerLocaleData(localeHr, "hr"); +registerLocaleData(localeHu, "hu"); +registerLocaleData(localeId, "id"); +registerLocaleData(localeIt, "it"); +registerLocaleData(localeJa, "ja"); +registerLocaleData(localeKa, "ka"); +registerLocaleData(localeKm, "km"); +registerLocaleData(localeKn, "kn"); +registerLocaleData(localeKo, "ko"); +registerLocaleData(localeLv, "lv"); +registerLocaleData(localeMl, "ml"); +registerLocaleData(localeNb, "nb"); +registerLocaleData(localeNl, "nl"); +registerLocaleData(localeNn, "nn"); +registerLocaleData(localePl, "pl"); +registerLocaleData(localePtBr, "pt-BR"); +registerLocaleData(localePtPt, "pt-PT"); +registerLocaleData(localeRo, "ro"); +registerLocaleData(localeRu, "ru"); +registerLocaleData(localeSi, "si"); +registerLocaleData(localeSk, "sk"); +registerLocaleData(localeSl, "sl"); +registerLocaleData(localeSr, "sr"); +registerLocaleData(localeSv, "sv"); +registerLocaleData(localeTr, "tr"); +registerLocaleData(localeUk, "uk"); +registerLocaleData(localeVi, "vi"); +registerLocaleData(localeZhCn, "zh-CN"); +registerLocaleData(localeZhTw, "zh-TW"); + +@NgModule({ + imports: [ + CommonModule, + DragDropModule, + FormsModule, + InfiniteScrollModule, + JslibModule, + ReactiveFormsModule, + RouterModule, + BadgeModule, + ButtonModule, + CalloutModule, + ToastrModule, + BadgeModule, + ButtonModule, + MenuModule, + ], + exports: [ + CommonModule, + DragDropModule, + FormsModule, + InfiniteScrollModule, + JslibModule, + ReactiveFormsModule, + RouterModule, + BadgeModule, + ButtonModule, + CalloutModule, + ToastrModule, + BadgeModule, + ButtonModule, + MenuModule, + ], + providers: [DatePipe], + bootstrap: [], +}) +export class SharedModule {} diff --git a/apps/web/src/app/modules/vault-filter/components/collection-filter.component.html b/apps/web/src/app/modules/vault-filter/components/collection-filter.component.html new file mode 100644 index 0000000000..24463dca19 --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/components/collection-filter.component.html @@ -0,0 +1,74 @@ + +
+ +

 {{ collectionsGrouping.name | i18n }}

+
+
    + +
  • + + + + +
      + + +
    +
  • +
    + + +
+
diff --git a/apps/web/src/app/modules/vault-filter/components/collection-filter.component.ts b/apps/web/src/app/modules/vault-filter/components/collection-filter.component.ts new file mode 100644 index 0000000000..e08c724a5a --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/components/collection-filter.component.ts @@ -0,0 +1,9 @@ +import { Component } from "@angular/core"; + +import { CollectionFilterComponent as BaseCollectionFilterComponent } from "jslib-angular/modules/vault-filter/components/collection-filter.component"; + +@Component({ + selector: "app-collection-filter", + templateUrl: "collection-filter.component.html", +}) +export class CollectionFilterComponent extends BaseCollectionFilterComponent {} diff --git a/apps/web/src/app/modules/vault-filter/components/folder-filter.component.html b/apps/web/src/app/modules/vault-filter/components/folder-filter.component.html new file mode 100644 index 0000000000..9e89e28dcb --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/components/folder-filter.component.html @@ -0,0 +1,82 @@ + +
+ +

 {{ "folders" | i18n }}

+ +
+
    + +
  • + + + + + +
      + + +
    +
  • +
    + +
+
diff --git a/apps/web/src/app/modules/vault-filter/components/folder-filter.component.ts b/apps/web/src/app/modules/vault-filter/components/folder-filter.component.ts new file mode 100644 index 0000000000..6205239f77 --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/components/folder-filter.component.ts @@ -0,0 +1,9 @@ +import { Component } from "@angular/core"; + +import { FolderFilterComponent as BaseFolderFilterComponent } from "jslib-angular/modules/vault-filter/components/folder-filter.component"; + +@Component({ + selector: "app-folder-filter", + templateUrl: "folder-filter.component.html", +}) +export class FolderFilterComponent extends BaseFolderFilterComponent {} diff --git a/apps/web/src/app/modules/vault-filter/components/link-sso.component.html b/apps/web/src/app/modules/vault-filter/components/link-sso.component.html new file mode 100644 index 0000000000..c76d205597 --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/components/link-sso.component.html @@ -0,0 +1,4 @@ + + + {{ "linkSso" | i18n }} + diff --git a/apps/web/src/app/modules/vault-filter/components/link-sso.component.ts b/apps/web/src/app/modules/vault-filter/components/link-sso.component.ts new file mode 100644 index 0000000000..e86eeb7377 --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/components/link-sso.component.ts @@ -0,0 +1,59 @@ +import { AfterContentInit, Component, Input } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; + +import { SsoComponent } from "jslib-angular/components/sso.component"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { AuthService } from "jslib-common/abstractions/auth.service"; +import { CryptoFunctionService } from "jslib-common/abstractions/cryptoFunction.service"; +import { EnvironmentService } from "jslib-common/abstractions/environment.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { Organization } from "jslib-common/models/domain/organization"; + +@Component({ + selector: "app-link-sso", + templateUrl: "link-sso.component.html", +}) +export class LinkSsoComponent extends SsoComponent implements AfterContentInit { + @Input() organization: Organization; + returnUri = "/settings/organizations"; + + constructor( + platformUtilsService: PlatformUtilsService, + i18nService: I18nService, + apiService: ApiService, + authService: AuthService, + router: Router, + route: ActivatedRoute, + cryptoFunctionService: CryptoFunctionService, + passwordGenerationService: PasswordGenerationService, + stateService: StateService, + environmentService: EnvironmentService, + logService: LogService + ) { + super( + authService, + router, + i18nService, + route, + stateService, + platformUtilsService, + apiService, + cryptoFunctionService, + environmentService, + passwordGenerationService, + logService + ); + + this.returnUri = "/settings/organizations"; + this.redirectUri = window.location.origin + "/sso-connector.html"; + this.clientId = "web"; + } + + async ngAfterContentInit() { + this.identifier = this.organization.identifier; + } +} diff --git a/apps/web/src/app/modules/vault-filter/components/organization-filter.component.html b/apps/web/src/app/modules/vault-filter/components/organization-filter.component.html new file mode 100644 index 0000000000..0c4bf90eb1 --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/components/organization-filter.component.html @@ -0,0 +1,155 @@ + + + + + + +
+ + +
+ +
+ +
+ +
+
+ +
+ + +
+ +
+
+
+
diff --git a/apps/web/src/app/modules/vault-filter/components/organization-filter.component.ts b/apps/web/src/app/modules/vault-filter/components/organization-filter.component.ts new file mode 100644 index 0000000000..30241acd95 --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/components/organization-filter.component.ts @@ -0,0 +1,11 @@ +import { Component } from "@angular/core"; + +import { OrganizationFilterComponent as BaseOrganizationFilterComponent } from "jslib-angular/modules/vault-filter/components/organization-filter.component"; + +@Component({ + selector: "app-organization-filter", + templateUrl: "organization-filter.component.html", +}) +export class OrganizationFilterComponent extends BaseOrganizationFilterComponent { + displayText = "allVaults"; +} diff --git a/apps/web/src/app/modules/vault-filter/components/organization-options.component.html b/apps/web/src/app/modules/vault-filter/components/organization-options.component.html new file mode 100644 index 0000000000..db95e56ecd --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/components/organization-options.component.html @@ -0,0 +1,43 @@ + + + {{ "loading" | i18n }} + +
+ + + + + + + + + +
diff --git a/apps/web/src/app/modules/vault-filter/components/organization-options.component.ts b/apps/web/src/app/modules/vault-filter/components/organization-options.component.ts new file mode 100644 index 0000000000..fb256acd58 --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/components/organization-options.component.ts @@ -0,0 +1,123 @@ +import { Component, Input } from "@angular/core"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { PolicyType } from "jslib-common/enums/policyType"; +import { Organization } from "jslib-common/models/domain/organization"; +import { Policy } from "jslib-common/models/domain/policy"; + +import { EnrollMasterPasswordReset } from "../../organizations/users/enroll-master-password-reset.component"; + +@Component({ + selector: "app-organization-options", + templateUrl: "organization-options.component.html", +}) +export class OrganizationOptionsComponent { + actionPromise: Promise; + policies: Policy[]; + loaded = false; + + @Input() organization: Organization; + + constructor( + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private apiService: ApiService, + private syncService: SyncService, + private policyService: PolicyService, + private modalService: ModalService, + private logService: LogService + ) {} + + async ngOnInit() { + await this.load(); + } + + async load() { + this.policies = await this.policyService.getAll(PolicyType.ResetPassword); + this.loaded = true; + } + + allowEnrollmentChanges(org: Organization): boolean { + if (org.usePolicies && org.useResetPassword && org.hasPublicAndPrivateKeys) { + const policy = this.policies.find((p) => p.organizationId === org.id); + if (policy != null && policy.enabled) { + return org.resetPasswordEnrolled && policy.data.autoEnrollEnabled ? false : true; + } + } + + return false; + } + + showEnrolledStatus(org: Organization): boolean { + return ( + org.useResetPassword && + org.resetPasswordEnrolled && + this.policies.some((p) => p.organizationId === org.id && p.enabled) + ); + } + + async unlinkSso(org: Organization) { + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("unlinkSsoConfirmation"), + org.name, + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!confirmed) { + return false; + } + + try { + this.actionPromise = this.apiService.deleteSsoUser(org.id).then(() => { + return this.syncService.fullSync(true); + }); + await this.actionPromise; + this.platformUtilsService.showToast("success", null, "Unlinked SSO"); + await this.load(); + } catch (e) { + this.platformUtilsService.showToast("error", this.i18nService.t("errorOccurred"), e.message); + this.logService.error(e); + } + } + + async leave(org: Organization) { + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("leaveOrganizationConfirmation"), + org.name, + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!confirmed) { + return false; + } + + try { + this.actionPromise = this.apiService.postLeaveOrganization(org.id).then(() => { + return this.syncService.fullSync(true); + }); + await this.actionPromise; + this.platformUtilsService.showToast("success", null, this.i18nService.t("leftOrganization")); + await this.load(); + } catch (e) { + this.platformUtilsService.showToast("error", this.i18nService.t("errorOccurred"), e.message); + this.logService.error(e); + } + } + + async toggleResetPasswordEnrollment(org: Organization) { + this.modalService.open(EnrollMasterPasswordReset, { + allowMultipleModals: true, + data: { + organization: org, + }, + }); + } +} diff --git a/apps/web/src/app/modules/vault-filter/components/status-filter.component.html b/apps/web/src/app/modules/vault-filter/components/status-filter.component.html new file mode 100644 index 0000000000..28c58c70be --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/components/status-filter.component.html @@ -0,0 +1,33 @@ + +
    +
  • + + + +
  • +
  • + + + +
  • +
  • + + + +
  • +
+
diff --git a/apps/web/src/app/modules/vault-filter/components/status-filter.component.ts b/apps/web/src/app/modules/vault-filter/components/status-filter.component.ts new file mode 100644 index 0000000000..c7c38aa6aa --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/components/status-filter.component.ts @@ -0,0 +1,9 @@ +import { Component } from "@angular/core"; + +import { StatusFilterComponent as BaseStatusFilterComponent } from "jslib-angular/modules/vault-filter/components/status-filter.component"; + +@Component({ + selector: "app-status-filter", + templateUrl: "status-filter.component.html", +}) +export class StatusFilterComponent extends BaseStatusFilterComponent {} diff --git a/apps/web/src/app/modules/vault-filter/components/type-filter.component.html b/apps/web/src/app/modules/vault-filter/components/type-filter.component.html new file mode 100644 index 0000000000..1149b0e95b --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/components/type-filter.component.html @@ -0,0 +1,60 @@ +
+ +

 {{ "types" | i18n }}

+
+
    +
  • + + + +
  • +
  • + + + +
  • +
  • + + + +
  • +
  • + + + +
  • +
diff --git a/apps/web/src/app/modules/vault-filter/components/type-filter.component.ts b/apps/web/src/app/modules/vault-filter/components/type-filter.component.ts new file mode 100644 index 0000000000..794fc49787 --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/components/type-filter.component.ts @@ -0,0 +1,9 @@ +import { Component } from "@angular/core"; + +import { TypeFilterComponent as BaseTypeFilterComponent } from "jslib-angular/modules/vault-filter/components/type-filter.component"; + +@Component({ + selector: "app-type-filter", + templateUrl: "type-filter.component.html", +}) +export class TypeFilterComponent extends BaseTypeFilterComponent {} diff --git a/apps/web/src/app/modules/vault-filter/vault-filter.component.html b/apps/web/src/app/modules/vault-filter/vault-filter.component.html new file mode 100644 index 0000000000..e707474436 --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/vault-filter.component.html @@ -0,0 +1,80 @@ +
+
+ +
+
+
+ {{ "filters" | i18n }} + + + +
+
+ + +
+ +
+
+ +
+
+ +
+
+ +
+
+
+
diff --git a/apps/web/src/app/modules/vault-filter/vault-filter.component.ts b/apps/web/src/app/modules/vault-filter/vault-filter.component.ts new file mode 100644 index 0000000000..4442e0abc6 --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/vault-filter.component.ts @@ -0,0 +1,34 @@ +import { Component, EventEmitter, Input, Output } from "@angular/core"; + +import { VaultFilterComponent as BaseVaultFilterComponent } from "jslib-angular/modules/vault-filter/vault-filter.component"; +import { VaultFilterService } from "jslib-angular/modules/vault-filter/vault-filter.service"; +import { Organization } from "jslib-common/models/domain/organization"; + +@Component({ + selector: "app-vault-filter", + templateUrl: "vault-filter.component.html", +}) +export class VaultFilterComponent extends BaseVaultFilterComponent { + @Input() showOrgFilter = true; + @Input() showFolders = true; + @Input() showFavorites = true; + + @Output() onSearchTextChanged = new EventEmitter(); + + searchPlaceholder: string; + searchText = ""; + + organization: Organization; + + constructor(vaultFilterService: VaultFilterService) { + super(vaultFilterService); + } + + searchTextChanged() { + this.onSearchTextChanged.emit(this.searchText); + } + + async initCollections() { + return await this.vaultFilterService.buildCollections(this.organization?.id); + } +} diff --git a/apps/web/src/app/modules/vault-filter/vault-filter.module.ts b/apps/web/src/app/modules/vault-filter/vault-filter.module.ts new file mode 100644 index 0000000000..bf7cb3d517 --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/vault-filter.module.ts @@ -0,0 +1,50 @@ +import { NgModule } from "@angular/core"; + +import { VaultFilterService } from "jslib-angular/modules/vault-filter/vault-filter.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { CollectionService } from "jslib-common/abstractions/collection.service"; +import { FolderService } from "jslib-common/abstractions/folder.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { StateService } from "jslib-common/abstractions/state.service"; + +import { SharedModule } from "../shared.module"; + +import { CollectionFilterComponent } from "./components/collection-filter.component"; +import { FolderFilterComponent } from "./components/folder-filter.component"; +import { LinkSsoComponent } from "./components/link-sso.component"; +import { OrganizationFilterComponent } from "./components/organization-filter.component"; +import { OrganizationOptionsComponent } from "./components/organization-options.component"; +import { StatusFilterComponent } from "./components/status-filter.component"; +import { TypeFilterComponent } from "./components/type-filter.component"; +import { VaultFilterComponent } from "./vault-filter.component"; + +@NgModule({ + imports: [SharedModule], + declarations: [ + VaultFilterComponent, + CollectionFilterComponent, + FolderFilterComponent, + OrganizationFilterComponent, + OrganizationOptionsComponent, + StatusFilterComponent, + TypeFilterComponent, + LinkSsoComponent, + ], + exports: [VaultFilterComponent], + providers: [ + { + provide: VaultFilterService, + useClass: VaultFilterService, + deps: [ + StateService, + OrganizationService, + FolderService, + CipherService, + CollectionService, + PolicyService, + ], + }, + ], +}) +export class VaultFilterModule {} diff --git a/apps/web/src/app/modules/vault-filter/vault-filter.service.ts b/apps/web/src/app/modules/vault-filter/vault-filter.service.ts new file mode 100644 index 0000000000..01b9d50b58 --- /dev/null +++ b/apps/web/src/app/modules/vault-filter/vault-filter.service.ts @@ -0,0 +1,3 @@ +import { VaultFilterService as BaseVaultFilterService } from "jslib-angular/modules/vault-filter/vault-filter.service"; + +export class VaultFilterService extends BaseVaultFilterService {} diff --git a/apps/web/src/app/modules/vault/modules/individual-vault/individual-vault-routing.module.ts b/apps/web/src/app/modules/vault/modules/individual-vault/individual-vault-routing.module.ts new file mode 100644 index 0000000000..7891ba3f44 --- /dev/null +++ b/apps/web/src/app/modules/vault/modules/individual-vault/individual-vault-routing.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from "@angular/core"; +import { RouterModule, Routes } from "@angular/router"; + +import { IndividualVaultComponent } from "./individual-vault.component"; +const routes: Routes = [ + { + path: "", + component: IndividualVaultComponent, + data: { titleId: "vaults" }, + }, +]; +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class IndividualVaultRoutingModule {} diff --git a/apps/web/src/app/modules/vault/modules/individual-vault/individual-vault.component.html b/apps/web/src/app/modules/vault/modules/individual-vault/individual-vault.component.html new file mode 100644 index 0000000000..151354e4dc --- /dev/null +++ b/apps/web/src/app/modules/vault/modules/individual-vault/individual-vault.component.html @@ -0,0 +1,121 @@ +
+
+
+
+
+
+ +
+
+
+
+
+ + + {{ trashCleanupWarning }} + + + +
+
+
+
+ + {{ "updateKeyTitle" | i18n }} +
+
+

{{ "updateEncryptionKeyShortDesc" | i18n }}

+ +
+
+ +
+
+ + {{ "updateBrowser" | i18n }} +
+
+

{{ "updateBrowserDesc" | i18n }}

+ + {{ "updateBrowser" | i18n }} + +
+
+
+
+ {{ "goPremium" | i18n }} +
+
+

{{ "premiumUpgradeUnlockFeatures" | i18n }}

+ + {{ "goPremium" | i18n }} + +
+
+
+
+
+ + + + + + diff --git a/apps/web/src/app/modules/vault/modules/individual-vault/individual-vault.component.ts b/apps/web/src/app/modules/vault/modules/individual-vault/individual-vault.component.ts new file mode 100644 index 0000000000..ababbd8a30 --- /dev/null +++ b/apps/web/src/app/modules/vault/modules/individual-vault/individual-vault.component.ts @@ -0,0 +1,415 @@ +import { + ChangeDetectorRef, + Component, + NgZone, + OnDestroy, + OnInit, + ViewChild, + ViewContainerRef, +} from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; +import { first } from "rxjs/operators"; + +import { VaultFilter } from "jslib-angular/modules/vault-filter/models/vault-filter.model"; +import { ModalService } from "jslib-angular/services/modal.service"; +import { BroadcasterService } from "jslib-common/abstractions/broadcaster.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { TokenService } from "jslib-common/abstractions/token.service"; +import { CipherType } from "jslib-common/enums/cipherType"; +import { CipherView } from "jslib-common/models/view/cipherView"; + +import { UpdateKeyComponent } from "../../../../settings/update-key.component"; +import { AddEditComponent } from "../../../../vault/add-edit.component"; +import { AttachmentsComponent } from "../../../../vault/attachments.component"; +import { CiphersComponent } from "../../../../vault/ciphers.component"; +import { CollectionsComponent } from "../../../../vault/collections.component"; +import { FolderAddEditComponent } from "../../../../vault/folder-add-edit.component"; +import { ShareComponent } from "../../../../vault/share.component"; +import { VaultFilterComponent } from "../../../vault-filter/vault-filter.component"; +import { VaultService } from "../../vault.service"; + +const BroadcasterSubscriptionId = "VaultComponent"; + +@Component({ + selector: "app-vault", + templateUrl: "individual-vault.component.html", +}) +export class IndividualVaultComponent implements OnInit, OnDestroy { + @ViewChild("vaultFilter", { static: true }) filterComponent: VaultFilterComponent; + @ViewChild(CiphersComponent, { static: true }) ciphersComponent: CiphersComponent; + @ViewChild("attachments", { read: ViewContainerRef, static: true }) + attachmentsModalRef: ViewContainerRef; + @ViewChild("folderAddEdit", { read: ViewContainerRef, static: true }) + folderAddEditModalRef: ViewContainerRef; + @ViewChild("cipherAddEdit", { read: ViewContainerRef, static: true }) + cipherAddEditModalRef: ViewContainerRef; + @ViewChild("share", { read: ViewContainerRef, static: true }) shareModalRef: ViewContainerRef; + @ViewChild("collections", { read: ViewContainerRef, static: true }) + collectionsModalRef: ViewContainerRef; + @ViewChild("updateKeyTemplate", { read: ViewContainerRef, static: true }) + updateKeyModalRef: ViewContainerRef; + + favorites = false; + folderId: string = null; + collectionId: string = null; + organizationId: string = null; + myVaultOnly = false; + showVerifyEmail = false; + showBrowserOutdated = false; + showUpdateKey = false; + showPremiumCallout = false; + deleted = false; + trashCleanupWarning: string = null; + activeFilter: VaultFilter = new VaultFilter(); + + constructor( + private syncService: SyncService, + private route: ActivatedRoute, + private router: Router, + private changeDetectorRef: ChangeDetectorRef, + private i18nService: I18nService, + private modalService: ModalService, + private tokenService: TokenService, + private cryptoService: CryptoService, + private messagingService: MessagingService, + private platformUtilsService: PlatformUtilsService, + private broadcasterService: BroadcasterService, + private ngZone: NgZone, + private stateService: StateService, + private organizationService: OrganizationService, + private vaultService: VaultService, + private cipherService: CipherService, + private passwordRepromptService: PasswordRepromptService + ) {} + + async ngOnInit() { + this.showVerifyEmail = !(await this.tokenService.getEmailVerified()); + this.showBrowserOutdated = window.navigator.userAgent.indexOf("MSIE") !== -1; + this.trashCleanupWarning = this.i18nService.t( + this.platformUtilsService.isSelfHost() + ? "trashCleanupWarningSelfHosted" + : "trashCleanupWarning" + ); + + this.route.queryParams.pipe(first()).subscribe(async (params) => { + await this.syncService.fullSync(false); + const canAccessPremium = await this.stateService.getCanAccessPremium(); + this.showPremiumCallout = + !this.showVerifyEmail && !canAccessPremium && !this.platformUtilsService.isSelfHost(); + + this.filterComponent.reloadCollectionsAndFolders(this.activeFilter); + this.filterComponent.reloadOrganizations(); + this.showUpdateKey = !(await this.cryptoService.hasEncKey()); + + if (params.cipherId) { + const cipherView = new CipherView(); + cipherView.id = params.cipherId; + if (params.action === "clone") { + await this.cloneCipher(cipherView); + } else if (params.action === "edit") { + await this.editCipher(cipherView); + } + } + await this.ciphersComponent.reload(); + + this.route.queryParams.subscribe(async (params) => { + if (params.cipherId) { + if ((await this.cipherService.get(params.cipherId)) != null) { + this.editCipherId(params.cipherId); + } else { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("unknownCipher") + ); + this.router.navigate([], { + queryParams: { cipherId: null }, + queryParamsHandling: "merge", + }); + } + } + }); + + this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => { + this.ngZone.run(async () => { + switch (message.command) { + case "syncCompleted": + if (message.successfully) { + await Promise.all([ + this.filterComponent.reloadCollectionsAndFolders(this.activeFilter), + this.filterComponent.reloadOrganizations(), + this.ciphersComponent.load(this.ciphersComponent.filter), + ]); + this.changeDetectorRef.detectChanges(); + } + break; + } + }); + }); + }); + } + + get isShowingCards() { + return ( + this.showBrowserOutdated || + this.showPremiumCallout || + this.showUpdateKey || + this.showVerifyEmail + ); + } + + ngOnDestroy() { + this.broadcasterService.unsubscribe(BroadcasterSubscriptionId); + } + + async applyVaultFilter(vaultFilter: VaultFilter) { + this.ciphersComponent.showAddNew = vaultFilter.status !== "trash"; + this.activeFilter = vaultFilter; + await this.ciphersComponent.reload(this.buildFilter(), vaultFilter.status === "trash"); + this.filterComponent.searchPlaceholder = this.vaultService.calculateSearchBarLocalizationString( + this.activeFilter + ); + this.go(); + } + + async applyOrganizationFilter(orgId: string) { + if (orgId == null) { + this.activeFilter.resetOrganization(); + this.activeFilter.myVaultOnly = true; + } else { + this.activeFilter.selectedOrganizationId = orgId; + } + await this.applyVaultFilter(this.activeFilter); + } + + filterSearchText(searchText: string) { + this.ciphersComponent.searchText = searchText; + this.ciphersComponent.search(200); + } + + private buildFilter(): (cipher: CipherView) => boolean { + return (cipher) => { + let cipherPassesFilter = true; + if (this.activeFilter.status === "favorites" && cipherPassesFilter) { + cipherPassesFilter = cipher.favorite; + } + if (this.activeFilter.status === "trash" && cipherPassesFilter) { + cipherPassesFilter = cipher.isDeleted; + } + if (this.activeFilter.cipherType != null && cipherPassesFilter) { + cipherPassesFilter = cipher.type === this.activeFilter.cipherType; + } + if ( + this.activeFilter.selectedFolder && + this.activeFilter.selectedFolderId != "none" && + cipherPassesFilter + ) { + cipherPassesFilter = cipher.folderId === this.activeFilter.selectedFolderId; + } + if (this.activeFilter.selectedCollectionId != null && cipherPassesFilter) { + cipherPassesFilter = + cipher.collectionIds != null && + cipher.collectionIds.indexOf(this.activeFilter.selectedCollectionId) > -1; + } + if (this.activeFilter.selectedOrganizationId != null && cipherPassesFilter) { + cipherPassesFilter = cipher.organizationId === this.activeFilter.selectedOrganizationId; + } + if (this.activeFilter.myVaultOnly && cipherPassesFilter) { + cipherPassesFilter = cipher.organizationId === null; + } + return cipherPassesFilter; + }; + } + + async editCipherAttachments(cipher: CipherView) { + const canAccessPremium = await this.stateService.getCanAccessPremium(); + if (cipher.organizationId == null && !canAccessPremium) { + this.messagingService.send("premiumRequired"); + return; + } else if (cipher.organizationId != null) { + const org = await this.organizationService.get(cipher.organizationId); + if (org != null && (org.maxStorageGb == null || org.maxStorageGb === 0)) { + this.messagingService.send("upgradeOrganization", { + organizationId: cipher.organizationId, + }); + return; + } + } + + let madeAttachmentChanges = false; + const [modal] = await this.modalService.openViewRef( + AttachmentsComponent, + this.attachmentsModalRef, + (comp) => { + comp.cipherId = cipher.id; + comp.onUploadedAttachment.subscribe(() => (madeAttachmentChanges = true)); + comp.onDeletedAttachment.subscribe(() => (madeAttachmentChanges = true)); + comp.onReuploadedAttachment.subscribe(() => (madeAttachmentChanges = true)); + } + ); + + modal.onClosed.subscribe(async () => { + if (madeAttachmentChanges) { + await this.ciphersComponent.refresh(); + } + madeAttachmentChanges = false; + }); + } + + async shareCipher(cipher: CipherView) { + const [modal] = await this.modalService.openViewRef( + ShareComponent, + this.shareModalRef, + (comp) => { + comp.cipherId = cipher.id; + comp.onSharedCipher.subscribe(async () => { + modal.close(); + await this.ciphersComponent.refresh(); + }); + } + ); + } + + async editCipherCollections(cipher: CipherView) { + const [modal] = await this.modalService.openViewRef( + CollectionsComponent, + this.collectionsModalRef, + (comp) => { + comp.cipherId = cipher.id; + comp.onSavedCollections.subscribe(async () => { + modal.close(); + await this.ciphersComponent.refresh(); + }); + } + ); + } + + async addFolder() { + const [modal] = await this.modalService.openViewRef( + FolderAddEditComponent, + this.folderAddEditModalRef, + (comp) => { + comp.folderId = null; + comp.onSavedFolder.subscribe(async () => { + modal.close(); + await this.filterComponent.reloadCollectionsAndFolders(this.activeFilter); + }); + } + ); + } + + async editFolder(folderId: string) { + const [modal] = await this.modalService.openViewRef( + FolderAddEditComponent, + this.folderAddEditModalRef, + (comp) => { + comp.folderId = folderId; + comp.onSavedFolder.subscribe(async () => { + modal.close(); + await this.filterComponent.reloadCollectionsAndFolders(this.activeFilter); + }); + comp.onDeletedFolder.subscribe(async () => { + modal.close(); + await this.filterComponent.reloadCollectionsAndFolders(this.activeFilter); + }); + } + ); + } + + async addCipher() { + const component = await this.editCipher(null); + component.type = this.activeFilter.cipherType; + component.folderId = this.folderId === "none" ? null : this.folderId; + if (this.activeFilter.selectedCollectionId != null) { + const collection = this.filterComponent.collections.fullList.filter( + (c) => c.id === this.activeFilter.selectedCollectionId + ); + if (collection.length > 0) { + component.organizationId = collection[0].organizationId; + component.collectionIds = [this.activeFilter.selectedCollectionId]; + } + } + if (this.activeFilter.selectedFolderId && this.activeFilter.selectedFolder) { + component.folderId = this.activeFilter.selectedFolderId; + } + if (this.activeFilter.selectedOrganizationId) { + component.organizationId = this.activeFilter.selectedOrganizationId; + } + } + + async editCipher(cipher: CipherView) { + return this.editCipherId(cipher?.id); + } + + async editCipherId(id: string) { + const cipher = await this.cipherService.get(id); + if (cipher != null && cipher.reprompt != 0) { + if (!(await this.passwordRepromptService.showPasswordPrompt())) { + this.go({ cipherId: null }); + return; + } + } + + const [modal, childComponent] = await this.modalService.openViewRef( + AddEditComponent, + this.cipherAddEditModalRef, + (comp) => { + comp.cipherId = id; + comp.onSavedCipher.subscribe(async () => { + modal.close(); + await this.ciphersComponent.refresh(); + }); + comp.onDeletedCipher.subscribe(async () => { + modal.close(); + await this.ciphersComponent.refresh(); + }); + comp.onRestoredCipher.subscribe(async () => { + modal.close(); + await this.ciphersComponent.refresh(); + }); + } + ); + + modal.onClosedPromise().then(() => { + this.go({ cipherId: null }); + }); + + return childComponent; + } + + async cloneCipher(cipher: CipherView) { + const component = await this.editCipher(cipher); + component.cloneMode = true; + } + + async updateKey() { + await this.modalService.openViewRef(UpdateKeyComponent, this.updateKeyModalRef); + } + + private go(queryParams: any = null) { + if (queryParams == null) { + queryParams = { + favorites: this.favorites ? true : null, + type: this.activeFilter.cipherType, + folderId: this.folderId, + collectionId: this.collectionId, + deleted: this.deleted ? true : null, + }; + } + + this.router.navigate([], { + relativeTo: this.route, + queryParams: queryParams, + queryParamsHandling: "merge", + replaceUrl: true, + }); + } +} diff --git a/apps/web/src/app/modules/vault/modules/individual-vault/individual-vault.module.ts b/apps/web/src/app/modules/vault/modules/individual-vault/individual-vault.module.ts new file mode 100644 index 0000000000..44079c233d --- /dev/null +++ b/apps/web/src/app/modules/vault/modules/individual-vault/individual-vault.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from "@angular/core"; + +import { VaultModule } from "../../vault.module"; + +import { IndividualVaultRoutingModule } from "./individual-vault-routing.module"; +import { IndividualVaultComponent } from "./individual-vault.component"; + +@NgModule({ + imports: [VaultModule, IndividualVaultRoutingModule], + declarations: [IndividualVaultComponent], + exports: [IndividualVaultComponent], +}) +export class IndividualVaultModule {} diff --git a/apps/web/src/app/modules/vault/modules/organization-badge/organization-badge.module.ts b/apps/web/src/app/modules/vault/modules/organization-badge/organization-badge.module.ts new file mode 100644 index 0000000000..297b17d565 --- /dev/null +++ b/apps/web/src/app/modules/vault/modules/organization-badge/organization-badge.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from "@angular/core"; + +import { SharedModule } from "../../../shared.module"; + +import { OrganizationNameBadgeComponent } from "./organization-name-badge.component"; + +@NgModule({ + imports: [SharedModule], + declarations: [OrganizationNameBadgeComponent], + exports: [OrganizationNameBadgeComponent], +}) +export class OrganizationBadgeModule {} diff --git a/apps/web/src/app/modules/vault/modules/organization-badge/organization-name-badge.component.html b/apps/web/src/app/modules/vault/modules/organization-badge/organization-name-badge.component.html new file mode 100644 index 0000000000..de4711d617 --- /dev/null +++ b/apps/web/src/app/modules/vault/modules/organization-badge/organization-name-badge.component.html @@ -0,0 +1,9 @@ + diff --git a/apps/web/src/app/modules/vault/modules/organization-badge/organization-name-badge.component.ts b/apps/web/src/app/modules/vault/modules/organization-badge/organization-name-badge.component.ts new file mode 100644 index 0000000000..1d4f90d1fc --- /dev/null +++ b/apps/web/src/app/modules/vault/modules/organization-badge/organization-name-badge.component.ts @@ -0,0 +1,59 @@ +import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; + +@Component({ + selector: "app-org-badge", + templateUrl: "organization-name-badge.component.html", +}) +export class OrganizationNameBadgeComponent implements OnInit { + @Input() organizationName: string; + @Input() profileName: string; + + @Output() onOrganizationClicked = new EventEmitter(); + + color: string; + textColor: string; + + constructor(private i18nService: I18nService) {} + + ngOnInit(): void { + if (this.organizationName == null || this.organizationName === "") { + this.organizationName = this.i18nService.t("me"); + this.color = this.stringToColor(this.profileName.toUpperCase()); + } + if (this.color == null) { + this.color = this.stringToColor(this.organizationName.toUpperCase()); + } + this.textColor = this.pickTextColorBasedOnBgColor(); + } + + // This value currently isn't stored anywhere, only calculated in the app-avatar component + // Once we are allowing org colors to be changed and saved, change this out + private stringToColor(str: string): string { + let hash = 0; + for (let i = 0; i < str.length; i++) { + hash = str.charCodeAt(i) + ((hash << 5) - hash); + } + let color = "#"; + for (let i = 0; i < 3; i++) { + const value = (hash >> (i * 8)) & 0xff; + color += ("00" + value.toString(16)).substr(-2); + } + return color; + } + + // There are a few ways to calculate text color for contrast, this one seems to fit accessibility guidelines best. + // https://stackoverflow.com/a/3943023/6869691 + private pickTextColorBasedOnBgColor() { + const color = this.color.charAt(0) === "#" ? this.color.substring(1, 7) : this.color; + const r = parseInt(color.substring(0, 2), 16); // hexToR + const g = parseInt(color.substring(2, 4), 16); // hexToG + const b = parseInt(color.substring(4, 6), 16); // hexToB + return r * 0.299 + g * 0.587 + b * 0.114 > 186 ? "black !important" : "white !important"; + } + + emitOnOrganizationClicked() { + this.onOrganizationClicked.emit(); + } +} diff --git a/apps/web/src/app/modules/vault/modules/organization-vault/organization-vault-routing.module.ts b/apps/web/src/app/modules/vault/modules/organization-vault/organization-vault-routing.module.ts new file mode 100644 index 0000000000..0658c4dd9c --- /dev/null +++ b/apps/web/src/app/modules/vault/modules/organization-vault/organization-vault-routing.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from "@angular/core"; +import { RouterModule, Routes } from "@angular/router"; + +import { OrganizationVaultComponent } from "./organization-vault.component"; +const routes: Routes = [ + { + path: "", + component: OrganizationVaultComponent, + data: { titleId: "vaults" }, + }, +]; +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class OrganizationVaultRoutingModule {} diff --git a/apps/web/src/app/modules/vault/modules/organization-vault/organization-vault.component.html b/apps/web/src/app/modules/vault/modules/organization-vault/organization-vault.component.html new file mode 100644 index 0000000000..a187d3ba2d --- /dev/null +++ b/apps/web/src/app/modules/vault/modules/organization-vault/organization-vault.component.html @@ -0,0 +1,70 @@ +
+
+
+
+
+
+ +
+
+
+
+
+ + + {{ trashCleanupWarning }} + + + +
+
+
+ + + + diff --git a/apps/web/src/app/modules/vault/modules/organization-vault/organization-vault.component.ts b/apps/web/src/app/modules/vault/modules/organization-vault/organization-vault.component.ts new file mode 100644 index 0000000000..c7edcbe0e3 --- /dev/null +++ b/apps/web/src/app/modules/vault/modules/organization-vault/organization-vault.component.ts @@ -0,0 +1,350 @@ +import { + ChangeDetectorRef, + Component, + NgZone, + OnDestroy, + OnInit, + ViewChild, + ViewContainerRef, +} from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; +import { first } from "rxjs/operators"; + +import { VaultFilter } from "jslib-angular/modules/vault-filter/models/vault-filter.model"; +import { ModalService } from "jslib-angular/services/modal.service"; +import { BroadcasterService } from "jslib-common/abstractions/broadcaster.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { CipherType } from "jslib-common/enums/cipherType"; +import { Organization } from "jslib-common/models/domain/organization"; +import { CipherView } from "jslib-common/models/view/cipherView"; + +import { EntityEventsComponent } from "../../../../organizations/manage/entity-events.component"; +import { AddEditComponent } from "../../../../organizations/vault/add-edit.component"; +import { AttachmentsComponent } from "../../../../organizations/vault/attachments.component"; +import { CiphersComponent } from "../../../../organizations/vault/ciphers.component"; +import { CollectionsComponent } from "../../../../organizations/vault/collections.component"; +import { VaultFilterComponent } from "../../../vault-filter/vault-filter.component"; +import { VaultService } from "../../vault.service"; + +const BroadcasterSubscriptionId = "OrgVaultComponent"; + +@Component({ + selector: "app-org-vault", + templateUrl: "organization-vault.component.html", +}) +export class OrganizationVaultComponent implements OnInit, OnDestroy { + @ViewChild("vaultFilter", { static: true }) vaultFilterComponent: VaultFilterComponent; + @ViewChild(CiphersComponent, { static: true }) ciphersComponent: CiphersComponent; + @ViewChild("attachments", { read: ViewContainerRef, static: true }) + attachmentsModalRef: ViewContainerRef; + @ViewChild("cipherAddEdit", { read: ViewContainerRef, static: true }) + cipherAddEditModalRef: ViewContainerRef; + @ViewChild("collections", { read: ViewContainerRef, static: true }) + collectionsModalRef: ViewContainerRef; + @ViewChild("eventsTemplate", { read: ViewContainerRef, static: true }) + eventsModalRef: ViewContainerRef; + + organization: Organization; + collectionId: string = null; + type: CipherType = null; + deleted = false; + trashCleanupWarning: string = null; + activeFilter: VaultFilter = new VaultFilter(); + + constructor( + private route: ActivatedRoute, + private organizationService: OrganizationService, + private router: Router, + private changeDetectorRef: ChangeDetectorRef, + private syncService: SyncService, + private i18nService: I18nService, + private modalService: ModalService, + private messagingService: MessagingService, + private broadcasterService: BroadcasterService, + private ngZone: NgZone, + private platformUtilsService: PlatformUtilsService, + private vaultService: VaultService, + private cipherService: CipherService, + private passwordRepromptService: PasswordRepromptService + ) {} + + ngOnInit() { + this.trashCleanupWarning = this.i18nService.t( + this.platformUtilsService.isSelfHost() + ? "trashCleanupWarningSelfHosted" + : "trashCleanupWarning" + ); + this.route.parent.params.subscribe(async (params: any) => { + this.organization = await this.organizationService.get(params.organizationId); + this.vaultFilterComponent.organization = this.organization; + this.ciphersComponent.organization = this.organization; + + this.route.queryParams.pipe(first()).subscribe(async (qParams) => { + this.ciphersComponent.searchText = this.vaultFilterComponent.searchText = qParams.search; + if (!this.organization.canViewAllCollections) { + await this.syncService.fullSync(false); + this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => { + this.ngZone.run(async () => { + switch (message.command) { + case "syncCompleted": + if (message.successfully) { + await Promise.all([ + this.vaultFilterComponent.reloadCollectionsAndFolders( + new VaultFilter({ + selectedOrganizationId: this.organization.id, + } as Partial) + ), + this.ciphersComponent.refresh(), + ]); + this.changeDetectorRef.detectChanges(); + } + break; + } + }); + }); + } + await this.vaultFilterComponent.reloadCollectionsAndFolders( + new VaultFilter({ selectedOrganizationId: this.organization.id } as Partial) + ); + await this.ciphersComponent.reload(); + + if (qParams.viewEvents != null) { + const cipher = this.ciphersComponent.ciphers.filter((c) => c.id === qParams.viewEvents); + if (cipher.length > 0) { + this.viewEvents(cipher[0]); + } + } + + this.route.queryParams.subscribe(async (params) => { + if (params.cipherId) { + if ( + // Handle users with implicit collection access since they use the admin endpoint + this.organization.canEditAnyCollection || + (await this.cipherService.get(params.cipherId)) != null + ) { + this.editCipherId(params.cipherId); + } else { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("unknownCipher") + ); + this.router.navigate([], { + queryParams: { cipherId: null }, + queryParamsHandling: "merge", + }); + } + } + }); + }); + }); + } + + ngOnDestroy() { + this.broadcasterService.unsubscribe(BroadcasterSubscriptionId); + } + + async applyVaultFilter(vaultFilter: VaultFilter) { + this.ciphersComponent.showAddNew = vaultFilter.status !== "trash"; + this.activeFilter = vaultFilter; + await this.ciphersComponent.reload(this.buildFilter(), vaultFilter.status === "trash"); + this.vaultFilterComponent.searchPlaceholder = + this.vaultService.calculateSearchBarLocalizationString(this.activeFilter); + this.go(); + } + + private buildFilter(): (cipher: CipherView) => boolean { + return (cipher) => { + let cipherPassesFilter = true; + if (this.activeFilter.status === "favorites" && cipherPassesFilter) { + cipherPassesFilter = cipher.favorite; + } + if (this.activeFilter.status === "trash" && cipherPassesFilter) { + cipherPassesFilter = cipher.isDeleted; + } + if (this.activeFilter.cipherType != null && cipherPassesFilter) { + cipherPassesFilter = cipher.type === this.activeFilter.cipherType; + } + if ( + this.activeFilter.selectedFolder != null && + this.activeFilter.selectedFolderId != "none" && + cipherPassesFilter + ) { + cipherPassesFilter = cipher.folderId === this.activeFilter.selectedFolderId; + } + if (this.activeFilter.selectedCollectionId != null && cipherPassesFilter) { + cipherPassesFilter = + cipher.collectionIds != null && + cipher.collectionIds.indexOf(this.activeFilter.selectedCollectionId) > -1; + } + if (this.activeFilter.selectedOrganizationId != null && cipherPassesFilter) { + cipherPassesFilter = cipher.organizationId === this.activeFilter.selectedOrganizationId; + } + if (this.activeFilter.myVaultOnly && cipherPassesFilter) { + cipherPassesFilter = cipher.organizationId === null; + } + return cipherPassesFilter; + }; + } + + filterSearchText(searchText: string) { + this.ciphersComponent.searchText = searchText; + this.ciphersComponent.search(200); + } + + async editCipherAttachments(cipher: CipherView) { + if (this.organization.maxStorageGb == null || this.organization.maxStorageGb === 0) { + this.messagingService.send("upgradeOrganization", { organizationId: cipher.organizationId }); + return; + } + + let madeAttachmentChanges = false; + + const [modal] = await this.modalService.openViewRef( + AttachmentsComponent, + this.attachmentsModalRef, + (comp) => { + comp.organization = this.organization; + comp.cipherId = cipher.id; + comp.onUploadedAttachment.subscribe(() => (madeAttachmentChanges = true)); + comp.onDeletedAttachment.subscribe(() => (madeAttachmentChanges = true)); + } + ); + + modal.onClosed.subscribe(async () => { + if (madeAttachmentChanges) { + await this.ciphersComponent.refresh(); + } + madeAttachmentChanges = false; + }); + } + + async editCipherCollections(cipher: CipherView) { + const [modal] = await this.modalService.openViewRef( + CollectionsComponent, + this.collectionsModalRef, + (comp) => { + if (this.organization.canEditAnyCollection) { + comp.collectionIds = cipher.collectionIds; + comp.collections = this.vaultFilterComponent.collections.fullList.filter( + (c) => !c.readOnly + ); + } + comp.organization = this.organization; + comp.cipherId = cipher.id; + comp.onSavedCollections.subscribe(async () => { + modal.close(); + await this.ciphersComponent.refresh(); + }); + } + ); + } + + async addCipher() { + const component = await this.editCipher(null); + component.organizationId = this.organization.id; + component.type = this.type; + if (this.organization.canEditAnyCollection) { + component.collections = this.vaultFilterComponent.collections.fullList.filter( + (c) => !c.readOnly + ); + } + if (this.collectionId != null) { + component.collectionIds = [this.collectionId]; + } + } + + async editCipher(cipher: CipherView) { + return this.editCipherId(cipher?.id); + } + + async editCipherId(cipherId: string) { + const cipher = await this.cipherService.get(cipherId); + if (cipher != null && cipher.reprompt != 0) { + if (!(await this.passwordRepromptService.showPasswordPrompt())) { + this.go({ cipherId: null }); + return; + } + } + + const [modal, childComponent] = await this.modalService.openViewRef( + AddEditComponent, + this.cipherAddEditModalRef, + (comp) => { + comp.organization = this.organization; + comp.cipherId = cipherId; + comp.onSavedCipher.subscribe(async () => { + modal.close(); + await this.ciphersComponent.refresh(); + }); + comp.onDeletedCipher.subscribe(async () => { + modal.close(); + await this.ciphersComponent.refresh(); + }); + comp.onRestoredCipher.subscribe(async () => { + modal.close(); + await this.ciphersComponent.refresh(); + }); + } + ); + + modal.onClosedPromise().then(() => { + this.go({ cipherId: null }); + }); + + return childComponent; + } + + async cloneCipher(cipher: CipherView) { + const component = await this.editCipher(cipher); + component.cloneMode = true; + component.organizationId = this.organization.id; + if (this.organization.canEditAnyCollection) { + component.collections = this.vaultFilterComponent.collections.fullList.filter( + (c) => !c.readOnly + ); + } + // Regardless of Admin state, the collection Ids need to passed manually as they are not assigned value + // in the add-edit componenet + component.collectionIds = cipher.collectionIds; + } + + async viewEvents(cipher: CipherView) { + await this.modalService.openViewRef(EntityEventsComponent, this.eventsModalRef, (comp) => { + comp.name = cipher.name; + comp.organizationId = this.organization.id; + comp.entityId = cipher.id; + comp.showUser = true; + comp.entity = "cipher"; + }); + } + + private clearFilters() { + this.collectionId = null; + this.type = null; + this.deleted = false; + } + + private go(queryParams: any = null) { + if (queryParams == null) { + queryParams = { + type: this.type, + collectionId: this.collectionId, + deleted: this.deleted ? true : null, + }; + } + + this.router.navigate([], { + relativeTo: this.route, + queryParams: queryParams, + queryParamsHandling: "merge", + replaceUrl: true, + }); + } +} diff --git a/apps/web/src/app/modules/vault/modules/organization-vault/organization-vault.module.ts b/apps/web/src/app/modules/vault/modules/organization-vault/organization-vault.module.ts new file mode 100644 index 0000000000..4566efa998 --- /dev/null +++ b/apps/web/src/app/modules/vault/modules/organization-vault/organization-vault.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from "@angular/core"; + +import { VaultModule } from "../../vault.module"; + +import { OrganizationVaultRoutingModule } from "./organization-vault-routing.module"; +import { OrganizationVaultComponent } from "./organization-vault.component"; + +@NgModule({ + imports: [VaultModule, OrganizationVaultRoutingModule], + declarations: [OrganizationVaultComponent], + exports: [OrganizationVaultComponent], +}) +export class OrganizationVaultModule {} diff --git a/apps/web/src/app/modules/vault/vault.module.ts b/apps/web/src/app/modules/vault/vault.module.ts new file mode 100644 index 0000000000..bd4ab0cb51 --- /dev/null +++ b/apps/web/src/app/modules/vault/vault.module.ts @@ -0,0 +1,19 @@ +import { NgModule } from "@angular/core"; + +import { LooseComponentsModule } from "../loose-components.module"; +import { SharedModule } from "../shared.module"; +import { VaultFilterModule } from "../vault-filter/vault-filter.module"; + +import { VaultService } from "./vault.service"; + +@NgModule({ + imports: [SharedModule, VaultFilterModule, LooseComponentsModule], + exports: [SharedModule, VaultFilterModule, LooseComponentsModule], + providers: [ + { + provide: VaultService, + useClass: VaultService, + }, + ], +}) +export class VaultModule {} diff --git a/apps/web/src/app/modules/vault/vault.service.ts b/apps/web/src/app/modules/vault/vault.service.ts new file mode 100644 index 0000000000..3f8cc17c63 --- /dev/null +++ b/apps/web/src/app/modules/vault/vault.service.ts @@ -0,0 +1,29 @@ +import { VaultFilter } from "jslib-angular/modules/vault-filter/models/vault-filter.model"; + +export class VaultService { + calculateSearchBarLocalizationString(vaultFilter: VaultFilter): string { + if (vaultFilter.status === "favorites") { + return "searchFavorites"; + } + if (vaultFilter.status === "trash") { + return "searchTrash"; + } + if (vaultFilter.cipherType != null) { + return "searchType"; + } + if (vaultFilter.selectedFolderId != null && vaultFilter.selectedFolderId != "none") { + return "searchFolder"; + } + if (vaultFilter.selectedCollectionId != null) { + return "searchCollection"; + } + if (vaultFilter.selectedOrganizationId != null) { + return "searchOrganization"; + } + if (vaultFilter.myVaultOnly) { + return "searchMyVault"; + } + + return "searchVault"; + } +} diff --git a/apps/web/src/app/organizations/guards/permissions.guard.ts b/apps/web/src/app/organizations/guards/permissions.guard.ts new file mode 100644 index 0000000000..2f20355920 --- /dev/null +++ b/apps/web/src/app/organizations/guards/permissions.guard.ts @@ -0,0 +1,58 @@ +import { Injectable } from "@angular/core"; +import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from "@angular/router"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { Permissions } from "jslib-common/enums/permissions"; + +@Injectable() +export class PermissionsGuard implements CanActivate { + constructor( + private router: Router, + private organizationService: OrganizationService, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private syncService: SyncService + ) {} + + async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { + // TODO: We need to fix this issue once and for all. + if ((await this.syncService.getLastSync()) == null) { + await this.syncService.fullSync(false); + } + + const org = await this.organizationService.get(route.params.organizationId); + if (org == null) { + return this.router.createUrlTree(["/"]); + } + + if (!org.isOwner && !org.enabled) { + this.platformUtilsService.showToast( + "error", + null, + this.i18nService.t("organizationIsDisabled") + ); + return this.router.createUrlTree(["/"]); + } + + const permissions = route.data == null ? [] : (route.data.permissions as Permissions[]); + if (permissions != null && !org.hasAnyPermission(permissions)) { + // Handle linkable ciphers for organizations the user only has view access to + // https://bitwarden.atlassian.net/browse/EC-203 + if (state.root.queryParamMap.has("cipherId")) { + return this.router.createUrlTree(["/vault"], { + queryParams: { + cipherId: state.root.queryParamMap.get("cipherId"), + }, + }); + } + + this.platformUtilsService.showToast("error", null, this.i18nService.t("accessDenied")); + return this.router.createUrlTree(["/"]); + } + + return true; + } +} diff --git a/apps/web/src/app/organizations/layouts/organization-layout.component.html b/apps/web/src/app/organizations/layouts/organization-layout.component.html new file mode 100644 index 0000000000..3834635e18 --- /dev/null +++ b/apps/web/src/app/organizations/layouts/organization-layout.component.html @@ -0,0 +1,39 @@ + + + + diff --git a/apps/web/src/app/organizations/layouts/organization-layout.component.ts b/apps/web/src/app/organizations/layouts/organization-layout.component.ts new file mode 100644 index 0000000000..050e12f492 --- /dev/null +++ b/apps/web/src/app/organizations/layouts/organization-layout.component.ts @@ -0,0 +1,92 @@ +import { Component, NgZone, OnDestroy, OnInit } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { BroadcasterService } from "jslib-common/abstractions/broadcaster.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { Organization } from "jslib-common/models/domain/organization"; + +import { NavigationPermissionsService } from "../services/navigation-permissions.service"; + +const BroadcasterSubscriptionId = "OrganizationLayoutComponent"; + +@Component({ + selector: "app-organization-layout", + templateUrl: "organization-layout.component.html", +}) +export class OrganizationLayoutComponent implements OnInit, OnDestroy { + organization: Organization; + businessTokenPromise: Promise; + private organizationId: string; + + constructor( + private route: ActivatedRoute, + private organizationService: OrganizationService, + private broadcasterService: BroadcasterService, + private ngZone: NgZone + ) {} + + ngOnInit() { + document.body.classList.remove("layout_frontend"); + this.route.params.subscribe(async (params: any) => { + this.organizationId = params.organizationId; + await this.load(); + }); + this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => { + this.ngZone.run(async () => { + switch (message.command) { + case "updatedOrgLicense": + await this.load(); + break; + } + }); + }); + } + + ngOnDestroy() { + this.broadcasterService.unsubscribe(BroadcasterSubscriptionId); + } + + async load() { + this.organization = await this.organizationService.get(this.organizationId); + } + + get showManageTab(): boolean { + return NavigationPermissionsService.canAccessManage(this.organization); + } + + get showToolsTab(): boolean { + return NavigationPermissionsService.canAccessTools(this.organization); + } + + get showSettingsTab(): boolean { + return NavigationPermissionsService.canAccessSettings(this.organization); + } + + get toolsRoute(): string { + return this.organization.canAccessImportExport + ? "tools/import" + : "tools/exposed-passwords-report"; + } + + get manageRoute(): string { + let route: string; + switch (true) { + case this.organization.canManageUsers: + route = "manage/people"; + break; + case this.organization.canViewAssignedCollections || this.organization.canViewAllCollections: + route = "manage/collections"; + break; + case this.organization.canManageGroups: + route = "manage/groups"; + break; + case this.organization.canManagePolicies: + route = "manage/policies"; + break; + case this.organization.canAccessEventLogs: + route = "manage/events"; + break; + } + return route; + } +} diff --git a/apps/web/src/app/organizations/manage/bulk/bulk-confirm.component.html b/apps/web/src/app/organizations/manage/bulk/bulk-confirm.component.html new file mode 100644 index 0000000000..84f660823f --- /dev/null +++ b/apps/web/src/app/organizations/manage/bulk/bulk-confirm.component.html @@ -0,0 +1,132 @@ + diff --git a/apps/web/src/app/organizations/manage/bulk/bulk-confirm.component.ts b/apps/web/src/app/organizations/manage/bulk/bulk-confirm.component.ts new file mode 100644 index 0000000000..e14aa68f82 --- /dev/null +++ b/apps/web/src/app/organizations/manage/bulk/bulk-confirm.component.ts @@ -0,0 +1,106 @@ +import { Component, Input, OnInit } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { OrganizationUserStatusType } from "jslib-common/enums/organizationUserStatusType"; +import { Utils } from "jslib-common/misc/utils"; +import { OrganizationUserBulkConfirmRequest } from "jslib-common/models/request/organizationUserBulkConfirmRequest"; +import { OrganizationUserBulkRequest } from "jslib-common/models/request/organizationUserBulkRequest"; + +import { BulkUserDetails } from "./bulk-status.component"; + +@Component({ + selector: "app-bulk-confirm", + templateUrl: "bulk-confirm.component.html", +}) +export class BulkConfirmComponent implements OnInit { + @Input() organizationId: string; + @Input() users: BulkUserDetails[]; + + excludedUsers: BulkUserDetails[]; + filteredUsers: BulkUserDetails[]; + publicKeys: Map = new Map(); + fingerprints: Map = new Map(); + statuses: Map = new Map(); + + loading = true; + done = false; + error: string; + + constructor( + protected cryptoService: CryptoService, + protected apiService: ApiService, + private i18nService: I18nService + ) {} + + async ngOnInit() { + this.excludedUsers = this.users.filter((u) => !this.isAccepted(u)); + this.filteredUsers = this.users.filter((u) => this.isAccepted(u)); + + if (this.filteredUsers.length <= 0) { + this.done = true; + } + + const response = await this.getPublicKeys(); + + for (const entry of response.data) { + const publicKey = Utils.fromB64ToArray(entry.key); + const fingerprint = await this.cryptoService.getFingerprint(entry.userId, publicKey.buffer); + if (fingerprint != null) { + this.publicKeys.set(entry.id, publicKey); + this.fingerprints.set(entry.id, fingerprint.join("-")); + } + } + + this.loading = false; + } + + async submit() { + this.loading = true; + try { + const key = await this.getCryptoKey(); + const userIdsWithKeys: any[] = []; + for (const user of this.filteredUsers) { + const publicKey = this.publicKeys.get(user.id); + if (publicKey == null) { + continue; + } + const encryptedKey = await this.cryptoService.rsaEncrypt(key.key, publicKey.buffer); + userIdsWithKeys.push({ + id: user.id, + key: encryptedKey.encryptedString, + }); + } + const response = await this.postConfirmRequest(userIdsWithKeys); + + response.data.forEach((entry) => { + const error = entry.error !== "" ? entry.error : this.i18nService.t("bulkConfirmMessage"); + this.statuses.set(entry.id, error); + }); + + this.done = true; + } catch (e) { + this.error = e.message; + } + this.loading = false; + } + + protected isAccepted(user: BulkUserDetails) { + return user.status === OrganizationUserStatusType.Accepted; + } + + protected async getPublicKeys() { + const request = new OrganizationUserBulkRequest(this.filteredUsers.map((user) => user.id)); + return await this.apiService.postOrganizationUsersPublicKey(this.organizationId, request); + } + + protected getCryptoKey() { + return this.cryptoService.getOrgKey(this.organizationId); + } + + protected async postConfirmRequest(userIdsWithKeys: any[]) { + const request = new OrganizationUserBulkConfirmRequest(userIdsWithKeys); + return await this.apiService.postOrganizationUserBulkConfirm(this.organizationId, request); + } +} diff --git a/apps/web/src/app/organizations/manage/bulk/bulk-remove.component.html b/apps/web/src/app/organizations/manage/bulk/bulk-remove.component.html new file mode 100644 index 0000000000..993d89533f --- /dev/null +++ b/apps/web/src/app/organizations/manage/bulk/bulk-remove.component.html @@ -0,0 +1,102 @@ + diff --git a/apps/web/src/app/organizations/manage/bulk/bulk-remove.component.ts b/apps/web/src/app/organizations/manage/bulk/bulk-remove.component.ts new file mode 100644 index 0000000000..97097cba13 --- /dev/null +++ b/apps/web/src/app/organizations/manage/bulk/bulk-remove.component.ts @@ -0,0 +1,46 @@ +import { Component, Input } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { OrganizationUserBulkRequest } from "jslib-common/models/request/organizationUserBulkRequest"; + +import { BulkUserDetails } from "./bulk-status.component"; + +@Component({ + selector: "app-bulk-remove", + templateUrl: "bulk-remove.component.html", +}) +export class BulkRemoveComponent { + @Input() organizationId: string; + @Input() users: BulkUserDetails[]; + + statuses: Map = new Map(); + + loading = false; + done = false; + error: string; + + constructor(protected apiService: ApiService, protected i18nService: I18nService) {} + + async submit() { + this.loading = true; + try { + const response = await this.deleteUsers(); + + response.data.forEach((entry) => { + const error = entry.error !== "" ? entry.error : this.i18nService.t("bulkRemovedMessage"); + this.statuses.set(entry.id, error); + }); + this.done = true; + } catch (e) { + this.error = e.message; + } + + this.loading = false; + } + + protected async deleteUsers() { + const request = new OrganizationUserBulkRequest(this.users.map((user) => user.id)); + return await this.apiService.deleteManyOrganizationUsers(this.organizationId, request); + } +} diff --git a/apps/web/src/app/organizations/manage/bulk/bulk-status.component.html b/apps/web/src/app/organizations/manage/bulk/bulk-status.component.html new file mode 100644 index 0000000000..8d9676781a --- /dev/null +++ b/apps/web/src/app/organizations/manage/bulk/bulk-status.component.html @@ -0,0 +1,59 @@ + diff --git a/apps/web/src/app/organizations/manage/bulk/bulk-status.component.ts b/apps/web/src/app/organizations/manage/bulk/bulk-status.component.ts new file mode 100644 index 0000000000..59f24e1aa9 --- /dev/null +++ b/apps/web/src/app/organizations/manage/bulk/bulk-status.component.ts @@ -0,0 +1,26 @@ +import { Component } from "@angular/core"; + +import { OrganizationUserStatusType } from "jslib-common/enums/organizationUserStatusType"; +import { ProviderUserStatusType } from "jslib-common/enums/providerUserStatusType"; + +export interface BulkUserDetails { + id: string; + name: string; + email: string; + status: OrganizationUserStatusType | ProviderUserStatusType; +} + +type BulkStatusEntry = { + user: BulkUserDetails; + error: boolean; + message: string; +}; + +@Component({ + selector: "app-bulk-status", + templateUrl: "bulk-status.component.html", +}) +export class BulkStatusComponent { + users: BulkStatusEntry[]; + loading = false; +} diff --git a/apps/web/src/app/organizations/manage/collection-add-edit.component.html b/apps/web/src/app/organizations/manage/collection-add-edit.component.html new file mode 100644 index 0000000000..f699e802b5 --- /dev/null +++ b/apps/web/src/app/organizations/manage/collection-add-edit.component.html @@ -0,0 +1,162 @@ + diff --git a/apps/web/src/app/organizations/manage/collection-add-edit.component.ts b/apps/web/src/app/organizations/manage/collection-add-edit.component.ts new file mode 100644 index 0000000000..9ab69152a2 --- /dev/null +++ b/apps/web/src/app/organizations/manage/collection-add-edit.component.ts @@ -0,0 +1,180 @@ +import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { Utils } from "jslib-common/misc/utils"; +import { EncString } from "jslib-common/models/domain/encString"; +import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; +import { CollectionRequest } from "jslib-common/models/request/collectionRequest"; +import { SelectionReadOnlyRequest } from "jslib-common/models/request/selectionReadOnlyRequest"; +import { GroupResponse } from "jslib-common/models/response/groupResponse"; + +@Component({ + selector: "app-collection-add-edit", + templateUrl: "collection-add-edit.component.html", +}) +export class CollectionAddEditComponent implements OnInit { + @Input() collectionId: string; + @Input() organizationId: string; + @Input() canSave: boolean; + @Input() canDelete: boolean; + @Output() onSavedCollection = new EventEmitter(); + @Output() onDeletedCollection = new EventEmitter(); + + loading = true; + editMode = false; + accessGroups = false; + title: string; + name: string; + externalId: string; + groups: GroupResponse[] = []; + formPromise: Promise; + deletePromise: Promise; + + private orgKey: SymmetricCryptoKey; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private cryptoService: CryptoService, + private logService: LogService, + private organizationService: OrganizationService + ) {} + + async ngOnInit() { + const organization = await this.organizationService.get(this.organizationId); + this.accessGroups = organization.useGroups; + this.editMode = this.loading = this.collectionId != null; + if (this.accessGroups) { + const groupsResponse = await this.apiService.getGroups(this.organizationId); + this.groups = groupsResponse.data + .map((r) => r) + .sort(Utils.getSortFunction(this.i18nService, "name")); + } + this.orgKey = await this.cryptoService.getOrgKey(this.organizationId); + + if (this.editMode) { + this.editMode = true; + this.title = this.i18nService.t("editCollection"); + try { + const collection = await this.apiService.getCollectionDetails( + this.organizationId, + this.collectionId + ); + this.name = await this.cryptoService.decryptToUtf8( + new EncString(collection.name), + this.orgKey + ); + this.externalId = collection.externalId; + if (collection.groups != null && this.groups.length > 0) { + collection.groups.forEach((s) => { + const group = this.groups.filter((g) => !g.accessAll && g.id === s.id); + if (group != null && group.length > 0) { + (group[0] as any).checked = true; + (group[0] as any).readOnly = s.readOnly; + (group[0] as any).hidePasswords = s.hidePasswords; + } + }); + } + } catch (e) { + this.logService.error(e); + } + } else { + this.title = this.i18nService.t("addCollection"); + } + + this.groups.forEach((g) => { + if (g.accessAll) { + (g as any).checked = true; + } + }); + + this.loading = false; + } + + check(g: GroupResponse, select?: boolean) { + if (g.accessAll) { + return; + } + (g as any).checked = select == null ? !(g as any).checked : select; + if (!(g as any).checked) { + (g as any).readOnly = false; + (g as any).hidePasswords = false; + } + } + + selectAll(select: boolean) { + this.groups.forEach((g) => this.check(g, select)); + } + + async submit() { + if (this.orgKey == null) { + throw new Error("No encryption key for this organization."); + } + + const request = new CollectionRequest(); + request.name = (await this.cryptoService.encrypt(this.name, this.orgKey)).encryptedString; + request.externalId = this.externalId; + request.groups = this.groups + .filter((g) => (g as any).checked && !g.accessAll) + .map( + (g) => new SelectionReadOnlyRequest(g.id, !!(g as any).readOnly, !!(g as any).hidePasswords) + ); + + try { + if (this.editMode) { + this.formPromise = this.apiService.putCollection( + this.organizationId, + this.collectionId, + request + ); + } else { + this.formPromise = this.apiService.postCollection(this.organizationId, request); + } + await this.formPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t(this.editMode ? "editedCollectionId" : "createdCollectionId", this.name) + ); + this.onSavedCollection.emit(); + } catch (e) { + this.logService.error(e); + } + } + + async delete() { + if (!this.editMode) { + return; + } + + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("deleteCollectionConfirmation"), + this.name, + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!confirmed) { + return false; + } + + try { + this.deletePromise = this.apiService.deleteCollection(this.organizationId, this.collectionId); + await this.deletePromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("deletedCollectionId", this.name) + ); + this.onDeletedCollection.emit(); + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/apps/web/src/app/organizations/manage/collections.component.html b/apps/web/src/app/organizations/manage/collections.component.html new file mode 100644 index 0000000000..976a63fe6d --- /dev/null +++ b/apps/web/src/app/organizations/manage/collections.component.html @@ -0,0 +1,96 @@ + + + + {{ "loading" | i18n }} + + +

{{ "noCollectionsInList" | i18n }}

+ + + + + + + +
+ {{ c.name }} + + +
+
+ + diff --git a/apps/web/src/app/organizations/manage/collections.component.ts b/apps/web/src/app/organizations/manage/collections.component.ts new file mode 100644 index 0000000000..f20a4cf5c6 --- /dev/null +++ b/apps/web/src/app/organizations/manage/collections.component.ts @@ -0,0 +1,247 @@ +import { Component, OnInit, ViewChild, ViewContainerRef } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; +import { first } from "rxjs/operators"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CollectionService } from "jslib-common/abstractions/collection.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { SearchService } from "jslib-common/abstractions/search.service"; +import { CollectionData } from "jslib-common/models/data/collectionData"; +import { Collection } from "jslib-common/models/domain/collection"; +import { Organization } from "jslib-common/models/domain/organization"; +import { + CollectionDetailsResponse, + CollectionResponse, +} from "jslib-common/models/response/collectionResponse"; +import { ListResponse } from "jslib-common/models/response/listResponse"; +import { CollectionView } from "jslib-common/models/view/collectionView"; + +import { EntityUsersComponent } from "../../modules/organizations/manage/entity-users.component"; + +import { CollectionAddEditComponent } from "./collection-add-edit.component"; + +@Component({ + selector: "app-org-manage-collections", + templateUrl: "collections.component.html", +}) +export class CollectionsComponent implements OnInit { + @ViewChild("addEdit", { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef; + @ViewChild("usersTemplate", { read: ViewContainerRef, static: true }) + usersModalRef: ViewContainerRef; + + loading = true; + organization: Organization; + canCreate = false; + organizationId: string; + collections: CollectionView[]; + assignedCollections: CollectionView[]; + pagedCollections: CollectionView[]; + searchText: string; + + protected didScroll = false; + protected pageSize = 100; + + private pagedCollectionsCount = 0; + + constructor( + private apiService: ApiService, + private route: ActivatedRoute, + private collectionService: CollectionService, + private modalService: ModalService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private searchService: SearchService, + private logService: LogService, + private organizationService: OrganizationService + ) {} + + async ngOnInit() { + this.route.parent.parent.params.subscribe(async (params) => { + this.organizationId = params.organizationId; + await this.load(); + this.route.queryParams.pipe(first()).subscribe(async (qParams) => { + this.searchText = qParams.search; + }); + }); + } + + async load() { + this.organization = await this.organizationService.get(this.organizationId); + this.canCreate = this.organization.canCreateNewCollections; + + const decryptCollections = async (r: ListResponse) => { + const collections = r.data + .filter((c) => c.organizationId === this.organizationId) + .map((d) => new Collection(new CollectionData(d as CollectionDetailsResponse))); + return await this.collectionService.decryptMany(collections); + }; + + if (this.organization.canViewAssignedCollections) { + const response = await this.apiService.getUserCollections(); + this.assignedCollections = await decryptCollections(response); + } + + if (this.organization.canViewAllCollections) { + const response = await this.apiService.getCollections(this.organizationId); + this.collections = await decryptCollections(response); + } else { + this.collections = this.assignedCollections; + } + + this.resetPaging(); + this.loading = false; + } + + loadMore() { + if (!this.collections || this.collections.length <= this.pageSize) { + return; + } + const pagedLength = this.pagedCollections.length; + let pagedSize = this.pageSize; + if (pagedLength === 0 && this.pagedCollectionsCount > this.pageSize) { + pagedSize = this.pagedCollectionsCount; + } + if (this.collections.length > pagedLength) { + this.pagedCollections = this.pagedCollections.concat( + this.collections.slice(pagedLength, pagedLength + pagedSize) + ); + } + this.pagedCollectionsCount = this.pagedCollections.length; + this.didScroll = this.pagedCollections.length > this.pageSize; + } + + async edit(collection: CollectionView) { + const canCreate = collection == null && this.canCreate; + const canEdit = collection != null && this.canEdit(collection); + const canDelete = collection != null && this.canDelete(collection); + + if (!(canCreate || canEdit || canDelete)) { + this.platformUtilsService.showToast("error", null, this.i18nService.t("missingPermissions")); + return; + } + + const [modal] = await this.modalService.openViewRef( + CollectionAddEditComponent, + this.addEditModalRef, + (comp) => { + comp.organizationId = this.organizationId; + comp.collectionId = collection != null ? collection.id : null; + comp.canSave = canCreate || canEdit; + comp.canDelete = canDelete; + comp.onSavedCollection.subscribe(() => { + modal.close(); + this.load(); + }); + comp.onDeletedCollection.subscribe(() => { + modal.close(); + this.removeCollection(collection); + }); + } + ); + } + + add() { + this.edit(null); + } + + async delete(collection: CollectionView) { + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("deleteCollectionConfirmation"), + collection.name, + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!confirmed) { + return false; + } + + try { + await this.apiService.deleteCollection(this.organizationId, collection.id); + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("deletedCollectionId", collection.name) + ); + this.removeCollection(collection); + } catch (e) { + this.logService.error(e); + this.platformUtilsService.showToast("error", null, this.i18nService.t("missingPermissions")); + } + } + + async users(collection: CollectionView) { + const [modal] = await this.modalService.openViewRef( + EntityUsersComponent, + this.usersModalRef, + (comp) => { + comp.organizationId = this.organizationId; + comp.entity = "collection"; + comp.entityId = collection.id; + comp.entityName = collection.name; + + comp.onEditedUsers.subscribe(() => { + this.load(); + modal.close(); + }); + } + ); + } + + async resetPaging() { + this.pagedCollections = []; + this.loadMore(); + } + + isSearching() { + return this.searchService.isSearchable(this.searchText); + } + + isPaging() { + const searching = this.isSearching(); + if (searching && this.didScroll) { + this.resetPaging(); + } + return !searching && this.collections && this.collections.length > this.pageSize; + } + + canEdit(collection: CollectionView) { + if (this.organization.canEditAnyCollection) { + return true; + } + + if ( + this.organization.canEditAssignedCollections && + this.assignedCollections.some((c) => c.id === collection.id) + ) { + return true; + } + return false; + } + + canDelete(collection: CollectionView) { + if (this.organization.canDeleteAnyCollection) { + return true; + } + + if ( + this.organization.canDeleteAssignedCollections && + this.assignedCollections.some((c) => c.id === collection.id) + ) { + return true; + } + return false; + } + + private removeCollection(collection: CollectionView) { + const index = this.collections.indexOf(collection); + if (index > -1) { + this.collections.splice(index, 1); + this.resetPaging(); + } + } +} diff --git a/apps/web/src/app/organizations/manage/entity-events.component.html b/apps/web/src/app/organizations/manage/entity-events.component.html new file mode 100644 index 0000000000..29f266cf04 --- /dev/null +++ b/apps/web/src/app/organizations/manage/entity-events.component.html @@ -0,0 +1,118 @@ + diff --git a/apps/web/src/app/organizations/manage/entity-events.component.ts b/apps/web/src/app/organizations/manage/entity-events.component.ts new file mode 100644 index 0000000000..62a9ee69a8 --- /dev/null +++ b/apps/web/src/app/organizations/manage/entity-events.component.ts @@ -0,0 +1,154 @@ +import { Component, Input, OnInit } from "@angular/core"; + +import { UserNamePipe } from "jslib-angular/pipes/user-name.pipe"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { EventResponse } from "jslib-common/models/response/eventResponse"; +import { ListResponse } from "jslib-common/models/response/listResponse"; + +import { EventService } from "../../services/event.service"; + +@Component({ + selector: "app-entity-events", + templateUrl: "entity-events.component.html", +}) +export class EntityEventsComponent implements OnInit { + @Input() name: string; + @Input() entity: "user" | "cipher"; + @Input() entityId: string; + @Input() organizationId: string; + @Input() providerId: string; + @Input() showUser = false; + + loading = true; + loaded = false; + events: any[]; + start: string; + end: string; + continuationToken: string; + refreshPromise: Promise; + morePromise: Promise; + + private orgUsersUserIdMap = new Map(); + private orgUsersIdMap = new Map(); + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private eventService: EventService, + private platformUtilsService: PlatformUtilsService, + private userNamePipe: UserNamePipe, + private logService: LogService + ) {} + + async ngOnInit() { + const defaultDates = this.eventService.getDefaultDateFilters(); + this.start = defaultDates[0]; + this.end = defaultDates[1]; + await this.load(); + } + + async load() { + if (this.showUser) { + const response = await this.apiService.getOrganizationUsers(this.organizationId); + response.data.forEach((u) => { + const name = this.userNamePipe.transform(u); + this.orgUsersIdMap.set(u.id, { name: name, email: u.email }); + this.orgUsersUserIdMap.set(u.userId, { name: name, email: u.email }); + }); + } + await this.loadEvents(true); + this.loaded = true; + } + + async loadEvents(clearExisting: boolean) { + if (this.refreshPromise != null || this.morePromise != null) { + return; + } + + let dates: string[] = null; + try { + dates = this.eventService.formatDateFilters(this.start, this.end); + } catch (e) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("invalidDateRange") + ); + return; + } + + this.loading = true; + let response: ListResponse; + try { + let promise: Promise; + if (this.entity === "user" && this.providerId) { + promise = this.apiService.getEventsProviderUser( + this.providerId, + this.entityId, + dates[0], + dates[1], + clearExisting ? null : this.continuationToken + ); + } else if (this.entity === "user") { + promise = this.apiService.getEventsOrganizationUser( + this.organizationId, + this.entityId, + dates[0], + dates[1], + clearExisting ? null : this.continuationToken + ); + } else { + promise = this.apiService.getEventsCipher( + this.entityId, + dates[0], + dates[1], + clearExisting ? null : this.continuationToken + ); + } + if (clearExisting) { + this.refreshPromise = promise; + } else { + this.morePromise = promise; + } + response = await promise; + } catch (e) { + this.logService.error(e); + } + + this.continuationToken = response.continuationToken; + const events = await Promise.all( + response.data.map(async (r) => { + const userId = r.actingUserId == null ? r.userId : r.actingUserId; + const eventInfo = await this.eventService.getEventInfo(r); + const user = + this.showUser && userId != null && this.orgUsersUserIdMap.has(userId) + ? this.orgUsersUserIdMap.get(userId) + : null; + return { + message: eventInfo.message, + appIcon: eventInfo.appIcon, + appName: eventInfo.appName, + userId: userId, + userName: user != null ? user.name : this.showUser ? this.i18nService.t("unknown") : null, + userEmail: user != null ? user.email : this.showUser ? "" : null, + date: r.date, + ip: r.ipAddress, + type: r.type, + }; + }) + ); + + if (!clearExisting && this.events != null && this.events.length > 0) { + this.events = this.events.concat(events); + } else { + this.events = events; + } + + this.loading = false; + this.morePromise = null; + this.refreshPromise = null; + } +} diff --git a/apps/web/src/app/organizations/manage/events.component.html b/apps/web/src/app/organizations/manage/events.component.html new file mode 100644 index 0000000000..d27b53e8d9 --- /dev/null +++ b/apps/web/src/app/organizations/manage/events.component.html @@ -0,0 +1,107 @@ + + + + {{ "loading" | i18n }} + + +

{{ "noEventsInList" | i18n }}

+ + + + + + + + + + + + + + + + + +
{{ "timestamp" | i18n }} + {{ "device" | i18n }} + {{ "user" | i18n }}{{ "event" | i18n }}
{{ e.date | date: "medium" }} + + {{ e.appName }}, {{ e.ip }} + + {{ e.userName }} +
+ +
diff --git a/apps/web/src/app/organizations/manage/events.component.ts b/apps/web/src/app/organizations/manage/events.component.ts new file mode 100644 index 0000000000..d1eb48c084 --- /dev/null +++ b/apps/web/src/app/organizations/manage/events.component.ts @@ -0,0 +1,118 @@ +import { Component, OnInit } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; + +import { UserNamePipe } from "jslib-angular/pipes/user-name.pipe"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { ExportService } from "jslib-common/abstractions/export.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { ProviderService } from "jslib-common/abstractions/provider.service"; +import { Organization } from "jslib-common/models/domain/organization"; +import { EventResponse } from "jslib-common/models/response/eventResponse"; + +import { BaseEventsComponent } from "../../common/base.events.component"; +import { EventService } from "../../services/event.service"; + +@Component({ + selector: "app-org-events", + templateUrl: "events.component.html", +}) +export class EventsComponent extends BaseEventsComponent implements OnInit { + exportFileName = "org-events"; + organizationId: string; + organization: Organization; + + private orgUsersUserIdMap = new Map(); + + constructor( + private apiService: ApiService, + private route: ActivatedRoute, + eventService: EventService, + i18nService: I18nService, + exportService: ExportService, + platformUtilsService: PlatformUtilsService, + private router: Router, + logService: LogService, + private userNamePipe: UserNamePipe, + private organizationService: OrganizationService, + private providerService: ProviderService + ) { + super(eventService, i18nService, exportService, platformUtilsService, logService); + } + + async ngOnInit() { + this.route.parent.parent.params.subscribe(async (params) => { + this.organizationId = params.organizationId; + this.organization = await this.organizationService.get(this.organizationId); + if (this.organization == null || !this.organization.useEvents) { + this.router.navigate(["/organizations", this.organizationId]); + return; + } + + await this.load(); + }); + } + + async load() { + const response = await this.apiService.getOrganizationUsers(this.organizationId); + response.data.forEach((u) => { + const name = this.userNamePipe.transform(u); + this.orgUsersUserIdMap.set(u.userId, { name: name, email: u.email }); + }); + + if (this.organization.providerId != null) { + try { + const provider = await this.providerService.get(this.organization.providerId); + if ( + provider != null && + (await this.providerService.get(this.organization.providerId)).canManageUsers + ) { + const providerUsersResponse = await this.apiService.getProviderUsers( + this.organization.providerId + ); + providerUsersResponse.data.forEach((u) => { + const name = this.userNamePipe.transform(u); + this.orgUsersUserIdMap.set(u.userId, { + name: `${name} (${this.organization.providerName})`, + email: u.email, + }); + }); + } + } catch (e) { + this.logService.warning(e); + } + } + + await this.loadEvents(true); + this.loaded = true; + } + + protected requestEvents(startDate: string, endDate: string, continuationToken: string) { + return this.apiService.getEventsOrganization( + this.organizationId, + startDate, + endDate, + continuationToken + ); + } + + protected getUserName(r: EventResponse, userId: string) { + if (userId == null) { + return null; + } + + if (this.orgUsersUserIdMap.has(userId)) { + return this.orgUsersUserIdMap.get(userId); + } + + if (r.providerId != null && r.providerId === this.organization.providerId) { + return { + name: this.organization.providerName, + }; + } + + return null; + } +} diff --git a/apps/web/src/app/organizations/manage/group-add-edit.component.html b/apps/web/src/app/organizations/manage/group-add-edit.component.html new file mode 100644 index 0000000000..8bb58656b1 --- /dev/null +++ b/apps/web/src/app/organizations/manage/group-add-edit.component.html @@ -0,0 +1,186 @@ + diff --git a/apps/web/src/app/organizations/manage/group-add-edit.component.ts b/apps/web/src/app/organizations/manage/group-add-edit.component.ts new file mode 100644 index 0000000000..5b19508359 --- /dev/null +++ b/apps/web/src/app/organizations/manage/group-add-edit.component.ts @@ -0,0 +1,152 @@ +import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CollectionService } from "jslib-common/abstractions/collection.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { CollectionData } from "jslib-common/models/data/collectionData"; +import { Collection } from "jslib-common/models/domain/collection"; +import { GroupRequest } from "jslib-common/models/request/groupRequest"; +import { SelectionReadOnlyRequest } from "jslib-common/models/request/selectionReadOnlyRequest"; +import { CollectionDetailsResponse } from "jslib-common/models/response/collectionResponse"; +import { CollectionView } from "jslib-common/models/view/collectionView"; + +@Component({ + selector: "app-group-add-edit", + templateUrl: "group-add-edit.component.html", +}) +export class GroupAddEditComponent implements OnInit { + @Input() groupId: string; + @Input() organizationId: string; + @Output() onSavedGroup = new EventEmitter(); + @Output() onDeletedGroup = new EventEmitter(); + + loading = true; + editMode = false; + title: string; + name: string; + externalId: string; + access: "all" | "selected" = "selected"; + collections: CollectionView[] = []; + formPromise: Promise; + deletePromise: Promise; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private collectionService: CollectionService, + private platformUtilsService: PlatformUtilsService, + private logService: LogService + ) {} + + async ngOnInit() { + this.editMode = this.loading = this.groupId != null; + await this.loadCollections(); + + if (this.editMode) { + this.editMode = true; + this.title = this.i18nService.t("editGroup"); + try { + const group = await this.apiService.getGroupDetails(this.organizationId, this.groupId); + this.access = group.accessAll ? "all" : "selected"; + this.name = group.name; + this.externalId = group.externalId; + if (group.collections != null && this.collections != null) { + group.collections.forEach((s) => { + const collection = this.collections.filter((c) => c.id === s.id); + if (collection != null && collection.length > 0) { + (collection[0] as any).checked = true; + collection[0].readOnly = s.readOnly; + collection[0].hidePasswords = s.hidePasswords; + } + }); + } + } catch (e) { + this.logService.error(e); + } + } else { + this.title = this.i18nService.t("addGroup"); + } + + this.loading = false; + } + + async loadCollections() { + const response = await this.apiService.getCollections(this.organizationId); + const collections = response.data.map( + (r) => new Collection(new CollectionData(r as CollectionDetailsResponse)) + ); + this.collections = await this.collectionService.decryptMany(collections); + } + + check(c: CollectionView, select?: boolean) { + (c as any).checked = select == null ? !(c as any).checked : select; + if (!(c as any).checked) { + c.readOnly = false; + } + } + + selectAll(select: boolean) { + this.collections.forEach((c) => this.check(c, select)); + } + + async submit() { + const request = new GroupRequest(); + request.name = this.name; + request.externalId = this.externalId; + request.accessAll = this.access === "all"; + if (!request.accessAll) { + request.collections = this.collections + .filter((c) => (c as any).checked) + .map((c) => new SelectionReadOnlyRequest(c.id, !!c.readOnly, !!c.hidePasswords)); + } + + try { + if (this.editMode) { + this.formPromise = this.apiService.putGroup(this.organizationId, this.groupId, request); + } else { + this.formPromise = this.apiService.postGroup(this.organizationId, request); + } + await this.formPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t(this.editMode ? "editedGroupId" : "createdGroupId", this.name) + ); + this.onSavedGroup.emit(); + } catch (e) { + this.logService.error(e); + } + } + + async delete() { + if (!this.editMode) { + return; + } + + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("deleteGroupConfirmation"), + this.name, + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!confirmed) { + return false; + } + + try { + this.deletePromise = this.apiService.deleteGroup(this.organizationId, this.groupId); + await this.deletePromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("deletedGroupId", this.name) + ); + this.onDeletedGroup.emit(); + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/apps/web/src/app/organizations/manage/groups.component.html b/apps/web/src/app/organizations/manage/groups.component.html new file mode 100644 index 0000000000..050307b853 --- /dev/null +++ b/apps/web/src/app/organizations/manage/groups.component.html @@ -0,0 +1,77 @@ + + + + {{ "loading" | i18n }} + + +

{{ "noGroupsInList" | i18n }}

+ + + + + + + +
+ {{ g.name }} + + +
+
+ + diff --git a/apps/web/src/app/organizations/manage/groups.component.ts b/apps/web/src/app/organizations/manage/groups.component.ts new file mode 100644 index 0000000000..bc8bbd3c09 --- /dev/null +++ b/apps/web/src/app/organizations/manage/groups.component.ts @@ -0,0 +1,182 @@ +import { Component, OnInit, ViewChild, ViewContainerRef } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; +import { first } from "rxjs/operators"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { SearchService } from "jslib-common/abstractions/search.service"; +import { Utils } from "jslib-common/misc/utils"; +import { GroupResponse } from "jslib-common/models/response/groupResponse"; + +import { EntityUsersComponent } from "../../modules/organizations/manage/entity-users.component"; + +import { GroupAddEditComponent } from "./group-add-edit.component"; + +@Component({ + selector: "app-org-groups", + templateUrl: "groups.component.html", +}) +export class GroupsComponent implements OnInit { + @ViewChild("addEdit", { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef; + @ViewChild("usersTemplate", { read: ViewContainerRef, static: true }) + usersModalRef: ViewContainerRef; + + loading = true; + organizationId: string; + groups: GroupResponse[]; + pagedGroups: GroupResponse[]; + searchText: string; + + protected didScroll = false; + protected pageSize = 100; + + private pagedGroupsCount = 0; + + constructor( + private apiService: ApiService, + private route: ActivatedRoute, + private i18nService: I18nService, + private modalService: ModalService, + private platformUtilsService: PlatformUtilsService, + private router: Router, + private searchService: SearchService, + private logService: LogService, + private organizationService: OrganizationService + ) {} + + async ngOnInit() { + this.route.parent.parent.params.subscribe(async (params) => { + this.organizationId = params.organizationId; + const organization = await this.organizationService.get(this.organizationId); + if (organization == null || !organization.useGroups) { + this.router.navigate(["/organizations", this.organizationId]); + return; + } + await this.load(); + this.route.queryParams.pipe(first()).subscribe(async (qParams) => { + this.searchText = qParams.search; + }); + }); + } + + async load() { + const response = await this.apiService.getGroups(this.organizationId); + const groups = response.data != null && response.data.length > 0 ? response.data : []; + groups.sort(Utils.getSortFunction(this.i18nService, "name")); + this.groups = groups; + this.resetPaging(); + this.loading = false; + } + + loadMore() { + if (!this.groups || this.groups.length <= this.pageSize) { + return; + } + const pagedLength = this.pagedGroups.length; + let pagedSize = this.pageSize; + if (pagedLength === 0 && this.pagedGroupsCount > this.pageSize) { + pagedSize = this.pagedGroupsCount; + } + if (this.groups.length > pagedLength) { + this.pagedGroups = this.pagedGroups.concat( + this.groups.slice(pagedLength, pagedLength + pagedSize) + ); + } + this.pagedGroupsCount = this.pagedGroups.length; + this.didScroll = this.pagedGroups.length > this.pageSize; + } + + async edit(group: GroupResponse) { + const [modal] = await this.modalService.openViewRef( + GroupAddEditComponent, + this.addEditModalRef, + (comp) => { + comp.organizationId = this.organizationId; + comp.groupId = group != null ? group.id : null; + comp.onSavedGroup.subscribe(() => { + modal.close(); + this.load(); + }); + comp.onDeletedGroup.subscribe(() => { + modal.close(); + this.removeGroup(group); + }); + } + ); + } + + add() { + this.edit(null); + } + + async delete(group: GroupResponse) { + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("deleteGroupConfirmation"), + group.name, + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!confirmed) { + return false; + } + + try { + await this.apiService.deleteGroup(this.organizationId, group.id); + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("deletedGroupId", group.name) + ); + this.removeGroup(group); + } catch (e) { + this.logService.error(e); + } + } + + async users(group: GroupResponse) { + const [modal] = await this.modalService.openViewRef( + EntityUsersComponent, + this.usersModalRef, + (comp) => { + comp.organizationId = this.organizationId; + comp.entity = "group"; + comp.entityId = group.id; + comp.entityName = group.name; + + comp.onEditedUsers.subscribe(() => { + modal.close(); + }); + } + ); + } + + async resetPaging() { + this.pagedGroups = []; + this.loadMore(); + } + + isSearching() { + return this.searchService.isSearchable(this.searchText); + } + + isPaging() { + const searching = this.isSearching(); + if (searching && this.didScroll) { + this.resetPaging(); + } + return !searching && this.groups && this.groups.length > this.pageSize; + } + + private removeGroup(group: GroupResponse) { + const index = this.groups.indexOf(group); + if (index > -1) { + this.groups.splice(index, 1); + this.resetPaging(); + } + } +} diff --git a/apps/web/src/app/organizations/manage/manage.component.html b/apps/web/src/app/organizations/manage/manage.component.html new file mode 100644 index 0000000000..63718db432 --- /dev/null +++ b/apps/web/src/app/organizations/manage/manage.component.html @@ -0,0 +1,62 @@ + diff --git a/apps/web/src/app/organizations/manage/manage.component.ts b/apps/web/src/app/organizations/manage/manage.component.ts new file mode 100644 index 0000000000..ee04d5621f --- /dev/null +++ b/apps/web/src/app/organizations/manage/manage.component.ts @@ -0,0 +1,29 @@ +import { Component, OnInit } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { Organization } from "jslib-common/models/domain/organization"; + +@Component({ + selector: "app-org-manage", + templateUrl: "manage.component.html", +}) +export class ManageComponent implements OnInit { + organization: Organization; + accessPolicies = false; + accessGroups = false; + accessEvents = false; + accessSso = false; + + constructor(private route: ActivatedRoute, private organizationService: OrganizationService) {} + + ngOnInit() { + this.route.parent.params.subscribe(async (params) => { + this.organization = await this.organizationService.get(params.organizationId); + this.accessPolicies = this.organization.usePolicies; + this.accessSso = this.organization.useSso; + this.accessEvents = this.organization.useEvents; + this.accessGroups = this.organization.useGroups; + }); + } +} diff --git a/apps/web/src/app/organizations/manage/people.component.html b/apps/web/src/app/organizations/manage/people.component.html new file mode 100644 index 0000000000..49be829e5f --- /dev/null +++ b/apps/web/src/app/organizations/manage/people.component.html @@ -0,0 +1,255 @@ + + + + {{ "loading" | i18n }} + + +

{{ "noUsersInList" | i18n }}

+ + + {{ "usersNeedConfirmed" | i18n }} + + + + + + + + + + + + +
+ + + + + + {{ u.email }} + {{ + "invited" | i18n + }} + {{ + "accepted" | i18n + }} + {{ u.name }} + + + + {{ "userUsingTwoStep" | i18n }} + + + + {{ "enrolledPasswordReset" | i18n }} + + + {{ "owner" | i18n }} + {{ "admin" | i18n }} + {{ "manager" | i18n }} + {{ "user" | i18n }} + {{ "custom" | i18n }} + + +
+
+
+ + + + + + + + diff --git a/apps/web/src/app/organizations/manage/people.component.ts b/apps/web/src/app/organizations/manage/people.component.ts new file mode 100644 index 0000000000..f26be7f5ad --- /dev/null +++ b/apps/web/src/app/organizations/manage/people.component.ts @@ -0,0 +1,416 @@ +import { Component, OnInit, ViewChild, ViewContainerRef } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; +import { first } from "rxjs/operators"; + +import { SearchPipe } from "jslib-angular/pipes/search.pipe"; +import { UserNamePipe } from "jslib-angular/pipes/user-name.pipe"; +import { ModalService } from "jslib-angular/services/modal.service"; +import { ValidationService } from "jslib-angular/services/validation.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { SearchService } from "jslib-common/abstractions/search.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { OrganizationUserStatusType } from "jslib-common/enums/organizationUserStatusType"; +import { OrganizationUserType } from "jslib-common/enums/organizationUserType"; +import { PolicyType } from "jslib-common/enums/policyType"; +import { OrganizationKeysRequest } from "jslib-common/models/request/organizationKeysRequest"; +import { OrganizationUserBulkRequest } from "jslib-common/models/request/organizationUserBulkRequest"; +import { OrganizationUserConfirmRequest } from "jslib-common/models/request/organizationUserConfirmRequest"; +import { ListResponse } from "jslib-common/models/response/listResponse"; +import { OrganizationUserBulkResponse } from "jslib-common/models/response/organizationUserBulkResponse"; +import { OrganizationUserUserDetailsResponse } from "jslib-common/models/response/organizationUserResponse"; + +import { BasePeopleComponent } from "../../common/base.people.component"; + +import { BulkConfirmComponent } from "./bulk/bulk-confirm.component"; +import { BulkRemoveComponent } from "./bulk/bulk-remove.component"; +import { BulkStatusComponent } from "./bulk/bulk-status.component"; +import { EntityEventsComponent } from "./entity-events.component"; +import { ResetPasswordComponent } from "./reset-password.component"; +import { UserAddEditComponent } from "./user-add-edit.component"; +import { UserGroupsComponent } from "./user-groups.component"; + +@Component({ + selector: "app-org-people", + templateUrl: "people.component.html", +}) +export class PeopleComponent + extends BasePeopleComponent + implements OnInit +{ + @ViewChild("addEdit", { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef; + @ViewChild("groupsTemplate", { read: ViewContainerRef, static: true }) + groupsModalRef: ViewContainerRef; + @ViewChild("eventsTemplate", { read: ViewContainerRef, static: true }) + eventsModalRef: ViewContainerRef; + @ViewChild("confirmTemplate", { read: ViewContainerRef, static: true }) + confirmModalRef: ViewContainerRef; + @ViewChild("resetPasswordTemplate", { read: ViewContainerRef, static: true }) + resetPasswordModalRef: ViewContainerRef; + @ViewChild("bulkStatusTemplate", { read: ViewContainerRef, static: true }) + bulkStatusModalRef: ViewContainerRef; + @ViewChild("bulkConfirmTemplate", { read: ViewContainerRef, static: true }) + bulkConfirmModalRef: ViewContainerRef; + @ViewChild("bulkRemoveTemplate", { read: ViewContainerRef, static: true }) + bulkRemoveModalRef: ViewContainerRef; + + userType = OrganizationUserType; + userStatusType = OrganizationUserStatusType; + + organizationId: string; + status: OrganizationUserStatusType = null; + accessEvents = false; + accessGroups = false; + canResetPassword = false; // User permission (admin/custom) + orgUseResetPassword = false; // Org plan ability + orgHasKeys = false; // Org public/private keys + orgResetPasswordPolicyEnabled = false; + callingUserType: OrganizationUserType = null; + + constructor( + apiService: ApiService, + private route: ActivatedRoute, + i18nService: I18nService, + modalService: ModalService, + platformUtilsService: PlatformUtilsService, + cryptoService: CryptoService, + private router: Router, + searchService: SearchService, + validationService: ValidationService, + private policyService: PolicyService, + logService: LogService, + searchPipe: SearchPipe, + userNamePipe: UserNamePipe, + private syncService: SyncService, + stateService: StateService, + private organizationService: OrganizationService + ) { + super( + apiService, + searchService, + i18nService, + platformUtilsService, + cryptoService, + validationService, + modalService, + logService, + searchPipe, + userNamePipe, + stateService + ); + } + + async ngOnInit() { + this.route.parent.parent.params.subscribe(async (params) => { + this.organizationId = params.organizationId; + const organization = await this.organizationService.get(this.organizationId); + if (!organization.canManageUsers) { + this.router.navigate(["../collections"], { relativeTo: this.route }); + return; + } + this.accessEvents = organization.useEvents; + this.accessGroups = organization.useGroups; + this.canResetPassword = organization.canManageUsersPassword; + this.orgUseResetPassword = organization.useResetPassword; + this.callingUserType = organization.type; + this.orgHasKeys = organization.hasPublicAndPrivateKeys; + + // Backfill pub/priv key if necessary + if (this.canResetPassword && !this.orgHasKeys) { + const orgShareKey = await this.cryptoService.getOrgKey(this.organizationId); + const orgKeys = await this.cryptoService.makeKeyPair(orgShareKey); + const request = new OrganizationKeysRequest(orgKeys[0], orgKeys[1].encryptedString); + const response = await this.apiService.postOrganizationKeys(this.organizationId, request); + if (response != null) { + this.orgHasKeys = response.publicKey != null && response.privateKey != null; + await this.syncService.fullSync(true); // Replace oganizations with new data + } else { + throw new Error(this.i18nService.t("resetPasswordOrgKeysError")); + } + } + + await this.load(); + + this.route.queryParams.pipe(first()).subscribe(async (qParams) => { + this.searchText = qParams.search; + if (qParams.viewEvents != null) { + const user = this.users.filter((u) => u.id === qParams.viewEvents); + if (user.length > 0 && user[0].status === OrganizationUserStatusType.Confirmed) { + this.events(user[0]); + } + } + }); + }); + } + + async load() { + const resetPasswordPolicy = await this.policyService.getPolicyForOrganization( + PolicyType.ResetPassword, + this.organizationId + ); + this.orgResetPasswordPolicyEnabled = resetPasswordPolicy?.enabled; + super.load(); + } + + getUsers(): Promise> { + return this.apiService.getOrganizationUsers(this.organizationId); + } + + deleteUser(id: string): Promise { + return this.apiService.deleteOrganizationUser(this.organizationId, id); + } + + reinviteUser(id: string): Promise { + return this.apiService.postOrganizationUserReinvite(this.organizationId, id); + } + + async confirmUser( + user: OrganizationUserUserDetailsResponse, + publicKey: Uint8Array + ): Promise { + const orgKey = await this.cryptoService.getOrgKey(this.organizationId); + const key = await this.cryptoService.rsaEncrypt(orgKey.key, publicKey.buffer); + const request = new OrganizationUserConfirmRequest(); + request.key = key.encryptedString; + await this.apiService.postOrganizationUserConfirm(this.organizationId, user.id, request); + } + + allowResetPassword(orgUser: OrganizationUserUserDetailsResponse): boolean { + // Hierarchy check + let callingUserHasPermission = false; + + switch (this.callingUserType) { + case OrganizationUserType.Owner: + callingUserHasPermission = true; + break; + case OrganizationUserType.Admin: + callingUserHasPermission = orgUser.type !== OrganizationUserType.Owner; + break; + case OrganizationUserType.Custom: + callingUserHasPermission = + orgUser.type !== OrganizationUserType.Owner && + orgUser.type !== OrganizationUserType.Admin; + break; + } + + // Final + return ( + this.canResetPassword && + callingUserHasPermission && + this.orgUseResetPassword && + this.orgHasKeys && + orgUser.resetPasswordEnrolled && + this.orgResetPasswordPolicyEnabled && + orgUser.status === OrganizationUserStatusType.Confirmed + ); + } + + showEnrolledStatus(orgUser: OrganizationUserUserDetailsResponse): boolean { + return ( + this.orgUseResetPassword && + orgUser.resetPasswordEnrolled && + this.orgResetPasswordPolicyEnabled + ); + } + + async edit(user: OrganizationUserUserDetailsResponse) { + const [modal] = await this.modalService.openViewRef( + UserAddEditComponent, + this.addEditModalRef, + (comp) => { + comp.name = this.userNamePipe.transform(user); + comp.organizationId = this.organizationId; + comp.organizationUserId = user != null ? user.id : null; + comp.usesKeyConnector = user?.usesKeyConnector; + comp.onSavedUser.subscribe(() => { + modal.close(); + this.load(); + }); + comp.onDeletedUser.subscribe(() => { + modal.close(); + this.removeUser(user); + }); + } + ); + } + + async groups(user: OrganizationUserUserDetailsResponse) { + const [modal] = await this.modalService.openViewRef( + UserGroupsComponent, + this.groupsModalRef, + (comp) => { + comp.name = this.userNamePipe.transform(user); + comp.organizationId = this.organizationId; + comp.organizationUserId = user != null ? user.id : null; + comp.onSavedUser.subscribe(() => { + modal.close(); + }); + } + ); + } + + async bulkRemove() { + if (this.actionPromise != null) { + return; + } + + const [modal] = await this.modalService.openViewRef( + BulkRemoveComponent, + this.bulkRemoveModalRef, + (comp) => { + comp.organizationId = this.organizationId; + comp.users = this.getCheckedUsers(); + } + ); + + await modal.onClosedPromise(); + await this.load(); + } + + async bulkReinvite() { + if (this.actionPromise != null) { + return; + } + + const users = this.getCheckedUsers(); + const filteredUsers = users.filter((u) => u.status === OrganizationUserStatusType.Invited); + + if (filteredUsers.length <= 0) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("noSelectedUsersApplicable") + ); + return; + } + + try { + const request = new OrganizationUserBulkRequest(filteredUsers.map((user) => user.id)); + const response = this.apiService.postManyOrganizationUserReinvite( + this.organizationId, + request + ); + this.showBulkStatus( + users, + filteredUsers, + response, + this.i18nService.t("bulkReinviteMessage") + ); + } catch (e) { + this.validationService.showError(e); + } + this.actionPromise = null; + } + + async bulkConfirm() { + if (this.actionPromise != null) { + return; + } + + const [modal] = await this.modalService.openViewRef( + BulkConfirmComponent, + this.bulkConfirmModalRef, + (comp) => { + comp.organizationId = this.organizationId; + comp.users = this.getCheckedUsers(); + } + ); + + await modal.onClosedPromise(); + await this.load(); + } + + async events(user: OrganizationUserUserDetailsResponse) { + await this.modalService.openViewRef(EntityEventsComponent, this.eventsModalRef, (comp) => { + comp.name = this.userNamePipe.transform(user); + comp.organizationId = this.organizationId; + comp.entityId = user.id; + comp.showUser = false; + comp.entity = "user"; + }); + } + + async resetPassword(user: OrganizationUserUserDetailsResponse) { + const [modal] = await this.modalService.openViewRef( + ResetPasswordComponent, + this.resetPasswordModalRef, + (comp) => { + comp.name = this.userNamePipe.transform(user); + comp.email = user != null ? user.email : null; + comp.organizationId = this.organizationId; + comp.id = user != null ? user.id : null; + + comp.onPasswordReset.subscribe(() => { + modal.close(); + this.load(); + }); + } + ); + } + + protected deleteWarningMessage(user: OrganizationUserUserDetailsResponse): string { + if (user.usesKeyConnector) { + return this.i18nService.t("removeUserConfirmationKeyConnector"); + } + + return super.deleteWarningMessage(user); + } + + private async showBulkStatus( + users: OrganizationUserUserDetailsResponse[], + filteredUsers: OrganizationUserUserDetailsResponse[], + request: Promise>, + successfullMessage: string + ) { + const [modal, childComponent] = await this.modalService.openViewRef( + BulkStatusComponent, + this.bulkStatusModalRef, + (comp) => { + comp.loading = true; + } + ); + + // Workaround to handle closing the modal shortly after it has been opened + let close = false; + modal.onShown.subscribe(() => { + if (close) { + modal.close(); + } + }); + + try { + const response = await request; + + if (modal) { + const keyedErrors: any = response.data + .filter((r) => r.error !== "") + .reduce((a, x) => ({ ...a, [x.id]: x.error }), {}); + const keyedFilteredUsers: any = filteredUsers.reduce((a, x) => ({ ...a, [x.id]: x }), {}); + + childComponent.users = users.map((user) => { + let message = keyedErrors[user.id] ?? successfullMessage; + // eslint-disable-next-line + if (!keyedFilteredUsers.hasOwnProperty(user.id)) { + message = this.i18nService.t("bulkFilteredMessage"); + } + + return { + user: user, + error: keyedErrors.hasOwnProperty(user.id), // eslint-disable-line + message: message, + }; + }); + childComponent.loading = false; + } + } catch { + close = true; + modal.close(); + } + } +} diff --git a/apps/web/src/app/organizations/manage/policies.component.html b/apps/web/src/app/organizations/manage/policies.component.html new file mode 100644 index 0000000000..0f8b890c8f --- /dev/null +++ b/apps/web/src/app/organizations/manage/policies.component.html @@ -0,0 +1,25 @@ + + + + {{ "loading" | i18n }} + + + + + + + +
+ {{ p.name | i18n }} + {{ + "enabled" | i18n + }} + {{ p.description | i18n }} +
+ diff --git a/apps/web/src/app/organizations/manage/policies.component.ts b/apps/web/src/app/organizations/manage/policies.component.ts new file mode 100644 index 0000000000..f62c8bf2e3 --- /dev/null +++ b/apps/web/src/app/organizations/manage/policies.component.ts @@ -0,0 +1,100 @@ +import { Component, OnInit, ViewChild, ViewContainerRef } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; +import { first } from "rxjs/operators"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PolicyType } from "jslib-common/enums/policyType"; +import { Organization } from "jslib-common/models/domain/organization"; +import { PolicyResponse } from "jslib-common/models/response/policyResponse"; + +import { PolicyListService } from "../../services/policy-list.service"; +import { BasePolicy } from "../policies/base-policy.component"; + +import { PolicyEditComponent } from "./policy-edit.component"; + +@Component({ + selector: "app-org-policies", + templateUrl: "policies.component.html", +}) +export class PoliciesComponent implements OnInit { + @ViewChild("editTemplate", { read: ViewContainerRef, static: true }) + editModalRef: ViewContainerRef; + + loading = true; + organizationId: string; + policies: BasePolicy[]; + organization: Organization; + + private orgPolicies: PolicyResponse[]; + private policiesEnabledMap: Map = new Map(); + + constructor( + private apiService: ApiService, + private route: ActivatedRoute, + private modalService: ModalService, + private organizationService: OrganizationService, + private policyListService: PolicyListService, + private router: Router + ) {} + + async ngOnInit() { + this.route.parent.parent.params.subscribe(async (params) => { + this.organizationId = params.organizationId; + this.organization = await this.organizationService.get(this.organizationId); + if (this.organization == null || !this.organization.usePolicies) { + this.router.navigate(["/organizations", this.organizationId]); + return; + } + + this.policies = this.policyListService.getPolicies(); + + await this.load(); + + // Handle policies component launch from Event message + this.route.queryParams.pipe(first()).subscribe(async (qParams) => { + if (qParams.policyId != null) { + const policyIdFromEvents: string = qParams.policyId; + for (const orgPolicy of this.orgPolicies) { + if (orgPolicy.id === policyIdFromEvents) { + for (let i = 0; i < this.policies.length; i++) { + if (this.policies[i].type === orgPolicy.type) { + this.edit(this.policies[i]); + break; + } + } + break; + } + } + } + }); + }); + } + + async load() { + const response = await this.apiService.getPolicies(this.organizationId); + this.orgPolicies = response.data != null && response.data.length > 0 ? response.data : []; + this.orgPolicies.forEach((op) => { + this.policiesEnabledMap.set(op.type, op.enabled); + }); + + this.loading = false; + } + + async edit(policy: BasePolicy) { + const [modal] = await this.modalService.openViewRef( + PolicyEditComponent, + this.editModalRef, + (comp) => { + comp.policy = policy; + comp.organizationId = this.organizationId; + comp.policiesEnabledMap = this.policiesEnabledMap; + comp.onSavedPolicy.subscribe(() => { + modal.close(); + this.load(); + }); + } + ); + } +} diff --git a/apps/web/src/app/organizations/manage/policy-edit.component.html b/apps/web/src/app/organizations/manage/policy-edit.component.html new file mode 100644 index 0000000000..90f1de8190 --- /dev/null +++ b/apps/web/src/app/organizations/manage/policy-edit.component.html @@ -0,0 +1,49 @@ + diff --git a/apps/web/src/app/organizations/manage/policy-edit.component.ts b/apps/web/src/app/organizations/manage/policy-edit.component.ts new file mode 100644 index 0000000000..93f3de37ff --- /dev/null +++ b/apps/web/src/app/organizations/manage/policy-edit.component.ts @@ -0,0 +1,100 @@ +import { + ChangeDetectorRef, + Component, + ComponentFactoryResolver, + EventEmitter, + Input, + Output, + ViewChild, + ViewContainerRef, +} from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyType } from "jslib-common/enums/policyType"; +import { PolicyRequest } from "jslib-common/models/request/policyRequest"; +import { PolicyResponse } from "jslib-common/models/response/policyResponse"; + +import { BasePolicy, BasePolicyComponent } from "../policies/base-policy.component"; + +@Component({ + selector: "app-policy-edit", + templateUrl: "policy-edit.component.html", +}) +export class PolicyEditComponent { + @Input() policy: BasePolicy; + @Input() organizationId: string; + @Input() policiesEnabledMap: Map = new Map(); + @Output() onSavedPolicy = new EventEmitter(); + + @ViewChild("policyForm", { read: ViewContainerRef, static: true }) + policyFormRef: ViewContainerRef; + + policyType = PolicyType; + loading = true; + enabled = false; + formPromise: Promise; + defaultTypes: any[]; + policyComponent: BasePolicyComponent; + + private policyResponse: PolicyResponse; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private componentFactoryResolver: ComponentFactoryResolver, + private cdr: ChangeDetectorRef, + private logService: LogService + ) {} + + async ngAfterViewInit() { + await this.load(); + this.loading = false; + + const factory = this.componentFactoryResolver.resolveComponentFactory(this.policy.component); + this.policyComponent = this.policyFormRef.createComponent(factory) + .instance as BasePolicyComponent; + this.policyComponent.policy = this.policy; + this.policyComponent.policyResponse = this.policyResponse; + + this.cdr.detectChanges(); + } + + async load() { + try { + this.policyResponse = await this.apiService.getPolicy(this.organizationId, this.policy.type); + } catch (e) { + if (e.statusCode === 404) { + this.policyResponse = new PolicyResponse({ Enabled: false }); + } else { + throw e; + } + } + } + + async submit() { + let request: PolicyRequest; + try { + request = await this.policyComponent.buildRequest(this.policiesEnabledMap); + } catch (e) { + this.platformUtilsService.showToast("error", null, e.message); + return; + } + + try { + this.formPromise = this.apiService.putPolicy(this.organizationId, this.policy.type, request); + await this.formPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("editedPolicyId", this.i18nService.t(this.policy.name)) + ); + this.onSavedPolicy.emit(); + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/apps/web/src/app/organizations/manage/reset-password.component.html b/apps/web/src/app/organizations/manage/reset-password.component.html new file mode 100644 index 0000000000..137720dc72 --- /dev/null +++ b/apps/web/src/app/organizations/manage/reset-password.component.html @@ -0,0 +1,97 @@ + diff --git a/apps/web/src/app/organizations/manage/reset-password.component.ts b/apps/web/src/app/organizations/manage/reset-password.component.ts new file mode 100644 index 0000000000..3c3aab7ad8 --- /dev/null +++ b/apps/web/src/app/organizations/manage/reset-password.component.ts @@ -0,0 +1,217 @@ +import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { EncString } from "jslib-common/models/domain/encString"; +import { MasterPasswordPolicyOptions } from "jslib-common/models/domain/masterPasswordPolicyOptions"; +import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; +import { OrganizationUserResetPasswordRequest } from "jslib-common/models/request/organizationUserResetPasswordRequest"; + +@Component({ + selector: "app-reset-password", + templateUrl: "reset-password.component.html", +}) +export class ResetPasswordComponent implements OnInit { + @Input() name: string; + @Input() email: string; + @Input() id: string; + @Input() organizationId: string; + @Output() onPasswordReset = new EventEmitter(); + + enforcedPolicyOptions: MasterPasswordPolicyOptions; + newPassword: string = null; + showPassword = false; + masterPasswordScore: number; + formPromise: Promise; + private newPasswordStrengthTimeout: any; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private passwordGenerationService: PasswordGenerationService, + private policyService: PolicyService, + private cryptoService: CryptoService, + private logService: LogService + ) {} + + async ngOnInit() { + // Get Enforced Policy Options + this.enforcedPolicyOptions = await this.policyService.getMasterPasswordPolicyOptions(); + } + + get loggedOutWarningName() { + return this.name != null ? this.name : this.i18nService.t("thisUser"); + } + + async generatePassword() { + const options = (await this.passwordGenerationService.getOptions())[0]; + this.newPassword = await this.passwordGenerationService.generatePassword(options); + this.updatePasswordStrength(); + } + + togglePassword() { + this.showPassword = !this.showPassword; + document.getElementById("newPassword").focus(); + } + + copy(value: string) { + if (value == null) { + return; + } + + this.platformUtilsService.copyToClipboard(value, { window: window }); + this.platformUtilsService.showToast( + "info", + null, + this.i18nService.t("valueCopied", this.i18nService.t("password")) + ); + } + + async submit() { + // Validation + if (this.newPassword == null || this.newPassword === "") { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("masterPassRequired") + ); + return false; + } + + if (this.newPassword.length < 8) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("masterPassLength") + ); + return false; + } + + if ( + this.enforcedPolicyOptions != null && + !this.policyService.evaluateMasterPassword( + this.masterPasswordScore, + this.newPassword, + this.enforcedPolicyOptions + ) + ) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("masterPasswordPolicyRequirementsNotMet") + ); + return; + } + + if (this.masterPasswordScore < 3) { + const result = await this.platformUtilsService.showDialog( + this.i18nService.t("weakMasterPasswordDesc"), + this.i18nService.t("weakMasterPassword"), + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!result) { + return false; + } + } + + // Get user Information (kdf type, kdf iterations, resetPasswordKey, private key) and change password + try { + this.formPromise = this.apiService + .getOrganizationUserResetPasswordDetails(this.organizationId, this.id) + .then(async (response) => { + if (response == null) { + throw new Error(this.i18nService.t("resetPasswordDetailsError")); + } + + const kdfType = response.kdf; + const kdfIterations = response.kdfIterations; + const resetPasswordKey = response.resetPasswordKey; + const encryptedPrivateKey = response.encryptedPrivateKey; + + // Decrypt Organization's encrypted Private Key with org key + const orgSymKey = await this.cryptoService.getOrgKey(this.organizationId); + const decPrivateKey = await this.cryptoService.decryptToBytes( + new EncString(encryptedPrivateKey), + orgSymKey + ); + + // Decrypt User's Reset Password Key to get EncKey + const decValue = await this.cryptoService.rsaDecrypt(resetPasswordKey, decPrivateKey); + const userEncKey = new SymmetricCryptoKey(decValue); + + // Create new key and hash new password + const newKey = await this.cryptoService.makeKey( + this.newPassword, + this.email.trim().toLowerCase(), + kdfType, + kdfIterations + ); + const newPasswordHash = await this.cryptoService.hashPassword(this.newPassword, newKey); + + // Create new encKey for the User + const newEncKey = await this.cryptoService.remakeEncKey(newKey, userEncKey); + + // Create request + const request = new OrganizationUserResetPasswordRequest(); + request.key = newEncKey[1].encryptedString; + request.newMasterPasswordHash = newPasswordHash; + + // Change user's password + return this.apiService.putOrganizationUserResetPassword( + this.organizationId, + this.id, + request + ); + }); + + await this.formPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("resetPasswordSuccess") + ); + this.onPasswordReset.emit(); + } catch (e) { + this.logService.error(e); + } + } + + updatePasswordStrength() { + if (this.newPasswordStrengthTimeout != null) { + clearTimeout(this.newPasswordStrengthTimeout); + } + this.newPasswordStrengthTimeout = setTimeout(() => { + const strengthResult = this.passwordGenerationService.passwordStrength( + this.newPassword, + this.getPasswordStrengthUserInput() + ); + this.masterPasswordScore = strengthResult == null ? null : strengthResult.score; + }, 300); + } + + private getPasswordStrengthUserInput() { + let userInput: string[] = []; + const atPosition = this.email.indexOf("@"); + if (atPosition > -1) { + userInput = userInput.concat( + this.email + .substr(0, atPosition) + .trim() + .toLowerCase() + .split(/[^A-Za-z0-9]/) + ); + } + if (this.name != null && this.name !== "") { + userInput = userInput.concat(this.name.trim().toLowerCase().split(" ")); + } + return userInput; + } +} diff --git a/apps/web/src/app/organizations/manage/user-add-edit.component.html b/apps/web/src/app/organizations/manage/user-add-edit.component.html new file mode 100644 index 0000000000..c9047b7e2d --- /dev/null +++ b/apps/web/src/app/organizations/manage/user-add-edit.component.html @@ -0,0 +1,407 @@ + diff --git a/apps/web/src/app/organizations/manage/user-add-edit.component.ts b/apps/web/src/app/organizations/manage/user-add-edit.component.ts new file mode 100644 index 0000000000..cebf022657 --- /dev/null +++ b/apps/web/src/app/organizations/manage/user-add-edit.component.ts @@ -0,0 +1,242 @@ +import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CollectionService } from "jslib-common/abstractions/collection.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { OrganizationUserType } from "jslib-common/enums/organizationUserType"; +import { PermissionsApi } from "jslib-common/models/api/permissionsApi"; +import { CollectionData } from "jslib-common/models/data/collectionData"; +import { Collection } from "jslib-common/models/domain/collection"; +import { OrganizationUserInviteRequest } from "jslib-common/models/request/organizationUserInviteRequest"; +import { OrganizationUserUpdateRequest } from "jslib-common/models/request/organizationUserUpdateRequest"; +import { SelectionReadOnlyRequest } from "jslib-common/models/request/selectionReadOnlyRequest"; +import { CollectionDetailsResponse } from "jslib-common/models/response/collectionResponse"; +import { CollectionView } from "jslib-common/models/view/collectionView"; + +@Component({ + selector: "app-user-add-edit", + templateUrl: "user-add-edit.component.html", +}) +export class UserAddEditComponent implements OnInit { + @Input() name: string; + @Input() organizationUserId: string; + @Input() organizationId: string; + @Input() usesKeyConnector = false; + @Output() onSavedUser = new EventEmitter(); + @Output() onDeletedUser = new EventEmitter(); + + loading = true; + editMode = false; + title: string; + emails: string; + type: OrganizationUserType = OrganizationUserType.User; + permissions = new PermissionsApi(); + showCustom = false; + access: "all" | "selected" = "selected"; + collections: CollectionView[] = []; + formPromise: Promise; + deletePromise: Promise; + organizationUserType = OrganizationUserType; + + manageAllCollectionsCheckboxes = [ + { + id: "createNewCollections", + get: () => this.permissions.createNewCollections, + set: (v: boolean) => (this.permissions.createNewCollections = v), + }, + { + id: "editAnyCollection", + get: () => this.permissions.editAnyCollection, + set: (v: boolean) => (this.permissions.editAnyCollection = v), + }, + { + id: "deleteAnyCollection", + get: () => this.permissions.deleteAnyCollection, + set: (v: boolean) => (this.permissions.deleteAnyCollection = v), + }, + ]; + + manageAssignedCollectionsCheckboxes = [ + { + id: "editAssignedCollections", + get: () => this.permissions.editAssignedCollections, + set: (v: boolean) => (this.permissions.editAssignedCollections = v), + }, + { + id: "deleteAssignedCollections", + get: () => this.permissions.deleteAssignedCollections, + set: (v: boolean) => (this.permissions.deleteAssignedCollections = v), + }, + ]; + + get customUserTypeSelected(): boolean { + return this.type === OrganizationUserType.Custom; + } + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private collectionService: CollectionService, + private platformUtilsService: PlatformUtilsService, + private logService: LogService + ) {} + + async ngOnInit() { + this.editMode = this.loading = this.organizationUserId != null; + await this.loadCollections(); + + if (this.editMode) { + this.editMode = true; + this.title = this.i18nService.t("editUser"); + try { + const user = await this.apiService.getOrganizationUser( + this.organizationId, + this.organizationUserId + ); + this.access = user.accessAll ? "all" : "selected"; + this.type = user.type; + if (user.type === OrganizationUserType.Custom) { + this.permissions = user.permissions; + } + if (user.collections != null && this.collections != null) { + user.collections.forEach((s) => { + const collection = this.collections.filter((c) => c.id === s.id); + if (collection != null && collection.length > 0) { + (collection[0] as any).checked = true; + collection[0].readOnly = s.readOnly; + collection[0].hidePasswords = s.hidePasswords; + } + }); + } + } catch (e) { + this.logService.error(e); + } + } else { + this.title = this.i18nService.t("inviteUser"); + } + + this.loading = false; + } + + async loadCollections() { + const response = await this.apiService.getCollections(this.organizationId); + const collections = response.data.map( + (r) => new Collection(new CollectionData(r as CollectionDetailsResponse)) + ); + this.collections = await this.collectionService.decryptMany(collections); + } + + check(c: CollectionView, select?: boolean) { + (c as any).checked = select == null ? !(c as any).checked : select; + if (!(c as any).checked) { + c.readOnly = false; + } + } + + selectAll(select: boolean) { + this.collections.forEach((c) => this.check(c, select)); + } + + setRequestPermissions(p: PermissionsApi, clearPermissions: boolean) { + Object.assign(p, clearPermissions ? new PermissionsApi() : this.permissions); + return p; + } + + handleDependentPermissions() { + // Manage Password Reset must have Manage Users enabled + if (this.permissions.manageResetPassword && !this.permissions.manageUsers) { + this.permissions.manageUsers = true; + (document.getElementById("manageUsers") as HTMLInputElement).checked = true; + this.platformUtilsService.showToast( + "info", + null, + this.i18nService.t("resetPasswordManageUsers") + ); + } + } + + async submit() { + let collections: SelectionReadOnlyRequest[] = null; + if (this.access !== "all") { + collections = this.collections + .filter((c) => (c as any).checked) + .map((c) => new SelectionReadOnlyRequest(c.id, !!c.readOnly, !!c.hidePasswords)); + } + + try { + if (this.editMode) { + const request = new OrganizationUserUpdateRequest(); + request.accessAll = this.access === "all"; + request.type = this.type; + request.collections = collections; + request.permissions = this.setRequestPermissions( + request.permissions ?? new PermissionsApi(), + request.type !== OrganizationUserType.Custom + ); + this.formPromise = this.apiService.putOrganizationUser( + this.organizationId, + this.organizationUserId, + request + ); + } else { + const request = new OrganizationUserInviteRequest(); + request.emails = this.emails.trim().split(/\s*,\s*/); + request.accessAll = this.access === "all"; + request.type = this.type; + request.permissions = this.setRequestPermissions( + request.permissions ?? new PermissionsApi(), + request.type !== OrganizationUserType.Custom + ); + request.collections = collections; + this.formPromise = this.apiService.postOrganizationUserInvite(this.organizationId, request); + } + await this.formPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t(this.editMode ? "editedUserId" : "invitedUsers", this.name) + ); + this.onSavedUser.emit(); + } catch (e) { + this.logService.error(e); + } + } + + async delete() { + if (!this.editMode) { + return; + } + + const message = this.usesKeyConnector + ? "removeUserConfirmationKeyConnector" + : "removeUserConfirmation"; + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t(message), + this.name, + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!confirmed) { + return false; + } + + try { + this.deletePromise = this.apiService.deleteOrganizationUser( + this.organizationId, + this.organizationUserId + ); + await this.deletePromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("removedUserId", this.name) + ); + this.onDeletedUser.emit(); + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/apps/web/src/app/organizations/manage/user-confirm.component.html b/apps/web/src/app/organizations/manage/user-confirm.component.html new file mode 100644 index 0000000000..87cc0d970a --- /dev/null +++ b/apps/web/src/app/organizations/manage/user-confirm.component.html @@ -0,0 +1,52 @@ + diff --git a/apps/web/src/app/organizations/manage/user-confirm.component.ts b/apps/web/src/app/organizations/manage/user-confirm.component.ts new file mode 100644 index 0000000000..ec10d51386 --- /dev/null +++ b/apps/web/src/app/organizations/manage/user-confirm.component.ts @@ -0,0 +1,56 @@ +import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core"; + +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { StateService } from "jslib-common/abstractions/state.service"; + +@Component({ + selector: "app-user-confirm", + templateUrl: "user-confirm.component.html", +}) +export class UserConfirmComponent implements OnInit { + @Input() name: string; + @Input() userId: string; + @Input() publicKey: Uint8Array; + @Output() onConfirmedUser = new EventEmitter(); + + dontAskAgain = false; + loading = true; + fingerprint: string; + formPromise: Promise; + + constructor( + private cryptoService: CryptoService, + private logService: LogService, + private stateService: StateService + ) {} + + async ngOnInit() { + try { + if (this.publicKey != null) { + const fingerprint = await this.cryptoService.getFingerprint( + this.userId, + this.publicKey.buffer + ); + if (fingerprint != null) { + this.fingerprint = fingerprint.join("-"); + } + } + } catch (e) { + this.logService.error(e); + } + this.loading = false; + } + + async submit() { + if (this.loading) { + return; + } + + if (this.dontAskAgain) { + await this.stateService.setAutoConfirmFingerprints(true); + } + + this.onConfirmedUser.emit(); + } +} diff --git a/apps/web/src/app/organizations/manage/user-groups.component.html b/apps/web/src/app/organizations/manage/user-groups.component.html new file mode 100644 index 0000000000..4853125b78 --- /dev/null +++ b/apps/web/src/app/organizations/manage/user-groups.component.html @@ -0,0 +1,60 @@ + diff --git a/apps/web/src/app/organizations/manage/user-groups.component.ts b/apps/web/src/app/organizations/manage/user-groups.component.ts new file mode 100644 index 0000000000..b572c11681 --- /dev/null +++ b/apps/web/src/app/organizations/manage/user-groups.component.ts @@ -0,0 +1,90 @@ +import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { Utils } from "jslib-common/misc/utils"; +import { OrganizationUserUpdateGroupsRequest } from "jslib-common/models/request/organizationUserUpdateGroupsRequest"; +import { GroupResponse } from "jslib-common/models/response/groupResponse"; + +@Component({ + selector: "app-user-groups", + templateUrl: "user-groups.component.html", +}) +export class UserGroupsComponent implements OnInit { + @Input() name: string; + @Input() organizationUserId: string; + @Input() organizationId: string; + @Output() onSavedUser = new EventEmitter(); + + loading = true; + groups: GroupResponse[] = []; + formPromise: Promise; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private logService: LogService + ) {} + + async ngOnInit() { + const groupsResponse = await this.apiService.getGroups(this.organizationId); + const groups = groupsResponse.data.map((r) => r); + groups.sort(Utils.getSortFunction(this.i18nService, "name")); + this.groups = groups; + + try { + const userGroups = await this.apiService.getOrganizationUserGroups( + this.organizationId, + this.organizationUserId + ); + if (userGroups != null && this.groups != null) { + userGroups.forEach((ug) => { + const group = this.groups.filter((g) => g.id === ug); + if (group != null && group.length > 0) { + (group[0] as any).checked = true; + } + }); + } + } catch (e) { + this.logService.error(e); + } + + this.loading = false; + } + + check(g: GroupResponse, select?: boolean) { + (g as any).checked = select == null ? !(g as any).checked : select; + if (!(g as any).checked) { + (g as any).readOnly = false; + } + } + + selectAll(select: boolean) { + this.groups.forEach((g) => this.check(g, select)); + } + + async submit() { + const request = new OrganizationUserUpdateGroupsRequest(); + request.groupIds = this.groups.filter((g) => (g as any).checked).map((g) => g.id); + + try { + this.formPromise = this.apiService.putOrganizationUserGroups( + this.organizationId, + this.organizationUserId, + request + ); + await this.formPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("editedGroupsForUser", this.name) + ); + this.onSavedUser.emit(); + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/apps/web/src/app/organizations/organization-routing.module.ts b/apps/web/src/app/organizations/organization-routing.module.ts new file mode 100644 index 0000000000..cae00bec56 --- /dev/null +++ b/apps/web/src/app/organizations/organization-routing.module.ts @@ -0,0 +1,222 @@ +import { NgModule } from "@angular/core"; +import { RouterModule, Routes } from "@angular/router"; + +import { AuthGuard } from "jslib-angular/guards/auth.guard"; +import { Permissions } from "jslib-common/enums/permissions"; + +import { PermissionsGuard } from "./guards/permissions.guard"; +import { OrganizationLayoutComponent } from "./layouts/organization-layout.component"; +import { CollectionsComponent } from "./manage/collections.component"; +import { EventsComponent } from "./manage/events.component"; +import { GroupsComponent } from "./manage/groups.component"; +import { ManageComponent } from "./manage/manage.component"; +import { PeopleComponent } from "./manage/people.component"; +import { PoliciesComponent } from "./manage/policies.component"; +import { NavigationPermissionsService } from "./services/navigation-permissions.service"; +import { AccountComponent } from "./settings/account.component"; +import { OrganizationBillingComponent } from "./settings/organization-billing.component"; +import { OrganizationSubscriptionComponent } from "./settings/organization-subscription.component"; +import { SettingsComponent } from "./settings/settings.component"; +import { TwoFactorSetupComponent } from "./settings/two-factor-setup.component"; +import { ExportComponent } from "./tools/export.component"; +import { ExposedPasswordsReportComponent } from "./tools/exposed-passwords-report.component"; +import { ImportComponent } from "./tools/import.component"; +import { InactiveTwoFactorReportComponent } from "./tools/inactive-two-factor-report.component"; +import { ReusedPasswordsReportComponent } from "./tools/reused-passwords-report.component"; +import { ToolsComponent } from "./tools/tools.component"; +import { UnsecuredWebsitesReportComponent } from "./tools/unsecured-websites-report.component"; +import { WeakPasswordsReportComponent } from "./tools/weak-passwords-report.component"; + +const routes: Routes = [ + { + path: ":organizationId", + component: OrganizationLayoutComponent, + canActivate: [AuthGuard, PermissionsGuard], + data: { + permissions: NavigationPermissionsService.getPermissions("admin"), + }, + children: [ + { path: "", pathMatch: "full", redirectTo: "vault" }, + { + path: "vault", + loadChildren: async () => + (await import("../modules/vault/modules/organization-vault/organization-vault.module")) + .OrganizationVaultModule, + }, + { + path: "tools", + component: ToolsComponent, + canActivate: [PermissionsGuard], + data: { permissions: NavigationPermissionsService.getPermissions("tools") }, + children: [ + { + path: "", + pathMatch: "full", + redirectTo: "import", + }, + { + path: "import", + component: ImportComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "importData", + permissions: [Permissions.AccessImportExport], + }, + }, + { + path: "export", + component: ExportComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "exportVault", + permissions: [Permissions.AccessImportExport], + }, + }, + { + path: "exposed-passwords-report", + component: ExposedPasswordsReportComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "exposedPasswordsReport", + permissions: [Permissions.AccessReports], + }, + }, + { + path: "inactive-two-factor-report", + component: InactiveTwoFactorReportComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "inactive2faReport", + permissions: [Permissions.AccessReports], + }, + }, + { + path: "reused-passwords-report", + component: ReusedPasswordsReportComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "reusedPasswordsReport", + permissions: [Permissions.AccessReports], + }, + }, + { + path: "unsecured-websites-report", + component: UnsecuredWebsitesReportComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "unsecuredWebsitesReport", + permissions: [Permissions.AccessReports], + }, + }, + { + path: "weak-passwords-report", + component: WeakPasswordsReportComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "weakPasswordsReport", + permissions: [Permissions.AccessReports], + }, + }, + ], + }, + { + path: "manage", + component: ManageComponent, + canActivate: [PermissionsGuard], + data: { + permissions: NavigationPermissionsService.getPermissions("manage"), + }, + children: [ + { + path: "", + pathMatch: "full", + redirectTo: "people", + }, + { + path: "collections", + component: CollectionsComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "collections", + permissions: [ + Permissions.CreateNewCollections, + Permissions.EditAnyCollection, + Permissions.DeleteAnyCollection, + Permissions.EditAssignedCollections, + Permissions.DeleteAssignedCollections, + ], + }, + }, + { + path: "events", + component: EventsComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "eventLogs", + permissions: [Permissions.AccessEventLogs], + }, + }, + { + path: "groups", + component: GroupsComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "groups", + permissions: [Permissions.ManageGroups], + }, + }, + { + path: "people", + component: PeopleComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "people", + permissions: [Permissions.ManageUsers, Permissions.ManageUsersPassword], + }, + }, + { + path: "policies", + component: PoliciesComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "policies", + permissions: [Permissions.ManagePolicies], + }, + }, + ], + }, + { + path: "settings", + component: SettingsComponent, + canActivate: [PermissionsGuard], + data: { permissions: NavigationPermissionsService.getPermissions("settings") }, + children: [ + { path: "", pathMatch: "full", redirectTo: "account" }, + { path: "account", component: AccountComponent, data: { titleId: "myOrganization" } }, + { + path: "two-factor", + component: TwoFactorSetupComponent, + data: { titleId: "twoStepLogin" }, + }, + { + path: "billing", + component: OrganizationBillingComponent, + canActivate: [PermissionsGuard], + data: { titleId: "billing", permissions: [Permissions.ManageBilling] }, + }, + { + path: "subscription", + component: OrganizationSubscriptionComponent, + data: { titleId: "subscription" }, + }, + ], + }, + ], + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class OrganizationsRoutingModule {} diff --git a/apps/web/src/app/organizations/policies/base-policy.component.ts b/apps/web/src/app/organizations/policies/base-policy.component.ts new file mode 100644 index 0000000000..d93337c7c0 --- /dev/null +++ b/apps/web/src/app/organizations/policies/base-policy.component.ts @@ -0,0 +1,56 @@ +import { Directive, Input, OnInit } from "@angular/core"; +import { FormControl, FormGroup } from "@angular/forms"; + +import { PolicyType } from "jslib-common/enums/policyType"; +import { Organization } from "jslib-common/models/domain/organization"; +import { PolicyRequest } from "jslib-common/models/request/policyRequest"; +import { PolicyResponse } from "jslib-common/models/response/policyResponse"; + +export abstract class BasePolicy { + abstract name: string; + abstract description: string; + abstract type: PolicyType; + abstract component: any; + + display(organization: Organization) { + return true; + } +} + +@Directive() +export abstract class BasePolicyComponent implements OnInit { + @Input() policyResponse: PolicyResponse; + @Input() policy: BasePolicy; + + enabled = new FormControl(false); + data: FormGroup = null; + + ngOnInit(): void { + this.enabled.setValue(this.policyResponse.enabled); + + if (this.policyResponse.data != null) { + this.loadData(); + } + } + + loadData() { + this.data.patchValue(this.policyResponse.data ?? {}); + } + + buildRequestData() { + if (this.data != null) { + return this.data.value; + } + + return null; + } + + buildRequest(policiesEnabledMap: Map) { + const request = new PolicyRequest(); + request.enabled = this.enabled.value; + request.type = this.policy.type; + request.data = this.buildRequestData(); + + return Promise.resolve(request); + } +} diff --git a/apps/web/src/app/organizations/policies/disable-send.component.html b/apps/web/src/app/organizations/policies/disable-send.component.html new file mode 100644 index 0000000000..a93b79b6dc --- /dev/null +++ b/apps/web/src/app/organizations/policies/disable-send.component.html @@ -0,0 +1,16 @@ + + {{ "disableSendExemption" | i18n }} + + +
+
+ + +
+
diff --git a/apps/web/src/app/organizations/policies/disable-send.component.ts b/apps/web/src/app/organizations/policies/disable-send.component.ts new file mode 100644 index 0000000000..326a5e098f --- /dev/null +++ b/apps/web/src/app/organizations/policies/disable-send.component.ts @@ -0,0 +1,18 @@ +import { Component } from "@angular/core"; + +import { PolicyType } from "jslib-common/enums/policyType"; + +import { BasePolicy, BasePolicyComponent } from "./base-policy.component"; + +export class DisableSendPolicy extends BasePolicy { + name = "disableSend"; + description = "disableSendPolicyDesc"; + type = PolicyType.DisableSend; + component = DisableSendPolicyComponent; +} + +@Component({ + selector: "policy-disable-send", + templateUrl: "disable-send.component.html", +}) +export class DisableSendPolicyComponent extends BasePolicyComponent {} diff --git a/apps/web/src/app/organizations/policies/master-password.component.html b/apps/web/src/app/organizations/policies/master-password.component.html new file mode 100644 index 0000000000..5fdb105332 --- /dev/null +++ b/apps/web/src/app/organizations/policies/master-password.component.html @@ -0,0 +1,83 @@ + + {{ "keyConnectorPolicyRestriction" | i18n }} + + +
+
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
diff --git a/apps/web/src/app/organizations/policies/master-password.component.ts b/apps/web/src/app/organizations/policies/master-password.component.ts new file mode 100644 index 0000000000..de33c84531 --- /dev/null +++ b/apps/web/src/app/organizations/policies/master-password.component.ts @@ -0,0 +1,56 @@ +import { Component } from "@angular/core"; +import { FormBuilder } from "@angular/forms"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PolicyType } from "jslib-common/enums/policyType"; + +import { BasePolicy, BasePolicyComponent } from "./base-policy.component"; + +export class MasterPasswordPolicy extends BasePolicy { + name = "masterPass"; + description = "masterPassPolicyDesc"; + type = PolicyType.MasterPassword; + component = MasterPasswordPolicyComponent; +} + +@Component({ + selector: "policy-master-password", + templateUrl: "master-password.component.html", +}) +export class MasterPasswordPolicyComponent extends BasePolicyComponent { + data = this.formBuilder.group({ + minComplexity: [null], + minLength: [null], + requireUpper: [null], + requireLower: [null], + requireNumbers: [null], + requireSpecial: [null], + }); + + passwordScores: { name: string; value: number }[]; + showKeyConnectorInfo = false; + + constructor( + private formBuilder: FormBuilder, + i18nService: I18nService, + private organizationService: OrganizationService + ) { + super(); + + this.passwordScores = [ + { name: "-- " + i18nService.t("select") + " --", value: null }, + { name: i18nService.t("weak") + " (0)", value: 0 }, + { name: i18nService.t("weak") + " (1)", value: 1 }, + { name: i18nService.t("weak") + " (2)", value: 2 }, + { name: i18nService.t("good") + " (3)", value: 3 }, + { name: i18nService.t("strong") + " (4)", value: 4 }, + ]; + } + + async ngOnInit() { + super.ngOnInit(); + const organization = await this.organizationService.get(this.policyResponse.organizationId); + this.showKeyConnectorInfo = organization.keyConnectorEnabled; + } +} diff --git a/apps/web/src/app/organizations/policies/password-generator.component.html b/apps/web/src/app/organizations/policies/password-generator.component.html new file mode 100644 index 0000000000..2d9fa14f00 --- /dev/null +++ b/apps/web/src/app/organizations/policies/password-generator.component.html @@ -0,0 +1,144 @@ +
+
+
+ + +
+
+ +
+
+ + +
+
+

{{ "password" | i18n }}

+
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+

{{ "passphrase" | i18n }}

+
+
+ + +
+
+
+ + +
+
+ + +
+
diff --git a/apps/web/src/app/organizations/policies/password-generator.component.ts b/apps/web/src/app/organizations/policies/password-generator.component.ts new file mode 100644 index 0000000000..fd474b1f0d --- /dev/null +++ b/apps/web/src/app/organizations/policies/password-generator.component.ts @@ -0,0 +1,46 @@ +import { Component } from "@angular/core"; +import { FormBuilder } from "@angular/forms"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PolicyType } from "jslib-common/enums/policyType"; + +import { BasePolicy, BasePolicyComponent } from "./base-policy.component"; + +export class PasswordGeneratorPolicy extends BasePolicy { + name = "passwordGenerator"; + description = "passwordGeneratorPolicyDesc"; + type = PolicyType.PasswordGenerator; + component = PasswordGeneratorPolicyComponent; +} + +@Component({ + selector: "policy-password-generator", + templateUrl: "password-generator.component.html", +}) +export class PasswordGeneratorPolicyComponent extends BasePolicyComponent { + data = this.formBuilder.group({ + defaultType: [null], + minLength: [null], + useUpper: [null], + useLower: [null], + useNumbers: [null], + useSpecial: [null], + minNumbers: [null], + minSpecial: [null], + minNumberWords: [null], + capitalize: [null], + includeNumber: [null], + }); + + defaultTypes: { name: string; value: string }[]; + + constructor(private formBuilder: FormBuilder, i18nService: I18nService) { + super(); + + this.defaultTypes = [ + { name: i18nService.t("userPreference"), value: null }, + { name: i18nService.t("password"), value: "password" }, + { name: i18nService.t("passphrase"), value: "passphrase" }, + ]; + } +} diff --git a/apps/web/src/app/organizations/policies/personal-ownership.component.html b/apps/web/src/app/organizations/policies/personal-ownership.component.html new file mode 100644 index 0000000000..add197df9a --- /dev/null +++ b/apps/web/src/app/organizations/policies/personal-ownership.component.html @@ -0,0 +1,18 @@ + + {{ "personalOwnershipExemption" | i18n }} + + +
+
+ + +
+
diff --git a/apps/web/src/app/organizations/policies/personal-ownership.component.ts b/apps/web/src/app/organizations/policies/personal-ownership.component.ts new file mode 100644 index 0000000000..eb737102e9 --- /dev/null +++ b/apps/web/src/app/organizations/policies/personal-ownership.component.ts @@ -0,0 +1,18 @@ +import { Component } from "@angular/core"; + +import { PolicyType } from "jslib-common/enums/policyType"; + +import { BasePolicy, BasePolicyComponent } from "./base-policy.component"; + +export class PersonalOwnershipPolicy extends BasePolicy { + name = "personalOwnership"; + description = "personalOwnershipPolicyDesc"; + type = PolicyType.PersonalOwnership; + component = PersonalOwnershipPolicyComponent; +} + +@Component({ + selector: "policy-personal-ownership", + templateUrl: "personal-ownership.component.html", +}) +export class PersonalOwnershipPolicyComponent extends BasePolicyComponent {} diff --git a/apps/web/src/app/organizations/policies/require-sso.component.html b/apps/web/src/app/organizations/policies/require-sso.component.html new file mode 100644 index 0000000000..85d60f41b6 --- /dev/null +++ b/apps/web/src/app/organizations/policies/require-sso.component.html @@ -0,0 +1,19 @@ + + {{ "requireSsoPolicyReq" | i18n }} + + + {{ "requireSsoExemption" | i18n }} + + +
+
+ + +
+
diff --git a/apps/web/src/app/organizations/policies/require-sso.component.ts b/apps/web/src/app/organizations/policies/require-sso.component.ts new file mode 100644 index 0000000000..06f30d0ddf --- /dev/null +++ b/apps/web/src/app/organizations/policies/require-sso.component.ts @@ -0,0 +1,38 @@ +import { Component } from "@angular/core"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PolicyType } from "jslib-common/enums/policyType"; +import { Organization } from "jslib-common/models/domain/organization"; +import { PolicyRequest } from "jslib-common/models/request/policyRequest"; + +import { BasePolicy, BasePolicyComponent } from "./base-policy.component"; + +export class RequireSsoPolicy extends BasePolicy { + name = "requireSso"; + description = "requireSsoPolicyDesc"; + type = PolicyType.RequireSso; + component = RequireSsoPolicyComponent; + + display(organization: Organization) { + return organization.useSso; + } +} + +@Component({ + selector: "policy-require-sso", + templateUrl: "require-sso.component.html", +}) +export class RequireSsoPolicyComponent extends BasePolicyComponent { + constructor(private i18nService: I18nService) { + super(); + } + + buildRequest(policiesEnabledMap: Map): Promise { + const singleOrgEnabled = policiesEnabledMap.get(PolicyType.SingleOrg) ?? false; + if (this.enabled.value && !singleOrgEnabled) { + throw new Error(this.i18nService.t("requireSsoPolicyReqError")); + } + + return super.buildRequest(policiesEnabledMap); + } +} diff --git a/apps/web/src/app/organizations/policies/reset-password.component.html b/apps/web/src/app/organizations/policies/reset-password.component.html new file mode 100644 index 0000000000..5e911deb0b --- /dev/null +++ b/apps/web/src/app/organizations/policies/reset-password.component.html @@ -0,0 +1,40 @@ + + {{ "keyConnectorPolicyRestriction" | i18n }} + + + + {{ "resetPasswordPolicyWarning" | i18n }} + + +
+
+ + +
+
+ +
+

{{ "resetPasswordPolicyAutoEnroll" | i18n }}

+

{{ "resetPasswordPolicyAutoEnrollDescription" | i18n }}

+ + {{ "resetPasswordPolicyAutoEnrollWarning" | i18n }} + +
+ + +
+
diff --git a/apps/web/src/app/organizations/policies/reset-password.component.ts b/apps/web/src/app/organizations/policies/reset-password.component.ts new file mode 100644 index 0000000000..c4db4a6d0b --- /dev/null +++ b/apps/web/src/app/organizations/policies/reset-password.component.ts @@ -0,0 +1,42 @@ +import { Component } from "@angular/core"; +import { FormBuilder } from "@angular/forms"; + +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PolicyType } from "jslib-common/enums/policyType"; +import { Organization } from "jslib-common/models/domain/organization"; + +import { BasePolicy, BasePolicyComponent } from "./base-policy.component"; + +export class ResetPasswordPolicy extends BasePolicy { + name = "resetPasswordPolicy"; + description = "resetPasswordPolicyDescription"; + type = PolicyType.ResetPassword; + component = ResetPasswordPolicyComponent; + + display(organization: Organization) { + return organization.useResetPassword; + } +} + +@Component({ + selector: "policy-reset-password", + templateUrl: "reset-password.component.html", +}) +export class ResetPasswordPolicyComponent extends BasePolicyComponent { + data = this.formBuilder.group({ + autoEnrollEnabled: false, + }); + + defaultTypes: { name: string; value: string }[]; + showKeyConnectorInfo = false; + + constructor(private formBuilder: FormBuilder, private organizationService: OrganizationService) { + super(); + } + + async ngOnInit() { + super.ngOnInit(); + const organization = await this.organizationService.get(this.policyResponse.organizationId); + this.showKeyConnectorInfo = organization.keyConnectorEnabled; + } +} diff --git a/apps/web/src/app/organizations/policies/send-options.component.html b/apps/web/src/app/organizations/policies/send-options.component.html new file mode 100644 index 0000000000..f204cc8e57 --- /dev/null +++ b/apps/web/src/app/organizations/policies/send-options.component.html @@ -0,0 +1,30 @@ + + {{ "sendOptionsExemption" | i18n }} + + +
+
+ + +
+
+ +
+

{{ "options" | i18n }}

+
+ + +
+
diff --git a/apps/web/src/app/organizations/policies/send-options.component.ts b/apps/web/src/app/organizations/policies/send-options.component.ts new file mode 100644 index 0000000000..f789fb5ba1 --- /dev/null +++ b/apps/web/src/app/organizations/policies/send-options.component.ts @@ -0,0 +1,27 @@ +import { Component } from "@angular/core"; +import { FormBuilder } from "@angular/forms"; + +import { PolicyType } from "jslib-common/enums/policyType"; + +import { BasePolicy, BasePolicyComponent } from "./base-policy.component"; + +export class SendOptionsPolicy extends BasePolicy { + name = "sendOptions"; + description = "sendOptionsPolicyDesc"; + type = PolicyType.SendOptions; + component = SendOptionsPolicyComponent; +} + +@Component({ + selector: "policy-send-options", + templateUrl: "send-options.component.html", +}) +export class SendOptionsPolicyComponent extends BasePolicyComponent { + data = this.formBuilder.group({ + disableHideEmail: false, + }); + + constructor(private formBuilder: FormBuilder) { + super(); + } +} diff --git a/apps/web/src/app/organizations/policies/single-org.component.html b/apps/web/src/app/organizations/policies/single-org.component.html new file mode 100644 index 0000000000..e11ac3f057 --- /dev/null +++ b/apps/web/src/app/organizations/policies/single-org.component.html @@ -0,0 +1,16 @@ + + {{ "singleOrgPolicyWarning" | i18n }} + + +
+
+ + +
+
diff --git a/apps/web/src/app/organizations/policies/single-org.component.ts b/apps/web/src/app/organizations/policies/single-org.component.ts new file mode 100644 index 0000000000..0308c28268 --- /dev/null +++ b/apps/web/src/app/organizations/policies/single-org.component.ts @@ -0,0 +1,42 @@ +import { Component } from "@angular/core"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PolicyType } from "jslib-common/enums/policyType"; +import { PolicyRequest } from "jslib-common/models/request/policyRequest"; + +import { BasePolicy, BasePolicyComponent } from "./base-policy.component"; + +export class SingleOrgPolicy extends BasePolicy { + name = "singleOrg"; + description = "singleOrgDesc"; + type = PolicyType.SingleOrg; + component = SingleOrgPolicyComponent; +} + +@Component({ + selector: "policy-single-org", + templateUrl: "single-org.component.html", +}) +export class SingleOrgPolicyComponent extends BasePolicyComponent { + constructor(private i18nService: I18nService) { + super(); + } + + buildRequest(policiesEnabledMap: Map): Promise { + if (!this.enabled.value) { + if (policiesEnabledMap.get(PolicyType.RequireSso) ?? false) { + throw new Error( + this.i18nService.t("disableRequiredError", this.i18nService.t("requireSso")) + ); + } + + if (policiesEnabledMap.get(PolicyType.MaximumVaultTimeout) ?? false) { + throw new Error( + this.i18nService.t("disableRequiredError", this.i18nService.t("maximumVaultTimeoutLabel")) + ); + } + } + + return super.buildRequest(policiesEnabledMap); + } +} diff --git a/apps/web/src/app/organizations/policies/two-factor-authentication.component.html b/apps/web/src/app/organizations/policies/two-factor-authentication.component.html new file mode 100644 index 0000000000..1b97ab3616 --- /dev/null +++ b/apps/web/src/app/organizations/policies/two-factor-authentication.component.html @@ -0,0 +1,16 @@ + + {{ "twoStepLoginPolicyWarning" | i18n }} + + +
+
+ + +
+
diff --git a/apps/web/src/app/organizations/policies/two-factor-authentication.component.ts b/apps/web/src/app/organizations/policies/two-factor-authentication.component.ts new file mode 100644 index 0000000000..140c099f21 --- /dev/null +++ b/apps/web/src/app/organizations/policies/two-factor-authentication.component.ts @@ -0,0 +1,18 @@ +import { Component } from "@angular/core"; + +import { PolicyType } from "jslib-common/enums/policyType"; + +import { BasePolicy, BasePolicyComponent } from "./base-policy.component"; + +export class TwoFactorAuthenticationPolicy extends BasePolicy { + name = "twoStepLogin"; + description = "twoStepLoginPolicyDesc"; + type = PolicyType.TwoFactorAuthentication; + component = TwoFactorAuthenticationPolicyComponent; +} + +@Component({ + selector: "policy-two-factor-authentication", + templateUrl: "two-factor-authentication.component.html", +}) +export class TwoFactorAuthenticationPolicyComponent extends BasePolicyComponent {} diff --git a/apps/web/src/app/organizations/services/navigation-permissions.service.ts b/apps/web/src/app/organizations/services/navigation-permissions.service.ts new file mode 100644 index 0000000000..dd47d2c52e --- /dev/null +++ b/apps/web/src/app/organizations/services/navigation-permissions.service.ts @@ -0,0 +1,48 @@ +import { Permissions } from "jslib-common/enums/permissions"; +import { Organization } from "jslib-common/models/domain/organization"; + +const permissions = { + manage: [ + Permissions.CreateNewCollections, + Permissions.EditAnyCollection, + Permissions.DeleteAnyCollection, + Permissions.EditAssignedCollections, + Permissions.DeleteAssignedCollections, + Permissions.AccessEventLogs, + Permissions.ManageGroups, + Permissions.ManageUsers, + Permissions.ManagePolicies, + ], + tools: [Permissions.AccessImportExport, Permissions.AccessReports], + settings: [Permissions.ManageOrganization], +}; + +export class NavigationPermissionsService { + static getPermissions(route: keyof typeof permissions | "admin") { + if (route === "admin") { + return Object.values(permissions).reduce((previous, current) => previous.concat(current), []); + } + + return permissions[route]; + } + + static canAccessAdmin(organization: Organization): boolean { + return ( + this.canAccessTools(organization) || + this.canAccessSettings(organization) || + this.canAccessManage(organization) + ); + } + + static canAccessTools(organization: Organization): boolean { + return organization.hasAnyPermission(NavigationPermissionsService.getPermissions("tools")); + } + + static canAccessSettings(organization: Organization): boolean { + return organization.hasAnyPermission(NavigationPermissionsService.getPermissions("settings")); + } + + static canAccessManage(organization: Organization): boolean { + return organization.hasAnyPermission(NavigationPermissionsService.getPermissions("manage")); + } +} diff --git a/apps/web/src/app/organizations/settings/account.component.html b/apps/web/src/app/organizations/settings/account.component.html new file mode 100644 index 0000000000..7f237203d8 --- /dev/null +++ b/apps/web/src/app/organizations/settings/account.component.html @@ -0,0 +1,133 @@ + +
+ + {{ "loading" | i18n }} +
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+
+ +
+ +
+

{{ "apiKey" | i18n }}

+
+

+ {{ "apiKeyDesc" | i18n }} + + {{ "learnMore" | i18n }} + +

+ + +
+
+

{{ "taxInformation" | i18n }}

+
+

{{ "taxInformationDesc" | i18n }}

+
+ + {{ "loading" | i18n }} +
+
+ + +
+
+

{{ "dangerZone" | i18n }}

+
+
+
+

{{ "dangerZoneDesc" | i18n }}

+ + +
+
+ + + + diff --git a/apps/web/src/app/organizations/settings/account.component.ts b/apps/web/src/app/organizations/settings/account.component.ts new file mode 100644 index 0000000000..291c8f9e49 --- /dev/null +++ b/apps/web/src/app/organizations/settings/account.component.ts @@ -0,0 +1,158 @@ +import { Component, ViewChild, ViewContainerRef } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { OrganizationKeysRequest } from "jslib-common/models/request/organizationKeysRequest"; +import { OrganizationUpdateRequest } from "jslib-common/models/request/organizationUpdateRequest"; +import { OrganizationResponse } from "jslib-common/models/response/organizationResponse"; + +import { ApiKeyComponent } from "../../settings/api-key.component"; +import { PurgeVaultComponent } from "../../settings/purge-vault.component"; +import { TaxInfoComponent } from "../../settings/tax-info.component"; + +import { DeleteOrganizationComponent } from "./delete-organization.component"; + +@Component({ + selector: "app-org-account", + templateUrl: "account.component.html", +}) +export class AccountComponent { + @ViewChild("deleteOrganizationTemplate", { read: ViewContainerRef, static: true }) + deleteModalRef: ViewContainerRef; + @ViewChild("purgeOrganizationTemplate", { read: ViewContainerRef, static: true }) + purgeModalRef: ViewContainerRef; + @ViewChild("apiKeyTemplate", { read: ViewContainerRef, static: true }) + apiKeyModalRef: ViewContainerRef; + @ViewChild("rotateApiKeyTemplate", { read: ViewContainerRef, static: true }) + rotateApiKeyModalRef: ViewContainerRef; + @ViewChild(TaxInfoComponent) taxInfo: TaxInfoComponent; + + selfHosted = false; + canManageBilling = true; + loading = true; + canUseApi = false; + org: OrganizationResponse; + formPromise: Promise; + taxFormPromise: Promise; + + private organizationId: string; + + constructor( + private modalService: ModalService, + private apiService: ApiService, + private i18nService: I18nService, + private route: ActivatedRoute, + private syncService: SyncService, + private platformUtilsService: PlatformUtilsService, + private cryptoService: CryptoService, + private logService: LogService, + private router: Router, + private organizationService: OrganizationService + ) {} + + async ngOnInit() { + this.selfHosted = this.platformUtilsService.isSelfHost(); + + this.route.parent.parent.params.subscribe(async (params) => { + this.organizationId = params.organizationId; + this.canManageBilling = ( + await this.organizationService.get(this.organizationId) + ).canManageBilling; + try { + this.org = await this.apiService.getOrganization(this.organizationId); + this.canUseApi = this.org.useApi; + } catch (e) { + this.logService.error(e); + } + }); + this.loading = false; + } + + async submit() { + try { + const request = new OrganizationUpdateRequest(); + request.name = this.org.name; + request.businessName = this.org.businessName; + request.billingEmail = this.org.billingEmail; + request.identifier = this.org.identifier; + + // Backfill pub/priv key if necessary + if (!this.org.hasPublicAndPrivateKeys) { + const orgShareKey = await this.cryptoService.getOrgKey(this.organizationId); + const orgKeys = await this.cryptoService.makeKeyPair(orgShareKey); + request.keys = new OrganizationKeysRequest(orgKeys[0], orgKeys[1].encryptedString); + } + + this.formPromise = this.apiService.putOrganization(this.organizationId, request).then(() => { + return this.syncService.fullSync(true); + }); + await this.formPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("organizationUpdated") + ); + } catch (e) { + this.logService.error(e); + } + } + + async submitTaxInfo() { + this.taxFormPromise = this.taxInfo.submitTaxInfo(); + await this.taxFormPromise; + this.platformUtilsService.showToast("success", null, this.i18nService.t("taxInfoUpdated")); + } + + async deleteOrganization() { + await this.modalService.openViewRef( + DeleteOrganizationComponent, + this.deleteModalRef, + (comp) => { + comp.organizationId = this.organizationId; + comp.onSuccess.subscribe(() => { + this.router.navigate(["/"]); + }); + } + ); + } + + async purgeVault() { + await this.modalService.openViewRef(PurgeVaultComponent, this.purgeModalRef, (comp) => { + comp.organizationId = this.organizationId; + }); + } + + async viewApiKey() { + await this.modalService.openViewRef(ApiKeyComponent, this.apiKeyModalRef, (comp) => { + comp.keyType = "organization"; + comp.entityId = this.organizationId; + comp.postKey = this.apiService.postOrganizationApiKey.bind(this.apiService); + comp.scope = "api.organization"; + comp.grantType = "client_credentials"; + comp.apiKeyTitle = "apiKey"; + comp.apiKeyWarning = "apiKeyWarning"; + comp.apiKeyDescription = "apiKeyDesc"; + }); + } + + async rotateApiKey() { + await this.modalService.openViewRef(ApiKeyComponent, this.rotateApiKeyModalRef, (comp) => { + comp.keyType = "organization"; + comp.isRotation = true; + comp.entityId = this.organizationId; + comp.postKey = this.apiService.postOrganizationRotateApiKey.bind(this.apiService); + comp.scope = "api.organization"; + comp.grantType = "client_credentials"; + comp.apiKeyTitle = "apiKey"; + comp.apiKeyWarning = "apiKeyWarning"; + comp.apiKeyDescription = "apiKeyRotateDesc"; + }); + } +} diff --git a/apps/web/src/app/organizations/settings/adjust-subscription.component.html b/apps/web/src/app/organizations/settings/adjust-subscription.component.html new file mode 100644 index 0000000000..bbe1e3cb51 --- /dev/null +++ b/apps/web/src/app/organizations/settings/adjust-subscription.component.html @@ -0,0 +1,65 @@ +
+
+
+
+ + + + {{ "total" | i18n }}: {{ newSeatCount || 0 }} × + {{ seatPrice | currency: "$" }} = {{ adjustedSeatTotal | currency: "$" }} / + {{ interval | i18n }} + +
+
+
+
+
+ + +
+ {{ "limitSubscriptionDesc" | i18n }} +
+
+
+
+ + + + {{ "maxSeatCost" | i18n }}: {{ newMaxSeats || 0 }} × + {{ seatPrice | currency: "$" }} = {{ maxSeatTotal | currency: "$" }} / + {{ interval | i18n }} + +
+
+ +
+
+ diff --git a/apps/web/src/app/organizations/settings/adjust-subscription.component.ts b/apps/web/src/app/organizations/settings/adjust-subscription.component.ts new file mode 100644 index 0000000000..bbbeff7906 --- /dev/null +++ b/apps/web/src/app/organizations/settings/adjust-subscription.component.ts @@ -0,0 +1,74 @@ +import { Component, EventEmitter, Input, Output } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { OrganizationSubscriptionUpdateRequest } from "jslib-common/models/request/organizationSubscriptionUpdateRequest"; + +@Component({ + selector: "app-adjust-subscription", + templateUrl: "adjust-subscription.component.html", +}) +export class AdjustSubscription { + @Input() organizationId: string; + @Input() maxAutoscaleSeats: number; + @Input() currentSeatCount: number; + @Input() seatPrice = 0; + @Input() interval = "year"; + @Output() onAdjusted = new EventEmitter(); + + formPromise: Promise; + limitSubscription: boolean; + newSeatCount: number; + newMaxSeats: number; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private logService: LogService + ) {} + + ngOnInit() { + this.limitSubscription = this.maxAutoscaleSeats != null; + this.newSeatCount = this.currentSeatCount; + this.newMaxSeats = this.maxAutoscaleSeats; + } + + async submit() { + try { + const seatAdjustment = this.newSeatCount - this.currentSeatCount; + const request = new OrganizationSubscriptionUpdateRequest(seatAdjustment, this.newMaxSeats); + this.formPromise = this.apiService.postOrganizationUpdateSubscription( + this.organizationId, + request + ); + + await this.formPromise; + + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("subscriptionUpdated") + ); + } catch (e) { + this.logService.error(e); + } + this.onAdjusted.emit(); + } + + limitSubscriptionChanged() { + if (!this.limitSubscription) { + this.newMaxSeats = null; + } + } + + get adjustedSeatTotal(): number { + return this.newSeatCount * this.seatPrice; + } + + get maxSeatTotal(): number { + return this.newMaxSeats * this.seatPrice; + } +} diff --git a/apps/web/src/app/organizations/settings/billing-sync-api-key.component.html b/apps/web/src/app/organizations/settings/billing-sync-api-key.component.html new file mode 100644 index 0000000000..2319fe6302 --- /dev/null +++ b/apps/web/src/app/organizations/settings/billing-sync-api-key.component.html @@ -0,0 +1,117 @@ + diff --git a/apps/web/src/app/organizations/settings/billing-sync-api-key.component.ts b/apps/web/src/app/organizations/settings/billing-sync-api-key.component.ts new file mode 100644 index 0000000000..47e70c7563 --- /dev/null +++ b/apps/web/src/app/organizations/settings/billing-sync-api-key.component.ts @@ -0,0 +1,108 @@ +import { Component } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; +import { OrganizationApiKeyType } from "jslib-common/enums/organizationApiKeyType"; +import { OrganizationApiKeyRequest } from "jslib-common/models/request/organizationApiKeyRequest"; +import { ApiKeyResponse } from "jslib-common/models/response/apiKeyResponse"; +import { Verification } from "jslib-common/types/verification"; + +@Component({ + selector: "app-billing-sync-api-key", + templateUrl: "billing-sync-api-key.component.html", +}) +export class BillingSyncApiKeyComponent { + organizationId: string; + hasBillingToken: boolean; + + showRotateScreen: boolean; + masterPassword: Verification; + formPromise: Promise; + clientSecret?: string; + keyRevisionDate?: Date; + lastSyncDate?: Date = null; + + constructor( + private userVerificationService: UserVerificationService, + private apiService: ApiService, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService + ) {} + + copy() { + this.platformUtilsService.copyToClipboard(this.clientSecret); + } + + async submit() { + if (this.showRotateScreen) { + this.formPromise = this.userVerificationService + .buildRequest(this.masterPassword, OrganizationApiKeyRequest) + .then((request) => { + request.type = OrganizationApiKeyType.BillingSync; + return this.apiService.postOrganizationRotateApiKey(this.organizationId, request); + }); + const response = await this.formPromise; + await this.load(response); + this.showRotateScreen = false; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("billingSyncApiKeyRotated") + ); + } else { + this.formPromise = this.userVerificationService + .buildRequest(this.masterPassword, OrganizationApiKeyRequest) + .then((request) => { + request.type = OrganizationApiKeyType.BillingSync; + return this.apiService.postOrganizationApiKey(this.organizationId, request); + }); + const response = await this.formPromise; + await this.load(response); + } + } + + async load(response: ApiKeyResponse) { + this.clientSecret = response.apiKey; + this.keyRevisionDate = response.revisionDate; + this.hasBillingToken = true; + const syncStatus = await this.apiService.getSponsorshipSyncStatus(this.organizationId); + this.lastSyncDate = syncStatus.lastSyncDate; + } + + cancelRotate() { + this.showRotateScreen = false; + } + + rotateToken() { + this.showRotateScreen = true; + } + + private dayDiff(date1: Date, date2: Date): number { + const diffTime = Math.abs(date2.getTime() - date1.getTime()); + return Math.round(diffTime / (1000 * 60 * 60 * 24)); + } + + get submitButtonText(): string { + if (this.showRotateScreen) { + return this.i18nService.t("rotateToken"); + } + + return this.i18nService.t(this.hasBillingToken ? "continue" : "generateToken"); + } + + get showLastSyncText(): boolean { + // If the keyRevisionDate is later than the lastSyncDate we need to show + // a warning that they need to put the billing sync key in their self hosted install + return this.lastSyncDate && this.lastSyncDate > this.keyRevisionDate; + } + + get showAwaitingSyncText(): boolean { + return this.lastSyncDate && this.lastSyncDate <= this.keyRevisionDate; + } + + get daysBetween(): number { + return this.dayDiff(this.keyRevisionDate, new Date()); + } +} diff --git a/apps/web/src/app/organizations/settings/change-plan.component.html b/apps/web/src/app/organizations/settings/change-plan.component.html new file mode 100644 index 0000000000..0861c51643 --- /dev/null +++ b/apps/web/src/app/organizations/settings/change-plan.component.html @@ -0,0 +1,18 @@ +
+
+ +

{{ "changeBillingPlan" | i18n }}

+

{{ "changeBillingPlanUpgrade" | i18n }}

+ + +
+
diff --git a/apps/web/src/app/organizations/settings/change-plan.component.ts b/apps/web/src/app/organizations/settings/change-plan.component.ts new file mode 100644 index 0000000000..1ed62739b2 --- /dev/null +++ b/apps/web/src/app/organizations/settings/change-plan.component.ts @@ -0,0 +1,33 @@ +import { Component, EventEmitter, Input, Output } from "@angular/core"; + +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlanType } from "jslib-common/enums/planType"; +import { ProductType } from "jslib-common/enums/productType"; + +@Component({ + selector: "app-change-plan", + templateUrl: "change-plan.component.html", +}) +export class ChangePlanComponent { + @Input() organizationId: string; + @Output() onChanged = new EventEmitter(); + @Output() onCanceled = new EventEmitter(); + + formPromise: Promise; + defaultUpgradePlan: PlanType = PlanType.FamiliesAnnually; + defaultUpgradeProduct: ProductType = ProductType.Families; + + constructor(private logService: LogService) {} + + async submit() { + try { + this.onChanged.emit(); + } catch (e) { + this.logService.error(e); + } + } + + cancel() { + this.onCanceled.emit(); + } +} diff --git a/apps/web/src/app/organizations/settings/delete-organization.component.html b/apps/web/src/app/organizations/settings/delete-organization.component.html new file mode 100644 index 0000000000..80d8ae0f79 --- /dev/null +++ b/apps/web/src/app/organizations/settings/delete-organization.component.html @@ -0,0 +1,61 @@ + diff --git a/apps/web/src/app/organizations/settings/delete-organization.component.ts b/apps/web/src/app/organizations/settings/delete-organization.component.ts new file mode 100644 index 0000000000..799d916a8b --- /dev/null +++ b/apps/web/src/app/organizations/settings/delete-organization.component.ts @@ -0,0 +1,131 @@ +import { Component, EventEmitter, OnInit, Output } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; +import { CipherType } from "jslib-common/enums/cipherType"; +import { Utils } from "jslib-common/misc/utils"; +import { CipherView } from "jslib-common/models/view/cipherView"; +import { Verification } from "jslib-common/types/verification"; + +class CountBasedLocalizationKey { + singular: string; + plural: string; + + getKey(count: number) { + return count == 1 ? this.singular : this.plural; + } + + constructor(singular: string, plural: string) { + this.singular = singular; + this.plural = plural; + } +} + +class OrganizationContentSummaryItem { + count: number; + get localizationKey(): string { + return this.localizationKeyOptions.getKey(this.count); + } + private localizationKeyOptions: CountBasedLocalizationKey; + constructor(count: number, localizationKeyOptions: CountBasedLocalizationKey) { + this.count = count; + this.localizationKeyOptions = localizationKeyOptions; + } +} + +class OrganizationContentSummary { + totalItemCount = 0; + itemCountByType: OrganizationContentSummaryItem[] = []; +} + +@Component({ + selector: "app-delete-organization", + templateUrl: "delete-organization.component.html", +}) +export class DeleteOrganizationComponent implements OnInit { + organizationId: string; + loaded: boolean; + deleteOrganizationRequestType: "InvalidFamiliesForEnterprise" | "RegularDelete" = "RegularDelete"; + organizationName: string; + organizationContentSummary: OrganizationContentSummary = new OrganizationContentSummary(); + @Output() onSuccess: EventEmitter = new EventEmitter(); + + masterPassword: Verification; + formPromise: Promise; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private userVerificationService: UserVerificationService, + private logService: LogService, + private cipherService: CipherService, + private organizationService: OrganizationService + ) {} + + async ngOnInit(): Promise { + await this.load(); + } + + async submit() { + try { + this.formPromise = this.userVerificationService + .buildRequest(this.masterPassword) + .then((request) => this.apiService.deleteOrganization(this.organizationId, request)); + await this.formPromise; + this.platformUtilsService.showToast( + "success", + this.i18nService.t("organizationDeleted"), + this.i18nService.t("organizationDeletedDesc") + ); + this.onSuccess.emit(); + } catch (e) { + this.logService.error(e); + } + } + + private async load() { + this.organizationName = (await this.organizationService.get(this.organizationId)).name; + this.organizationContentSummary = await this.buildOrganizationContentSummary(); + this.loaded = true; + } + + private async buildOrganizationContentSummary(): Promise { + const organizationContentSummary = new OrganizationContentSummary(); + const organizationItems = ( + await this.cipherService.getAllFromApiForOrganization(this.organizationId) + ).filter((item) => item.deletedDate == null); + + if (organizationItems.length < 1) { + return organizationContentSummary; + } + + organizationContentSummary.totalItemCount = organizationItems.length; + for (const cipherType of Utils.iterateEnum(CipherType)) { + const count = this.getOrganizationItemCountByType(organizationItems, cipherType); + if (count > 0) { + organizationContentSummary.itemCountByType.push( + new OrganizationContentSummaryItem( + count, + this.getOrganizationItemLocalizationKeysByType(CipherType[cipherType]) + ) + ); + } + } + + return organizationContentSummary; + } + + private getOrganizationItemCountByType(items: CipherView[], type: CipherType) { + return items.filter((item) => item.type == type).length; + } + + private getOrganizationItemLocalizationKeysByType(type: string): CountBasedLocalizationKey { + return new CountBasedLocalizationKey(`type${type}`, `type${type}Plural`); + } +} diff --git a/apps/web/src/app/organizations/settings/download-license.component.html b/apps/web/src/app/organizations/settings/download-license.component.html new file mode 100644 index 0000000000..c082a3ab5e --- /dev/null +++ b/apps/web/src/app/organizations/settings/download-license.component.html @@ -0,0 +1,39 @@ +
+
+ +

{{ "downloadLicense" | i18n }}

+
+
+
+ + + + +
+ +
+
+ + +
+
diff --git a/apps/web/src/app/organizations/settings/download-license.component.ts b/apps/web/src/app/organizations/settings/download-license.component.ts new file mode 100644 index 0000000000..fdc79a648f --- /dev/null +++ b/apps/web/src/app/organizations/settings/download-license.component.ts @@ -0,0 +1,52 @@ +import { Component, EventEmitter, Input, Output } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; + +@Component({ + selector: "app-download-license", + templateUrl: "download-license.component.html", +}) +export class DownloadLicenseComponent { + @Input() organizationId: string; + @Output() onDownloaded = new EventEmitter(); + @Output() onCanceled = new EventEmitter(); + + installationId: string; + formPromise: Promise; + + constructor( + private apiService: ApiService, + private platformUtilsService: PlatformUtilsService, + private logService: LogService + ) {} + + async submit() { + if (this.installationId == null || this.installationId === "") { + return; + } + + try { + this.formPromise = this.apiService.getOrganizationLicense( + this.organizationId, + this.installationId + ); + const license = await this.formPromise; + const licenseString = JSON.stringify(license, null, 2); + this.platformUtilsService.saveFile( + window, + licenseString, + null, + "bitwarden_organization_license.json" + ); + this.onDownloaded.emit(); + } catch (e) { + this.logService.error(e); + } + } + + cancel() { + this.onCanceled.emit(); + } +} diff --git a/apps/web/src/app/organizations/settings/image-subscription-hidden.component.svg b/apps/web/src/app/organizations/settings/image-subscription-hidden.component.svg new file mode 100644 index 0000000000..a45a3decce --- /dev/null +++ b/apps/web/src/app/organizations/settings/image-subscription-hidden.component.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/src/app/organizations/settings/image-subscription-hidden.component.ts b/apps/web/src/app/organizations/settings/image-subscription-hidden.component.ts new file mode 100644 index 0000000000..ff2a639e39 --- /dev/null +++ b/apps/web/src/app/organizations/settings/image-subscription-hidden.component.ts @@ -0,0 +1,8 @@ +import { Component } from "@angular/core"; + +// Component is used so that the SVG can embed CSS color variables +@Component({ + selector: "app-image-org-subscription-hidden", + templateUrl: "image-subscription-hidden.component.svg", +}) +export class ImageSubscriptionHiddenComponent {} diff --git a/apps/web/src/app/organizations/settings/organization-billing.component.html b/apps/web/src/app/organizations/settings/organization-billing.component.html new file mode 100644 index 0000000000..ce13772296 --- /dev/null +++ b/apps/web/src/app/organizations/settings/organization-billing.component.html @@ -0,0 +1,212 @@ + + + + {{ "loading" | i18n }} + + +

{{ (isCreditBalance ? "accountCredit" : "accountBalance") | i18n }}

+

+ {{ creditOrBalance | currency: "$" }} +

+

{{ "creditAppliedDesc" | i18n }}

+ + + +

{{ "paymentMethod" | i18n }}

+

{{ "noPaymentMethod" | i18n }}

+ + +

{{ "verifyBankAccountDesc" | i18n }} {{ "verifyBankAccountFailureWarning" | i18n }}

+
+ +
+
+
$0.
+
+ +
+ +
+
+
$0.
+
+ +
+ +
+
+

+ + {{ "inAppPurchase" | i18n }} + {{ paymentSource.description }} +

+
+ + + +

{{ "invoices" | i18n }}

+

{{ "noInvoices" | i18n }}

+ + + + + + + + + +
{{ i.date | date: "mediumDate" }} + + + + {{ "invoiceNumber" | i18n: i.number }} + {{ i.amount | currency: "$" }} + + + {{ "paid" | i18n }} + + + + {{ "unpaid" | i18n }} + +
+

{{ "transactions" | i18n }}

+

{{ "noTransactions" | i18n }}

+ + + + + + + + + +
{{ t.createdDate | date: "mediumDate" }} + + {{ "chargeNoun" | i18n }} + + {{ "refundNoun" | i18n }} + + + {{ t.details }} + + {{ t.amount | currency: "$" }} +
+ * {{ "chargesStatement" | i18n: "BITWARDEN" }} +
diff --git a/apps/web/src/app/organizations/settings/organization-billing.component.ts b/apps/web/src/app/organizations/settings/organization-billing.component.ts new file mode 100644 index 0000000000..49ed6a0e69 --- /dev/null +++ b/apps/web/src/app/organizations/settings/organization-billing.component.ts @@ -0,0 +1,154 @@ +import { Component, OnInit } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PaymentMethodType } from "jslib-common/enums/paymentMethodType"; +import { TransactionType } from "jslib-common/enums/transactionType"; +import { VerifyBankRequest } from "jslib-common/models/request/verifyBankRequest"; +import { BillingResponse } from "jslib-common/models/response/billingResponse"; + +@Component({ + selector: "app-org-billing", + templateUrl: "./organization-billing.component.html", +}) +export class OrganizationBillingComponent implements OnInit { + loading = false; + firstLoaded = false; + showAdjustPayment = false; + showAddCredit = false; + billing: BillingResponse; + paymentMethodType = PaymentMethodType; + transactionType = TransactionType; + organizationId: string; + verifyAmount1: number; + verifyAmount2: number; + + verifyBankPromise: Promise; + + // TODO - Make sure to properly split out the billing/invoice and payment method/account during org admin refresh + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private route: ActivatedRoute, + private platformUtilsService: PlatformUtilsService, + private logService: LogService + ) {} + + async ngOnInit() { + this.route.parent.parent.params.subscribe(async (params) => { + this.organizationId = params.organizationId; + await this.load(); + this.firstLoaded = true; + }); + } + + async load() { + if (this.loading) { + return; + } + this.loading = true; + if (this.organizationId != null) { + this.billing = await this.apiService.getOrganizationBilling(this.organizationId); + } + this.loading = false; + } + + async verifyBank() { + if (this.loading) { + return; + } + + try { + const request = new VerifyBankRequest(); + request.amount1 = this.verifyAmount1; + request.amount2 = this.verifyAmount2; + this.verifyBankPromise = this.apiService.postOrganizationVerifyBank( + this.organizationId, + request + ); + await this.verifyBankPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("verifiedBankAccount") + ); + this.load(); + } catch (e) { + this.logService.error(e); + } + } + + addCredit() { + if (this.paymentSourceInApp) { + this.platformUtilsService.showDialog( + this.i18nService.t("cannotPerformInAppPurchase"), + this.i18nService.t("addCredit"), + null, + null, + "warning" + ); + return; + } + this.showAddCredit = true; + } + + closeAddCredit(load: boolean) { + this.showAddCredit = false; + if (load) { + this.load(); + } + } + + changePayment() { + if (this.paymentSourceInApp) { + this.platformUtilsService.showDialog( + this.i18nService.t("cannotPerformInAppPurchase"), + this.i18nService.t("changePaymentMethod"), + null, + null, + "warning" + ); + return; + } + this.showAdjustPayment = true; + } + + closePayment(load: boolean) { + this.showAdjustPayment = false; + if (load) { + this.load(); + } + } + + get isCreditBalance() { + return this.billing == null || this.billing.balance <= 0; + } + + get creditOrBalance() { + return Math.abs(this.billing != null ? this.billing.balance : 0); + } + + get paymentSource() { + return this.billing != null ? this.billing.paymentSource : null; + } + + get paymentSourceInApp() { + return ( + this.paymentSource != null && + (this.paymentSource.type === PaymentMethodType.AppleInApp || + this.paymentSource.type === PaymentMethodType.GoogleInApp) + ); + } + + get invoices() { + return this.billing != null ? this.billing.invoices : null; + } + + get transactions() { + return this.billing != null ? this.billing.transactions : null; + } +} diff --git a/apps/web/src/app/organizations/settings/organization-subscription.component.html b/apps/web/src/app/organizations/settings/organization-subscription.component.html new file mode 100644 index 0000000000..60e1341475 --- /dev/null +++ b/apps/web/src/app/organizations/settings/organization-subscription.component.html @@ -0,0 +1,313 @@ + + + + {{ "loading" | i18n }} + + + +
+ +

{{ "billingManagedByProvider" | i18n: this.userOrg.providerName }}

+

{{ "billingContactProviderForAssistance" | i18n }}

+
+
+ + + + {{ "subscriptionCanceled" | i18n }} + +

{{ "subscriptionPendingCanceled" | i18n }}

+ +
+ +
+
+
+
{{ "billingPlan" | i18n }}
+
{{ sub.plan.name }}
+ +
{{ "status" | i18n }}
+
+ {{ + isSponsoredSubscription ? "sponsored" : subscription.status || "-" + }} + {{ + "pendingCancellation" | i18n + }} +
+
{{ "nextCharge" | i18n }}
+
+ {{ + nextInvoice + ? (nextInvoice.date | date: "mediumDate") + + ", " + + (nextInvoice.amount | currency: "$") + : "-" + }} +
+
+
+
+
+ {{ "details" | i18n }} + + + + + + + +
+ {{ i.name }} {{ i.quantity > 1 ? "×" + i.quantity : "" }} @ + {{ i.amount | currency: "$" }} + {{ i.quantity * i.amount | currency: "$" }} /{{ i.interval | i18n }}
+
+ +
+
+
{{ "provider" | i18n }}
+
{{ "yourProviderIs" | i18n: userOrg.providerName }}
+
+
+
+
+ + + + +

{{ "manageSubscription" | i18n }}

+

{{ subscriptionDesc }}

+ +
+ + +
+
+ +

{{ "storage" | i18n }}

+

{{ "subscriptionStorage" | i18n: sub.maxStorageGb || 0:sub.storageName || "0 MB" }}

+
+
+ {{ storagePercentage / 100 | percent }} +
+
+ +
+
+ + +
+ +
+
+ +

{{ "selfHostingTitle" | i18n }}

+

+ {{ "selfHostingEnterpriseOrganizationSectionCopy" | i18n }} +

+
+ + +
+
+ +
+

{{ "additionalOptions" | i18n }}

+

+ {{ "additionalOptionsDesc" | i18n }} +

+
+ +
+
+ +
+
{{ "billingPlan" | i18n }}
+
{{ sub.plan.name }}
+
{{ "expiration" | i18n }}
+
+ {{ sub.expiration | date: "mediumDate" }} + + + {{ "licenseIsExpired" | i18n }} + +
+
{{ "neverExpires" | i18n }}
+
+
+ + + {{ "manageSubscription" | i18n }} + +
+
+
+ +

{{ "updateLicense" | i18n }}

+ +
+
+
+

+ {{ "billingSync" | i18n }} +

+

+ {{ "billingSyncDesc" | i18n }} +

+ + + {{ "lastSync" | i18n }}: + + {{ userOrg.familySponsorshipLastSyncDate | date: "medium" }} + + + {{ "never" | i18n | lowercase }} + + +
+
+
+ + diff --git a/apps/web/src/app/organizations/settings/organization-subscription.component.ts b/apps/web/src/app/organizations/settings/organization-subscription.component.ts new file mode 100644 index 0000000000..e829e82081 --- /dev/null +++ b/apps/web/src/app/organizations/settings/organization-subscription.component.ts @@ -0,0 +1,380 @@ +import { Component, OnInit, ViewChild, ViewContainerRef } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { ModalRef } from "jslib-angular/components/modal/modal.ref"; +import { ModalService } from "jslib-angular/services/modal.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { OrganizationApiKeyType } from "jslib-common/enums/organizationApiKeyType"; +import { OrganizationConnectionType } from "jslib-common/enums/organizationConnectionType"; +import { PlanType } from "jslib-common/enums/planType"; +import { BillingSyncConfigApi } from "jslib-common/models/api/billingSyncConfigApi"; +import { Organization } from "jslib-common/models/domain/organization"; +import { OrganizationConnectionResponse } from "jslib-common/models/response/organizationConnectionResponse"; +import { OrganizationSubscriptionResponse } from "jslib-common/models/response/organizationSubscriptionResponse"; + +import { BillingSyncKeyComponent } from "src/app/settings/billing-sync-key.component"; + +import { BillingSyncApiKeyComponent } from "./billing-sync-api-key.component"; + +@Component({ + selector: "app-org-subscription", + templateUrl: "organization-subscription.component.html", +}) +export class OrganizationSubscriptionComponent implements OnInit { + @ViewChild("setupBillingSyncTemplate", { read: ViewContainerRef, static: true }) + setupBillingSyncModalRef: ViewContainerRef; + + loading = false; + firstLoaded = false; + organizationId: string; + adjustSeatsAdd = true; + showAdjustSeats = false; + showAdjustSeatAutoscale = false; + adjustStorageAdd = true; + showAdjustStorage = false; + showUpdateLicense = false; + showBillingSyncKey = false; + showDownloadLicense = false; + showChangePlan = false; + sub: OrganizationSubscriptionResponse; + selfHosted = false; + hasBillingSyncToken: boolean; + + userOrg: Organization; + existingBillingSyncConnection: OrganizationConnectionResponse; + + removeSponsorshipPromise: Promise; + cancelPromise: Promise; + reinstatePromise: Promise; + + @ViewChild("rotateBillingSyncKeyTemplate", { read: ViewContainerRef, static: true }) + billingSyncKeyViewContainerRef: ViewContainerRef; + billingSyncKeyRef: [ModalRef, BillingSyncKeyComponent]; + + constructor( + private apiService: ApiService, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private messagingService: MessagingService, + private route: ActivatedRoute, + private organizationService: OrganizationService, + private logService: LogService, + private modalService: ModalService + ) { + this.selfHosted = platformUtilsService.isSelfHost(); + } + + async ngOnInit() { + this.route.parent.parent.params.subscribe(async (params) => { + this.organizationId = params.organizationId; + await this.load(); + this.firstLoaded = true; + }); + } + + async load() { + if (this.loading) { + return; + } + + this.loading = true; + this.userOrg = await this.organizationService.get(this.organizationId); + if (this.userOrg.canManageBilling) { + this.sub = await this.apiService.getOrganizationSubscription(this.organizationId); + } + const apiKeyResponse = await this.apiService.getOrganizationApiKeyInformation( + this.organizationId + ); + this.hasBillingSyncToken = apiKeyResponse.data.some( + (i) => i.keyType === OrganizationApiKeyType.BillingSync + ); + + if (this.selfHosted) { + this.showBillingSyncKey = await this.apiService.getCloudCommunicationsEnabled(); + } + + if (this.showBillingSyncKey) { + this.existingBillingSyncConnection = await this.apiService.getOrganizationConnection( + this.organizationId, + OrganizationConnectionType.CloudBillingSync, + BillingSyncConfigApi + ); + } + + this.loading = false; + } + + async reinstate() { + if (this.loading) { + return; + } + + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("reinstateConfirmation"), + this.i18nService.t("reinstateSubscription"), + this.i18nService.t("yes"), + this.i18nService.t("cancel") + ); + if (!confirmed) { + return; + } + + try { + this.reinstatePromise = this.apiService.postOrganizationReinstate(this.organizationId); + await this.reinstatePromise; + this.platformUtilsService.showToast("success", null, this.i18nService.t("reinstated")); + this.load(); + } catch (e) { + this.logService.error(e); + } + } + + async cancel() { + if (this.loading) { + return; + } + + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("cancelConfirmation"), + this.i18nService.t("cancelSubscription"), + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!confirmed) { + return; + } + + try { + this.cancelPromise = this.apiService.postOrganizationCancel(this.organizationId); + await this.cancelPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("canceledSubscription") + ); + this.load(); + } catch (e) { + this.logService.error(e); + } + } + + async changePlan() { + this.showChangePlan = !this.showChangePlan; + } + + closeChangePlan(changed: boolean) { + this.showChangePlan = false; + } + + downloadLicense() { + this.showDownloadLicense = !this.showDownloadLicense; + } + + async manageBillingSync() { + const [ref] = await this.modalService.openViewRef( + BillingSyncApiKeyComponent, + this.setupBillingSyncModalRef, + (comp) => { + comp.organizationId = this.organizationId; + comp.hasBillingToken = this.hasBillingSyncToken; + } + ); + ref.onClosed.subscribe(async () => { + await this.load(); + }); + } + + closeDownloadLicense() { + this.showDownloadLicense = false; + } + + updateLicense() { + if (this.loading) { + return; + } + this.showUpdateLicense = true; + } + + closeUpdateLicense(updated: boolean) { + this.showUpdateLicense = false; + if (updated) { + this.load(); + this.messagingService.send("updatedOrgLicense"); + } + } + + subscriptionAdjusted() { + this.load(); + } + + adjustStorage(add: boolean) { + this.adjustStorageAdd = add; + this.showAdjustStorage = true; + } + + closeStorage(load: boolean) { + this.showAdjustStorage = false; + if (load) { + this.load(); + } + } + + async removeSponsorship() { + const isConfirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("removeSponsorshipConfirmation"), + this.i18nService.t("removeSponsorship"), + this.i18nService.t("remove"), + this.i18nService.t("cancel"), + "warning" + ); + + if (!isConfirmed) { + return; + } + + try { + this.removeSponsorshipPromise = this.apiService.deleteRemoveSponsorship(this.organizationId); + await this.removeSponsorshipPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("removeSponsorshipSuccess") + ); + await this.load(); + } catch (e) { + this.logService.error(e); + } + } + + async manageBillingSyncSelfHosted() { + this.billingSyncKeyRef = await this.modalService.openViewRef( + BillingSyncKeyComponent, + this.billingSyncKeyViewContainerRef, + (comp) => { + comp.entityId = this.organizationId; + comp.existingConnectionId = this.existingBillingSyncConnection?.id; + comp.billingSyncKey = this.existingBillingSyncConnection?.config?.billingSyncKey; + comp.setParentConnection = ( + connection: OrganizationConnectionResponse + ) => { + this.existingBillingSyncConnection = connection; + this.billingSyncKeyRef[0].close(); + }; + } + ); + } + + get isExpired() { + return ( + this.sub != null && this.sub.expiration != null && new Date(this.sub.expiration) < new Date() + ); + } + + get subscriptionMarkedForCancel() { + return ( + this.subscription != null && !this.subscription.cancelled && this.subscription.cancelAtEndDate + ); + } + + get subscription() { + return this.sub != null ? this.sub.subscription : null; + } + + get nextInvoice() { + return this.sub != null ? this.sub.upcomingInvoice : null; + } + + get storagePercentage() { + return this.sub != null && this.sub.maxStorageGb + ? +(100 * (this.sub.storageGb / this.sub.maxStorageGb)).toFixed(2) + : 0; + } + + get storageProgressWidth() { + return this.storagePercentage < 5 ? 5 : 0; + } + + get billingInterval() { + const monthly = !this.sub.plan.isAnnual; + return monthly ? "month" : "year"; + } + + get storageGbPrice() { + return this.sub.plan.additionalStoragePricePerGb; + } + + get seatPrice() { + return this.sub.plan.seatPrice; + } + + get seats() { + return this.sub.seats; + } + + get maxAutoscaleSeats() { + return this.sub.maxAutoscaleSeats; + } + + get canAdjustSeats() { + return this.sub.plan.hasAdditionalSeatsOption; + } + + get isSponsoredSubscription(): boolean { + return this.sub.subscription?.items.some((i) => i.sponsoredSubscriptionItem); + } + + get canDownloadLicense() { + return ( + (this.sub.planType !== PlanType.Free && this.subscription == null) || + (this.subscription != null && !this.subscription.cancelled) + ); + } + + get canManageBillingSync() { + return ( + !this.selfHosted && + (this.sub.planType === PlanType.EnterpriseAnnually || + this.sub.planType === PlanType.EnterpriseMonthly || + this.sub.planType === PlanType.EnterpriseAnnually2019 || + this.sub.planType === PlanType.EnterpriseMonthly2019) + ); + } + + get subscriptionDesc() { + if (this.sub.planType === PlanType.Free) { + return this.i18nService.t("subscriptionFreePlan", this.sub.seats.toString()); + } else if ( + this.sub.planType === PlanType.FamiliesAnnually || + this.sub.planType === PlanType.FamiliesAnnually2019 + ) { + if (this.isSponsoredSubscription) { + return this.i18nService.t("subscriptionSponsoredFamiliesPlan", this.sub.seats.toString()); + } else { + return this.i18nService.t("subscriptionFamiliesPlan", this.sub.seats.toString()); + } + } else if (this.sub.maxAutoscaleSeats === this.sub.seats && this.sub.seats != null) { + return this.i18nService.t("subscriptionMaxReached", this.sub.seats.toString()); + } else if (this.sub.maxAutoscaleSeats == null) { + return this.i18nService.t("subscriptionUserSeatsUnlimitedAutoscale"); + } else { + return this.i18nService.t( + "subscriptionUserSeatsLimitedAutoscale", + this.sub.maxAutoscaleSeats.toString() + ); + } + } + + get showChangePlanButton() { + return this.subscription == null && this.sub.planType === PlanType.Free && !this.showChangePlan; + } + + get billingSyncSetUp() { + return this.existingBillingSyncConnection?.id != null; + } +} diff --git a/apps/web/src/app/organizations/settings/settings.component.html b/apps/web/src/app/organizations/settings/settings.component.html new file mode 100644 index 0000000000..ad9824ef73 --- /dev/null +++ b/apps/web/src/app/organizations/settings/settings.component.html @@ -0,0 +1,36 @@ + diff --git a/apps/web/src/app/organizations/settings/settings.component.ts b/apps/web/src/app/organizations/settings/settings.component.ts new file mode 100644 index 0000000000..d75790944d --- /dev/null +++ b/apps/web/src/app/organizations/settings/settings.component.ts @@ -0,0 +1,28 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; + +@Component({ + selector: "app-org-settings", + templateUrl: "settings.component.html", +}) +export class SettingsComponent { + access2fa = false; + showBilling: boolean; + + constructor( + private route: ActivatedRoute, + private organizationService: OrganizationService, + private platformUtilsService: PlatformUtilsService + ) {} + + ngOnInit() { + this.route.parent.params.subscribe(async (params) => { + const organization = await this.organizationService.get(params.organizationId); + this.showBilling = !this.platformUtilsService.isSelfHost() && organization.canManageBilling; + this.access2fa = organization.use2fa; + }); + } +} diff --git a/apps/web/src/app/organizations/settings/two-factor-setup.component.ts b/apps/web/src/app/organizations/settings/two-factor-setup.component.ts new file mode 100644 index 0000000000..12675fcf52 --- /dev/null +++ b/apps/web/src/app/organizations/settings/two-factor-setup.component.ts @@ -0,0 +1,60 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; + +import { TwoFactorDuoComponent } from "../../settings/two-factor-duo.component"; +import { TwoFactorSetupComponent as BaseTwoFactorSetupComponent } from "../../settings/two-factor-setup.component"; + +@Component({ + selector: "app-two-factor-setup", + templateUrl: "../../settings/two-factor-setup.component.html", +}) +export class TwoFactorSetupComponent extends BaseTwoFactorSetupComponent { + constructor( + apiService: ApiService, + modalService: ModalService, + messagingService: MessagingService, + policyService: PolicyService, + private route: ActivatedRoute, + stateService: StateService + ) { + super(apiService, modalService, messagingService, policyService, stateService); + } + + async ngOnInit() { + this.route.parent.parent.params.subscribe(async (params) => { + this.organizationId = params.organizationId; + await super.ngOnInit(); + }); + } + + async manage(type: TwoFactorProviderType) { + switch (type) { + case TwoFactorProviderType.OrganizationDuo: { + const duoComp = await this.openModal(this.duoModalRef, TwoFactorDuoComponent); + duoComp.type = TwoFactorProviderType.OrganizationDuo; + duoComp.organizationId = this.organizationId; + duoComp.onUpdated.subscribe((enabled: boolean) => { + this.updateStatus(enabled, TwoFactorProviderType.OrganizationDuo); + }); + break; + } + default: + break; + } + } + + protected getTwoFactorProviders() { + return this.apiService.getTwoFactorOrganizationProviders(this.organizationId); + } + + protected filterProvider(type: TwoFactorProviderType) { + return type !== TwoFactorProviderType.OrganizationDuo; + } +} diff --git a/apps/web/src/app/organizations/sponsorships/accept-family-sponsorship.component.html b/apps/web/src/app/organizations/sponsorships/accept-family-sponsorship.component.html new file mode 100644 index 0000000000..e7eb29a3ac --- /dev/null +++ b/apps/web/src/app/organizations/sponsorships/accept-family-sponsorship.component.html @@ -0,0 +1,13 @@ +
+
+ +

+ + {{ "loading" | i18n }} +

+
+
diff --git a/apps/web/src/app/organizations/sponsorships/accept-family-sponsorship.component.ts b/apps/web/src/app/organizations/sponsorships/accept-family-sponsorship.component.ts new file mode 100644 index 0000000000..acbcaa85e5 --- /dev/null +++ b/apps/web/src/app/organizations/sponsorships/accept-family-sponsorship.component.ts @@ -0,0 +1,26 @@ +import { Component } from "@angular/core"; + +import { BaseAcceptComponent } from "src/app/common/base.accept.component"; + +@Component({ + selector: "app-accept-family-sponsorship", + templateUrl: "accept-family-sponsorship.component.html", +}) +export class AcceptFamilySponsorshipComponent extends BaseAcceptComponent { + failedShortMessage = "inviteAcceptFailedShort"; + failedMessage = "inviteAcceptFailed"; + + requiredParameters = ["email", "token"]; + + async authedHandler(qParams: any) { + this.router.navigate(["/setup/families-for-enterprise"], { queryParams: qParams }); + } + + async unauthedHandler(qParams: any) { + if (!qParams.register) { + this.router.navigate(["/login"], { queryParams: { email: qParams.email } }); + } else { + this.router.navigate(["/register"], { queryParams: { email: qParams.email } }); + } + } +} diff --git a/apps/web/src/app/organizations/sponsorships/families-for-enterprise-setup.component.html b/apps/web/src/app/organizations/sponsorships/families-for-enterprise-setup.component.html new file mode 100644 index 0000000000..caa2260f52 --- /dev/null +++ b/apps/web/src/app/organizations/sponsorships/families-for-enterprise-setup.component.html @@ -0,0 +1,51 @@ +
+ +
+ + {{ "loading" | i18n }} +
+
+ {{ "badToken" | i18n }} +
+
+

+ {{ "acceptBitwardenFamiliesHelp" | i18n }} +

+
+ + +
+
+ +
+
+ +
+
+
+ diff --git a/apps/web/src/app/organizations/sponsorships/families-for-enterprise-setup.component.ts b/apps/web/src/app/organizations/sponsorships/families-for-enterprise-setup.component.ts new file mode 100644 index 0000000000..ee99d19eed --- /dev/null +++ b/apps/web/src/app/organizations/sponsorships/families-for-enterprise-setup.component.ts @@ -0,0 +1,147 @@ +import { Component, OnInit, ViewChild, ViewContainerRef } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; +import { first } from "rxjs/operators"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { ValidationService } from "jslib-angular/services/validation.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { PlanSponsorshipType } from "jslib-common/enums/planSponsorshipType"; +import { PlanType } from "jslib-common/enums/planType"; +import { ProductType } from "jslib-common/enums/productType"; +import { Organization } from "jslib-common/models/domain/organization"; +import { OrganizationSponsorshipRedeemRequest } from "jslib-common/models/request/organization/organizationSponsorshipRedeemRequest"; + +import { DeleteOrganizationComponent } from "src/app/organizations/settings/delete-organization.component"; +import { OrganizationPlansComponent } from "src/app/settings/organization-plans.component"; + +@Component({ + selector: "families-for-enterprise-setup", + templateUrl: "families-for-enterprise-setup.component.html", +}) +export class FamiliesForEnterpriseSetupComponent implements OnInit { + @ViewChild(OrganizationPlansComponent, { static: false }) + set organizationPlansComponent(value: OrganizationPlansComponent) { + if (!value) { + return; + } + + value.plan = PlanType.FamiliesAnnually; + value.product = ProductType.Families; + value.acceptingSponsorship = true; + value.onSuccess.subscribe(this.onOrganizationCreateSuccess.bind(this)); + } + + @ViewChild("deleteOrganizationTemplate", { read: ViewContainerRef, static: true }) + deleteModalRef: ViewContainerRef; + + loading = true; + badToken = false; + formPromise: Promise; + + token: string; + existingFamilyOrganizations: Organization[]; + + showNewOrganization = false; + _organizationPlansComponent: OrganizationPlansComponent; + _selectedFamilyOrganizationId = ""; + + constructor( + private router: Router, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private route: ActivatedRoute, + private apiService: ApiService, + private syncService: SyncService, + private validationService: ValidationService, + private organizationService: OrganizationService, + private modalService: ModalService + ) {} + + async ngOnInit() { + document.body.classList.remove("layout_frontend"); + this.route.queryParams.pipe(first()).subscribe(async (qParams) => { + const error = qParams.token == null; + if (error) { + this.platformUtilsService.showToast( + "error", + null, + this.i18nService.t("sponsoredFamiliesAcceptFailed"), + { timeout: 10000 } + ); + this.router.navigate(["/"]); + return; + } + + this.token = qParams.token; + + await this.syncService.fullSync(true); + this.badToken = !(await this.apiService.postPreValidateSponsorshipToken(this.token)); + this.loading = false; + + this.existingFamilyOrganizations = (await this.organizationService.getAll()).filter( + (o) => o.planProductType === ProductType.Families + ); + + if (this.existingFamilyOrganizations.length === 0) { + this.selectedFamilyOrganizationId = "createNew"; + } + }); + } + + async submit() { + this.formPromise = this.doSubmit(this._selectedFamilyOrganizationId); + await this.formPromise; + this.formPromise = null; + } + + get selectedFamilyOrganizationId() { + return this._selectedFamilyOrganizationId; + } + + set selectedFamilyOrganizationId(value: string) { + this._selectedFamilyOrganizationId = value; + this.showNewOrganization = value === "createNew"; + } + + private async doSubmit(organizationId: string) { + try { + const request = new OrganizationSponsorshipRedeemRequest(); + request.planSponsorshipType = PlanSponsorshipType.FamiliesForEnterprise; + request.sponsoredOrganizationId = organizationId; + + await this.apiService.postRedeemSponsorship(this.token, request); + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("sponsoredFamiliesOfferRedeemed") + ); + await this.syncService.fullSync(true); + + this.router.navigate(["/"]); + } catch (e) { + if (this.showNewOrganization) { + await this.modalService.openViewRef( + DeleteOrganizationComponent, + this.deleteModalRef, + (comp) => { + comp.organizationId = organizationId; + comp.deleteOrganizationRequestType = "InvalidFamiliesForEnterprise"; + comp.onSuccess.subscribe(() => { + this.router.navigate(["/"]); + }); + } + ); + } + this.validationService.showError(this.i18nService.t("sponsorshipTokenHasExpired")); + } + } + + private async onOrganizationCreateSuccess(value: any) { + // Use newly created organization id + await this.doSubmit(value.organizationId); + } +} diff --git a/apps/web/src/app/organizations/tools/export.component.ts b/apps/web/src/app/organizations/tools/export.component.ts new file mode 100644 index 0000000000..0601d6b370 --- /dev/null +++ b/apps/web/src/app/organizations/tools/export.component.ts @@ -0,0 +1,69 @@ +import { Component } from "@angular/core"; +import { FormBuilder } from "@angular/forms"; +import { ActivatedRoute } from "@angular/router"; + +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { EventService } from "jslib-common/abstractions/event.service"; +import { ExportService } from "jslib-common/abstractions/export.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; + +import { ExportComponent as BaseExportComponent } from "../../tools/export.component"; + +@Component({ + selector: "app-org-export", + templateUrl: "../../tools/export.component.html", +}) +export class ExportComponent extends BaseExportComponent { + constructor( + cryptoService: CryptoService, + i18nService: I18nService, + platformUtilsService: PlatformUtilsService, + exportService: ExportService, + eventService: EventService, + private route: ActivatedRoute, + policyService: PolicyService, + logService: LogService, + userVerificationService: UserVerificationService, + formBuilder: FormBuilder + ) { + super( + cryptoService, + i18nService, + platformUtilsService, + exportService, + eventService, + policyService, + logService, + userVerificationService, + formBuilder + ); + } + + async ngOnInit() { + this.route.parent.parent.params.subscribe(async (params) => { + this.organizationId = params.organizationId; + }); + await super.ngOnInit(); + } + + async checkExportDisabled() { + return; + } + + getExportData() { + return this.exportService.getOrganizationExport(this.organizationId, this.format); + } + + getFileName() { + return super.getFileName("org"); + } + + async collectEvent(): Promise { + // TODO + // await this.eventService.collect(EventType.Organization_ClientExportedVault); + } +} diff --git a/apps/web/src/app/organizations/tools/exposed-passwords-report.component.ts b/apps/web/src/app/organizations/tools/exposed-passwords-report.component.ts new file mode 100644 index 0000000000..e3b8f5521e --- /dev/null +++ b/apps/web/src/app/organizations/tools/exposed-passwords-report.component.ts @@ -0,0 +1,58 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { AuditService } from "jslib-common/abstractions/audit.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { Cipher } from "jslib-common/models/domain/cipher"; +import { CipherView } from "jslib-common/models/view/cipherView"; + +import { ExposedPasswordsReportComponent as BaseExposedPasswordsReportComponent } from "../../reports/exposed-passwords-report.component"; + +@Component({ + selector: "app-org-exposed-passwords-report", + templateUrl: "../../reports/exposed-passwords-report.component.html", +}) +export class ExposedPasswordsReportComponent extends BaseExposedPasswordsReportComponent { + manageableCiphers: Cipher[]; + + constructor( + cipherService: CipherService, + auditService: AuditService, + modalService: ModalService, + messagingService: MessagingService, + stateService: StateService, + private organizationService: OrganizationService, + private route: ActivatedRoute, + passwordRepromptService: PasswordRepromptService + ) { + super( + cipherService, + auditService, + modalService, + messagingService, + stateService, + passwordRepromptService + ); + } + + ngOnInit() { + this.route.parent.parent.params.subscribe(async (params) => { + this.organization = await this.organizationService.get(params.organizationId); + this.manageableCiphers = await this.cipherService.getAll(); + await this.checkAccess(); + }); + } + + getAllCiphers(): Promise { + return this.cipherService.getAllFromApiForOrganization(this.organization.id); + } + + canManageCipher(c: CipherView): boolean { + return this.manageableCiphers.some((x) => x.id === c.id); + } +} diff --git a/apps/web/src/app/organizations/tools/import.component.ts b/apps/web/src/app/organizations/tools/import.component.ts new file mode 100644 index 0000000000..6dce498808 --- /dev/null +++ b/apps/web/src/app/organizations/tools/import.component.ts @@ -0,0 +1,57 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { ImportService } from "jslib-common/abstractions/import.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; + +import { ImportComponent as BaseImportComponent } from "../../tools/import.component"; + +@Component({ + selector: "app-org-import", + templateUrl: "../../tools/import.component.html", +}) +export class ImportComponent extends BaseImportComponent { + organizationName: string; + + constructor( + i18nService: I18nService, + importService: ImportService, + router: Router, + private route: ActivatedRoute, + platformUtilsService: PlatformUtilsService, + policyService: PolicyService, + private organizationService: OrganizationService, + logService: LogService + ) { + super(i18nService, importService, router, platformUtilsService, policyService, logService); + } + + async ngOnInit() { + this.route.parent.parent.params.subscribe(async (params) => { + this.organizationId = params.organizationId; + this.successNavigate = ["organizations", this.organizationId, "vault"]; + await super.ngOnInit(); + this.importBlockedByPolicy = false; + }); + const organization = await this.organizationService.get(this.organizationId); + this.organizationName = organization.name; + } + + async submit() { + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("importWarning", this.organizationName), + this.i18nService.t("warning"), + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!confirmed) { + return; + } + super.submit(); + } +} diff --git a/apps/web/src/app/organizations/tools/inactive-two-factor-report.component.ts b/apps/web/src/app/organizations/tools/inactive-two-factor-report.component.ts new file mode 100644 index 0000000000..5aec67d5f2 --- /dev/null +++ b/apps/web/src/app/organizations/tools/inactive-two-factor-report.component.ts @@ -0,0 +1,50 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { CipherView } from "jslib-common/models/view/cipherView"; + +import { InactiveTwoFactorReportComponent as BaseInactiveTwoFactorReportComponent } from "../../reports/inactive-two-factor-report.component"; + +@Component({ + selector: "app-inactive-two-factor-report", + templateUrl: "../../reports/inactive-two-factor-report.component.html", +}) +export class InactiveTwoFactorReportComponent extends BaseInactiveTwoFactorReportComponent { + constructor( + cipherService: CipherService, + modalService: ModalService, + messagingService: MessagingService, + stateService: StateService, + private route: ActivatedRoute, + logService: LogService, + passwordRepromptService: PasswordRepromptService, + private organizationService: OrganizationService + ) { + super( + cipherService, + modalService, + messagingService, + stateService, + logService, + passwordRepromptService + ); + } + + async ngOnInit() { + this.route.parent.parent.params.subscribe(async (params) => { + this.organization = await this.organizationService.get(params.organizationId); + await super.ngOnInit(); + }); + } + + getAllCiphers(): Promise { + return this.cipherService.getAllFromApiForOrganization(this.organization.id); + } +} diff --git a/apps/web/src/app/organizations/tools/reused-passwords-report.component.ts b/apps/web/src/app/organizations/tools/reused-passwords-report.component.ts new file mode 100644 index 0000000000..4aa8ab706a --- /dev/null +++ b/apps/web/src/app/organizations/tools/reused-passwords-report.component.ts @@ -0,0 +1,49 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { Cipher } from "jslib-common/models/domain/cipher"; +import { CipherView } from "jslib-common/models/view/cipherView"; + +import { ReusedPasswordsReportComponent as BaseReusedPasswordsReportComponent } from "../../reports/reused-passwords-report.component"; + +@Component({ + selector: "app-reused-passwords-report", + templateUrl: "../../reports/reused-passwords-report.component.html", +}) +export class ReusedPasswordsReportComponent extends BaseReusedPasswordsReportComponent { + manageableCiphers: Cipher[]; + + constructor( + cipherService: CipherService, + modalService: ModalService, + messagingService: MessagingService, + stateService: StateService, + private route: ActivatedRoute, + private organizationService: OrganizationService, + passwordRepromptService: PasswordRepromptService + ) { + super(cipherService, modalService, messagingService, stateService, passwordRepromptService); + } + + async ngOnInit() { + this.route.parent.parent.params.subscribe(async (params) => { + this.organization = await this.organizationService.get(params.organizationId); + this.manageableCiphers = await this.cipherService.getAll(); + await super.ngOnInit(); + }); + } + + getAllCiphers(): Promise { + return this.cipherService.getAllFromApiForOrganization(this.organization.id); + } + + canManageCipher(c: CipherView): boolean { + return this.manageableCiphers.some((x) => x.id === c.id); + } +} diff --git a/apps/web/src/app/organizations/tools/tools.component.html b/apps/web/src/app/organizations/tools/tools.component.html new file mode 100644 index 0000000000..1cc93bff8c --- /dev/null +++ b/apps/web/src/app/organizations/tools/tools.component.html @@ -0,0 +1,79 @@ + diff --git a/apps/web/src/app/organizations/tools/tools.component.ts b/apps/web/src/app/organizations/tools/tools.component.ts new file mode 100644 index 0000000000..da23f2e9d7 --- /dev/null +++ b/apps/web/src/app/organizations/tools/tools.component.ts @@ -0,0 +1,36 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { Organization } from "jslib-common/models/domain/organization"; + +@Component({ + selector: "app-org-tools", + templateUrl: "tools.component.html", +}) +export class ToolsComponent { + organization: Organization; + accessReports = false; + loading = true; + + constructor( + private route: ActivatedRoute, + private organizationService: OrganizationService, + private messagingService: MessagingService + ) {} + + ngOnInit() { + this.route.parent.params.subscribe(async (params) => { + this.organization = await this.organizationService.get(params.organizationId); + // TODO: Maybe we want to just make sure they are not on a free plan? Just compare useTotp for now + // since all paid plans include useTotp + this.accessReports = this.organization.useTotp; + this.loading = false; + }); + } + + upgradeOrganization() { + this.messagingService.send("upgradeOrganization", { organizationId: this.organization.id }); + } +} diff --git a/apps/web/src/app/organizations/tools/unsecured-websites-report.component.ts b/apps/web/src/app/organizations/tools/unsecured-websites-report.component.ts new file mode 100644 index 0000000000..9091146234 --- /dev/null +++ b/apps/web/src/app/organizations/tools/unsecured-websites-report.component.ts @@ -0,0 +1,41 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { CipherView } from "jslib-common/models/view/cipherView"; + +import { UnsecuredWebsitesReportComponent as BaseUnsecuredWebsitesReportComponent } from "../../reports/unsecured-websites-report.component"; + +@Component({ + selector: "app-unsecured-websites-report", + templateUrl: "../../reports/unsecured-websites-report.component.html", +}) +export class UnsecuredWebsitesReportComponent extends BaseUnsecuredWebsitesReportComponent { + constructor( + cipherService: CipherService, + modalService: ModalService, + messagingService: MessagingService, + stateService: StateService, + private route: ActivatedRoute, + private organizationService: OrganizationService, + passwordRepromptService: PasswordRepromptService + ) { + super(cipherService, modalService, messagingService, stateService, passwordRepromptService); + } + + async ngOnInit() { + this.route.parent.parent.params.subscribe(async (params) => { + this.organization = await this.organizationService.get(params.organizationId); + await super.ngOnInit(); + }); + } + + getAllCiphers(): Promise { + return this.cipherService.getAllFromApiForOrganization(this.organization.id); + } +} diff --git a/apps/web/src/app/organizations/tools/weak-passwords-report.component.ts b/apps/web/src/app/organizations/tools/weak-passwords-report.component.ts new file mode 100644 index 0000000000..b79b73b021 --- /dev/null +++ b/apps/web/src/app/organizations/tools/weak-passwords-report.component.ts @@ -0,0 +1,58 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { Cipher } from "jslib-common/models/domain/cipher"; +import { CipherView } from "jslib-common/models/view/cipherView"; + +import { WeakPasswordsReportComponent as BaseWeakPasswordsReportComponent } from "../../reports/weak-passwords-report.component"; + +@Component({ + selector: "app-weak-passwords-report", + templateUrl: "../../reports/weak-passwords-report.component.html", +}) +export class WeakPasswordsReportComponent extends BaseWeakPasswordsReportComponent { + manageableCiphers: Cipher[]; + + constructor( + cipherService: CipherService, + passwordGenerationService: PasswordGenerationService, + modalService: ModalService, + messagingService: MessagingService, + stateService: StateService, + private route: ActivatedRoute, + private organizationService: OrganizationService, + passwordRepromptService: PasswordRepromptService + ) { + super( + cipherService, + passwordGenerationService, + modalService, + messagingService, + stateService, + passwordRepromptService + ); + } + + async ngOnInit() { + this.route.parent.parent.params.subscribe(async (params) => { + this.organization = await this.organizationService.get(params.organizationId); + this.manageableCiphers = await this.cipherService.getAll(); + await super.ngOnInit(); + }); + } + + getAllCiphers(): Promise { + return this.cipherService.getAllFromApiForOrganization(this.organization.id); + } + + canManageCipher(c: CipherView): boolean { + return this.manageableCiphers.some((x) => x.id === c.id); + } +} diff --git a/apps/web/src/app/organizations/vault/add-edit.component.ts b/apps/web/src/app/organizations/vault/add-edit.component.ts new file mode 100644 index 0000000000..2f86ce4ece --- /dev/null +++ b/apps/web/src/app/organizations/vault/add-edit.component.ts @@ -0,0 +1,131 @@ +import { Component } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { AuditService } from "jslib-common/abstractions/audit.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { CollectionService } from "jslib-common/abstractions/collection.service"; +import { EventService } from "jslib-common/abstractions/event.service"; +import { FolderService } from "jslib-common/abstractions/folder.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { TotpService } from "jslib-common/abstractions/totp.service"; +import { CipherData } from "jslib-common/models/data/cipherData"; +import { Cipher } from "jslib-common/models/domain/cipher"; +import { Organization } from "jslib-common/models/domain/organization"; +import { CipherCreateRequest } from "jslib-common/models/request/cipherCreateRequest"; +import { CipherRequest } from "jslib-common/models/request/cipherRequest"; + +import { AddEditComponent as BaseAddEditComponent } from "../../vault/add-edit.component"; + +@Component({ + selector: "app-org-vault-add-edit", + templateUrl: "../../vault/add-edit.component.html", +}) +export class AddEditComponent extends BaseAddEditComponent { + organization: Organization; + originalCipher: Cipher = null; + + constructor( + cipherService: CipherService, + folderService: FolderService, + i18nService: I18nService, + platformUtilsService: PlatformUtilsService, + auditService: AuditService, + stateService: StateService, + collectionService: CollectionService, + totpService: TotpService, + passwordGenerationService: PasswordGenerationService, + private apiService: ApiService, + messagingService: MessagingService, + eventService: EventService, + policyService: PolicyService, + logService: LogService, + passwordRepromptService: PasswordRepromptService, + organizationService: OrganizationService + ) { + super( + cipherService, + folderService, + i18nService, + platformUtilsService, + auditService, + stateService, + collectionService, + totpService, + passwordGenerationService, + messagingService, + eventService, + policyService, + organizationService, + logService, + passwordRepromptService + ); + } + + protected allowOwnershipAssignment() { + if ( + this.ownershipOptions != null && + (this.ownershipOptions.length > 1 || !this.allowPersonal) + ) { + if (this.organization != null) { + return this.cloneMode && this.organization.canEditAnyCollection; + } else { + return !this.editMode || this.cloneMode; + } + } + return false; + } + + protected loadCollections() { + if (!this.organization.canEditAnyCollection) { + return super.loadCollections(); + } + return Promise.resolve(this.collections); + } + + protected async loadCipher() { + if (!this.organization.canEditAnyCollection) { + return await super.loadCipher(); + } + const response = await this.apiService.getCipherAdmin(this.cipherId); + const data = new CipherData(response); + this.originalCipher = new Cipher(data); + return new Cipher(data); + } + + protected encryptCipher() { + if (!this.organization.canEditAnyCollection) { + return super.encryptCipher(); + } + return this.cipherService.encrypt(this.cipher, null, this.originalCipher); + } + + protected async saveCipher(cipher: Cipher) { + if (!this.organization.canEditAnyCollection || cipher.organizationId == null) { + return super.saveCipher(cipher); + } + if (this.editMode && !this.cloneMode) { + const request = new CipherRequest(cipher); + return this.apiService.putCipherAdmin(this.cipherId, request); + } else { + const request = new CipherCreateRequest(cipher); + return this.apiService.postCipherAdmin(request); + } + } + + protected async deleteCipher() { + if (!this.organization.canEditAnyCollection) { + return super.deleteCipher(); + } + return this.cipher.isDeleted + ? this.apiService.deleteCipherAdmin(this.cipherId) + : this.apiService.putDeleteCipherAdmin(this.cipherId); + } +} diff --git a/apps/web/src/app/organizations/vault/attachments.component.ts b/apps/web/src/app/organizations/vault/attachments.component.ts new file mode 100644 index 0000000000..fb4b46c7fa --- /dev/null +++ b/apps/web/src/app/organizations/vault/attachments.component.ts @@ -0,0 +1,77 @@ +import { Component } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { CipherData } from "jslib-common/models/data/cipherData"; +import { Cipher } from "jslib-common/models/domain/cipher"; +import { Organization } from "jslib-common/models/domain/organization"; +import { AttachmentView } from "jslib-common/models/view/attachmentView"; + +import { AttachmentsComponent as BaseAttachmentsComponent } from "../../vault/attachments.component"; + +@Component({ + selector: "app-org-vault-attachments", + templateUrl: "../../vault/attachments.component.html", +}) +export class AttachmentsComponent extends BaseAttachmentsComponent { + viewOnly = false; + organization: Organization; + + constructor( + cipherService: CipherService, + i18nService: I18nService, + cryptoService: CryptoService, + stateService: StateService, + platformUtilsService: PlatformUtilsService, + apiService: ApiService, + logService: LogService + ) { + super( + cipherService, + i18nService, + cryptoService, + stateService, + platformUtilsService, + apiService, + logService + ); + } + + protected async reupload(attachment: AttachmentView) { + if (this.organization.canEditAnyCollection && this.showFixOldAttachments(attachment)) { + await super.reuploadCipherAttachment(attachment, true); + } + } + + protected async loadCipher() { + if (!this.organization.canEditAnyCollection) { + return await super.loadCipher(); + } + const response = await this.apiService.getCipherAdmin(this.cipherId); + return new Cipher(new CipherData(response)); + } + + protected saveCipherAttachment(file: File) { + return this.cipherService.saveAttachmentWithServer( + this.cipherDomain, + file, + this.organization.canEditAnyCollection + ); + } + + protected deleteCipherAttachment(attachmentId: string) { + if (!this.organization.canEditAnyCollection) { + return super.deleteCipherAttachment(attachmentId); + } + return this.apiService.deleteCipherAttachmentAdmin(this.cipherId, attachmentId); + } + + protected showFixOldAttachments(attachment: AttachmentView) { + return attachment.key == null && this.organization.canEditAnyCollection; + } +} diff --git a/apps/web/src/app/organizations/vault/ciphers.component.ts b/apps/web/src/app/organizations/vault/ciphers.component.ts new file mode 100644 index 0000000000..2960b9ae99 --- /dev/null +++ b/apps/web/src/app/organizations/vault/ciphers.component.ts @@ -0,0 +1,105 @@ +import { Component, EventEmitter, Output } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { EventService } from "jslib-common/abstractions/event.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { SearchService } from "jslib-common/abstractions/search.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { TokenService } from "jslib-common/abstractions/token.service"; +import { TotpService } from "jslib-common/abstractions/totp.service"; +import { Organization } from "jslib-common/models/domain/organization"; +import { CipherView } from "jslib-common/models/view/cipherView"; + +import { CiphersComponent as BaseCiphersComponent } from "../../vault/ciphers.component"; + +@Component({ + selector: "app-org-vault-ciphers", + templateUrl: "../../vault/ciphers.component.html", +}) +export class CiphersComponent extends BaseCiphersComponent { + @Output() onEventsClicked = new EventEmitter(); + + organization: Organization; + accessEvents = false; + + protected allCiphers: CipherView[] = []; + + constructor( + searchService: SearchService, + i18nService: I18nService, + platformUtilsService: PlatformUtilsService, + cipherService: CipherService, + eventService: EventService, + totpService: TotpService, + passwordRepromptService: PasswordRepromptService, + logService: LogService, + stateService: StateService, + organizationService: OrganizationService, + tokenService: TokenService, + private apiService: ApiService + ) { + super( + searchService, + i18nService, + platformUtilsService, + cipherService, + eventService, + totpService, + stateService, + passwordRepromptService, + logService, + organizationService, + tokenService + ); + } + + async load(filter: (cipher: CipherView) => boolean = null, deleted = false) { + this.deleted = deleted || false; + if (this.organization.canEditAnyCollection) { + this.accessEvents = this.organization.useEvents; + this.allCiphers = await this.cipherService.getAllFromApiForOrganization(this.organization.id); + } else { + this.allCiphers = (await this.cipherService.getAllDecrypted()).filter( + (c) => c.organizationId === this.organization.id + ); + } + await this.searchService.indexCiphers(this.organization.id, this.allCiphers); + await this.applyFilter(filter); + this.loaded = true; + } + + async applyFilter(filter: (cipher: CipherView) => boolean = null) { + if (this.organization.canViewAllCollections) { + await super.applyFilter(filter); + } else { + const f = (c: CipherView) => + c.organizationId === this.organization.id && (filter == null || filter(c)); + await super.applyFilter(f); + } + } + + async search(timeout: number = null) { + await super.search(timeout, this.allCiphers); + } + events(c: CipherView) { + this.onEventsClicked.emit(c); + } + + protected deleteCipher(id: string) { + if (!this.organization.canEditAnyCollection) { + return super.deleteCipher(id, this.deleted); + } + return this.deleted + ? this.apiService.deleteCipherAdmin(id) + : this.apiService.putDeleteCipherAdmin(id); + } + + protected showFixOldAttachments(c: CipherView) { + return this.organization.canEditAnyCollection && c.hasOldAttachments; + } +} diff --git a/apps/web/src/app/organizations/vault/collections.component.ts b/apps/web/src/app/organizations/vault/collections.component.ts new file mode 100644 index 0000000000..deeaa7c7e6 --- /dev/null +++ b/apps/web/src/app/organizations/vault/collections.component.ts @@ -0,0 +1,65 @@ +import { Component } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { CollectionService } from "jslib-common/abstractions/collection.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { CipherData } from "jslib-common/models/data/cipherData"; +import { Cipher } from "jslib-common/models/domain/cipher"; +import { Organization } from "jslib-common/models/domain/organization"; +import { CipherCollectionsRequest } from "jslib-common/models/request/cipherCollectionsRequest"; + +import { CollectionsComponent as BaseCollectionsComponent } from "../../vault/collections.component"; + +@Component({ + selector: "app-org-vault-collections", + templateUrl: "../../vault/collections.component.html", +}) +export class CollectionsComponent extends BaseCollectionsComponent { + organization: Organization; + + constructor( + collectionService: CollectionService, + platformUtilsService: PlatformUtilsService, + i18nService: I18nService, + cipherService: CipherService, + private apiService: ApiService, + logService: LogService + ) { + super(collectionService, platformUtilsService, i18nService, cipherService, logService); + this.allowSelectNone = true; + } + + protected async loadCipher() { + if (!this.organization.canViewAllCollections) { + return await super.loadCipher(); + } + const response = await this.apiService.getCipherAdmin(this.cipherId); + return new Cipher(new CipherData(response)); + } + + protected loadCipherCollections() { + if (!this.organization.canViewAllCollections) { + return super.loadCipherCollections(); + } + return this.collectionIds; + } + + protected loadCollections() { + if (!this.organization.canViewAllCollections) { + return super.loadCollections(); + } + return Promise.resolve(this.collections); + } + + protected saveCollections() { + if (this.organization.canEditAnyCollection) { + const request = new CipherCollectionsRequest(this.cipherDomain.collectionIds); + return this.apiService.putCipherCollectionsAdmin(this.cipherId, request); + } else { + return super.saveCollections(); + } + } +} diff --git a/apps/web/src/app/oss-routing.module.ts b/apps/web/src/app/oss-routing.module.ts new file mode 100644 index 0000000000..77547813f8 --- /dev/null +++ b/apps/web/src/app/oss-routing.module.ts @@ -0,0 +1,253 @@ +import { NgModule } from "@angular/core"; +import { RouterModule, Routes } from "@angular/router"; + +import { AuthGuard } from "jslib-angular/guards/auth.guard"; +import { LockGuard } from "jslib-angular/guards/lock.guard"; +import { UnauthGuard } from "jslib-angular/guards/unauth.guard"; + +import { AcceptEmergencyComponent } from "./accounts/accept-emergency.component"; +import { AcceptOrganizationComponent } from "./accounts/accept-organization.component"; +import { HintComponent } from "./accounts/hint.component"; +import { LockComponent } from "./accounts/lock.component"; +import { LoginComponent } from "./accounts/login.component"; +import { RecoverDeleteComponent } from "./accounts/recover-delete.component"; +import { RecoverTwoFactorComponent } from "./accounts/recover-two-factor.component"; +import { RegisterComponent } from "./accounts/register.component"; +import { RemovePasswordComponent } from "./accounts/remove-password.component"; +import { SetPasswordComponent } from "./accounts/set-password.component"; +import { SsoComponent } from "./accounts/sso.component"; +import { TwoFactorComponent } from "./accounts/two-factor.component"; +import { UpdatePasswordComponent } from "./accounts/update-password.component"; +import { UpdateTempPasswordComponent } from "./accounts/update-temp-password.component"; +import { VerifyEmailTokenComponent } from "./accounts/verify-email-token.component"; +import { VerifyRecoverDeleteComponent } from "./accounts/verify-recover-delete.component"; +import { HomeGuard } from "./guards/home.guard"; +import { FrontendLayoutComponent } from "./layouts/frontend-layout.component"; +import { UserLayoutComponent } from "./layouts/user-layout.component"; +import { AcceptFamilySponsorshipComponent } from "./organizations/sponsorships/accept-family-sponsorship.component"; +import { FamiliesForEnterpriseSetupComponent } from "./organizations/sponsorships/families-for-enterprise-setup.component"; +import { AccessComponent } from "./send/access.component"; +import { SendComponent } from "./send/send.component"; +import { AccountComponent } from "./settings/account.component"; +import { CreateOrganizationComponent } from "./settings/create-organization.component"; +import { DomainRulesComponent } from "./settings/domain-rules.component"; +import { EmergencyAccessViewComponent } from "./settings/emergency-access-view.component"; +import { EmergencyAccessComponent } from "./settings/emergency-access.component"; +import { PreferencesComponent } from "./settings/preferences.component"; +import { SettingsComponent } from "./settings/settings.component"; +import { SponsoredFamiliesComponent } from "./settings/sponsored-families.component"; +import { ExportComponent } from "./tools/export.component"; +import { GeneratorComponent } from "./tools/generator.component"; +import { ImportComponent } from "./tools/import.component"; +import { ToolsComponent } from "./tools/tools.component"; + +const routes: Routes = [ + { + path: "", + component: FrontendLayoutComponent, + data: { doNotSaveUrl: true }, + children: [ + { + path: "", + pathMatch: "full", + children: [], // Children lets us have an empty component. + canActivate: [HomeGuard], // Redirects either to vault, login or lock page. + }, + { path: "login", component: LoginComponent, canActivate: [UnauthGuard] }, + { path: "2fa", component: TwoFactorComponent, canActivate: [UnauthGuard] }, + { + path: "register", + component: RegisterComponent, + canActivate: [UnauthGuard], + data: { titleId: "createAccount" }, + }, + { + path: "sso", + component: SsoComponent, + canActivate: [UnauthGuard], + data: { titleId: "enterpriseSingleSignOn" }, + }, + { + path: "set-password", + component: SetPasswordComponent, + data: { titleId: "setMasterPassword" }, + }, + { + path: "hint", + component: HintComponent, + canActivate: [UnauthGuard], + data: { titleId: "passwordHint" }, + }, + { + path: "lock", + component: LockComponent, + canActivate: [LockGuard], + }, + { path: "verify-email", component: VerifyEmailTokenComponent }, + { + path: "accept-organization", + component: AcceptOrganizationComponent, + data: { titleId: "joinOrganization", doNotSaveUrl: false }, + }, + { + path: "accept-emergency", + component: AcceptEmergencyComponent, + data: { titleId: "acceptEmergency", doNotSaveUrl: false }, + }, + { + path: "accept-families-for-enterprise", + component: AcceptFamilySponsorshipComponent, + data: { titleId: "acceptFamilySponsorship", doNotSaveUrl: false }, + }, + { path: "recover", pathMatch: "full", redirectTo: "recover-2fa" }, + { + path: "recover-2fa", + component: RecoverTwoFactorComponent, + canActivate: [UnauthGuard], + data: { titleId: "recoverAccountTwoStep" }, + }, + { + path: "recover-delete", + component: RecoverDeleteComponent, + canActivate: [UnauthGuard], + data: { titleId: "deleteAccount" }, + }, + { + path: "verify-recover-delete", + component: VerifyRecoverDeleteComponent, + canActivate: [UnauthGuard], + data: { titleId: "deleteAccount" }, + }, + { + path: "send/:sendId/:key", + component: AccessComponent, + data: { title: "Bitwarden Send" }, + }, + { + path: "update-temp-password", + component: UpdateTempPasswordComponent, + canActivate: [AuthGuard], + data: { titleId: "updateTempPassword" }, + }, + { + path: "update-password", + component: UpdatePasswordComponent, + canActivate: [AuthGuard], + data: { titleId: "updatePassword" }, + }, + { + path: "remove-password", + component: RemovePasswordComponent, + canActivate: [AuthGuard], + data: { titleId: "removeMasterPassword" }, + }, + ], + }, + { + path: "", + component: UserLayoutComponent, + canActivate: [AuthGuard], + children: [ + { + path: "vault", + loadChildren: async () => + (await import("./modules/vault/modules/individual-vault/individual-vault.module")) + .IndividualVaultModule, + }, + { path: "sends", component: SendComponent, data: { title: "Send" } }, + { + path: "create-organization", + component: CreateOrganizationComponent, + data: { titleId: "newOrganization" }, + }, + { + path: "settings", + component: SettingsComponent, + children: [ + { path: "", pathMatch: "full", redirectTo: "account" }, + { path: "account", component: AccountComponent, data: { titleId: "myAccount" } }, + { + path: "preferences", + component: PreferencesComponent, + data: { titleId: "preferences" }, + }, + { + path: "security", + loadChildren: async () => + (await import("./settings/security-routing.module")).SecurityRoutingModule, + }, + { + path: "domain-rules", + component: DomainRulesComponent, + data: { titleId: "domainRules" }, + }, + { + path: "subscription", + loadChildren: async () => + (await import("./settings/subscription-routing.module")).SubscriptionRoutingModule, + }, + { + path: "emergency-access", + children: [ + { + path: "", + component: EmergencyAccessComponent, + data: { titleId: "emergencyAccess" }, + }, + { + path: ":id", + component: EmergencyAccessViewComponent, + data: { titleId: "emergencyAccess" }, + }, + ], + }, + { + path: "sponsored-families", + component: SponsoredFamiliesComponent, + data: { titleId: "sponsoredFamilies" }, + }, + ], + }, + { + path: "tools", + component: ToolsComponent, + canActivate: [AuthGuard], + children: [ + { path: "", pathMatch: "full", redirectTo: "generator" }, + { path: "import", component: ImportComponent, data: { titleId: "importData" } }, + { path: "export", component: ExportComponent, data: { titleId: "exportVault" } }, + { + path: "generator", + component: GeneratorComponent, + data: { titleId: "generator" }, + }, + ], + }, + { + path: "reports", + loadChildren: async () => + (await import("./reports/reports-routing.module")).ReportsRoutingModule, + }, + { path: "setup/families-for-enterprise", component: FamiliesForEnterpriseSetupComponent }, + ], + }, + { + path: "organizations", + loadChildren: () => + import("./organizations/organization-routing.module").then( + (m) => m.OrganizationsRoutingModule + ), + }, +]; + +@NgModule({ + imports: [ + RouterModule.forRoot(routes, { + useHash: true, + paramsInheritanceStrategy: "always", + // enableTracing: true, + }), + ], + exports: [RouterModule], +}) +export class OssRoutingModule {} diff --git a/apps/web/src/app/oss.module.ts b/apps/web/src/app/oss.module.ts new file mode 100644 index 0000000000..cd4d3d9d05 --- /dev/null +++ b/apps/web/src/app/oss.module.ts @@ -0,0 +1,24 @@ +import { NgModule } from "@angular/core"; + +import { LooseComponentsModule } from "./modules/loose-components.module"; +import { OrganizationManageModule } from "./modules/organizations/manage/organization-manage.module"; +import { OrganizationUserModule } from "./modules/organizations/users/organization-user.module"; +import { PipesModule } from "./modules/pipes/pipes.module"; +import { SharedModule } from "./modules/shared.module"; +import { VaultFilterModule } from "./modules/vault-filter/vault-filter.module"; +import { OrganizationBadgeModule } from "./modules/vault/modules/organization-badge/organization-badge.module"; + +@NgModule({ + imports: [ + SharedModule, + LooseComponentsModule, + VaultFilterModule, + OrganizationBadgeModule, + PipesModule, + OrganizationManageModule, + OrganizationUserModule, + ], + exports: [LooseComponentsModule, VaultFilterModule, OrganizationBadgeModule, PipesModule], + bootstrap: [], +}) +export class OssModule {} diff --git a/apps/web/src/app/polyfills.ts b/apps/web/src/app/polyfills.ts new file mode 100644 index 0000000000..0691f05659 --- /dev/null +++ b/apps/web/src/app/polyfills.ts @@ -0,0 +1,15 @@ +import "core-js/stable"; +require("zone.js/dist/zone"); + +if (process.env.NODE_ENV === "production") { + // Production +} else { + // Development and test + Error["stackTraceLimit"] = Infinity; + require("zone.js/dist/long-stack-trace-zone"); +} + +// Other polyfills +require("whatwg-fetch"); +require("webcrypto-shim"); +require("date-input-polyfill"); diff --git a/apps/web/src/app/providers/providers.component.html b/apps/web/src/app/providers/providers.component.html new file mode 100644 index 0000000000..e91b7cb44e --- /dev/null +++ b/apps/web/src/app/providers/providers.component.html @@ -0,0 +1,33 @@ + +
+ +

+ + {{ "loading" | i18n }} +

+ + + + + + + + +
+ + + {{ p.name }} + + + {{ "providerIsDisabled" | i18n }} + +
+
+
+ diff --git a/apps/web/src/app/providers/providers.component.ts b/apps/web/src/app/providers/providers.component.ts new file mode 100644 index 0000000000..ca80ef46ff --- /dev/null +++ b/apps/web/src/app/providers/providers.component.ts @@ -0,0 +1,30 @@ +import { Component, OnInit } from "@angular/core"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { ProviderService } from "jslib-common/abstractions/provider.service"; +import { Utils } from "jslib-common/misc/utils"; +import { Provider } from "jslib-common/models/domain/provider"; + +@Component({ + selector: "app-providers", + templateUrl: "providers.component.html", +}) +export class ProvidersComponent implements OnInit { + providers: Provider[]; + loaded = false; + actionPromise: Promise; + + constructor(private providerService: ProviderService, private i18nService: I18nService) {} + + async ngOnInit() { + document.body.classList.remove("layout_frontend"); + await this.load(); + } + + async load() { + const providers = await this.providerService.getAll(); + providers.sort(Utils.getSortFunction(this.i18nService, "name")); + this.providers = providers; + this.loaded = true; + } +} diff --git a/apps/web/src/app/reports/breach-report.component.html b/apps/web/src/app/reports/breach-report.component.html new file mode 100644 index 0000000000..6d7c0401f0 --- /dev/null +++ b/apps/web/src/app/reports/breach-report.component.html @@ -0,0 +1,64 @@ + +

{{ "breachDesc" | i18n }}

+
+
+
+ + + {{ "breachCheckUsernameEmail" | i18n }} +
+
+ +
+
+

{{ "reportError" | i18n }}...

+ + + {{ "breachUsernameNotFound" | i18n: checkedUsername }} + + + {{ "breachUsernameFound" | i18n: checkedUsername:breachedAccounts.length }} + +
    +
  • +
    +
    + +
    +
    +

    {{ a.title }}

    +

    +

    {{ "compromisedData" | i18n }}:

    +
      +
    • {{ d }}
    • +
    +
    +
    +
    +
    {{ "website" | i18n }}
    +
    {{ a.domain }}
    +
    {{ "affectedUsers" | i18n }}
    +
    {{ a.pwnCount | number }}
    +
    {{ "breachOccurred" | i18n }}
    +
    {{ a.breachDate | date: "mediumDate" }}
    +
    {{ "breachReported" | i18n }}
    +
    {{ a.addedDate | date: "mediumDate" }}
    +
    +
    +
    +
  • +
+
+
diff --git a/apps/web/src/app/reports/breach-report.component.ts b/apps/web/src/app/reports/breach-report.component.ts new file mode 100644 index 0000000000..0c7da7af51 --- /dev/null +++ b/apps/web/src/app/reports/breach-report.component.ts @@ -0,0 +1,35 @@ +import { Component, OnInit } from "@angular/core"; + +import { AuditService } from "jslib-common/abstractions/audit.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { BreachAccountResponse } from "jslib-common/models/response/breachAccountResponse"; + +@Component({ + selector: "app-breach-report", + templateUrl: "breach-report.component.html", +}) +export class BreachReportComponent implements OnInit { + error = false; + username: string; + checkedUsername: string; + breachedAccounts: BreachAccountResponse[] = []; + formPromise: Promise; + + constructor(private auditService: AuditService, private stateService: StateService) {} + + async ngOnInit() { + this.username = await this.stateService.getEmail(); + } + + async submit() { + this.error = false; + this.username = this.username.toLowerCase(); + try { + this.formPromise = this.auditService.breachedAccounts(this.username); + this.breachedAccounts = await this.formPromise; + } catch { + this.error = true; + } + this.checkedUsername = this.username; + } +} diff --git a/apps/web/src/app/reports/cipher-report.component.ts b/apps/web/src/app/reports/cipher-report.component.ts new file mode 100644 index 0000000000..ebc7121eb9 --- /dev/null +++ b/apps/web/src/app/reports/cipher-report.component.ts @@ -0,0 +1,103 @@ +import { Directive, ViewChild, ViewContainerRef } from "@angular/core"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { CipherRepromptType } from "jslib-common/enums/cipherRepromptType"; +import { Organization } from "jslib-common/models/domain/organization"; +import { CipherView } from "jslib-common/models/view/cipherView"; + +import { AddEditComponent as OrgAddEditComponent } from "../organizations/vault/add-edit.component"; +import { AddEditComponent } from "../vault/add-edit.component"; + +@Directive() +export class CipherReportComponent { + @ViewChild("cipherAddEdit", { read: ViewContainerRef, static: true }) + cipherAddEditModalRef: ViewContainerRef; + + loading = false; + hasLoaded = false; + ciphers: CipherView[] = []; + organization: Organization; + + constructor( + private modalService: ModalService, + protected messagingService: MessagingService, + public requiresPaid: boolean, + private stateService: StateService, + protected passwordRepromptService: PasswordRepromptService + ) {} + + async load() { + this.loading = true; + await this.setCiphers(); + this.loading = false; + this.hasLoaded = true; + } + + async selectCipher(cipher: CipherView) { + if (!(await this.repromptCipher(cipher))) { + return; + } + + const type = this.organization != null ? OrgAddEditComponent : AddEditComponent; + + const [modal, childComponent] = await this.modalService.openViewRef( + type, + this.cipherAddEditModalRef, + (comp: OrgAddEditComponent | AddEditComponent) => { + if (this.organization != null) { + (comp as OrgAddEditComponent).organization = this.organization; + comp.organizationId = this.organization.id; + } + + comp.cipherId = cipher == null ? null : cipher.id; + comp.onSavedCipher.subscribe(async () => { + modal.close(); + await this.load(); + }); + comp.onDeletedCipher.subscribe(async () => { + modal.close(); + await this.load(); + }); + comp.onRestoredCipher.subscribe(async () => { + modal.close(); + await this.load(); + }); + } + ); + + return childComponent; + } + + protected async checkAccess(): Promise { + if (this.organization != null) { + // TODO: Maybe we want to just make sure they are not on a free plan? Just compare useTotp for now + // since all paid plans include useTotp + if (this.requiresPaid && !this.organization.useTotp) { + this.messagingService.send("upgradeOrganization", { organizationId: this.organization.id }); + return false; + } + } else { + const accessPremium = await this.stateService.getCanAccessPremium(); + if (this.requiresPaid && !accessPremium) { + this.messagingService.send("premiumRequired"); + this.loading = false; + return false; + } + } + return true; + } + + protected async setCiphers() { + this.ciphers = []; + } + + protected async repromptCipher(c: CipherView) { + return ( + c.reprompt === CipherRepromptType.None || + (await this.passwordRepromptService.showPasswordPrompt()) + ); + } +} diff --git a/apps/web/src/app/reports/exposed-passwords-report.component.html b/apps/web/src/app/reports/exposed-passwords-report.component.html new file mode 100644 index 0000000000..f0a882f793 --- /dev/null +++ b/apps/web/src/app/reports/exposed-passwords-report.component.html @@ -0,0 +1,70 @@ + +

{{ "exposedPasswordsReportDesc" | i18n }}

+ +
+ + {{ "noExposedPasswords" | i18n }} + + + + {{ "exposedPasswordsFoundDesc" | i18n: (ciphers.length | number) }} + + + + + + + + + +
+ + + + {{ + c.name + }} + + + {{ c.name }} + + + + {{ "shared" | i18n }} + + + + {{ "attachments" | i18n }} + +
+ {{ c.subTitle }} +
+ + {{ "exposedXTimes" | i18n: (exposedPasswordMap.get(c.id) | number) }} + +
+
+
+ diff --git a/apps/web/src/app/reports/exposed-passwords-report.component.ts b/apps/web/src/app/reports/exposed-passwords-report.component.ts new file mode 100644 index 0000000000..4a08964bc7 --- /dev/null +++ b/apps/web/src/app/reports/exposed-passwords-report.component.ts @@ -0,0 +1,75 @@ +import { Component, OnInit } from "@angular/core"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { AuditService } from "jslib-common/abstractions/audit.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { CipherType } from "jslib-common/enums/cipherType"; +import { CipherView } from "jslib-common/models/view/cipherView"; + +import { CipherReportComponent } from "./cipher-report.component"; + +@Component({ + selector: "app-exposed-passwords-report", + templateUrl: "exposed-passwords-report.component.html", +}) +export class ExposedPasswordsReportComponent extends CipherReportComponent implements OnInit { + exposedPasswordMap = new Map(); + + constructor( + protected cipherService: CipherService, + protected auditService: AuditService, + modalService: ModalService, + messagingService: MessagingService, + stateService: StateService, + passwordRepromptService: PasswordRepromptService + ) { + super(modalService, messagingService, true, stateService, passwordRepromptService); + } + + ngOnInit() { + this.checkAccess(); + } + + async load() { + if (await this.checkAccess()) { + super.load(); + } + } + + async setCiphers() { + const allCiphers = await this.getAllCiphers(); + const exposedPasswordCiphers: CipherView[] = []; + const promises: Promise[] = []; + allCiphers.forEach((c) => { + if ( + c.type !== CipherType.Login || + c.login.password == null || + c.login.password === "" || + c.isDeleted + ) { + return; + } + const promise = this.auditService.passwordLeaked(c.login.password).then((exposedCount) => { + if (exposedCount > 0) { + exposedPasswordCiphers.push(c); + this.exposedPasswordMap.set(c.id, exposedCount); + } + }); + promises.push(promise); + }); + await Promise.all(promises); + this.ciphers = exposedPasswordCiphers; + } + + protected getAllCiphers(): Promise { + return this.cipherService.getAllDecrypted(); + } + + protected canManageCipher(c: CipherView): boolean { + // this will only ever be false from the org view; + return true; + } +} diff --git a/apps/web/src/app/reports/inactive-two-factor-report.component.html b/apps/web/src/app/reports/inactive-two-factor-report.component.html new file mode 100644 index 0000000000..b472498093 --- /dev/null +++ b/apps/web/src/app/reports/inactive-two-factor-report.component.html @@ -0,0 +1,78 @@ + +

{{ "inactive2faReportDesc" | i18n }}

+
+ + {{ "loading" | i18n }} +
+
+ + {{ "noInactive2fa" | i18n }} + + + + {{ "inactive2faFoundDesc" | i18n: (ciphers.length | number) }} + + + + + + + + + +
+ + + {{ + c.name + }} + + + {{ "shared" | i18n }} + + + + {{ "attachments" | i18n }} + +
+ {{ c.subTitle }} +
+ + {{ "instructions" | i18n }} +
+
+
+ diff --git a/apps/web/src/app/reports/inactive-two-factor-report.component.ts b/apps/web/src/app/reports/inactive-two-factor-report.component.ts new file mode 100644 index 0000000000..9dd438e307 --- /dev/null +++ b/apps/web/src/app/reports/inactive-two-factor-report.component.ts @@ -0,0 +1,110 @@ +import { Component, OnInit } from "@angular/core"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { CipherType } from "jslib-common/enums/cipherType"; +import { Utils } from "jslib-common/misc/utils"; +import { CipherView } from "jslib-common/models/view/cipherView"; + +import { CipherReportComponent } from "./cipher-report.component"; + +@Component({ + selector: "app-inactive-two-factor-report", + templateUrl: "inactive-two-factor-report.component.html", +}) +export class InactiveTwoFactorReportComponent extends CipherReportComponent implements OnInit { + services = new Map(); + cipherDocs = new Map(); + + constructor( + protected cipherService: CipherService, + modalService: ModalService, + messagingService: MessagingService, + stateService: StateService, + private logService: LogService, + passwordRepromptService: PasswordRepromptService + ) { + super(modalService, messagingService, true, stateService, passwordRepromptService); + } + + async ngOnInit() { + if (await this.checkAccess()) { + await super.load(); + } + } + + async setCiphers() { + try { + await this.load2fa(); + } catch (e) { + this.logService.error(e); + } + + if (this.services.size > 0) { + const allCiphers = await this.getAllCiphers(); + const inactive2faCiphers: CipherView[] = []; + const promises: Promise[] = []; + const docs = new Map(); + allCiphers.forEach((c) => { + if ( + c.type !== CipherType.Login || + (c.login.totp != null && c.login.totp !== "") || + !c.login.hasUris || + c.isDeleted + ) { + return; + } + for (let i = 0; i < c.login.uris.length; i++) { + const u = c.login.uris[i]; + if (u.uri != null && u.uri !== "") { + const uri = u.uri.replace("www.", ""); + const domain = Utils.getDomain(uri); + if (domain != null && this.services.has(domain)) { + if (this.services.get(domain) != null) { + docs.set(c.id, this.services.get(domain)); + } + inactive2faCiphers.push(c); + } + } + } + }); + await Promise.all(promises); + this.ciphers = inactive2faCiphers; + this.cipherDocs = docs; + } + } + + protected getAllCiphers(): Promise { + return this.cipherService.getAllDecrypted(); + } + + private async load2fa() { + if (this.services.size > 0) { + return; + } + const response = await fetch(new Request("https://2fa.directory/api/v3/totp.json")); + if (response.status !== 200) { + throw new Error(); + } + const responseJson = await response.json(); + for (const service of responseJson) { + const serviceData = service[1]; + if (serviceData.domain == null) { + continue; + } + if (serviceData.documentation == null) { + continue; + } + if (serviceData["additional-domains"] != null) { + for (const additionalDomain of serviceData["additional-domains"]) { + this.services.set(additionalDomain, serviceData.documentation); + } + } + this.services.set(serviceData.domain, serviceData.documentation); + } + } +} diff --git a/apps/web/src/app/reports/report-card.component.html b/apps/web/src/app/reports/report-card.component.html new file mode 100644 index 0000000000..7882e27906 --- /dev/null +++ b/apps/web/src/app/reports/report-card.component.html @@ -0,0 +1,25 @@ + +
+
+
+
+
+

{{ report.title | i18n }}

+

{{ report.description | i18n }}

+
+ {{ "premium" | i18n }} +
+
diff --git a/apps/web/src/app/reports/report-card.component.ts b/apps/web/src/app/reports/report-card.component.ts new file mode 100644 index 0000000000..d6a9470c66 --- /dev/null +++ b/apps/web/src/app/reports/report-card.component.ts @@ -0,0 +1,166 @@ +import { Component, Input, OnInit } from "@angular/core"; +import { DomSanitizer } from "@angular/platform-browser"; + +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { StateService } from "jslib-common/abstractions/state.service"; + +export enum ReportTypes { + "exposedPasswords" = "exposedPasswords", + "reusedPasswords" = "reusedPasswords", + "weakPasswords" = "weakPasswords", + "unsecuredWebsites" = "unsecuredWebsites", + "inactive2fa" = "inactive2fa", + "dataBreach" = "dataBreach", +} + +type ReportEntry = { + title: string; + description: string; + route: string; + icon: string; + requiresPremium: boolean; +}; + +const reports: Record = { + exposedPasswords: { + title: "exposedPasswordsReport", + description: "exposedPasswordsReportDesc", + route: "exposed-passwords-report", + icon: ` + + + + + + + + + + + + + `, + requiresPremium: true, + }, + reusedPasswords: { + title: "reusedPasswordsReport", + description: "reusedPasswordsReportDesc", + route: "reused-passwords-report", + icon: ` + + + + + + `, + requiresPremium: true, + }, + weakPasswords: { + title: "weakPasswordsReport", + description: "weakPasswordsReportDesc", + route: "weak-passwords-report", + icon: ` + + + + + + + `, + requiresPremium: true, + }, + unsecuredWebsites: { + title: "unsecuredWebsitesReport", + description: "unsecuredWebsitesReportDesc", + route: "unsecured-websites-report", + icon: ` + + + + + + + + + `, + requiresPremium: true, + }, + inactive2fa: { + title: "inactive2faReport", + description: "inactive2faReportDesc", + route: "inactive-two-factor-report", + icon: ` + + + + + + + `, + requiresPremium: true, + }, + dataBreach: { + title: "dataBreachReport", + description: "breachDesc", + route: "breach-report", + icon: ` + + + + + + + + + + + `, + requiresPremium: false, + }, +}; + +@Component({ + selector: "app-report-card", + templateUrl: "report-card.component.html", +}) +export class ReportCardComponent implements OnInit { + @Input() type: ReportTypes; + + report: ReportEntry; + + hasPremium: boolean; + + constructor( + private stateService: StateService, + private messagingService: MessagingService, + private sanitizer: DomSanitizer + ) {} + + async ngOnInit() { + this.report = reports[this.type]; + + this.hasPremium = await this.stateService.getCanAccessPremium(); + } + + get premium() { + return this.report.requiresPremium && !this.hasPremium; + } + + get route() { + if (this.premium) { + return null; + } + + return this.report.route; + } + + get icon() { + return this.sanitizer.bypassSecurityTrustHtml(this.report.icon); + } + + click() { + if (this.premium) { + this.messagingService.send("premiumRequired"); + } + } +} diff --git a/apps/web/src/app/reports/report-list.component.html b/apps/web/src/app/reports/report-list.component.html new file mode 100644 index 0000000000..e302873119 --- /dev/null +++ b/apps/web/src/app/reports/report-list.component.html @@ -0,0 +1,11 @@ + + +

{{ "reportsDesc" | i18n }}

+ +
+
+ +
+
diff --git a/apps/web/src/app/reports/report-list.component.ts b/apps/web/src/app/reports/report-list.component.ts new file mode 100644 index 0000000000..488949842d --- /dev/null +++ b/apps/web/src/app/reports/report-list.component.ts @@ -0,0 +1,18 @@ +import { Component } from "@angular/core"; + +import { ReportTypes } from "./report-card.component"; + +@Component({ + selector: "app-report-list", + templateUrl: "report-list.component.html", +}) +export class ReportListComponent { + reports = [ + ReportTypes.exposedPasswords, + ReportTypes.reusedPasswords, + ReportTypes.weakPasswords, + ReportTypes.unsecuredWebsites, + ReportTypes.inactive2fa, + ReportTypes.dataBreach, + ]; +} diff --git a/apps/web/src/app/reports/reports-routing.module.ts b/apps/web/src/app/reports/reports-routing.module.ts new file mode 100644 index 0000000000..d97d20550b --- /dev/null +++ b/apps/web/src/app/reports/reports-routing.module.ts @@ -0,0 +1,60 @@ +import { NgModule } from "@angular/core"; +import { RouterModule, Routes } from "@angular/router"; + +import { AuthGuard } from "jslib-angular/guards/auth.guard"; + +import { BreachReportComponent } from "./breach-report.component"; +import { ExposedPasswordsReportComponent } from "./exposed-passwords-report.component"; +import { InactiveTwoFactorReportComponent } from "./inactive-two-factor-report.component"; +import { ReportListComponent } from "./report-list.component"; +import { ReportsComponent } from "./reports.component"; +import { ReusedPasswordsReportComponent } from "./reused-passwords-report.component"; +import { UnsecuredWebsitesReportComponent } from "./unsecured-websites-report.component"; +import { WeakPasswordsReportComponent } from "./weak-passwords-report.component"; + +const routes: Routes = [ + { + path: "", + component: ReportsComponent, + canActivate: [AuthGuard], + children: [ + { path: "", pathMatch: "full", component: ReportListComponent, data: { homepage: true } }, + { + path: "breach-report", + component: BreachReportComponent, + data: { titleId: "dataBreachReport" }, + }, + { + path: "reused-passwords-report", + component: ReusedPasswordsReportComponent, + data: { titleId: "reusedPasswordsReport" }, + }, + { + path: "unsecured-websites-report", + component: UnsecuredWebsitesReportComponent, + data: { titleId: "unsecuredWebsitesReport" }, + }, + { + path: "weak-passwords-report", + component: WeakPasswordsReportComponent, + data: { titleId: "weakPasswordsReport" }, + }, + { + path: "exposed-passwords-report", + component: ExposedPasswordsReportComponent, + data: { titleId: "exposedPasswordsReport" }, + }, + { + path: "inactive-two-factor-report", + component: InactiveTwoFactorReportComponent, + data: { titleId: "inactive2faReport" }, + }, + ], + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class ReportsRoutingModule {} diff --git a/apps/web/src/app/reports/reports.component.html b/apps/web/src/app/reports/reports.component.html new file mode 100644 index 0000000000..3c6bd313c4 --- /dev/null +++ b/apps/web/src/app/reports/reports.component.html @@ -0,0 +1,12 @@ + diff --git a/apps/web/src/app/reports/reports.component.ts b/apps/web/src/app/reports/reports.component.ts new file mode 100644 index 0000000000..c0e67ac5ea --- /dev/null +++ b/apps/web/src/app/reports/reports.component.ts @@ -0,0 +1,25 @@ +import { Component, OnDestroy } from "@angular/core"; +import { NavigationEnd, Router } from "@angular/router"; +import { Subscription } from "rxjs"; +import { filter } from "rxjs/operators"; + +@Component({ + selector: "app-reports", + templateUrl: "reports.component.html", +}) +export class ReportsComponent implements OnDestroy { + homepage = true; + subscription: Subscription; + + constructor(router: Router) { + this.subscription = router.events + .pipe(filter((event) => event instanceof NavigationEnd)) + .subscribe((event) => { + this.homepage = (event as NavigationEnd).url == "/reports"; + }); + } + + ngOnDestroy(): void { + this.subscription?.unsubscribe(); + } +} diff --git a/apps/web/src/app/reports/reused-passwords-report.component.html b/apps/web/src/app/reports/reused-passwords-report.component.html new file mode 100644 index 0000000000..e4e1c41bd4 --- /dev/null +++ b/apps/web/src/app/reports/reused-passwords-report.component.html @@ -0,0 +1,77 @@ + +

{{ "reusedPasswordsReportDesc" | i18n }}

+
+ + {{ "loading" | i18n }} +
+
+ + {{ "noReusedPasswords" | i18n }} + + + + {{ "reusedPasswordsFoundDesc" | i18n: (ciphers.length | number) }} + + + + + + + + + +
+ + + + {{ + c.name + }} + + + {{ c.name }} + + + + {{ "shared" | i18n }} + + + + {{ "attachments" | i18n }} + +
+ {{ c.subTitle }} +
+ + {{ "reusedXTimes" | i18n: passwordUseMap.get(c.login.password) }} + +
+
+
+ diff --git a/apps/web/src/app/reports/reused-passwords-report.component.ts b/apps/web/src/app/reports/reused-passwords-report.component.ts new file mode 100644 index 0000000000..68ce3c8527 --- /dev/null +++ b/apps/web/src/app/reports/reused-passwords-report.component.ts @@ -0,0 +1,71 @@ +import { Component, OnInit } from "@angular/core"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { CipherType } from "jslib-common/enums/cipherType"; +import { CipherView } from "jslib-common/models/view/cipherView"; + +import { CipherReportComponent } from "./cipher-report.component"; + +@Component({ + selector: "app-reused-passwords-report", + templateUrl: "reused-passwords-report.component.html", +}) +export class ReusedPasswordsReportComponent extends CipherReportComponent implements OnInit { + passwordUseMap: Map; + + constructor( + protected cipherService: CipherService, + modalService: ModalService, + messagingService: MessagingService, + stateService: StateService, + passwordRepromptService: PasswordRepromptService + ) { + super(modalService, messagingService, true, stateService, passwordRepromptService); + } + + async ngOnInit() { + if (await this.checkAccess()) { + await super.load(); + } + } + + async setCiphers() { + const allCiphers = await this.getAllCiphers(); + const ciphersWithPasswords: CipherView[] = []; + this.passwordUseMap = new Map(); + allCiphers.forEach((c) => { + if ( + c.type !== CipherType.Login || + c.login.password == null || + c.login.password === "" || + c.isDeleted + ) { + return; + } + ciphersWithPasswords.push(c); + if (this.passwordUseMap.has(c.login.password)) { + this.passwordUseMap.set(c.login.password, this.passwordUseMap.get(c.login.password) + 1); + } else { + this.passwordUseMap.set(c.login.password, 1); + } + }); + const reusedPasswordCiphers = ciphersWithPasswords.filter( + (c) => + this.passwordUseMap.has(c.login.password) && this.passwordUseMap.get(c.login.password) > 1 + ); + this.ciphers = reusedPasswordCiphers; + } + + protected getAllCiphers(): Promise { + return this.cipherService.getAllDecrypted(); + } + + protected canManageCipher(c: CipherView): boolean { + // this will only ever be false from an organization view + return true; + } +} diff --git a/apps/web/src/app/reports/unsecured-websites-report.component.html b/apps/web/src/app/reports/unsecured-websites-report.component.html new file mode 100644 index 0000000000..775d36d434 --- /dev/null +++ b/apps/web/src/app/reports/unsecured-websites-report.component.html @@ -0,0 +1,67 @@ + +

{{ "unsecuredWebsitesReportDesc" | i18n }}

+
+ + {{ "loading" | i18n }} +
+
+ + {{ "noUnsecuredWebsites" | i18n }} + + + + {{ "unsecuredWebsitesFoundDesc" | i18n: (ciphers.length | number) }} + + + + + + + + +
+ + + {{ + c.name + }} + + + {{ "shared" | i18n }} + + + + {{ "attachments" | i18n }} + +
+ {{ c.subTitle }} +
+
+
+ diff --git a/apps/web/src/app/reports/unsecured-websites-report.component.ts b/apps/web/src/app/reports/unsecured-websites-report.component.ts new file mode 100644 index 0000000000..e029002bf0 --- /dev/null +++ b/apps/web/src/app/reports/unsecured-websites-report.component.ts @@ -0,0 +1,48 @@ +import { Component, OnInit } from "@angular/core"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { CipherType } from "jslib-common/enums/cipherType"; +import { CipherView } from "jslib-common/models/view/cipherView"; + +import { CipherReportComponent } from "./cipher-report.component"; + +@Component({ + selector: "app-unsecured-websites-report", + templateUrl: "unsecured-websites-report.component.html", +}) +export class UnsecuredWebsitesReportComponent extends CipherReportComponent implements OnInit { + constructor( + protected cipherService: CipherService, + modalService: ModalService, + messagingService: MessagingService, + stateService: StateService, + passwordRepromptService: PasswordRepromptService + ) { + super(modalService, messagingService, true, stateService, passwordRepromptService); + } + + async ngOnInit() { + if (await this.checkAccess()) { + await super.load(); + } + } + + async setCiphers() { + const allCiphers = await this.getAllCiphers(); + const unsecuredCiphers = allCiphers.filter((c) => { + if (c.type !== CipherType.Login || !c.login.hasUris || c.isDeleted) { + return false; + } + return c.login.uris.some((u) => u.uri != null && u.uri.indexOf("http://") === 0); + }); + this.ciphers = unsecuredCiphers; + } + + protected getAllCiphers(): Promise { + return this.cipherService.getAllDecrypted(); + } +} diff --git a/apps/web/src/app/reports/weak-passwords-report.component.html b/apps/web/src/app/reports/weak-passwords-report.component.html new file mode 100644 index 0000000000..15315b5c2d --- /dev/null +++ b/apps/web/src/app/reports/weak-passwords-report.component.html @@ -0,0 +1,77 @@ + +

{{ "weakPasswordsReportDesc" | i18n }}

+
+ + {{ "loading" | i18n }} +
+
+ + {{ "noWeakPasswords" | i18n }} + + + + {{ "weakPasswordsFoundDesc" | i18n: (ciphers.length | number) }} + + + + + + + + + +
+ + + + {{ + c.name + }} + + + {{ c.name }} + + + + {{ "shared" | i18n }} + + + + {{ "attachments" | i18n }} + +
+ {{ c.subTitle }} +
+ + {{ passwordStrengthMap.get(c.id)[0] | i18n }} + +
+
+
+ diff --git a/apps/web/src/app/reports/weak-passwords-report.component.ts b/apps/web/src/app/reports/weak-passwords-report.component.ts new file mode 100644 index 0000000000..e84ffa1f03 --- /dev/null +++ b/apps/web/src/app/reports/weak-passwords-report.component.ts @@ -0,0 +1,125 @@ +import { Component, OnInit } from "@angular/core"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { CipherType } from "jslib-common/enums/cipherType"; +import { CipherView } from "jslib-common/models/view/cipherView"; + +import { CipherReportComponent } from "./cipher-report.component"; + +@Component({ + selector: "app-weak-passwords-report", + templateUrl: "weak-passwords-report.component.html", +}) +export class WeakPasswordsReportComponent extends CipherReportComponent implements OnInit { + passwordStrengthMap = new Map(); + + private passwordStrengthCache = new Map(); + + constructor( + protected cipherService: CipherService, + protected passwordGenerationService: PasswordGenerationService, + modalService: ModalService, + messagingService: MessagingService, + stateService: StateService, + passwordRepromptService: PasswordRepromptService + ) { + super(modalService, messagingService, true, stateService, passwordRepromptService); + } + + async ngOnInit() { + if (await this.checkAccess()) { + await super.load(); + } + } + + async setCiphers() { + const allCiphers = await this.getAllCiphers(); + const weakPasswordCiphers: CipherView[] = []; + const isUserNameNotEmpty = (c: CipherView): boolean => { + return c.login.username != null && c.login.username.trim() !== ""; + }; + const getCacheKey = (c: CipherView): string => { + return c.login.password + "_____" + (isUserNameNotEmpty(c) ? c.login.username : ""); + }; + + allCiphers.forEach((c) => { + if ( + c.type !== CipherType.Login || + c.login.password == null || + c.login.password === "" || + c.isDeleted + ) { + return; + } + const hasUserName = isUserNameNotEmpty(c); + const cacheKey = getCacheKey(c); + if (!this.passwordStrengthCache.has(cacheKey)) { + let userInput: string[] = []; + if (hasUserName) { + const atPosition = c.login.username.indexOf("@"); + if (atPosition > -1) { + userInput = userInput + .concat( + c.login.username + .substr(0, atPosition) + .trim() + .toLowerCase() + .split(/[^A-Za-z0-9]/) + ) + .filter((i) => i.length >= 3); + } else { + userInput = c.login.username + .trim() + .toLowerCase() + .split(/[^A-Za-z0-9]/) + .filter((i) => i.length >= 3); + } + } + const result = this.passwordGenerationService.passwordStrength( + c.login.password, + userInput.length > 0 ? userInput : null + ); + this.passwordStrengthCache.set(cacheKey, result.score); + } + const score = this.passwordStrengthCache.get(cacheKey); + if (score != null && score <= 2) { + this.passwordStrengthMap.set(c.id, this.scoreKey(score)); + weakPasswordCiphers.push(c); + } + }); + weakPasswordCiphers.sort((a, b) => { + return ( + this.passwordStrengthCache.get(getCacheKey(a)) - + this.passwordStrengthCache.get(getCacheKey(b)) + ); + }); + this.ciphers = weakPasswordCiphers; + } + + protected getAllCiphers(): Promise { + return this.cipherService.getAllDecrypted(); + } + + protected canManageCipher(c: CipherView): boolean { + // this will only ever be false from the org view; + return true; + } + + private scoreKey(score: number): [string, string] { + switch (score) { + case 4: + return ["strong", "success"]; + case 3: + return ["good", "primary"]; + case 2: + return ["weak", "warning"]; + default: + return ["veryWeak", "danger"]; + } + } +} diff --git a/apps/web/src/app/send/access.component.html b/apps/web/src/app/send/access.component.html new file mode 100644 index 0000000000..b581861020 --- /dev/null +++ b/apps/web/src/app/send/access.component.html @@ -0,0 +1,152 @@ +
+
+
+

Bitwarden Send

+
+
+

{{ "sendCreatorIdentifier" | i18n: creatorIdentifier }}

+
+
+ + {{ "viewSendHiddenEmailWarning" | i18n }} + {{ + "learnMore" | i18n + }}. + +
+
+
+
+
+
+ + {{ "loading" | i18n }} +
+
+

{{ "sendProtectedPassword" | i18n }}

+

{{ "sendProtectedPasswordDontKnow" | i18n }}

+
+ + +
+
+ +
+
+
+ {{ "sendAccessUnavailable" | i18n }} +
+
+ {{ "unexpectedError" | i18n }} +
+
+

+ {{ send.name }} +

+
+ + + {{ + "sendHiddenByDefault" | i18n + }} +
+ +
+ + +
+ + +

{{ send.file.fileName }}

+ + +
+

+ Expires: {{ expirationDate | date: "medium" }} +

+
+
+
+
+

+ {{ "sendAccessTaglineProductDesc" | i18n }}
+ {{ "sendAccessTaglineLearnMore" | i18n }} + Bitwarden Send + {{ "sendAccessTaglineOr" | i18n }} + {{ + "sendAccessTaglineSignUp" | i18n + }} + {{ "sendAccessTaglineTryToday" | i18n }} +

+
+
+
diff --git a/apps/web/src/app/send/access.component.ts b/apps/web/src/app/send/access.component.ts new file mode 100644 index 0000000000..2665f28bf9 --- /dev/null +++ b/apps/web/src/app/send/access.component.ts @@ -0,0 +1,179 @@ +import { Component, OnInit } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { CryptoFunctionService } from "jslib-common/abstractions/cryptoFunction.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { SEND_KDF_ITERATIONS } from "jslib-common/enums/kdfType"; +import { SendType } from "jslib-common/enums/sendType"; +import { Utils } from "jslib-common/misc/utils"; +import { SendAccess } from "jslib-common/models/domain/sendAccess"; +import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; +import { SendAccessRequest } from "jslib-common/models/request/sendAccessRequest"; +import { ErrorResponse } from "jslib-common/models/response/errorResponse"; +import { SendAccessResponse } from "jslib-common/models/response/sendAccessResponse"; +import { SendAccessView } from "jslib-common/models/view/sendAccessView"; + +@Component({ + selector: "app-send-access", + templateUrl: "access.component.html", +}) +export class AccessComponent implements OnInit { + send: SendAccessView; + sendType = SendType; + downloading = false; + loading = true; + passwordRequired = false; + formPromise: Promise; + password: string; + showText = false; + unavailable = false; + error = false; + hideEmail = false; + + private id: string; + private key: string; + private decKey: SymmetricCryptoKey; + private accessRequest: SendAccessRequest; + + constructor( + private i18nService: I18nService, + private cryptoFunctionService: CryptoFunctionService, + private apiService: ApiService, + private platformUtilsService: PlatformUtilsService, + private route: ActivatedRoute, + private cryptoService: CryptoService + ) {} + + get sendText() { + if (this.send == null || this.send.text == null) { + return null; + } + return this.showText ? this.send.text.text : this.send.text.maskedText; + } + + get expirationDate() { + if (this.send == null || this.send.expirationDate == null) { + return null; + } + return this.send.expirationDate; + } + + get creatorIdentifier() { + if (this.send == null || this.send.creatorIdentifier == null) { + return null; + } + return this.send.creatorIdentifier; + } + + ngOnInit() { + this.route.params.subscribe(async (params) => { + this.id = params.sendId; + this.key = params.key; + if (this.key == null || this.id == null) { + return; + } + await this.load(); + }); + } + + async download() { + if (this.send == null || this.decKey == null) { + return; + } + + if (this.downloading) { + return; + } + + const downloadData = await this.apiService.getSendFileDownloadData( + this.send, + this.accessRequest + ); + + if (Utils.isNullOrWhitespace(downloadData.url)) { + this.platformUtilsService.showToast("error", null, this.i18nService.t("missingSendFile")); + return; + } + + this.downloading = true; + const response = await fetch(new Request(downloadData.url, { cache: "no-store" })); + if (response.status !== 200) { + this.platformUtilsService.showToast("error", null, this.i18nService.t("errorOccurred")); + this.downloading = false; + return; + } + + try { + const buf = await response.arrayBuffer(); + const decBuf = await this.cryptoService.decryptFromBytes(buf, this.decKey); + this.platformUtilsService.saveFile(window, decBuf, null, this.send.file.fileName); + } catch (e) { + this.platformUtilsService.showToast("error", null, this.i18nService.t("errorOccurred")); + } + + this.downloading = false; + } + + copyText() { + this.platformUtilsService.copyToClipboard(this.send.text.text); + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("valueCopied", this.i18nService.t("sendTypeText")) + ); + } + + toggleText() { + this.showText = !this.showText; + } + + async load() { + this.unavailable = false; + this.error = false; + this.hideEmail = false; + const keyArray = Utils.fromUrlB64ToArray(this.key); + this.accessRequest = new SendAccessRequest(); + if (this.password != null) { + const passwordHash = await this.cryptoFunctionService.pbkdf2( + this.password, + keyArray, + "sha256", + SEND_KDF_ITERATIONS + ); + this.accessRequest.password = Utils.fromBufferToB64(passwordHash); + } + try { + let sendResponse: SendAccessResponse = null; + if (this.loading) { + sendResponse = await this.apiService.postSendAccess(this.id, this.accessRequest); + } else { + this.formPromise = this.apiService.postSendAccess(this.id, this.accessRequest); + sendResponse = await this.formPromise; + } + this.passwordRequired = false; + const sendAccess = new SendAccess(sendResponse); + this.decKey = await this.cryptoService.makeSendKey(keyArray); + this.send = await sendAccess.decrypt(this.decKey); + this.showText = this.send.text != null ? !this.send.text.hidden : true; + } catch (e) { + if (e instanceof ErrorResponse) { + if (e.statusCode === 401) { + this.passwordRequired = true; + } else if (e.statusCode === 404) { + this.unavailable = true; + } else { + this.error = true; + } + } + } + this.loading = false; + this.hideEmail = + this.creatorIdentifier == null && + !this.passwordRequired && + !this.loading && + !this.unavailable; + } +} diff --git a/apps/web/src/app/send/add-edit.component.html b/apps/web/src/app/send/add-edit.component.html new file mode 100644 index 0000000000..8d6c066bab --- /dev/null +++ b/apps/web/src/app/send/add-edit.component.html @@ -0,0 +1,308 @@ + diff --git a/apps/web/src/app/send/add-edit.component.ts b/apps/web/src/app/send/add-edit.component.ts new file mode 100644 index 0000000000..6a2aacead1 --- /dev/null +++ b/apps/web/src/app/send/add-edit.component.ts @@ -0,0 +1,50 @@ +import { DatePipe } from "@angular/common"; +import { Component } from "@angular/core"; + +import { AddEditComponent as BaseAddEditComponent } from "jslib-angular/components/send/add-edit.component"; +import { EnvironmentService } from "jslib-common/abstractions/environment.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { SendService } from "jslib-common/abstractions/send.service"; +import { StateService } from "jslib-common/abstractions/state.service"; + +@Component({ + selector: "app-send-add-edit", + templateUrl: "add-edit.component.html", +}) +export class AddEditComponent extends BaseAddEditComponent { + constructor( + i18nService: I18nService, + platformUtilsService: PlatformUtilsService, + environmentService: EnvironmentService, + datePipe: DatePipe, + sendService: SendService, + stateService: StateService, + messagingService: MessagingService, + policyService: PolicyService, + logService: LogService + ) { + super( + i18nService, + platformUtilsService, + environmentService, + datePipe, + sendService, + messagingService, + policyService, + logService, + stateService + ); + } + + async copyLinkToClipboard(link: string): Promise { + // Copy function on web depends on the modal being open or not. Since this event occurs during a transition + // of the modal closing we need to add a small delay to make sure state of the DOM is consistent. + return new Promise((resolve) => { + window.setTimeout(() => resolve(super.copyLinkToClipboard(link)), 500); + }); + } +} diff --git a/apps/web/src/app/send/efflux-dates.component.html b/apps/web/src/app/send/efflux-dates.component.html new file mode 100644 index 0000000000..f8974e00c4 --- /dev/null +++ b/apps/web/src/app/send/efflux-dates.component.html @@ -0,0 +1,191 @@ +
+
+ + + + +
+ + +
+
+ +
+ + +
+
+ + + +
+
+
+ + + + +
+
+ +
+
{{ "deletionDateDesc" | i18n }}
+
+
+
+ + + {{ "clear" | i18n }} + +
+ + +
+ + +
+ +
+ + +
+ + + +
+
+
+ + + + +
+
+ +
+
{{ "expirationDateDesc" | i18n }}
+
+
diff --git a/apps/web/src/app/send/efflux-dates.component.ts b/apps/web/src/app/send/efflux-dates.component.ts new file mode 100644 index 0000000000..27bb1fb110 --- /dev/null +++ b/apps/web/src/app/send/efflux-dates.component.ts @@ -0,0 +1,22 @@ +import { DatePipe } from "@angular/common"; +import { Component } from "@angular/core"; +import { ControlContainer, NgForm } from "@angular/forms"; + +import { EffluxDatesComponent as BaseEffluxDatesComponent } from "jslib-angular/components/send/efflux-dates.component"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; + +@Component({ + selector: "app-send-efflux-dates", + templateUrl: "efflux-dates.component.html", + viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], +}) +export class EffluxDatesComponent extends BaseEffluxDatesComponent { + constructor( + protected i18nService: I18nService, + protected platformUtilsService: PlatformUtilsService, + protected datePipe: DatePipe + ) { + super(i18nService, platformUtilsService, datePipe); + } +} diff --git a/apps/web/src/app/send/send.component.html b/apps/web/src/app/send/send.component.html new file mode 100644 index 0000000000..eed3cdfa56 --- /dev/null +++ b/apps/web/src/app/send/send.component.html @@ -0,0 +1,201 @@ +
+ + {{ "sendDisabledWarning" | i18n }} + +
+
+
+
+ {{ "filters" | i18n }} +
+
+ +
+
    +
  • + + + +
  • +
+
+
+
+

{{ "types" | i18n }}

+
+
    +
  • + + + +
  • +
  • + + + +
  • +
+
+
+
+
+
+ + + + + + + + + + +
+ + + {{ s.name }} + + + {{ "disabled" | i18n }} + + + + {{ "password" | i18n }} + + + + {{ "maxAccessCountReached" | i18n }} + + + + {{ "expired" | i18n }} + + + + {{ "pendingDeletion" | i18n }} + +
+ {{ s.deletionDate | date: "medium" }} +
+ + + + + + +
+
+ + + {{ "loading" | i18n }} + + +

{{ "noSendsInList" | i18n }}

+ +
+
+
+
+
+ diff --git a/apps/web/src/app/send/send.component.ts b/apps/web/src/app/send/send.component.ts new file mode 100644 index 0000000000..fc8bbb623a --- /dev/null +++ b/apps/web/src/app/send/send.component.ts @@ -0,0 +1,101 @@ +import { Component, NgZone, ViewChild, ViewContainerRef } from "@angular/core"; + +import { SendComponent as BaseSendComponent } from "jslib-angular/components/send/send.component"; +import { ModalService } from "jslib-angular/services/modal.service"; +import { BroadcasterService } from "jslib-common/abstractions/broadcaster.service"; +import { EnvironmentService } from "jslib-common/abstractions/environment.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { SearchService } from "jslib-common/abstractions/search.service"; +import { SendService } from "jslib-common/abstractions/send.service"; +import { SendView } from "jslib-common/models/view/sendView"; + +import { AddEditComponent } from "./add-edit.component"; + +const BroadcasterSubscriptionId = "SendComponent"; + +@Component({ + selector: "app-send", + templateUrl: "send.component.html", +}) +export class SendComponent extends BaseSendComponent { + @ViewChild("sendAddEdit", { read: ViewContainerRef, static: true }) + sendAddEditModalRef: ViewContainerRef; + + constructor( + sendService: SendService, + i18nService: I18nService, + platformUtilsService: PlatformUtilsService, + environmentService: EnvironmentService, + ngZone: NgZone, + searchService: SearchService, + policyService: PolicyService, + private modalService: ModalService, + private broadcasterService: BroadcasterService, + logService: LogService + ) { + super( + sendService, + i18nService, + platformUtilsService, + environmentService, + ngZone, + searchService, + policyService, + logService + ); + } + + async ngOnInit() { + await super.ngOnInit(); + await this.load(); + + // Broadcaster subscription - load if sync completes in the background + this.broadcasterService.subscribe(BroadcasterSubscriptionId, (message: any) => { + this.ngZone.run(async () => { + switch (message.command) { + case "syncCompleted": + if (message.successfully) { + await this.load(); + } + break; + } + }); + }); + } + + ngOnDestroy() { + this.broadcasterService.unsubscribe(BroadcasterSubscriptionId); + } + + async addSend() { + if (this.disableSend) { + return; + } + + const component = await this.editSend(null); + component.type = this.type; + } + + async editSend(send: SendView) { + const [modal, childComponent] = await this.modalService.openViewRef( + AddEditComponent, + this.sendAddEditModalRef, + (comp) => { + comp.sendId = send == null ? null : send.id; + comp.onSavedSend.subscribe(async () => { + modal.close(); + await this.load(); + }); + comp.onDeletedSend.subscribe(async () => { + modal.close(); + await this.load(); + }); + } + ); + + return childComponent; + } +} diff --git a/apps/web/src/app/services/event.service.ts b/apps/web/src/app/services/event.service.ts new file mode 100644 index 0000000000..02f50cf7b3 --- /dev/null +++ b/apps/web/src/app/services/event.service.ts @@ -0,0 +1,559 @@ +import { Injectable } from "@angular/core"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { DeviceType } from "jslib-common/enums/deviceType"; +import { EventType } from "jslib-common/enums/eventType"; +import { PolicyType } from "jslib-common/enums/policyType"; +import { EventResponse } from "jslib-common/models/response/eventResponse"; + +@Injectable() +export class EventService { + constructor(private i18nService: I18nService, private policyService: PolicyService) {} + + getDefaultDateFilters() { + const d = new Date(); + const end = new Date(d.getFullYear(), d.getMonth(), d.getDate(), 23, 59); + d.setDate(d.getDate() - 30); + const start = new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0); + return [this.toDateTimeLocalString(start), this.toDateTimeLocalString(end)]; + } + + formatDateFilters(filterStart: string, filterEnd: string) { + const start: Date = new Date(filterStart); + const end: Date = new Date(filterEnd + ":59.999"); + if (isNaN(start.getTime()) || isNaN(end.getTime()) || end < start) { + throw new Error("Invalid date range."); + } + return [start.toISOString(), end.toISOString()]; + } + + async getEventInfo(ev: EventResponse, options = new EventOptions()): Promise { + const appInfo = this.getAppInfo(ev.deviceType); + const { message, humanReadableMessage } = await this.getEventMessage(ev, options); + return { + message: message, + humanReadableMessage: humanReadableMessage, + appIcon: appInfo[0], + appName: appInfo[1], + }; + } + + private async getEventMessage(ev: EventResponse, options: EventOptions) { + let msg = ""; + let humanReadableMsg = ""; + switch (ev.type) { + // User + case EventType.User_LoggedIn: + msg = humanReadableMsg = this.i18nService.t("loggedIn"); + break; + case EventType.User_ChangedPassword: + msg = humanReadableMsg = this.i18nService.t("changedPassword"); + break; + case EventType.User_Updated2fa: + msg = humanReadableMsg = this.i18nService.t("enabledUpdated2fa"); + break; + case EventType.User_Disabled2fa: + msg = humanReadableMsg = this.i18nService.t("disabled2fa"); + break; + case EventType.User_Recovered2fa: + msg = humanReadableMsg = this.i18nService.t("recovered2fa"); + break; + case EventType.User_FailedLogIn: + msg = humanReadableMsg = this.i18nService.t("failedLogin"); + break; + case EventType.User_FailedLogIn2fa: + msg = humanReadableMsg = this.i18nService.t("failedLogin2fa"); + break; + case EventType.User_ClientExportedVault: + msg = humanReadableMsg = this.i18nService.t("exportedVault"); + break; + case EventType.User_UpdatedTempPassword: + msg = humanReadableMsg = this.i18nService.t("updatedMasterPassword"); + break; + case EventType.User_MigratedKeyToKeyConnector: + msg = humanReadableMsg = this.i18nService.t("migratedKeyConnector"); + break; + // Cipher + case EventType.Cipher_Created: + msg = this.i18nService.t("createdItemId", this.formatCipherId(ev, options)); + humanReadableMsg = this.i18nService.t("createdItemId", this.getShortId(ev.cipherId)); + break; + case EventType.Cipher_Updated: + msg = this.i18nService.t("editedItemId", this.formatCipherId(ev, options)); + humanReadableMsg = this.i18nService.t("editedItemId", this.getShortId(ev.cipherId)); + break; + case EventType.Cipher_Deleted: + msg = this.i18nService.t("permanentlyDeletedItemId", this.formatCipherId(ev, options)); + humanReadableMsg = this.i18nService.t( + "permanentlyDeletedItemId", + this.getShortId(ev.cipherId) + ); + break; + case EventType.Cipher_SoftDeleted: + msg = this.i18nService.t("deletedItemId", this.formatCipherId(ev, options)); + humanReadableMsg = this.i18nService.t("deletedItemId", this.getShortId(ev.cipherId)); + break; + case EventType.Cipher_Restored: + msg = this.i18nService.t("restoredItemId", this.formatCipherId(ev, options)); + humanReadableMsg = this.i18nService.t("restoredItemId", this.formatCipherId(ev, options)); + break; + case EventType.Cipher_AttachmentCreated: + msg = this.i18nService.t("createdAttachmentForItem", this.formatCipherId(ev, options)); + humanReadableMsg = this.i18nService.t( + "createdAttachmentForItem", + this.getShortId(ev.cipherId) + ); + break; + case EventType.Cipher_AttachmentDeleted: + msg = this.i18nService.t("deletedAttachmentForItem", this.formatCipherId(ev, options)); + humanReadableMsg = this.i18nService.t( + "deletedAttachmentForItem", + this.getShortId(ev.cipherId) + ); + break; + case EventType.Cipher_Shared: + msg = this.i18nService.t("movedItemIdToOrg", this.formatCipherId(ev, options)); + humanReadableMsg = this.i18nService.t("movedItemIdToOrg", this.getShortId(ev.cipherId)); + break; + case EventType.Cipher_ClientViewed: + msg = this.i18nService.t("viewedItemId", this.formatCipherId(ev, options)); + humanReadableMsg = this.i18nService.t("viewedItemId", this.getShortId(ev.cipherId)); + break; + case EventType.Cipher_ClientToggledPasswordVisible: + msg = this.i18nService.t("viewedPasswordItemId", this.formatCipherId(ev, options)); + humanReadableMsg = this.i18nService.t("viewedPasswordItemId", this.getShortId(ev.cipherId)); + break; + case EventType.Cipher_ClientToggledHiddenFieldVisible: + msg = this.i18nService.t("viewedHiddenFieldItemId", this.formatCipherId(ev, options)); + humanReadableMsg = this.i18nService.t( + "viewedHiddenFieldItemId", + this.getShortId(ev.cipherId) + ); + break; + case EventType.Cipher_ClientToggledCardCodeVisible: + msg = this.i18nService.t("viewedSecurityCodeItemId", this.formatCipherId(ev, options)); + humanReadableMsg = this.i18nService.t( + "viewedSecurityCodeItemId", + this.getShortId(ev.cipherId) + ); + break; + case EventType.Cipher_ClientCopiedHiddenField: + msg = this.i18nService.t("copiedHiddenFieldItemId", this.formatCipherId(ev, options)); + humanReadableMsg = this.i18nService.t( + "copiedHiddenFieldItemId", + this.getShortId(ev.cipherId) + ); + break; + case EventType.Cipher_ClientCopiedPassword: + msg = this.i18nService.t("copiedPasswordItemId", this.formatCipherId(ev, options)); + humanReadableMsg = this.i18nService.t("copiedPasswordItemId", this.getShortId(ev.cipherId)); + break; + case EventType.Cipher_ClientCopiedCardCode: + msg = this.i18nService.t("copiedSecurityCodeItemId", this.formatCipherId(ev, options)); + humanReadableMsg = this.i18nService.t( + "copiedSecurityCodeItemId", + this.getShortId(ev.cipherId) + ); + break; + case EventType.Cipher_ClientAutofilled: + msg = this.i18nService.t("autofilledItemId", this.formatCipherId(ev, options)); + humanReadableMsg = this.i18nService.t("autofilledItemId", this.getShortId(ev.cipherId)); + break; + case EventType.Cipher_UpdatedCollections: + msg = this.i18nService.t("editedCollectionsForItem", this.formatCipherId(ev, options)); + humanReadableMsg = this.i18nService.t( + "editedCollectionsForItem", + this.getShortId(ev.cipherId) + ); + break; + // Collection + case EventType.Collection_Created: + msg = this.i18nService.t("createdCollectionId", this.formatCollectionId(ev)); + humanReadableMsg = this.i18nService.t( + "createdCollectionId", + this.getShortId(ev.collectionId) + ); + break; + case EventType.Collection_Updated: + msg = this.i18nService.t("editedCollectionId", this.formatCollectionId(ev)); + humanReadableMsg = this.i18nService.t( + "editedCollectionId", + this.getShortId(ev.collectionId) + ); + break; + case EventType.Collection_Deleted: + msg = this.i18nService.t("deletedCollectionId", this.formatCollectionId(ev)); + humanReadableMsg = this.i18nService.t( + "deletedCollectionId", + this.getShortId(ev.collectionId) + ); + break; + // Group + case EventType.Group_Created: + msg = this.i18nService.t("createdGroupId", this.formatGroupId(ev)); + humanReadableMsg = this.i18nService.t("createdGroupId", this.getShortId(ev.groupId)); + break; + case EventType.Group_Updated: + msg = this.i18nService.t("editedGroupId", this.formatGroupId(ev)); + humanReadableMsg = this.i18nService.t("editedGroupId", this.getShortId(ev.groupId)); + break; + case EventType.Group_Deleted: + msg = this.i18nService.t("deletedGroupId", this.formatGroupId(ev)); + humanReadableMsg = this.i18nService.t("deletedGroupId", this.getShortId(ev.groupId)); + break; + // Org user + case EventType.OrganizationUser_Invited: + msg = this.i18nService.t("invitedUserId", this.formatOrgUserId(ev)); + humanReadableMsg = this.i18nService.t( + "invitedUserId", + this.getShortId(ev.organizationUserId) + ); + break; + case EventType.OrganizationUser_Confirmed: + msg = this.i18nService.t("confirmedUserId", this.formatOrgUserId(ev)); + humanReadableMsg = this.i18nService.t( + "confirmedUserId", + this.getShortId(ev.organizationUserId) + ); + break; + case EventType.OrganizationUser_Updated: + msg = this.i18nService.t("editedUserId", this.formatOrgUserId(ev)); + humanReadableMsg = this.i18nService.t( + "editedUserId", + this.getShortId(ev.organizationUserId) + ); + break; + case EventType.OrganizationUser_Removed: + msg = this.i18nService.t("removedUserId", this.formatOrgUserId(ev)); + humanReadableMsg = this.i18nService.t( + "removedUserId", + this.getShortId(ev.organizationUserId) + ); + break; + case EventType.OrganizationUser_UpdatedGroups: + msg = this.i18nService.t("editedGroupsForUser", this.formatOrgUserId(ev)); + humanReadableMsg = this.i18nService.t( + "editedGroupsForUser", + this.getShortId(ev.organizationUserId) + ); + break; + case EventType.OrganizationUser_UnlinkedSso: + msg = this.i18nService.t("unlinkedSsoUser", this.formatOrgUserId(ev)); + humanReadableMsg = this.i18nService.t( + "unlinkedSsoUser", + this.getShortId(ev.organizationUserId) + ); + break; + case EventType.OrganizationUser_ResetPassword_Enroll: + msg = this.i18nService.t("eventEnrollPasswordReset", this.formatOrgUserId(ev)); + humanReadableMsg = this.i18nService.t( + "eventEnrollPasswordReset", + this.getShortId(ev.organizationUserId) + ); + break; + case EventType.OrganizationUser_ResetPassword_Withdraw: + msg = this.i18nService.t("eventWithdrawPasswordReset", this.formatOrgUserId(ev)); + humanReadableMsg = this.i18nService.t( + "eventWithdrawPasswordReset", + this.getShortId(ev.organizationUserId) + ); + break; + case EventType.OrganizationUser_AdminResetPassword: + msg = this.i18nService.t("eventAdminPasswordReset", this.formatOrgUserId(ev)); + humanReadableMsg = this.i18nService.t( + "eventAdminPasswordReset", + this.getShortId(ev.organizationUserId) + ); + break; + case EventType.OrganizationUser_ResetSsoLink: + msg = this.i18nService.t("eventResetSsoLink", this.formatOrgUserId(ev)); + humanReadableMsg = this.i18nService.t( + "eventResetSsoLink", + this.getShortId(ev.organizationUserId) + ); + break; + case EventType.OrganizationUser_FirstSsoLogin: + msg = this.i18nService.t("firstSsoLogin", this.formatOrgUserId(ev)); + humanReadableMsg = this.i18nService.t( + "firstSsoLogin", + this.getShortId(ev.organizationUserId) + ); + break; + // Org + case EventType.Organization_Updated: + msg = humanReadableMsg = this.i18nService.t("editedOrgSettings"); + break; + case EventType.Organization_PurgedVault: + msg = humanReadableMsg = this.i18nService.t("purgedOrganizationVault"); + break; + /* + case EventType.Organization_ClientExportedVault: + msg = this.i18nService.t('exportedOrganizationVault'); + break; + */ + case EventType.Organization_VaultAccessed: + msg = humanReadableMsg = this.i18nService.t("vaultAccessedByProvider"); + break; + case EventType.Organization_EnabledSso: + msg = humanReadableMsg = this.i18nService.t("enabledSso"); + break; + case EventType.Organization_DisabledSso: + msg = humanReadableMsg = this.i18nService.t("disabledSso"); + break; + case EventType.Organization_EnabledKeyConnector: + msg = humanReadableMsg = this.i18nService.t("enabledKeyConnector"); + break; + case EventType.Organization_DisabledKeyConnector: + msg = humanReadableMsg = this.i18nService.t("disabledKeyConnector"); + break; + case EventType.Organization_SponsorshipsSynced: + msg = humanReadableMsg = this.i18nService.t("sponsorshipsSynced"); + break; + // Policies + case EventType.Policy_Updated: { + msg = this.i18nService.t("modifiedPolicyId", this.formatPolicyId(ev)); + + const policies = await this.policyService.getAll(); + const policy = policies.filter((p) => p.id === ev.policyId)[0]; + let p1 = this.getShortId(ev.policyId); + if (policy != null) { + p1 = PolicyType[policy.type]; + } + + humanReadableMsg = this.i18nService.t("modifiedPolicyId", p1); + break; + } + // Provider users: + case EventType.ProviderUser_Invited: + msg = this.i18nService.t("invitedUserId", this.formatProviderUserId(ev)); + humanReadableMsg = this.i18nService.t("invitedUserId", this.getShortId(ev.providerUserId)); + break; + case EventType.ProviderUser_Confirmed: + msg = this.i18nService.t("confirmedUserId", this.formatProviderUserId(ev)); + humanReadableMsg = this.i18nService.t( + "confirmedUserId", + this.getShortId(ev.providerUserId) + ); + break; + case EventType.ProviderUser_Updated: + msg = this.i18nService.t("editedUserId", this.formatProviderUserId(ev)); + humanReadableMsg = this.i18nService.t("editedUserId", this.getShortId(ev.providerUserId)); + break; + case EventType.ProviderUser_Removed: + msg = this.i18nService.t("removedUserId", this.formatProviderUserId(ev)); + humanReadableMsg = this.i18nService.t("removedUserId", this.getShortId(ev.providerUserId)); + break; + case EventType.ProviderOrganization_Created: + msg = this.i18nService.t("createdOrganizationId", this.formatProviderOrganizationId(ev)); + humanReadableMsg = this.i18nService.t( + "createdOrganizationId", + this.getShortId(ev.providerOrganizationId) + ); + break; + case EventType.ProviderOrganization_Added: + msg = this.i18nService.t("addedOrganizationId", this.formatProviderOrganizationId(ev)); + humanReadableMsg = this.i18nService.t( + "addedOrganizationId", + this.getShortId(ev.providerOrganizationId) + ); + break; + case EventType.ProviderOrganization_Removed: + msg = this.i18nService.t("removedOrganizationId", this.formatProviderOrganizationId(ev)); + humanReadableMsg = this.i18nService.t( + "removedOrganizationId", + this.getShortId(ev.providerOrganizationId) + ); + break; + case EventType.ProviderOrganization_VaultAccessed: + msg = this.i18nService.t("accessedClientVault", this.formatProviderOrganizationId(ev)); + humanReadableMsg = this.i18nService.t( + "accessedClientVault", + this.getShortId(ev.providerOrganizationId) + ); + break; + default: + break; + } + return { + message: msg === "" ? null : msg, + humanReadableMessage: humanReadableMsg === "" ? null : humanReadableMsg, + }; + } + + private getAppInfo(deviceType: DeviceType): [string, string] { + switch (deviceType) { + case DeviceType.Android: + return ["bwi-android", this.i18nService.t("mobile") + " - Android"]; + case DeviceType.iOS: + return ["bwi-apple", this.i18nService.t("mobile") + " - iOS"]; + case DeviceType.UWP: + return ["bwi-windows", this.i18nService.t("mobile") + " - Windows"]; + case DeviceType.ChromeExtension: + return ["bwi-chrome", this.i18nService.t("extension") + " - Chrome"]; + case DeviceType.FirefoxExtension: + return ["bwi-firefox", this.i18nService.t("extension") + " - Firefox"]; + case DeviceType.OperaExtension: + return ["bwi-opera", this.i18nService.t("extension") + " - Opera"]; + case DeviceType.EdgeExtension: + return ["bwi-edge", this.i18nService.t("extension") + " - Edge"]; + case DeviceType.VivaldiExtension: + return ["bwi-puzzle", this.i18nService.t("extension") + " - Vivaldi"]; + case DeviceType.SafariExtension: + return ["bwi-safari", this.i18nService.t("extension") + " - Safari"]; + case DeviceType.WindowsDesktop: + return ["bwi-windows", this.i18nService.t("desktop") + " - Windows"]; + case DeviceType.MacOsDesktop: + return ["bwi-apple", this.i18nService.t("desktop") + " - macOS"]; + case DeviceType.LinuxDesktop: + return ["bwi-linux", this.i18nService.t("desktop") + " - Linux"]; + case DeviceType.ChromeBrowser: + return ["bwi-globe", this.i18nService.t("webVault") + " - Chrome"]; + case DeviceType.FirefoxBrowser: + return ["bwi-globe", this.i18nService.t("webVault") + " - Firefox"]; + case DeviceType.OperaBrowser: + return ["bwi-globe", this.i18nService.t("webVault") + " - Opera"]; + case DeviceType.SafariBrowser: + return ["bwi-globe", this.i18nService.t("webVault") + " - Safari"]; + case DeviceType.VivaldiBrowser: + return ["bwi-globe", this.i18nService.t("webVault") + " - Vivaldi"]; + case DeviceType.EdgeBrowser: + return ["bwi-globe", this.i18nService.t("webVault") + " - Edge"]; + case DeviceType.IEBrowser: + return ["bwi-globe", this.i18nService.t("webVault") + " - IE"]; + case DeviceType.UnknownBrowser: + return [ + "bwi-globe", + this.i18nService.t("webVault") + " - " + this.i18nService.t("unknown"), + ]; + default: + return ["bwi-globe", this.i18nService.t("unknown")]; + } + } + + private formatCipherId(ev: EventResponse, options: EventOptions) { + const shortId = this.getShortId(ev.cipherId); + if (ev.organizationId == null || !options.cipherInfo) { + return "" + shortId + ""; + } + const a = this.makeAnchor(shortId); + a.setAttribute( + "href", + "#/organizations/" + + ev.organizationId + + "/vault?search=" + + shortId + + "&viewEvents=" + + ev.cipherId + ); + return a.outerHTML; + } + + private formatGroupId(ev: EventResponse) { + const shortId = this.getShortId(ev.groupId); + const a = this.makeAnchor(shortId); + a.setAttribute( + "href", + "#/organizations/" + ev.organizationId + "/manage/groups?search=" + shortId + ); + return a.outerHTML; + } + + private formatCollectionId(ev: EventResponse) { + const shortId = this.getShortId(ev.collectionId); + const a = this.makeAnchor(shortId); + a.setAttribute( + "href", + "#/organizations/" + ev.organizationId + "/manage/collections?search=" + shortId + ); + return a.outerHTML; + } + + private formatOrgUserId(ev: EventResponse) { + const shortId = this.getShortId(ev.organizationUserId); + const a = this.makeAnchor(shortId); + a.setAttribute( + "href", + "#/organizations/" + + ev.organizationId + + "/manage/people?search=" + + shortId + + "&viewEvents=" + + ev.organizationUserId + ); + return a.outerHTML; + } + + private formatProviderUserId(ev: EventResponse) { + const shortId = this.getShortId(ev.providerUserId); + const a = this.makeAnchor(shortId); + a.setAttribute( + "href", + "#/providers/" + + ev.providerId + + "/manage/people?search=" + + shortId + + "&viewEvents=" + + ev.providerUserId + ); + return a.outerHTML; + } + + private formatProviderOrganizationId(ev: EventResponse) { + const shortId = this.getShortId(ev.providerOrganizationId); + const a = this.makeAnchor(shortId); + a.setAttribute("href", "#/providers/" + ev.providerId + "/clients?search=" + shortId); + return a.outerHTML; + } + + private formatPolicyId(ev: EventResponse) { + const shortId = this.getShortId(ev.policyId); + const a = this.makeAnchor(shortId); + a.setAttribute( + "href", + "#/organizations/" + ev.organizationId + "/manage/policies?policyId=" + ev.policyId + ); + return a.outerHTML; + } + + private makeAnchor(shortId: string) { + const a = document.createElement("a"); + a.title = this.i18nService.t("view"); + a.innerHTML = "" + shortId + ""; + return a; + } + + private getShortId(id: string) { + return id?.substring(0, 8); + } + + private toDateTimeLocalString(date: Date) { + return ( + date.getFullYear() + + "-" + + this.pad(date.getMonth() + 1) + + "-" + + this.pad(date.getDate()) + + "T" + + this.pad(date.getHours()) + + ":" + + this.pad(date.getMinutes()) + ); + } + + private pad(num: number) { + const norm = Math.floor(Math.abs(num)); + return (norm < 10 ? "0" : "") + norm; + } +} + +export class EventInfo { + message: string; + humanReadableMessage: string; + appIcon: string; + appName: string; +} + +export class EventOptions { + cipherInfo = true; +} diff --git a/apps/web/src/app/services/init.service.ts b/apps/web/src/app/services/init.service.ts new file mode 100644 index 0000000000..eacfea9773 --- /dev/null +++ b/apps/web/src/app/services/init.service.ts @@ -0,0 +1,69 @@ +import { Inject, Injectable } from "@angular/core"; + +import { WINDOW } from "jslib-angular/services/jslib-services.module"; +import { CryptoService as CryptoServiceAbstraction } from "jslib-common/abstractions/crypto.service"; +import { + EnvironmentService as EnvironmentServiceAbstraction, + Urls, +} from "jslib-common/abstractions/environment.service"; +import { EventService as EventLoggingServiceAbstraction } from "jslib-common/abstractions/event.service"; +import { I18nService as I18nServiceAbstraction } from "jslib-common/abstractions/i18n.service"; +import { NotificationsService as NotificationsServiceAbstraction } from "jslib-common/abstractions/notifications.service"; +import { PlatformUtilsService as PlatformUtilsServiceAbstraction } from "jslib-common/abstractions/platformUtils.service"; +import { StateService as StateServiceAbstraction } from "jslib-common/abstractions/state.service"; +import { TwoFactorService as TwoFactorServiceAbstraction } from "jslib-common/abstractions/twoFactor.service"; +import { VaultTimeoutService as VaultTimeoutServiceAbstraction } from "jslib-common/abstractions/vaultTimeout.service"; +import { ThemeType } from "jslib-common/enums/themeType"; +import { ContainerService } from "jslib-common/services/container.service"; +import { EventService as EventLoggingService } from "jslib-common/services/event.service"; +import { VaultTimeoutService as VaultTimeoutService } from "jslib-common/services/vaultTimeout.service"; + +import { I18nService as I18nService } from "../../services/i18n.service"; + +@Injectable() +export class InitService { + constructor( + @Inject(WINDOW) private win: Window, + private environmentService: EnvironmentServiceAbstraction, + private notificationsService: NotificationsServiceAbstraction, + private vaultTimeoutService: VaultTimeoutServiceAbstraction, + private i18nService: I18nServiceAbstraction, + private eventLoggingService: EventLoggingServiceAbstraction, + private twoFactorService: TwoFactorServiceAbstraction, + private stateService: StateServiceAbstraction, + private platformUtilsService: PlatformUtilsServiceAbstraction, + private cryptoService: CryptoServiceAbstraction + ) {} + + init() { + return async () => { + await this.stateService.init(); + + const urls = process.env.URLS as Urls; + urls.base ??= this.win.location.origin; + this.environmentService.setUrls(urls); + + setTimeout(() => this.notificationsService.init(), 3000); + + (this.vaultTimeoutService as VaultTimeoutService).init(true); + const locale = await this.stateService.getLocale(); + await (this.i18nService as I18nService).init(locale); + (this.eventLoggingService as EventLoggingService).init(true); + this.twoFactorService.init(); + const htmlEl = this.win.document.documentElement; + htmlEl.classList.add("locale_" + this.i18nService.translationLocale); + + // Initial theme is set in index.html which must be updated if there are any changes to theming logic + this.platformUtilsService.onDefaultSystemThemeChange(async (sysTheme) => { + const bwTheme = await this.stateService.getTheme(); + if (bwTheme === ThemeType.System) { + htmlEl.classList.remove("theme_" + ThemeType.Light, "theme_" + ThemeType.Dark); + htmlEl.classList.add("theme_" + sysTheme); + } + }); + + const containerService = new ContainerService(this.cryptoService); + containerService.attachToWindow(this.win); + }; + } +} diff --git a/apps/web/src/app/services/modal.service.ts b/apps/web/src/app/services/modal.service.ts new file mode 100644 index 0000000000..760796fe17 --- /dev/null +++ b/apps/web/src/app/services/modal.service.ts @@ -0,0 +1,58 @@ +import { ApplicationRef, ComponentFactoryResolver, Injectable, Injector } from "@angular/core"; +import * as jq from "jquery"; +import { first } from "rxjs/operators"; + +import { ModalRef } from "jslib-angular/components/modal/modal.ref"; +import { ModalService as BaseModalService } from "jslib-angular/services/modal.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { Utils } from "jslib-common/misc/utils"; + +@Injectable() +export class ModalService extends BaseModalService { + el: any = null; + modalOpen = false; + + constructor( + componentFactoryResolver: ComponentFactoryResolver, + applicationRef: ApplicationRef, + injector: Injector, + private messagingService: MessagingService + ) { + super(componentFactoryResolver, applicationRef, injector); + } + + protected setupHandlers(modalRef: ModalRef) { + modalRef.onCreated.pipe(first()).subscribe(() => { + const modals = Array.from(document.querySelectorAll(".modal")); + if (modals.length > 0) { + this.el = jq(modals[0]); + this.el.modal("show"); + + this.el.on("show.bs.modal", () => { + modalRef.show(); + this.messagingService.send("modalShow"); + }); + this.el.on("shown.bs.modal", () => { + modalRef.shown(); + this.messagingService.send("modalShown"); + if (!Utils.isMobileBrowser) { + this.el.find("*[appAutoFocus]").focus(); + } + }); + this.el.on("hide.bs.modal", () => { + this.messagingService.send("modalClose"); + }); + this.el.on("hidden.bs.modal", () => { + modalRef.closed(); + this.messagingService.send("modalClosed"); + }); + } + }); + + modalRef.onClose.pipe(first()).subscribe(() => { + if (this.el != null) { + this.el.modal("hide"); + } + }); + } +} diff --git a/apps/web/src/app/services/policy-list.service.ts b/apps/web/src/app/services/policy-list.service.ts new file mode 100644 index 0000000000..70857ef819 --- /dev/null +++ b/apps/web/src/app/services/policy-list.service.ts @@ -0,0 +1,13 @@ +import { BasePolicy } from "../organizations/policies/base-policy.component"; + +export class PolicyListService { + private policies: BasePolicy[] = []; + + addPolicies(policies: BasePolicy[]) { + this.policies.push(...policies); + } + + getPolicies(): BasePolicy[] { + return this.policies; + } +} diff --git a/apps/web/src/app/services/router.service.ts b/apps/web/src/app/services/router.service.ts new file mode 100644 index 0000000000..7493e2cb5a --- /dev/null +++ b/apps/web/src/app/services/router.service.ts @@ -0,0 +1,56 @@ +import { Injectable } from "@angular/core"; +import { Title } from "@angular/platform-browser"; +import { ActivatedRoute, NavigationEnd, Router } from "@angular/router"; +import { filter } from "rxjs"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; + +@Injectable() +export class RouterService { + private previousUrl: string = undefined; + private currentUrl: string = undefined; + + constructor( + private router: Router, + private activatedRoute: ActivatedRoute, + private titleService: Title, + i18nService: I18nService + ) { + this.currentUrl = this.router.url; + + router.events + .pipe(filter((e) => e instanceof NavigationEnd)) + .subscribe((event: NavigationEnd) => { + this.currentUrl = event.url; + + let title = i18nService.t("pageTitle", "Bitwarden"); + let child = this.activatedRoute.firstChild; + while (child.firstChild) { + child = child.firstChild; + } + + const titleId: string = child?.snapshot?.data?.titleId; + const rawTitle: string = child?.snapshot?.data?.title; + const updateUrl = !child?.snapshot?.data?.doNotSaveUrl ?? true; + + if (titleId != null || rawTitle != null) { + const newTitle = rawTitle != null ? rawTitle : i18nService.t(titleId); + if (newTitle != null && newTitle !== "") { + title = newTitle + " | " + title; + } + } + this.titleService.setTitle(title); + if (updateUrl) { + this.setPreviousUrl(this.currentUrl); + } + }); + } + + getPreviousUrl() { + return this.previousUrl; + } + + setPreviousUrl(url: string) { + this.previousUrl = url; + } +} diff --git a/apps/web/src/app/services/services.module.ts b/apps/web/src/app/services/services.module.ts new file mode 100644 index 0000000000..b99eda72d2 --- /dev/null +++ b/apps/web/src/app/services/services.module.ts @@ -0,0 +1,134 @@ +import { APP_INITIALIZER, NgModule } from "@angular/core"; +import { ToastrModule } from "ngx-toastr"; + +import { + JslibServicesModule, + SECURE_STORAGE, + STATE_FACTORY, + STATE_SERVICE_USE_CACHE, + LOCALES_DIRECTORY, + SYSTEM_LANGUAGE, +} from "jslib-angular/services/jslib-services.module"; +import { ModalService as ModalServiceAbstraction } from "jslib-angular/services/modal.service"; +import { ApiService as ApiServiceAbstraction } from "jslib-common/abstractions/api.service"; +import { CipherService as CipherServiceAbstraction } from "jslib-common/abstractions/cipher.service"; +import { CollectionService as CollectionServiceAbstraction } from "jslib-common/abstractions/collection.service"; +import { CryptoService as CryptoServiceAbstraction } from "jslib-common/abstractions/crypto.service"; +import { FolderService as FolderServiceAbstraction } from "jslib-common/abstractions/folder.service"; +import { I18nService as I18nServiceAbstraction } from "jslib-common/abstractions/i18n.service"; +import { ImportService as ImportServiceAbstraction } from "jslib-common/abstractions/import.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService as MessagingServiceAbstraction } from "jslib-common/abstractions/messaging.service"; +import { PasswordRepromptService as PasswordRepromptServiceAbstraction } from "jslib-common/abstractions/passwordReprompt.service"; +import { PlatformUtilsService as PlatformUtilsServiceAbstraction } from "jslib-common/abstractions/platformUtils.service"; +import { StateService as BaseStateServiceAbstraction } from "jslib-common/abstractions/state.service"; +import { StateMigrationService as StateMigrationServiceAbstraction } from "jslib-common/abstractions/stateMigration.service"; +import { StorageService as StorageServiceAbstraction } from "jslib-common/abstractions/storage.service"; +import { StateFactory } from "jslib-common/factories/stateFactory"; +import { ImportService } from "jslib-common/services/import.service"; + +import { StateService as StateServiceAbstraction } from "../../abstractions/state.service"; +import { Account } from "../../models/account"; +import { GlobalState } from "../../models/globalState"; +import { BroadcasterMessagingService } from "../../services/broadcasterMessaging.service"; +import { HtmlStorageService } from "../../services/htmlStorage.service"; +import { I18nService } from "../../services/i18n.service"; +import { MemoryStorageService } from "../../services/memoryStorage.service"; +import { PasswordRepromptService } from "../../services/passwordReprompt.service"; +import { StateService } from "../../services/state.service"; +import { StateMigrationService } from "../../services/stateMigration.service"; +import { WebPlatformUtilsService } from "../../services/webPlatformUtils.service"; +import { HomeGuard } from "../guards/home.guard"; +import { PermissionsGuard as OrgPermissionsGuard } from "../organizations/guards/permissions.guard"; +import { NavigationPermissionsService as OrgPermissionsService } from "../organizations/services/navigation-permissions.service"; + +import { EventService } from "./event.service"; +import { InitService } from "./init.service"; +import { ModalService } from "./modal.service"; +import { PolicyListService } from "./policy-list.service"; +import { RouterService } from "./router.service"; + +@NgModule({ + imports: [ToastrModule, JslibServicesModule], + declarations: [], + providers: [ + OrgPermissionsService, + OrgPermissionsGuard, + InitService, + RouterService, + EventService, + PolicyListService, + { + provide: APP_INITIALIZER, + useFactory: (initService: InitService) => initService.init(), + deps: [InitService], + multi: true, + }, + { + provide: STATE_FACTORY, + useValue: new StateFactory(GlobalState, Account), + }, + { + provide: STATE_SERVICE_USE_CACHE, + useValue: false, + }, + { + provide: I18nServiceAbstraction, + useClass: I18nService, + deps: [SYSTEM_LANGUAGE, LOCALES_DIRECTORY], + }, + { provide: StorageServiceAbstraction, useClass: HtmlStorageService }, + { + provide: SECURE_STORAGE, + // TODO: platformUtilsService.isDev has a helper for this, but using that service here results in a circular dependency. + // We have a tech debt item in the backlog to break up platformUtilsService, but in the meantime simply checking the environement here is less cumbersome. + useClass: process.env.NODE_ENV === "development" ? HtmlStorageService : MemoryStorageService, + }, + { + provide: PlatformUtilsServiceAbstraction, + useClass: WebPlatformUtilsService, + }, + { provide: MessagingServiceAbstraction, useClass: BroadcasterMessagingService }, + { provide: ModalServiceAbstraction, useClass: ModalService }, + { + provide: ImportServiceAbstraction, + useClass: ImportService, + deps: [ + CipherServiceAbstraction, + FolderServiceAbstraction, + ApiServiceAbstraction, + I18nServiceAbstraction, + CollectionServiceAbstraction, + PlatformUtilsServiceAbstraction, + CryptoServiceAbstraction, + ], + }, + { + provide: StateMigrationServiceAbstraction, + useClass: StateMigrationService, + deps: [StorageServiceAbstraction, SECURE_STORAGE, STATE_FACTORY], + }, + { + provide: StateServiceAbstraction, + useClass: StateService, + deps: [ + StorageServiceAbstraction, + SECURE_STORAGE, + LogService, + StateMigrationServiceAbstraction, + STATE_FACTORY, + STATE_SERVICE_USE_CACHE, + ], + }, + { + provide: BaseStateServiceAbstraction, + useExisting: StateServiceAbstraction, + }, + { + provide: PasswordRepromptServiceAbstraction, + useClass: PasswordRepromptService, + }, + HomeGuard, + ], +}) +export class ServicesModule {} diff --git a/apps/web/src/app/settings/account.component.html b/apps/web/src/app/settings/account.component.html new file mode 100644 index 0000000000..c88fc1ece0 --- /dev/null +++ b/apps/web/src/app/settings/account.component.html @@ -0,0 +1,32 @@ + + + +
+

{{ "changeEmail" | i18n }}

+
+ +
+
+

{{ "dangerZone" | i18n }}

+
+
+
+

{{ "dangerZoneDesc" | i18n }}

+ + + +
+
+ + + + + diff --git a/apps/web/src/app/settings/account.component.ts b/apps/web/src/app/settings/account.component.ts new file mode 100644 index 0000000000..aa13eb4544 --- /dev/null +++ b/apps/web/src/app/settings/account.component.ts @@ -0,0 +1,48 @@ +import { Component, ViewChild, ViewContainerRef } from "@angular/core"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { KeyConnectorService } from "jslib-common/abstractions/keyConnector.service"; +import { StateService } from "jslib-common/abstractions/state.service"; + +import { DeauthorizeSessionsComponent } from "./deauthorize-sessions.component"; +import { DeleteAccountComponent } from "./delete-account.component"; +import { PurgeVaultComponent } from "./purge-vault.component"; + +@Component({ + selector: "app-account", + templateUrl: "account.component.html", +}) +export class AccountComponent { + @ViewChild("deauthorizeSessionsTemplate", { read: ViewContainerRef, static: true }) + deauthModalRef: ViewContainerRef; + @ViewChild("purgeVaultTemplate", { read: ViewContainerRef, static: true }) + purgeModalRef: ViewContainerRef; + @ViewChild("deleteAccountTemplate", { read: ViewContainerRef, static: true }) + deleteModalRef: ViewContainerRef; + + showChangeEmail = true; + + constructor( + private modalService: ModalService, + private apiService: ApiService, + private keyConnectorService: KeyConnectorService, + private stateService: StateService + ) {} + + async ngOnInit() { + this.showChangeEmail = !(await this.keyConnectorService.getUsesKeyConnector()); + } + + async deauthorizeSessions() { + await this.modalService.openViewRef(DeauthorizeSessionsComponent, this.deauthModalRef); + } + + async purgeVault() { + await this.modalService.openViewRef(PurgeVaultComponent, this.purgeModalRef); + } + + async deleteAccount() { + await this.modalService.openViewRef(DeleteAccountComponent, this.deleteModalRef); + } +} diff --git a/apps/web/src/app/settings/add-credit.component.html b/apps/web/src/app/settings/add-credit.component.html new file mode 100644 index 0000000000..73c71812be --- /dev/null +++ b/apps/web/src/app/settings/add-credit.component.html @@ -0,0 +1,80 @@ +
+
+ +

{{ "addCredit" | i18n }}

+
+
+ + +
+
+ + +
+
+
+
+
+ +
+
$USD
+ +
+
+
+ {{ "creditDelayed" | i18n }} +
+ + +
+
+
+ + + + + + + + + + + + + + + +
diff --git a/apps/web/src/app/settings/add-credit.component.ts b/apps/web/src/app/settings/add-credit.component.ts new file mode 100644 index 0000000000..4d646990ac --- /dev/null +++ b/apps/web/src/app/settings/add-credit.component.ts @@ -0,0 +1,149 @@ +import { + Component, + ElementRef, + EventEmitter, + Input, + OnInit, + Output, + ViewChild, +} from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { PayPalConfig } from "jslib-common/abstractions/environment.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { PaymentMethodType } from "jslib-common/enums/paymentMethodType"; +import { BitPayInvoiceRequest } from "jslib-common/models/request/bitPayInvoiceRequest"; + +@Component({ + selector: "app-add-credit", + templateUrl: "add-credit.component.html", +}) +export class AddCreditComponent implements OnInit { + @Input() creditAmount: string; + @Input() showOptions = true; + @Input() method = PaymentMethodType.PayPal; + @Input() organizationId: string; + @Output() onAdded = new EventEmitter(); + @Output() onCanceled = new EventEmitter(); + + @ViewChild("ppButtonForm", { read: ElementRef, static: true }) ppButtonFormRef: ElementRef; + + paymentMethodType = PaymentMethodType; + ppButtonFormAction: string; + ppButtonBusinessId: string; + ppButtonCustomField: string; + ppLoading = false; + subject: string; + returnUrl: string; + formPromise: Promise; + + private userId: string; + private name: string; + private email: string; + + constructor( + private stateService: StateService, + private apiService: ApiService, + private platformUtilsService: PlatformUtilsService, + private organizationService: OrganizationService, + private logService: LogService + ) { + const payPalConfig = process.env.PAYPAL_CONFIG as PayPalConfig; + this.ppButtonFormAction = payPalConfig.buttonAction; + this.ppButtonBusinessId = payPalConfig.businessId; + } + + async ngOnInit() { + if (this.organizationId != null) { + if (this.creditAmount == null) { + this.creditAmount = "20.00"; + } + this.ppButtonCustomField = "organization_id:" + this.organizationId; + const org = await this.organizationService.get(this.organizationId); + if (org != null) { + this.subject = org.name; + this.name = org.name; + } + } else { + if (this.creditAmount == null) { + this.creditAmount = "10.00"; + } + this.userId = await this.stateService.getUserId(); + this.subject = await this.stateService.getEmail(); + this.email = this.subject; + this.ppButtonCustomField = "user_id:" + this.userId; + } + this.ppButtonCustomField += ",account_credit:1"; + this.returnUrl = window.location.href; + } + + async submit() { + if (this.creditAmount == null || this.creditAmount === "") { + return; + } + + if (this.method === PaymentMethodType.PayPal) { + this.ppButtonFormRef.nativeElement.submit(); + this.ppLoading = true; + return; + } + if (this.method === PaymentMethodType.BitPay) { + try { + const req = new BitPayInvoiceRequest(); + req.email = this.email; + req.name = this.name; + req.credit = true; + req.amount = this.creditAmountNumber; + req.organizationId = this.organizationId; + req.userId = this.userId; + req.returnUrl = this.returnUrl; + this.formPromise = this.apiService.postBitPayInvoice(req); + const bitPayUrl: string = await this.formPromise; + this.platformUtilsService.launchUri(bitPayUrl); + } catch (e) { + this.logService.error(e); + } + return; + } + try { + this.onAdded.emit(); + } catch (e) { + this.logService.error(e); + } + } + + cancel() { + this.onCanceled.emit(); + } + + formatAmount() { + try { + if (this.creditAmount != null && this.creditAmount !== "") { + const floatAmount = Math.abs(parseFloat(this.creditAmount)); + if (floatAmount > 0) { + this.creditAmount = parseFloat((Math.round(floatAmount * 100) / 100).toString()) + .toFixed(2) + .toString(); + return; + } + } + } catch (e) { + this.logService.error(e); + } + this.creditAmount = ""; + } + + get creditAmountNumber(): number { + if (this.creditAmount != null && this.creditAmount !== "") { + try { + return parseFloat(this.creditAmount); + } catch (e) { + this.logService.error(e); + } + } + return null; + } +} diff --git a/apps/web/src/app/settings/adjust-payment.component.html b/apps/web/src/app/settings/adjust-payment.component.html new file mode 100644 index 0000000000..724e7a44c2 --- /dev/null +++ b/apps/web/src/app/settings/adjust-payment.component.html @@ -0,0 +1,19 @@ +
+
+ +

+ {{ (currentType != null ? "changePaymentMethod" : "addPaymentMethod") | i18n }} +

+ + + + +
+
diff --git a/apps/web/src/app/settings/adjust-payment.component.ts b/apps/web/src/app/settings/adjust-payment.component.ts new file mode 100644 index 0000000000..bfa89fef4b --- /dev/null +++ b/apps/web/src/app/settings/adjust-payment.component.ts @@ -0,0 +1,83 @@ +import { Component, EventEmitter, Input, Output, ViewChild } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PaymentMethodType } from "jslib-common/enums/paymentMethodType"; +import { PaymentRequest } from "jslib-common/models/request/paymentRequest"; + +import { PaymentComponent } from "./payment.component"; +import { TaxInfoComponent } from "./tax-info.component"; + +@Component({ + selector: "app-adjust-payment", + templateUrl: "adjust-payment.component.html", +}) +export class AdjustPaymentComponent { + @ViewChild(PaymentComponent, { static: true }) paymentComponent: PaymentComponent; + @ViewChild(TaxInfoComponent, { static: true }) taxInfoComponent: TaxInfoComponent; + + @Input() currentType?: PaymentMethodType; + @Input() organizationId: string; + @Output() onAdjusted = new EventEmitter(); + @Output() onCanceled = new EventEmitter(); + + paymentMethodType = PaymentMethodType; + formPromise: Promise; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private logService: LogService + ) {} + + async submit() { + try { + const request = new PaymentRequest(); + this.formPromise = this.paymentComponent.createPaymentToken().then((result) => { + request.paymentToken = result[0]; + request.paymentMethodType = result[1]; + request.postalCode = this.taxInfoComponent.taxInfo.postalCode; + request.country = this.taxInfoComponent.taxInfo.country; + if (this.organizationId == null) { + return this.apiService.postAccountPayment(request); + } else { + request.taxId = this.taxInfoComponent.taxInfo.taxId; + request.state = this.taxInfoComponent.taxInfo.state; + request.line1 = this.taxInfoComponent.taxInfo.line1; + request.line2 = this.taxInfoComponent.taxInfo.line2; + request.city = this.taxInfoComponent.taxInfo.city; + request.state = this.taxInfoComponent.taxInfo.state; + return this.apiService.postOrganizationPayment(this.organizationId, request); + } + }); + await this.formPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("updatedPaymentMethod") + ); + this.onAdjusted.emit(); + } catch (e) { + this.logService.error(e); + } + } + + cancel() { + this.onCanceled.emit(); + } + + changeCountry() { + if (this.taxInfoComponent.taxInfo.country === "US") { + this.paymentComponent.hideBank = !this.organizationId; + } else { + this.paymentComponent.hideBank = true; + if (this.paymentComponent.method === PaymentMethodType.BankAccount) { + this.paymentComponent.method = PaymentMethodType.Card; + this.paymentComponent.changeMethod(); + } + } + } +} diff --git a/apps/web/src/app/settings/adjust-storage.component.html b/apps/web/src/app/settings/adjust-storage.component.html new file mode 100644 index 0000000000..8e26cee3aa --- /dev/null +++ b/apps/web/src/app/settings/adjust-storage.component.html @@ -0,0 +1,43 @@ +
+
+ +

{{ (add ? "addStorage" : "removeStorage") | i18n }}

+
+
+ + +
+
+
+ {{ "total" | i18n }}: {{ storageAdjustment || 0 }} GB × + {{ storageGbPrice | currency: "$" }} = {{ adjustedStorageTotal | currency: "$" }} /{{ + interval | i18n + }} +
+ + + + {{ (add ? "storageAddNote" : "storageRemoveNote") | i18n }} + +
+
+ diff --git a/apps/web/src/app/settings/adjust-storage.component.ts b/apps/web/src/app/settings/adjust-storage.component.ts new file mode 100644 index 0000000000..d3cf0669ca --- /dev/null +++ b/apps/web/src/app/settings/adjust-storage.component.ts @@ -0,0 +1,100 @@ +import { Component, EventEmitter, Input, Output, ViewChild } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StorageRequest } from "jslib-common/models/request/storageRequest"; +import { PaymentResponse } from "jslib-common/models/response/paymentResponse"; + +import { PaymentComponent } from "./payment.component"; + +@Component({ + selector: "app-adjust-storage", + templateUrl: "adjust-storage.component.html", +}) +export class AdjustStorageComponent { + @Input() storageGbPrice = 0; + @Input() add = true; + @Input() organizationId: string; + @Input() interval = "year"; + @Output() onAdjusted = new EventEmitter(); + @Output() onCanceled = new EventEmitter(); + + @ViewChild(PaymentComponent, { static: true }) paymentComponent: PaymentComponent; + + storageAdjustment = 0; + formPromise: Promise; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private router: Router, + private activatedRoute: ActivatedRoute, + private logService: LogService + ) {} + + async submit() { + try { + const request = new StorageRequest(); + request.storageGbAdjustment = this.storageAdjustment; + if (!this.add) { + request.storageGbAdjustment *= -1; + } + + let paymentFailed = false; + const action = async () => { + let response: Promise; + if (this.organizationId == null) { + response = this.formPromise = this.apiService.postAccountStorage(request); + } else { + response = this.formPromise = this.apiService.postOrganizationStorage( + this.organizationId, + request + ); + } + const result = await response; + if (result != null && result.paymentIntentClientSecret != null) { + try { + await this.paymentComponent.handleStripeCardPayment( + result.paymentIntentClientSecret, + null + ); + } catch { + paymentFailed = true; + } + } + }; + this.formPromise = action(); + await this.formPromise; + this.onAdjusted.emit(this.storageAdjustment); + if (paymentFailed) { + this.platformUtilsService.showToast( + "warning", + null, + this.i18nService.t("couldNotChargeCardPayInvoice"), + { timeout: 10000 } + ); + this.router.navigate(["../billing"], { relativeTo: this.activatedRoute }); + } else { + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("adjustedStorage", request.storageGbAdjustment.toString()) + ); + } + } catch (e) { + this.logService.error(e); + } + } + + cancel() { + this.onCanceled.emit(); + } + + get adjustedStorageTotal(): number { + return this.storageGbPrice * this.storageAdjustment; + } +} diff --git a/apps/web/src/app/settings/api-key.component.html b/apps/web/src/app/settings/api-key.component.html new file mode 100644 index 0000000000..8e042aa6e4 --- /dev/null +++ b/apps/web/src/app/settings/api-key.component.html @@ -0,0 +1,72 @@ + diff --git a/apps/web/src/app/settings/api-key.component.ts b/apps/web/src/app/settings/api-key.component.ts new file mode 100644 index 0000000000..fd1eec7e45 --- /dev/null +++ b/apps/web/src/app/settings/api-key.component.ts @@ -0,0 +1,46 @@ +import { Component } from "@angular/core"; + +import { LogService } from "jslib-common/abstractions/log.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; +import { SecretVerificationRequest } from "jslib-common/models/request/secretVerificationRequest"; +import { ApiKeyResponse } from "jslib-common/models/response/apiKeyResponse"; +import { Verification } from "jslib-common/types/verification"; + +@Component({ + selector: "app-api-key", + templateUrl: "api-key.component.html", +}) +export class ApiKeyComponent { + keyType: string; + isRotation: boolean; + postKey: (entityId: string, request: SecretVerificationRequest) => Promise; + entityId: string; + scope: string; + grantType: string; + apiKeyTitle: string; + apiKeyWarning: string; + apiKeyDescription: string; + + masterPassword: Verification; + formPromise: Promise; + clientId: string; + clientSecret: string; + + constructor( + private userVerificationService: UserVerificationService, + private logService: LogService + ) {} + + async submit() { + try { + this.formPromise = this.userVerificationService + .buildRequest(this.masterPassword) + .then((request) => this.postKey(this.entityId, request)); + const response = await this.formPromise; + this.clientSecret = response.apiKey; + this.clientId = `${this.keyType}.${this.entityId}`; + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/apps/web/src/app/settings/billing-sync-key.component.html b/apps/web/src/app/settings/billing-sync-key.component.html new file mode 100644 index 0000000000..e7e46e637c --- /dev/null +++ b/apps/web/src/app/settings/billing-sync-key.component.html @@ -0,0 +1,69 @@ + diff --git a/apps/web/src/app/settings/billing-sync-key.component.ts b/apps/web/src/app/settings/billing-sync-key.component.ts new file mode 100644 index 0000000000..9b80037c2d --- /dev/null +++ b/apps/web/src/app/settings/billing-sync-key.component.ts @@ -0,0 +1,61 @@ +import { Component } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { OrganizationConnectionType } from "jslib-common/enums/organizationConnectionType"; +import { Utils } from "jslib-common/misc/utils"; +import { BillingSyncConfigApi } from "jslib-common/models/api/billingSyncConfigApi"; +import { BillingSyncConfigRequest } from "jslib-common/models/request/billingSyncConfigRequest"; +import { OrganizationConnectionRequest } from "jslib-common/models/request/organizationConnectionRequest"; +import { OrganizationConnectionResponse } from "jslib-common/models/response/organizationConnectionResponse"; + +@Component({ + selector: "app-billing-sync-key", + templateUrl: "billing-sync-key.component.html", +}) +export class BillingSyncKeyComponent { + entityId: string; + existingConnectionId: string; + billingSyncKey: string; + setParentConnection: (connection: OrganizationConnectionResponse) => void; + + formPromise: Promise> | Promise; + + constructor(private apiService: ApiService, private logService: LogService) {} + + async submit() { + try { + const request = new OrganizationConnectionRequest( + this.entityId, + OrganizationConnectionType.CloudBillingSync, + true, + new BillingSyncConfigRequest(this.billingSyncKey) + ); + if (this.existingConnectionId == null) { + this.formPromise = this.apiService.createOrganizationConnection( + request, + BillingSyncConfigApi + ); + } else { + this.formPromise = this.apiService.updateOrganizationConnection( + request, + BillingSyncConfigApi, + this.existingConnectionId + ); + } + const response = (await this + .formPromise) as OrganizationConnectionResponse; + this.existingConnectionId = response?.id; + this.billingSyncKey = response?.config?.billingSyncKey; + this.setParentConnection(response); + } catch (e) { + this.logService.error(e); + } + } + + async deleteConnection() { + this.formPromise = this.apiService.deleteOrganizationConnection(this.existingConnectionId); + await this.formPromise; + this.setParentConnection(null); + } +} diff --git a/apps/web/src/app/settings/change-email.component.html b/apps/web/src/app/settings/change-email.component.html new file mode 100644 index 0000000000..21a2918260 --- /dev/null +++ b/apps/web/src/app/settings/change-email.component.html @@ -0,0 +1,65 @@ +
+ + {{ "changeEmailTwoFactorWarning" | i18n }} + +
+
+
+ + +
+
+ + +
+
+
+ +
+

{{ "changeEmailDesc" | i18n: newEmail }}

+ {{ "loggedOutWarning" | i18n }} +
+
+
+ + +
+
+
+
+ + +
diff --git a/apps/web/src/app/settings/change-email.component.ts b/apps/web/src/app/settings/change-email.component.ts new file mode 100644 index 0000000000..b53ffb454c --- /dev/null +++ b/apps/web/src/app/settings/change-email.component.ts @@ -0,0 +1,102 @@ +import { Component, OnInit } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; +import { EmailRequest } from "jslib-common/models/request/emailRequest"; +import { EmailTokenRequest } from "jslib-common/models/request/emailTokenRequest"; + +@Component({ + selector: "app-change-email", + templateUrl: "change-email.component.html", +}) +export class ChangeEmailComponent implements OnInit { + masterPassword: string; + newEmail: string; + token: string; + tokenSent = false; + showTwoFactorEmailWarning = false; + + formPromise: Promise; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private cryptoService: CryptoService, + private messagingService: MessagingService, + private logService: LogService, + private stateService: StateService + ) {} + + async ngOnInit() { + const twoFactorProviders = await this.apiService.getTwoFactorProviders(); + this.showTwoFactorEmailWarning = twoFactorProviders.data.some( + (p) => p.type === TwoFactorProviderType.Email && p.enabled + ); + } + + async submit() { + const hasEncKey = await this.cryptoService.hasEncKey(); + if (!hasEncKey) { + this.platformUtilsService.showToast("error", null, this.i18nService.t("updateKey")); + return; + } + + this.newEmail = this.newEmail.trim().toLowerCase(); + if (!this.tokenSent) { + const request = new EmailTokenRequest(); + request.newEmail = this.newEmail; + request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null); + try { + this.formPromise = this.apiService.postEmailToken(request); + await this.formPromise; + this.tokenSent = true; + } catch (e) { + this.logService.error(e); + } + } else { + const request = new EmailRequest(); + request.token = this.token; + request.newEmail = this.newEmail; + request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null); + const kdf = await this.stateService.getKdfType(); + const kdfIterations = await this.stateService.getKdfIterations(); + const newKey = await this.cryptoService.makeKey( + this.masterPassword, + this.newEmail, + kdf, + kdfIterations + ); + request.newMasterPasswordHash = await this.cryptoService.hashPassword( + this.masterPassword, + newKey + ); + const newEncKey = await this.cryptoService.remakeEncKey(newKey); + request.key = newEncKey[1].encryptedString; + try { + this.formPromise = this.apiService.postEmail(request); + await this.formPromise; + this.reset(); + this.platformUtilsService.showToast( + "success", + this.i18nService.t("emailChanged"), + this.i18nService.t("logBackIn") + ); + this.messagingService.send("logout"); + } catch (e) { + this.logService.error(e); + } + } + } + + reset() { + this.token = this.newEmail = this.masterPassword = null; + this.tokenSent = false; + } +} diff --git a/apps/web/src/app/settings/change-kdf.component.html b/apps/web/src/app/settings/change-kdf.component.html new file mode 100644 index 0000000000..f5eae39be4 --- /dev/null +++ b/apps/web/src/app/settings/change-kdf.component.html @@ -0,0 +1,78 @@ +
+

{{ "encKeySettings" | i18n }}

+
+{{ "loggedOutWarning" | i18n }} +
+
+
+
+ + +
+
+
+
+
+
+ + + + + +
+
+
+
+ + + + + +
+
+
+
+
+

{{ "kdfIterationsDesc" | i18n: (recommendedKdfIterations | number) }}

+ {{ "warning" | i18n }}: {{ "kdfIterationsWarning" | i18n: (50000 | number) }} +
+
+
+
+ +
diff --git a/apps/web/src/app/settings/change-kdf.component.ts b/apps/web/src/app/settings/change-kdf.component.ts new file mode 100644 index 0000000000..dcc268ac7c --- /dev/null +++ b/apps/web/src/app/settings/change-kdf.component.ts @@ -0,0 +1,79 @@ +import { Component, OnInit } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { DEFAULT_KDF_ITERATIONS, KdfType } from "jslib-common/enums/kdfType"; +import { KdfRequest } from "jslib-common/models/request/kdfRequest"; + +@Component({ + selector: "app-change-kdf", + templateUrl: "change-kdf.component.html", +}) +export class ChangeKdfComponent implements OnInit { + masterPassword: string; + kdfIterations: number; + kdf = KdfType.PBKDF2_SHA256; + kdfOptions: any[] = []; + formPromise: Promise; + recommendedKdfIterations = DEFAULT_KDF_ITERATIONS; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private cryptoService: CryptoService, + private messagingService: MessagingService, + private logService: LogService, + private stateService: StateService + ) { + this.kdfOptions = [{ name: "PBKDF2 SHA-256", value: KdfType.PBKDF2_SHA256 }]; + } + + async ngOnInit() { + this.kdf = await this.stateService.getKdfType(); + this.kdfIterations = await this.stateService.getKdfIterations(); + } + + async submit() { + const hasEncKey = await this.cryptoService.hasEncKey(); + if (!hasEncKey) { + this.platformUtilsService.showToast("error", null, this.i18nService.t("updateKey")); + return; + } + + const request = new KdfRequest(); + request.kdf = this.kdf; + request.kdfIterations = this.kdfIterations; + request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null); + const email = await this.stateService.getEmail(); + const newKey = await this.cryptoService.makeKey( + this.masterPassword, + email, + this.kdf, + this.kdfIterations + ); + request.newMasterPasswordHash = await this.cryptoService.hashPassword( + this.masterPassword, + newKey + ); + const newEncKey = await this.cryptoService.remakeEncKey(newKey); + request.key = newEncKey[1].encryptedString; + try { + this.formPromise = this.apiService.postAccountKdf(request); + await this.formPromise; + this.platformUtilsService.showToast( + "success", + this.i18nService.t("encKeySettingsChanged"), + this.i18nService.t("logBackIn") + ); + this.messagingService.send("logout"); + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/apps/web/src/app/settings/change-password.component.html b/apps/web/src/app/settings/change-password.component.html new file mode 100644 index 0000000000..990d950604 --- /dev/null +++ b/apps/web/src/app/settings/change-password.component.html @@ -0,0 +1,94 @@ +
+

{{ "changeMasterPassword" | i18n }}

+
+ +{{ "loggedOutWarning" | i18n }} + + + +
+
+
+
+ + +
+
+
+
+
+
+ + + +
+
+
+
+ + +
+
+
+
+
+ + + + + +
+
+ +
diff --git a/apps/web/src/app/settings/change-password.component.ts b/apps/web/src/app/settings/change-password.component.ts new file mode 100644 index 0000000000..37246a840e --- /dev/null +++ b/apps/web/src/app/settings/change-password.component.ts @@ -0,0 +1,278 @@ +import { Component } from "@angular/core"; +import { Router } from "@angular/router"; + +import { ChangePasswordComponent as BaseChangePasswordComponent } from "jslib-angular/components/change-password.component"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { FolderService } from "jslib-common/abstractions/folder.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { KeyConnectorService } from "jslib-common/abstractions/keyConnector.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { SendService } from "jslib-common/abstractions/send.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { EmergencyAccessStatusType } from "jslib-common/enums/emergencyAccessStatusType"; +import { Utils } from "jslib-common/misc/utils"; +import { EncString } from "jslib-common/models/domain/encString"; +import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; +import { CipherWithIdRequest } from "jslib-common/models/request/cipherWithIdRequest"; +import { EmergencyAccessUpdateRequest } from "jslib-common/models/request/emergencyAccessUpdateRequest"; +import { FolderWithIdRequest } from "jslib-common/models/request/folderWithIdRequest"; +import { OrganizationUserResetPasswordEnrollmentRequest } from "jslib-common/models/request/organizationUserResetPasswordEnrollmentRequest"; +import { PasswordRequest } from "jslib-common/models/request/passwordRequest"; +import { SendWithIdRequest } from "jslib-common/models/request/sendWithIdRequest"; +import { UpdateKeyRequest } from "jslib-common/models/request/updateKeyRequest"; + +@Component({ + selector: "app-change-password", + templateUrl: "change-password.component.html", +}) +export class ChangePasswordComponent extends BaseChangePasswordComponent { + rotateEncKey = false; + currentMasterPassword: string; + + constructor( + i18nService: I18nService, + cryptoService: CryptoService, + messagingService: MessagingService, + stateService: StateService, + passwordGenerationService: PasswordGenerationService, + platformUtilsService: PlatformUtilsService, + policyService: PolicyService, + private folderService: FolderService, + private cipherService: CipherService, + private syncService: SyncService, + private apiService: ApiService, + private sendService: SendService, + private organizationService: OrganizationService, + private keyConnectorService: KeyConnectorService, + private router: Router + ) { + super( + i18nService, + cryptoService, + messagingService, + passwordGenerationService, + platformUtilsService, + policyService, + stateService + ); + } + + async ngOnInit() { + if (await this.keyConnectorService.getUsesKeyConnector()) { + this.router.navigate(["/settings/security/two-factor"]); + } + await super.ngOnInit(); + } + + async rotateEncKeyClicked() { + if (this.rotateEncKey) { + const ciphers = await this.cipherService.getAllDecrypted(); + let hasOldAttachments = false; + if (ciphers != null) { + for (let i = 0; i < ciphers.length; i++) { + if (ciphers[i].organizationId == null && ciphers[i].hasOldAttachments) { + hasOldAttachments = true; + break; + } + } + } + + if (hasOldAttachments) { + const learnMore = await this.platformUtilsService.showDialog( + this.i18nService.t("oldAttachmentsNeedFixDesc"), + null, + this.i18nService.t("learnMore"), + this.i18nService.t("close"), + "warning" + ); + if (learnMore) { + this.platformUtilsService.launchUri( + "https://bitwarden.com/help/attachments/#add-storage-space" + ); + } + this.rotateEncKey = false; + return; + } + + const result = await this.platformUtilsService.showDialog( + this.i18nService.t("updateEncryptionKeyWarning") + + " " + + this.i18nService.t("updateEncryptionKeyExportWarning") + + " " + + this.i18nService.t("rotateEncKeyConfirmation"), + this.i18nService.t("rotateEncKeyTitle"), + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!result) { + this.rotateEncKey = false; + } + } + } + + async submit() { + const hasEncKey = await this.cryptoService.hasEncKey(); + if (!hasEncKey) { + this.platformUtilsService.showToast("error", null, this.i18nService.t("updateKey")); + return; + } + + await super.submit(); + } + + async setupSubmitActions() { + if (this.currentMasterPassword == null || this.currentMasterPassword === "") { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("masterPassRequired") + ); + return false; + } + + if (this.rotateEncKey) { + await this.syncService.fullSync(true); + } + + return super.setupSubmitActions(); + } + + async performSubmitActions( + newMasterPasswordHash: string, + newKey: SymmetricCryptoKey, + newEncKey: [SymmetricCryptoKey, EncString] + ) { + const request = new PasswordRequest(); + request.masterPasswordHash = await this.cryptoService.hashPassword( + this.currentMasterPassword, + null + ); + request.newMasterPasswordHash = newMasterPasswordHash; + request.key = newEncKey[1].encryptedString; + + try { + if (this.rotateEncKey) { + this.formPromise = this.apiService.postPassword(request).then(() => { + return this.updateKey(newKey, request.newMasterPasswordHash); + }); + } else { + this.formPromise = this.apiService.postPassword(request); + } + + await this.formPromise; + + this.platformUtilsService.showToast( + "success", + this.i18nService.t("masterPasswordChanged"), + this.i18nService.t("logBackIn") + ); + this.messagingService.send("logout"); + } catch { + this.platformUtilsService.showToast("error", null, this.i18nService.t("errorOccurred")); + } + } + + private async updateKey(key: SymmetricCryptoKey, masterPasswordHash: string) { + const encKey = await this.cryptoService.makeEncKey(key); + const privateKey = await this.cryptoService.getPrivateKey(); + let encPrivateKey: EncString = null; + if (privateKey != null) { + encPrivateKey = await this.cryptoService.encrypt(privateKey, encKey[0]); + } + const request = new UpdateKeyRequest(); + request.privateKey = encPrivateKey != null ? encPrivateKey.encryptedString : null; + request.key = encKey[1].encryptedString; + request.masterPasswordHash = masterPasswordHash; + + const folders = await this.folderService.getAllDecrypted(); + for (let i = 0; i < folders.length; i++) { + if (folders[i].id == null) { + continue; + } + const folder = await this.folderService.encrypt(folders[i], encKey[0]); + request.folders.push(new FolderWithIdRequest(folder)); + } + + const ciphers = await this.cipherService.getAllDecrypted(); + for (let i = 0; i < ciphers.length; i++) { + if (ciphers[i].organizationId != null) { + continue; + } + + const cipher = await this.cipherService.encrypt(ciphers[i], encKey[0]); + request.ciphers.push(new CipherWithIdRequest(cipher)); + } + + const sends = await this.sendService.getAll(); + await Promise.all( + sends.map(async (send) => { + const cryptoKey = await this.cryptoService.decryptToBytes(send.key, null); + send.key = (await this.cryptoService.encrypt(cryptoKey, encKey[0])) ?? send.key; + request.sends.push(new SendWithIdRequest(send)); + }) + ); + + await this.apiService.postAccountKey(request); + + await this.updateEmergencyAccesses(encKey[0]); + + await this.updateAllResetPasswordKeys(encKey[0]); + } + + private async updateEmergencyAccesses(encKey: SymmetricCryptoKey) { + const emergencyAccess = await this.apiService.getEmergencyAccessTrusted(); + const allowedStatuses = [ + EmergencyAccessStatusType.Confirmed, + EmergencyAccessStatusType.RecoveryInitiated, + EmergencyAccessStatusType.RecoveryApproved, + ]; + + const filteredAccesses = emergencyAccess.data.filter((d) => allowedStatuses.includes(d.status)); + + for (const details of filteredAccesses) { + const publicKeyResponse = await this.apiService.getUserPublicKey(details.granteeId); + const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey); + + const encryptedKey = await this.cryptoService.rsaEncrypt(encKey.key, publicKey.buffer); + + const updateRequest = new EmergencyAccessUpdateRequest(); + updateRequest.type = details.type; + updateRequest.waitTimeDays = details.waitTimeDays; + updateRequest.keyEncrypted = encryptedKey.encryptedString; + + await this.apiService.putEmergencyAccess(details.id, updateRequest); + } + } + + private async updateAllResetPasswordKeys(encKey: SymmetricCryptoKey) { + const orgs = await this.organizationService.getAll(); + + for (const org of orgs) { + // If not already enrolled, skip + if (!org.resetPasswordEnrolled) { + continue; + } + + // Retrieve public key + const response = await this.apiService.getOrganizationKeys(org.id); + const publicKey = Utils.fromB64ToArray(response?.publicKey); + + // Re-enroll - encrpyt user's encKey.key with organization public key + const encryptedKey = await this.cryptoService.rsaEncrypt(encKey.key, publicKey.buffer); + + // Create/Execute request + const request = new OrganizationUserResetPasswordEnrollmentRequest(); + request.resetPasswordKey = encryptedKey.encryptedString; + + await this.apiService.putOrganizationUserResetPasswordEnrollment(org.id, org.userId, request); + } + } +} diff --git a/apps/web/src/app/settings/create-organization.component.html b/apps/web/src/app/settings/create-organization.component.html new file mode 100644 index 0000000000..f5b4219aa6 --- /dev/null +++ b/apps/web/src/app/settings/create-organization.component.html @@ -0,0 +1,11 @@ +
+
+
+ +

{{ "newOrganizationDesc" | i18n }}

+ +
+
+
diff --git a/apps/web/src/app/settings/create-organization.component.ts b/apps/web/src/app/settings/create-organization.component.ts new file mode 100644 index 0000000000..db0dc964e8 --- /dev/null +++ b/apps/web/src/app/settings/create-organization.component.ts @@ -0,0 +1,34 @@ +import { Component, OnInit, ViewChild } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; +import { first } from "rxjs/operators"; + +import { PlanType } from "jslib-common/enums/planType"; +import { ProductType } from "jslib-common/enums/productType"; + +import { OrganizationPlansComponent } from "./organization-plans.component"; + +@Component({ + selector: "app-create-organization", + templateUrl: "create-organization.component.html", +}) +export class CreateOrganizationComponent implements OnInit { + @ViewChild(OrganizationPlansComponent, { static: true }) + orgPlansComponent: OrganizationPlansComponent; + + constructor(private route: ActivatedRoute) {} + + ngOnInit() { + this.route.queryParams.pipe(first()).subscribe(async (qParams) => { + if (qParams.plan === "families") { + this.orgPlansComponent.plan = PlanType.FamiliesAnnually; + this.orgPlansComponent.product = ProductType.Families; + } else if (qParams.plan === "teams") { + this.orgPlansComponent.plan = PlanType.TeamsAnnually; + this.orgPlansComponent.product = ProductType.Teams; + } else if (qParams.plan === "enterprise") { + this.orgPlansComponent.plan = PlanType.EnterpriseAnnually; + this.orgPlansComponent.product = ProductType.Enterprise; + } + }); + } +} diff --git a/apps/web/src/app/settings/deauthorize-sessions.component.html b/apps/web/src/app/settings/deauthorize-sessions.component.html new file mode 100644 index 0000000000..ac7dc7ba02 --- /dev/null +++ b/apps/web/src/app/settings/deauthorize-sessions.component.html @@ -0,0 +1,38 @@ + diff --git a/apps/web/src/app/settings/deauthorize-sessions.component.ts b/apps/web/src/app/settings/deauthorize-sessions.component.ts new file mode 100644 index 0000000000..f46872f5e8 --- /dev/null +++ b/apps/web/src/app/settings/deauthorize-sessions.component.ts @@ -0,0 +1,44 @@ +import { Component } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; +import { Verification } from "jslib-common/types/verification"; + +@Component({ + selector: "app-deauthorize-sessions", + templateUrl: "deauthorize-sessions.component.html", +}) +export class DeauthorizeSessionsComponent { + masterPassword: Verification; + formPromise: Promise; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private userVerificationService: UserVerificationService, + private messagingService: MessagingService, + private logService: LogService + ) {} + + async submit() { + try { + this.formPromise = this.userVerificationService + .buildRequest(this.masterPassword) + .then((request) => this.apiService.postSecurityStamp(request)); + await this.formPromise; + this.platformUtilsService.showToast( + "success", + this.i18nService.t("sessionsDeauthorized"), + this.i18nService.t("logBackIn") + ); + this.messagingService.send("logout"); + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/apps/web/src/app/settings/delete-account.component.html b/apps/web/src/app/settings/delete-account.component.html new file mode 100644 index 0000000000..6d53b4170f --- /dev/null +++ b/apps/web/src/app/settings/delete-account.component.html @@ -0,0 +1,38 @@ + diff --git a/apps/web/src/app/settings/delete-account.component.ts b/apps/web/src/app/settings/delete-account.component.ts new file mode 100644 index 0000000000..4a4e1131b1 --- /dev/null +++ b/apps/web/src/app/settings/delete-account.component.ts @@ -0,0 +1,44 @@ +import { Component } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; +import { Verification } from "jslib-common/types/verification"; + +@Component({ + selector: "app-delete-account", + templateUrl: "delete-account.component.html", +}) +export class DeleteAccountComponent { + masterPassword: Verification; + formPromise: Promise; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private userVerificationService: UserVerificationService, + private messagingService: MessagingService, + private logService: LogService + ) {} + + async submit() { + try { + this.formPromise = this.userVerificationService + .buildRequest(this.masterPassword) + .then((request) => this.apiService.deleteAccount(request)); + await this.formPromise; + this.platformUtilsService.showToast( + "success", + this.i18nService.t("accountDeleted"), + this.i18nService.t("accountDeletedDesc") + ); + this.messagingService.send("logout"); + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/apps/web/src/app/settings/domain-rules.component.html b/apps/web/src/app/settings/domain-rules.component.html new file mode 100644 index 0000000000..ce9b103d20 --- /dev/null +++ b/apps/web/src/app/settings/domain-rules.component.html @@ -0,0 +1,108 @@ + +

{{ "domainRulesDesc" | i18n }}

+
+

{{ "customEqDomains" | i18n }}

+

+ + {{ "loading" | i18n }} +

+ +
+
+ + +
+ +
+ + {{ "newCustomDomainDesc" | i18n }} +
+ +

{{ "globalEqDomains" | i18n }}

+

+ + {{ "loading" | i18n }} +

+ + + + + + + +
{{ d.domains }} + +
+ +
diff --git a/apps/web/src/app/settings/domain-rules.component.ts b/apps/web/src/app/settings/domain-rules.component.ts new file mode 100644 index 0000000000..54fea56202 --- /dev/null +++ b/apps/web/src/app/settings/domain-rules.component.ts @@ -0,0 +1,87 @@ +import { Component, OnInit } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { UpdateDomainsRequest } from "jslib-common/models/request/updateDomainsRequest"; + +@Component({ + selector: "app-domain-rules", + templateUrl: "domain-rules.component.html", +}) +export class DomainRulesComponent implements OnInit { + loading = true; + custom: string[] = []; + global: any[] = []; + formPromise: Promise; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private logService: LogService + ) {} + + async ngOnInit() { + const response = await this.apiService.getSettingsDomains(); + this.loading = false; + if (response.equivalentDomains != null) { + this.custom = response.equivalentDomains.map((d) => d.join(", ")); + } + if (response.globalEquivalentDomains != null) { + this.global = response.globalEquivalentDomains.map((d) => { + return { + domains: d.domains.join(", "), + excluded: d.excluded, + key: d.type, + }; + }); + } + } + + toggleExcluded(globalDomain: any) { + globalDomain.excluded = !globalDomain.excluded; + } + + customize(globalDomain: any) { + globalDomain.excluded = true; + this.custom.push(globalDomain.domains); + } + + remove(index: number) { + this.custom.splice(index, 1); + } + + add() { + this.custom.push(""); + } + + async submit() { + const request = new UpdateDomainsRequest(); + request.excludedGlobalEquivalentDomains = this.global + .filter((d) => d.excluded) + .map((d) => d.key); + if (request.excludedGlobalEquivalentDomains.length === 0) { + request.excludedGlobalEquivalentDomains = null; + } + request.equivalentDomains = this.custom + .filter((d) => d != null && d.trim() !== "") + .map((d) => d.split(",").map((d2) => d2.trim())); + if (request.equivalentDomains.length === 0) { + request.equivalentDomains = null; + } + + try { + this.formPromise = this.apiService.putSettingsDomains(request); + await this.formPromise; + this.platformUtilsService.showToast("success", null, this.i18nService.t("domainsUpdated")); + } catch (e) { + this.logService.error(e); + } + } + + indexTrackBy(index: number, obj: any): any { + return index; + } +} diff --git a/apps/web/src/app/settings/emergency-access-add-edit.component.html b/apps/web/src/app/settings/emergency-access-add-edit.component.html new file mode 100644 index 0000000000..b66a745186 --- /dev/null +++ b/apps/web/src/app/settings/emergency-access-add-edit.component.html @@ -0,0 +1,146 @@ + diff --git a/apps/web/src/app/settings/emergency-access-add-edit.component.ts b/apps/web/src/app/settings/emergency-access-add-edit.component.ts new file mode 100644 index 0000000000..a89136da4d --- /dev/null +++ b/apps/web/src/app/settings/emergency-access-add-edit.component.ts @@ -0,0 +1,103 @@ +import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { EmergencyAccessType } from "jslib-common/enums/emergencyAccessType"; +import { EmergencyAccessInviteRequest } from "jslib-common/models/request/emergencyAccessInviteRequest"; +import { EmergencyAccessUpdateRequest } from "jslib-common/models/request/emergencyAccessUpdateRequest"; + +@Component({ + selector: "emergency-access-add-edit", + templateUrl: "emergency-access-add-edit.component.html", +}) +export class EmergencyAccessAddEditComponent implements OnInit { + @Input() name: string; + @Input() emergencyAccessId: string; + @Output() onSaved = new EventEmitter(); + @Output() onDeleted = new EventEmitter(); + + loading = true; + readOnly = false; + editMode = false; + title: string; + email: string; + type: EmergencyAccessType = EmergencyAccessType.View; + + formPromise: Promise; + + emergencyAccessType = EmergencyAccessType; + waitTimes: { name: string; value: number }[]; + waitTime: number; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private logService: LogService + ) {} + + async ngOnInit() { + this.editMode = this.loading = this.emergencyAccessId != null; + + this.waitTimes = [ + { name: this.i18nService.t("oneDay"), value: 1 }, + { name: this.i18nService.t("days", "2"), value: 2 }, + { name: this.i18nService.t("days", "7"), value: 7 }, + { name: this.i18nService.t("days", "14"), value: 14 }, + { name: this.i18nService.t("days", "30"), value: 30 }, + { name: this.i18nService.t("days", "90"), value: 90 }, + ]; + + if (this.editMode) { + this.editMode = true; + this.title = this.i18nService.t("editEmergencyContact"); + try { + const emergencyAccess = await this.apiService.getEmergencyAccess(this.emergencyAccessId); + this.type = emergencyAccess.type; + this.waitTime = emergencyAccess.waitTimeDays; + } catch (e) { + this.logService.error(e); + } + } else { + this.title = this.i18nService.t("inviteEmergencyContact"); + this.waitTime = this.waitTimes[2].value; + } + + this.loading = false; + } + + async submit() { + try { + if (this.editMode) { + const request = new EmergencyAccessUpdateRequest(); + request.type = this.type; + request.waitTimeDays = this.waitTime; + + this.formPromise = this.apiService.putEmergencyAccess(this.emergencyAccessId, request); + } else { + const request = new EmergencyAccessInviteRequest(); + request.email = this.email.trim(); + request.type = this.type; + request.waitTimeDays = this.waitTime; + + this.formPromise = this.apiService.postEmergencyAccessInvite(request); + } + + await this.formPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t(this.editMode ? "editedUserId" : "invitedUsers", this.name) + ); + this.onSaved.emit(); + } catch (e) { + this.logService.error(e); + } + } + + async delete() { + this.onDeleted.emit(); + } +} diff --git a/apps/web/src/app/settings/emergency-access-attachments.component.ts b/apps/web/src/app/settings/emergency-access-attachments.component.ts new file mode 100644 index 0000000000..a388c64dc8 --- /dev/null +++ b/apps/web/src/app/settings/emergency-access-attachments.component.ts @@ -0,0 +1,49 @@ +import { Component } from "@angular/core"; + +import { AttachmentsComponent as BaseAttachmentsComponent } from "jslib-angular/components/attachments.component"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { AttachmentView } from "jslib-common/models/view/attachmentView"; + +@Component({ + selector: "emergency-access-attachments", + templateUrl: "../vault/attachments.component.html", +}) +export class EmergencyAccessAttachmentsComponent extends BaseAttachmentsComponent { + viewOnly = true; + canAccessAttachments = true; + + constructor( + cipherService: CipherService, + i18nService: I18nService, + cryptoService: CryptoService, + stateService: StateService, + platformUtilsService: PlatformUtilsService, + apiService: ApiService, + logService: LogService + ) { + super( + cipherService, + i18nService, + cryptoService, + platformUtilsService, + apiService, + window, + logService, + stateService + ); + } + + protected async init() { + // Do nothing since cipher is already decoded + } + + protected showFixOldAttachments(attachment: AttachmentView) { + return false; + } +} diff --git a/apps/web/src/app/settings/emergency-access-confirm.component.html b/apps/web/src/app/settings/emergency-access-confirm.component.html new file mode 100644 index 0000000000..87cc0d970a --- /dev/null +++ b/apps/web/src/app/settings/emergency-access-confirm.component.html @@ -0,0 +1,52 @@ + diff --git a/apps/web/src/app/settings/emergency-access-confirm.component.ts b/apps/web/src/app/settings/emergency-access-confirm.component.ts new file mode 100644 index 0000000000..1e19a3808c --- /dev/null +++ b/apps/web/src/app/settings/emergency-access-confirm.component.ts @@ -0,0 +1,62 @@ +import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { Utils } from "jslib-common/misc/utils"; + +@Component({ + selector: "emergency-access-confirm", + templateUrl: "emergency-access-confirm.component.html", +}) +export class EmergencyAccessConfirmComponent implements OnInit { + @Input() name: string; + @Input() userId: string; + @Input() emergencyAccessId: string; + @Input() formPromise: Promise; + @Output() onConfirmed = new EventEmitter(); + + dontAskAgain = false; + loading = true; + fingerprint: string; + + constructor( + private apiService: ApiService, + private cryptoService: CryptoService, + private stateService: StateService, + private logService: LogService + ) {} + + async ngOnInit() { + try { + const publicKeyResponse = await this.apiService.getUserPublicKey(this.userId); + if (publicKeyResponse != null) { + const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey); + const fingerprint = await this.cryptoService.getFingerprint(this.userId, publicKey.buffer); + if (fingerprint != null) { + this.fingerprint = fingerprint.join("-"); + } + } + } catch (e) { + this.logService.error(e); + } + this.loading = false; + } + + async submit() { + if (this.loading) { + return; + } + + if (this.dontAskAgain) { + await this.stateService.setAutoConfirmFingerprints(true); + } + + try { + this.onConfirmed.emit(); + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/apps/web/src/app/settings/emergency-access-takeover.component.html b/apps/web/src/app/settings/emergency-access-takeover.component.html new file mode 100644 index 0000000000..5bbd36df83 --- /dev/null +++ b/apps/web/src/app/settings/emergency-access-takeover.component.html @@ -0,0 +1,79 @@ + diff --git a/apps/web/src/app/settings/emergency-access-takeover.component.ts b/apps/web/src/app/settings/emergency-access-takeover.component.ts new file mode 100644 index 0000000000..4cb0a461ff --- /dev/null +++ b/apps/web/src/app/settings/emergency-access-takeover.component.ts @@ -0,0 +1,111 @@ +import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core"; + +import { ChangePasswordComponent } from "jslib-angular/components/change-password.component"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { KdfType } from "jslib-common/enums/kdfType"; +import { PolicyData } from "jslib-common/models/data/policyData"; +import { Policy } from "jslib-common/models/domain/policy"; +import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; +import { EmergencyAccessPasswordRequest } from "jslib-common/models/request/emergencyAccessPasswordRequest"; +import { PolicyResponse } from "jslib-common/models/response/policyResponse"; + +@Component({ + selector: "emergency-access-takeover", + templateUrl: "emergency-access-takeover.component.html", +}) +export class EmergencyAccessTakeoverComponent extends ChangePasswordComponent implements OnInit { + @Output() onDone = new EventEmitter(); + @Input() emergencyAccessId: string; + @Input() name: string; + @Input() email: string; + @Input() kdf: KdfType; + @Input() kdfIterations: number; + + formPromise: Promise; + + constructor( + i18nService: I18nService, + cryptoService: CryptoService, + messagingService: MessagingService, + stateService: StateService, + passwordGenerationService: PasswordGenerationService, + platformUtilsService: PlatformUtilsService, + policyService: PolicyService, + private apiService: ApiService, + private logService: LogService + ) { + super( + i18nService, + cryptoService, + messagingService, + passwordGenerationService, + platformUtilsService, + policyService, + stateService + ); + } + + async ngOnInit() { + const response = await this.apiService.getEmergencyGrantorPolicies(this.emergencyAccessId); + if (response.data != null && response.data.length > 0) { + const policies = response.data.map( + (policyResponse: PolicyResponse) => new Policy(new PolicyData(policyResponse)) + ); + this.enforcedPolicyOptions = await this.policyService.getMasterPasswordPolicyOptions( + policies + ); + } + } + + async submit() { + if (!(await this.strongPassword())) { + return; + } + + const takeoverResponse = await this.apiService.postEmergencyAccessTakeover( + this.emergencyAccessId + ); + + const oldKeyBuffer = await this.cryptoService.rsaDecrypt(takeoverResponse.keyEncrypted); + const oldEncKey = new SymmetricCryptoKey(oldKeyBuffer); + + if (oldEncKey == null) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("unexpectedError") + ); + return; + } + + const key = await this.cryptoService.makeKey( + this.masterPassword, + this.email, + takeoverResponse.kdf, + takeoverResponse.kdfIterations + ); + const masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, key); + + const encKey = await this.cryptoService.remakeEncKey(key, oldEncKey); + + const request = new EmergencyAccessPasswordRequest(); + request.newMasterPasswordHash = masterPasswordHash; + request.key = encKey[1].encryptedString; + + this.apiService.postEmergencyAccessPassword(this.emergencyAccessId, request); + + try { + this.onDone.emit(); + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/apps/web/src/app/settings/emergency-access-view.component.html b/apps/web/src/app/settings/emergency-access-view.component.html new file mode 100644 index 0000000000..1b74204bde --- /dev/null +++ b/apps/web/src/app/settings/emergency-access-view.component.html @@ -0,0 +1,72 @@ + +
+ + + + + + + + + +
+ + + {{ + c.name + }} + + + {{ "shared" | i18n }} + + + + {{ "attachments" | i18n }} + +
+ {{ c.subTitle }} +
+ +
+
+ + + {{ "loading" | i18n }} + +
+ + diff --git a/apps/web/src/app/settings/emergency-access-view.component.ts b/apps/web/src/app/settings/emergency-access-view.component.ts new file mode 100644 index 0000000000..7abb95e7c7 --- /dev/null +++ b/apps/web/src/app/settings/emergency-access-view.component.ts @@ -0,0 +1,102 @@ +import { Component, OnInit, ViewChild, ViewContainerRef } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { CipherData } from "jslib-common/models/data/cipherData"; +import { Cipher } from "jslib-common/models/domain/cipher"; +import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; +import { EmergencyAccessViewResponse } from "jslib-common/models/response/emergencyAccessResponse"; +import { CipherView } from "jslib-common/models/view/cipherView"; + +import { EmergencyAccessAttachmentsComponent } from "./emergency-access-attachments.component"; +import { EmergencyAddEditComponent } from "./emergency-add-edit.component"; + +@Component({ + selector: "emergency-access-view", + templateUrl: "emergency-access-view.component.html", +}) +export class EmergencyAccessViewComponent implements OnInit { + @ViewChild("cipherAddEdit", { read: ViewContainerRef, static: true }) + cipherAddEditModalRef: ViewContainerRef; + @ViewChild("attachments", { read: ViewContainerRef, static: true }) + attachmentsModalRef: ViewContainerRef; + + id: string; + ciphers: CipherView[] = []; + loaded = false; + + constructor( + private cipherService: CipherService, + private cryptoService: CryptoService, + private modalService: ModalService, + private router: Router, + private route: ActivatedRoute, + private apiService: ApiService + ) {} + + ngOnInit() { + this.route.params.subscribe((qParams) => { + if (qParams.id == null) { + return this.router.navigate(["settings/emergency-access"]); + } + + this.id = qParams.id; + + this.load(); + }); + } + + async selectCipher(cipher: CipherView) { + // eslint-disable-next-line + const [_, childComponent] = await this.modalService.openViewRef( + EmergencyAddEditComponent, + this.cipherAddEditModalRef, + (comp) => { + comp.cipherId = cipher == null ? null : cipher.id; + comp.cipher = cipher; + } + ); + + return childComponent; + } + + async load() { + const response = await this.apiService.postEmergencyAccessView(this.id); + this.ciphers = await this.getAllCiphers(response); + this.loaded = true; + } + + async viewAttachments(cipher: CipherView) { + await this.modalService.openViewRef( + EmergencyAccessAttachmentsComponent, + this.attachmentsModalRef, + (comp) => { + comp.cipher = cipher; + comp.emergencyAccessId = this.id; + } + ); + } + + protected async getAllCiphers(response: EmergencyAccessViewResponse): Promise { + const ciphers = response.ciphers; + + const decCiphers: CipherView[] = []; + const oldKeyBuffer = await this.cryptoService.rsaDecrypt(response.keyEncrypted); + const oldEncKey = new SymmetricCryptoKey(oldKeyBuffer); + + const promises: any[] = []; + ciphers.forEach((cipherResponse) => { + const cipherData = new CipherData(cipherResponse); + const cipher = new Cipher(cipherData); + promises.push(cipher.decrypt(oldEncKey).then((c) => decCiphers.push(c))); + }); + + await Promise.all(promises); + decCiphers.sort(this.cipherService.getLocaleSortingFunction()); + + return decCiphers; + } +} diff --git a/apps/web/src/app/settings/emergency-access.component.html b/apps/web/src/app/settings/emergency-access.component.html new file mode 100644 index 0000000000..5d3778002f --- /dev/null +++ b/apps/web/src/app/settings/emergency-access.component.html @@ -0,0 +1,254 @@ + +

+ {{ "emergencyAccessDesc" | i18n }} + + {{ "learnMore" | i18n }}. + +

+ +

+ {{ "warning" | i18n }}: {{ "emergencyAccessOwnerWarning" | i18n }} +

+ + + + + + + + + + + +
+ + + + {{ c.email }} + {{ "invited" | i18n }} + {{ + "accepted" | i18n + }} + {{ "emergencyAccessRecoveryInitiated" | i18n }} + {{ "emergencyAccessRecoveryApproved" | i18n }} + + {{ + "view" | i18n + }} + {{ + "takeover" | i18n + }} + + {{ c.name }} + + +
+ +

{{ "noTrustedContacts" | i18n }}

+ + + + + + + + + + + +
+ + + + {{ c.email }} + {{ "invited" | i18n }} + {{ + "accepted" | i18n + }} + {{ "emergencyAccessRecoveryInitiated" | i18n }} + {{ "emergencyAccessRecoveryApproved" | i18n }} + + {{ + "view" | i18n + }} + {{ + "takeover" | i18n + }} + + {{ c.name }} + + +
+ +

{{ "noGrantedAccess" | i18n }}

+ + + + diff --git a/apps/web/src/app/settings/emergency-access.component.ts b/apps/web/src/app/settings/emergency-access.component.ts new file mode 100644 index 0000000000..e80bec830e --- /dev/null +++ b/apps/web/src/app/settings/emergency-access.component.ts @@ -0,0 +1,311 @@ +import { Component, OnInit, ViewChild, ViewContainerRef } from "@angular/core"; + +import { UserNamePipe } from "jslib-angular/pipes/user-name.pipe"; +import { ModalService } from "jslib-angular/services/modal.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { EmergencyAccessStatusType } from "jslib-common/enums/emergencyAccessStatusType"; +import { EmergencyAccessType } from "jslib-common/enums/emergencyAccessType"; +import { Utils } from "jslib-common/misc/utils"; +import { EmergencyAccessConfirmRequest } from "jslib-common/models/request/emergencyAccessConfirmRequest"; +import { + EmergencyAccessGranteeDetailsResponse, + EmergencyAccessGrantorDetailsResponse, +} from "jslib-common/models/response/emergencyAccessResponse"; + +import { EmergencyAccessAddEditComponent } from "./emergency-access-add-edit.component"; +import { EmergencyAccessConfirmComponent } from "./emergency-access-confirm.component"; +import { EmergencyAccessTakeoverComponent } from "./emergency-access-takeover.component"; + +@Component({ + selector: "emergency-access", + templateUrl: "emergency-access.component.html", +}) +export class EmergencyAccessComponent implements OnInit { + @ViewChild("addEdit", { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef; + @ViewChild("takeoverTemplate", { read: ViewContainerRef, static: true }) + takeoverModalRef: ViewContainerRef; + @ViewChild("confirmTemplate", { read: ViewContainerRef, static: true }) + confirmModalRef: ViewContainerRef; + + canAccessPremium: boolean; + trustedContacts: EmergencyAccessGranteeDetailsResponse[]; + grantedContacts: EmergencyAccessGrantorDetailsResponse[]; + emergencyAccessType = EmergencyAccessType; + emergencyAccessStatusType = EmergencyAccessStatusType; + actionPromise: Promise; + isOrganizationOwner: boolean; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private modalService: ModalService, + private platformUtilsService: PlatformUtilsService, + private cryptoService: CryptoService, + private messagingService: MessagingService, + private userNamePipe: UserNamePipe, + private logService: LogService, + private stateService: StateService, + private organizationService: OrganizationService + ) {} + + async ngOnInit() { + this.canAccessPremium = await this.stateService.getCanAccessPremium(); + const orgs = await this.organizationService.getAll(); + this.isOrganizationOwner = orgs.some((o) => o.isOwner); + this.load(); + } + + async load() { + this.trustedContacts = (await this.apiService.getEmergencyAccessTrusted()).data; + this.grantedContacts = (await this.apiService.getEmergencyAccessGranted()).data; + } + + async premiumRequired() { + if (!this.canAccessPremium) { + this.messagingService.send("premiumRequired"); + return; + } + } + + async edit(details: EmergencyAccessGranteeDetailsResponse) { + const [modal] = await this.modalService.openViewRef( + EmergencyAccessAddEditComponent, + this.addEditModalRef, + (comp) => { + comp.name = this.userNamePipe.transform(details); + comp.emergencyAccessId = details?.id; + comp.readOnly = !this.canAccessPremium; + comp.onSaved.subscribe(() => { + modal.close(); + this.load(); + }); + comp.onDeleted.subscribe(() => { + modal.close(); + this.remove(details); + }); + } + ); + } + + invite() { + this.edit(null); + } + + async reinvite(contact: EmergencyAccessGranteeDetailsResponse) { + if (this.actionPromise != null) { + return; + } + this.actionPromise = this.apiService.postEmergencyAccessReinvite(contact.id); + await this.actionPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("hasBeenReinvited", contact.email) + ); + this.actionPromise = null; + } + + async confirm(contact: EmergencyAccessGranteeDetailsResponse) { + function updateUser() { + contact.status = EmergencyAccessStatusType.Confirmed; + } + + if (this.actionPromise != null) { + return; + } + + const autoConfirm = await this.stateService.getAutoConfirmFingerPrints(); + if (autoConfirm == null || !autoConfirm) { + const [modal] = await this.modalService.openViewRef( + EmergencyAccessConfirmComponent, + this.confirmModalRef, + (comp) => { + comp.name = this.userNamePipe.transform(contact); + comp.emergencyAccessId = contact.id; + comp.userId = contact?.granteeId; + comp.onConfirmed.subscribe(async () => { + modal.close(); + + comp.formPromise = this.doConfirmation(contact); + await comp.formPromise; + + updateUser(); + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("hasBeenConfirmed", this.userNamePipe.transform(contact)) + ); + }); + } + ); + return; + } + + this.actionPromise = this.doConfirmation(contact); + await this.actionPromise; + updateUser(); + + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("hasBeenConfirmed", this.userNamePipe.transform(contact)) + ); + this.actionPromise = null; + } + + async remove( + details: EmergencyAccessGranteeDetailsResponse | EmergencyAccessGrantorDetailsResponse + ) { + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("removeUserConfirmation"), + this.userNamePipe.transform(details), + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!confirmed) { + return false; + } + + try { + await this.apiService.deleteEmergencyAccess(details.id); + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("removedUserId", this.userNamePipe.transform(details)) + ); + + if (details instanceof EmergencyAccessGranteeDetailsResponse) { + this.removeGrantee(details); + } else { + this.removeGrantor(details); + } + } catch (e) { + this.logService.error(e); + } + } + + async requestAccess(details: EmergencyAccessGrantorDetailsResponse) { + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("requestAccessConfirmation", details.waitTimeDays.toString()), + this.userNamePipe.transform(details), + this.i18nService.t("requestAccess"), + this.i18nService.t("no"), + "warning" + ); + + if (!confirmed) { + return false; + } + + await this.apiService.postEmergencyAccessInitiate(details.id); + + details.status = EmergencyAccessStatusType.RecoveryInitiated; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("requestSent", this.userNamePipe.transform(details)) + ); + } + + async approve(details: EmergencyAccessGranteeDetailsResponse) { + const type = this.i18nService.t( + details.type === EmergencyAccessType.View ? "view" : "takeover" + ); + + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("approveAccessConfirmation", this.userNamePipe.transform(details), type), + this.userNamePipe.transform(details), + this.i18nService.t("approve"), + this.i18nService.t("no"), + "warning" + ); + + if (!confirmed) { + return false; + } + + await this.apiService.postEmergencyAccessApprove(details.id); + details.status = EmergencyAccessStatusType.RecoveryApproved; + + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("emergencyApproved", this.userNamePipe.transform(details)) + ); + } + + async reject(details: EmergencyAccessGranteeDetailsResponse) { + await this.apiService.postEmergencyAccessReject(details.id); + details.status = EmergencyAccessStatusType.Confirmed; + + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("emergencyRejected", this.userNamePipe.transform(details)) + ); + } + + async takeover(details: EmergencyAccessGrantorDetailsResponse) { + const [modal] = await this.modalService.openViewRef( + EmergencyAccessTakeoverComponent, + this.takeoverModalRef, + (comp) => { + comp.name = this.userNamePipe.transform(details); + comp.email = details.email; + comp.emergencyAccessId = details != null ? details.id : null; + + comp.onDone.subscribe(() => { + modal.close(); + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("passwordResetFor", this.userNamePipe.transform(details)) + ); + }); + } + ); + } + + private removeGrantee(details: EmergencyAccessGranteeDetailsResponse) { + const index = this.trustedContacts.indexOf(details); + if (index > -1) { + this.trustedContacts.splice(index, 1); + } + } + + private removeGrantor(details: EmergencyAccessGrantorDetailsResponse) { + const index = this.grantedContacts.indexOf(details); + if (index > -1) { + this.grantedContacts.splice(index, 1); + } + } + + // Encrypt the master password hash using the grantees public key, and send it to bitwarden for escrow. + private async doConfirmation(details: EmergencyAccessGranteeDetailsResponse) { + const encKey = await this.cryptoService.getEncKey(); + const publicKeyResponse = await this.apiService.getUserPublicKey(details.granteeId); + const publicKey = Utils.fromB64ToArray(publicKeyResponse.publicKey); + + try { + this.logService.debug( + "User's fingerprint: " + + (await this.cryptoService.getFingerprint(details.granteeId, publicKey.buffer)).join("-") + ); + } catch { + // Ignore errors since it's just a debug message + } + + const encryptedKey = await this.cryptoService.rsaEncrypt(encKey.key, publicKey.buffer); + const request = new EmergencyAccessConfirmRequest(); + request.key = encryptedKey.encryptedString; + await this.apiService.postEmergencyAccessConfirm(details.id, request); + } +} diff --git a/apps/web/src/app/settings/emergency-add-edit.component.ts b/apps/web/src/app/settings/emergency-add-edit.component.ts new file mode 100644 index 0000000000..b50ca9d2c7 --- /dev/null +++ b/apps/web/src/app/settings/emergency-add-edit.component.ts @@ -0,0 +1,73 @@ +import { Component } from "@angular/core"; + +import { AuditService } from "jslib-common/abstractions/audit.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { CollectionService } from "jslib-common/abstractions/collection.service"; +import { EventService } from "jslib-common/abstractions/event.service"; +import { FolderService } from "jslib-common/abstractions/folder.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { TotpService } from "jslib-common/abstractions/totp.service"; +import { Cipher } from "jslib-common/models/domain/cipher"; + +import { AddEditComponent as BaseAddEditComponent } from "../vault/add-edit.component"; + +@Component({ + selector: "app-org-vault-add-edit", + templateUrl: "../vault/add-edit.component.html", +}) +export class EmergencyAddEditComponent extends BaseAddEditComponent { + originalCipher: Cipher = null; + viewOnly = true; + + constructor( + cipherService: CipherService, + folderService: FolderService, + i18nService: I18nService, + platformUtilsService: PlatformUtilsService, + auditService: AuditService, + stateService: StateService, + collectionService: CollectionService, + totpService: TotpService, + passwordGenerationService: PasswordGenerationService, + messagingService: MessagingService, + eventService: EventService, + policyService: PolicyService, + passwordRepromptService: PasswordRepromptService, + organizationService: OrganizationService, + logService: LogService + ) { + super( + cipherService, + folderService, + i18nService, + platformUtilsService, + auditService, + stateService, + collectionService, + totpService, + passwordGenerationService, + messagingService, + eventService, + policyService, + organizationService, + logService, + passwordRepromptService + ); + } + + async load() { + this.title = this.i18nService.t("viewItem"); + } + + protected async loadCipher() { + return Promise.resolve(this.originalCipher); + } +} diff --git a/apps/web/src/app/settings/organization-plans.component.html b/apps/web/src/app/settings/organization-plans.component.html new file mode 100644 index 0000000000..7b827ce7c7 --- /dev/null +++ b/apps/web/src/app/settings/organization-plans.component.html @@ -0,0 +1,377 @@ + + + {{ "loading" | i18n }} + + +

{{ "uploadLicenseFileOrg" | i18n }}

+
+
+ + + {{ + "licenseFileDesc" | i18n: "bitwarden_organization_license.json" + }} +
+ +
+
+
+

{{ "generalInformation" | i18n }}

+
+
+ + +
+
+ + +
+
+ + + {{ "clientOwnerDesc" | i18n: "20" }} +
+
+
+
+ + +
+
+
+ + +
+
+
+

{{ "chooseYourPlan" | i18n }}

+
+ + +
+
+ +

{{ "users" | i18n }}

+
+
+ + + {{ "userSeatsHowManyDesc" | i18n }} +
+
+
+

{{ "addons" | i18n }}

+
+
+ + + {{ + "userSeatsAdditionalDesc" + | i18n: selectedPlan.baseSeats:(seatPriceMonthly(selectedPlan) | currency: "$") + }} +
+
+
+
+ + + {{ + "additionalStorageIntervalDesc" + | i18n + : "1 GB" + : (additionalStoragePriceMonthly(selectedPlan) | currency: "$") + : ("month" | i18n) + }} +
+
+
+
+
+ + +
+ {{ + "premiumAccessDesc" | i18n: (3.33 | currency: "$"):("month" | i18n) + }} +
+
+

{{ "summary" | i18n }}

+
+ + +
+
+

+ {{ (createOrganization ? "paymentInformation" : "billingInformation") | i18n }} +

+ + {{ paymentDesc }} + + + +
+
+ {{ "planPrice" | i18n }}: {{ subtotal | currency: "USD $" }} +
+ + {{ "estimatedTax" | i18n }}: {{ taxCharges | currency: "USD $" }} + +
+
+

+ {{ "total" | i18n }}: {{ total | currency: "USD $" }}/{{ + selectedPlanInterval | i18n + }} +

+
+ + + +
+
+ {{ "singleOrgBlockCreateMessage" | i18n }} +
+
+ + +
+
diff --git a/apps/web/src/app/settings/organization-plans.component.ts b/apps/web/src/app/settings/organization-plans.component.ts new file mode 100644 index 0000000000..73da459ebf --- /dev/null +++ b/apps/web/src/app/settings/organization-plans.component.ts @@ -0,0 +1,412 @@ +import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from "@angular/core"; +import { Router } from "@angular/router"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { PaymentMethodType } from "jslib-common/enums/paymentMethodType"; +import { PlanType } from "jslib-common/enums/planType"; +import { PolicyType } from "jslib-common/enums/policyType"; +import { ProductType } from "jslib-common/enums/productType"; +import { EncString } from "jslib-common/models/domain/encString"; +import { SymmetricCryptoKey } from "jslib-common/models/domain/symmetricCryptoKey"; +import { OrganizationCreateRequest } from "jslib-common/models/request/organizationCreateRequest"; +import { OrganizationKeysRequest } from "jslib-common/models/request/organizationKeysRequest"; +import { OrganizationUpgradeRequest } from "jslib-common/models/request/organizationUpgradeRequest"; +import { ProviderOrganizationCreateRequest } from "jslib-common/models/request/provider/providerOrganizationCreateRequest"; +import { PlanResponse } from "jslib-common/models/response/planResponse"; + +import { PaymentComponent } from "./payment.component"; +import { TaxInfoComponent } from "./tax-info.component"; + +@Component({ + selector: "app-organization-plans", + templateUrl: "organization-plans.component.html", +}) +export class OrganizationPlansComponent implements OnInit { + @ViewChild(PaymentComponent) paymentComponent: PaymentComponent; + @ViewChild(TaxInfoComponent) taxComponent: TaxInfoComponent; + + @Input() organizationId: string; + @Input() showFree = true; + @Input() showCancel = false; + @Input() acceptingSponsorship = false; + @Input() product: ProductType = ProductType.Free; + @Input() plan: PlanType = PlanType.Free; + @Input() providerId: string; + @Output() onSuccess = new EventEmitter(); + @Output() onCanceled = new EventEmitter(); + + loading = true; + selfHosted = false; + ownedBusiness = false; + premiumAccessAddon = false; + additionalStorage = 0; + additionalSeats = 0; + name: string; + billingEmail: string; + clientOwnerEmail: string; + businessName: string; + productTypes = ProductType; + formPromise: Promise; + singleOrgPolicyBlock = false; + discount = 0; + + plans: PlanResponse[]; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private cryptoService: CryptoService, + private router: Router, + private syncService: SyncService, + private policyService: PolicyService, + private organizationService: OrganizationService, + private logService: LogService, + private messagingService: MessagingService + ) { + this.selfHosted = platformUtilsService.isSelfHost(); + } + + async ngOnInit() { + if (!this.selfHosted) { + const plans = await this.apiService.getPlans(); + this.plans = plans.data; + if (this.product === ProductType.Enterprise || this.product === ProductType.Teams) { + this.ownedBusiness = true; + } + } + + if (this.providerId) { + this.ownedBusiness = true; + this.changedOwnedBusiness(); + } + + this.loading = false; + } + + get createOrganization() { + return this.organizationId == null; + } + + get selectedPlan() { + return this.plans.find((plan) => plan.type === this.plan); + } + + get selectedPlanInterval() { + return this.selectedPlan.isAnnual ? "year" : "month"; + } + + get selectableProducts() { + let validPlans = this.plans.filter((plan) => plan.type !== PlanType.Custom); + + if (this.ownedBusiness) { + validPlans = validPlans.filter((plan) => plan.canBeUsedByBusiness); + } + + if (!this.showFree) { + validPlans = validPlans.filter((plan) => plan.product !== ProductType.Free); + } + + validPlans = validPlans.filter( + (plan) => + !plan.legacyYear && + !plan.disabled && + (plan.isAnnual || plan.product === this.productTypes.Free) + ); + + if (this.acceptingSponsorship) { + const familyPlan = this.plans.find((plan) => plan.type === PlanType.FamiliesAnnually); + this.discount = familyPlan.basePrice; + validPlans = [familyPlan]; + } + + return validPlans; + } + + get selectablePlans() { + return this.plans.filter( + (plan) => !plan.legacyYear && !plan.disabled && plan.product === this.product + ); + } + + additionalStoragePriceMonthly(selectedPlan: PlanResponse) { + if (!selectedPlan.isAnnual) { + return selectedPlan.additionalStoragePricePerGb; + } + return selectedPlan.additionalStoragePricePerGb / 12; + } + + seatPriceMonthly(selectedPlan: PlanResponse) { + if (!selectedPlan.isAnnual) { + return selectedPlan.seatPrice; + } + return selectedPlan.seatPrice / 12; + } + + additionalStorageTotal(plan: PlanResponse): number { + if (!plan.hasAdditionalStorageOption) { + return 0; + } + + return plan.additionalStoragePricePerGb * Math.abs(this.additionalStorage || 0); + } + + seatTotal(plan: PlanResponse): number { + if (!plan.hasAdditionalSeatsOption) { + return 0; + } + + return plan.seatPrice * Math.abs(this.additionalSeats || 0); + } + + get subtotal() { + let subTotal = this.selectedPlan.basePrice; + if (this.selectedPlan.hasAdditionalSeatsOption && this.additionalSeats) { + subTotal += this.seatTotal(this.selectedPlan); + } + if (this.selectedPlan.hasAdditionalStorageOption && this.additionalStorage) { + subTotal += this.additionalStorageTotal(this.selectedPlan); + } + if (this.selectedPlan.hasPremiumAccessOption && this.premiumAccessAddon) { + subTotal += this.selectedPlan.premiumAccessOptionPrice; + } + return subTotal - this.discount; + } + + get freeTrial() { + return this.selectedPlan.trialPeriodDays != null; + } + + get taxCharges() { + return this.taxComponent != null && this.taxComponent.taxRate != null + ? (this.taxComponent.taxRate / 100) * this.subtotal + : 0; + } + + get total() { + return this.subtotal + this.taxCharges || 0; + } + + get paymentDesc() { + if (this.acceptingSponsorship) { + return this.i18nService.t("paymentSponsored"); + } else if (this.freeTrial && this.createOrganization) { + return this.i18nService.t("paymentChargedWithTrial"); + } else { + return this.i18nService.t("paymentCharged", this.i18nService.t(this.selectedPlanInterval)); + } + } + + changedProduct() { + this.plan = this.selectablePlans[0].type; + if (!this.selectedPlan.hasPremiumAccessOption) { + this.premiumAccessAddon = false; + } + if (!this.selectedPlan.hasAdditionalStorageOption) { + this.additionalStorage = 0; + } + if (!this.selectedPlan.hasAdditionalSeatsOption) { + this.additionalSeats = 0; + } else if ( + !this.additionalSeats && + !this.selectedPlan.baseSeats && + this.selectedPlan.hasAdditionalSeatsOption + ) { + this.additionalSeats = 1; + } + } + + changedOwnedBusiness() { + if (!this.ownedBusiness || this.selectedPlan.canBeUsedByBusiness) { + return; + } + this.product = ProductType.Teams; + this.plan = PlanType.TeamsAnnually; + } + + changedCountry() { + this.paymentComponent.hideBank = this.taxComponent.taxInfo.country !== "US"; + // Bank Account payments are only available for US customers + if ( + this.paymentComponent.hideBank && + this.paymentComponent.method === PaymentMethodType.BankAccount + ) { + this.paymentComponent.method = PaymentMethodType.Card; + this.paymentComponent.changeMethod(); + } + } + + cancel() { + this.onCanceled.emit(); + } + + async submit() { + this.singleOrgPolicyBlock = await this.userHasBlockingSingleOrgPolicy(); + + if (this.singleOrgPolicyBlock) { + return; + } + + try { + const doSubmit = async (): Promise => { + let orgId: string = null; + if (this.createOrganization) { + const shareKey = await this.cryptoService.makeShareKey(); + const key = shareKey[0].encryptedString; + const collection = await this.cryptoService.encrypt( + this.i18nService.t("defaultCollection"), + shareKey[1] + ); + const collectionCt = collection.encryptedString; + const orgKeys = await this.cryptoService.makeKeyPair(shareKey[1]); + + if (this.selfHosted) { + orgId = await this.createSelfHosted(key, collectionCt, orgKeys); + } else { + orgId = await this.createCloudHosted(key, collectionCt, orgKeys, shareKey[1]); + } + + this.platformUtilsService.showToast( + "success", + this.i18nService.t("organizationCreated"), + this.i18nService.t("organizationReadyToGo") + ); + } else { + orgId = await this.updateOrganization(orgId); + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("organizationUpgraded") + ); + } + + await this.apiService.refreshIdentityToken(); + await this.syncService.fullSync(true); + if (!this.acceptingSponsorship) { + this.router.navigate(["/organizations/" + orgId]); + } + + return orgId; + }; + + this.formPromise = doSubmit(); + const organizationId = await this.formPromise; + this.onSuccess.emit({ organizationId: organizationId }); + this.messagingService.send("organizationCreated", organizationId); + } catch (e) { + this.logService.error(e); + } + } + + private async userHasBlockingSingleOrgPolicy() { + return this.policyService.policyAppliesToUser(PolicyType.SingleOrg); + } + + private async updateOrganization(orgId: string) { + const request = new OrganizationUpgradeRequest(); + request.businessName = this.ownedBusiness ? this.businessName : null; + request.additionalSeats = this.additionalSeats; + request.additionalStorageGb = this.additionalStorage; + request.premiumAccessAddon = + this.selectedPlan.hasPremiumAccessOption && this.premiumAccessAddon; + request.planType = this.selectedPlan.type; + request.billingAddressCountry = this.taxComponent.taxInfo.country; + request.billingAddressPostalCode = this.taxComponent.taxInfo.postalCode; + + // Retrieve org info to backfill pub/priv key if necessary + const org = await this.organizationService.get(this.organizationId); + if (!org.hasPublicAndPrivateKeys) { + const orgShareKey = await this.cryptoService.getOrgKey(this.organizationId); + const orgKeys = await this.cryptoService.makeKeyPair(orgShareKey); + request.keys = new OrganizationKeysRequest(orgKeys[0], orgKeys[1].encryptedString); + } + + const result = await this.apiService.postOrganizationUpgrade(this.organizationId, request); + if (!result.success && result.paymentIntentClientSecret != null) { + await this.paymentComponent.handleStripeCardPayment(result.paymentIntentClientSecret, null); + } + return this.organizationId; + } + + private async createCloudHosted( + key: string, + collectionCt: string, + orgKeys: [string, EncString], + orgKey: SymmetricCryptoKey + ) { + const request = new OrganizationCreateRequest(); + request.key = key; + request.collectionName = collectionCt; + request.name = this.name; + request.billingEmail = this.billingEmail; + request.keys = new OrganizationKeysRequest(orgKeys[0], orgKeys[1].encryptedString); + + if (this.selectedPlan.type === PlanType.Free) { + request.planType = PlanType.Free; + } else { + const tokenResult = await this.paymentComponent.createPaymentToken(); + + request.paymentToken = tokenResult[0]; + request.paymentMethodType = tokenResult[1]; + request.businessName = this.ownedBusiness ? this.businessName : null; + request.additionalSeats = this.additionalSeats; + request.additionalStorageGb = this.additionalStorage; + request.premiumAccessAddon = + this.selectedPlan.hasPremiumAccessOption && this.premiumAccessAddon; + request.planType = this.selectedPlan.type; + request.billingAddressPostalCode = this.taxComponent.taxInfo.postalCode; + request.billingAddressCountry = this.taxComponent.taxInfo.country; + if (this.taxComponent.taxInfo.includeTaxId) { + request.taxIdNumber = this.taxComponent.taxInfo.taxId; + request.billingAddressLine1 = this.taxComponent.taxInfo.line1; + request.billingAddressLine2 = this.taxComponent.taxInfo.line2; + request.billingAddressCity = this.taxComponent.taxInfo.city; + request.billingAddressState = this.taxComponent.taxInfo.state; + } + } + + if (this.providerId) { + const providerRequest = new ProviderOrganizationCreateRequest(this.clientOwnerEmail, request); + const providerKey = await this.cryptoService.getProviderKey(this.providerId); + providerRequest.organizationCreateRequest.key = ( + await this.cryptoService.encrypt(orgKey.key, providerKey) + ).encryptedString; + const orgId = ( + await this.apiService.postProviderCreateOrganization(this.providerId, providerRequest) + ).organizationId; + + return orgId; + } else { + return (await this.apiService.postOrganization(request)).id; + } + } + + private async createSelfHosted(key: string, collectionCt: string, orgKeys: [string, EncString]) { + const fileEl = document.getElementById("file") as HTMLInputElement; + const files = fileEl.files; + if (files == null || files.length === 0) { + throw new Error(this.i18nService.t("selectFile")); + } + + const fd = new FormData(); + fd.append("license", files[0]); + fd.append("key", key); + fd.append("collectionName", collectionCt); + const response = await this.apiService.postOrganizationLicense(fd); + const orgId = response.id; + + // Org Keys live outside of the OrganizationLicense - add the keys to the org here + const request = new OrganizationKeysRequest(orgKeys[0], orgKeys[1].encryptedString); + await this.apiService.postOrganizationKeys(orgId, request); + + return orgId; + } +} diff --git a/apps/web/src/app/settings/payment-method.component.html b/apps/web/src/app/settings/payment-method.component.html new file mode 100644 index 0000000000..bae22bf4cf --- /dev/null +++ b/apps/web/src/app/settings/payment-method.component.html @@ -0,0 +1,69 @@ +
+

+ {{ "paymentMethod" | i18n }} +

+ +
+ + + {{ "loading" | i18n }} + + +

{{ (isCreditBalance ? "accountCredit" : "accountBalance") | i18n }}

+

+ {{ creditOrBalance | currency: "$" }} +

+

{{ "creditAppliedDesc" | i18n }}

+ + + +

{{ "paymentMethod" | i18n }}

+

{{ "noPaymentMethod" | i18n }}

+ +

+ + {{ "inAppPurchase" | i18n }} + {{ paymentSource.description }} +

+
+ + + +
diff --git a/apps/web/src/app/settings/payment-method.component.ts b/apps/web/src/app/settings/payment-method.component.ts new file mode 100644 index 0000000000..505d22a4eb --- /dev/null +++ b/apps/web/src/app/settings/payment-method.component.ts @@ -0,0 +1,107 @@ +import { Component, OnInit } from "@angular/core"; +import { Router } from "@angular/router"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PaymentMethodType } from "jslib-common/enums/paymentMethodType"; +import { BillingPaymentResponse } from "jslib-common/models/response/billingPaymentResponse"; + +@Component({ + selector: "app-payment-method", + templateUrl: "payment-method.component.html", +}) +export class PaymentMethodComponent implements OnInit { + loading = false; + firstLoaded = false; + showAdjustPayment = false; + showAddCredit = false; + billing: BillingPaymentResponse; + paymentMethodType = PaymentMethodType; + + constructor( + protected apiService: ApiService, + protected i18nService: I18nService, + protected platformUtilsService: PlatformUtilsService, + private router: Router + ) {} + + async ngOnInit() { + if (this.platformUtilsService.isSelfHost()) { + this.router.navigate(["/settings/subscription"]); + } + await this.load(); + this.firstLoaded = true; + } + + async load() { + if (this.loading) { + return; + } + this.loading = true; + this.billing = await this.apiService.getUserBillingPayment(); + this.loading = false; + } + + addCredit() { + if (this.paymentSourceInApp) { + this.platformUtilsService.showDialog( + this.i18nService.t("cannotPerformInAppPurchase"), + this.i18nService.t("addCredit"), + null, + null, + "warning" + ); + return; + } + this.showAddCredit = true; + } + + closeAddCredit(load: boolean) { + this.showAddCredit = false; + if (load) { + this.load(); + } + } + + changePayment() { + if (this.paymentSourceInApp) { + this.platformUtilsService.showDialog( + this.i18nService.t("cannotPerformInAppPurchase"), + this.i18nService.t("changePaymentMethod"), + null, + null, + "warning" + ); + return; + } + this.showAdjustPayment = true; + } + + closePayment(load: boolean) { + this.showAdjustPayment = false; + if (load) { + this.load(); + } + } + + get isCreditBalance() { + return this.billing == null || this.billing.balance <= 0; + } + + get creditOrBalance() { + return Math.abs(this.billing != null ? this.billing.balance : 0); + } + + get paymentSource() { + return this.billing != null ? this.billing.paymentSource : null; + } + + get paymentSourceInApp() { + return ( + this.paymentSource != null && + (this.paymentSource.type === PaymentMethodType.AppleInApp || + this.paymentSource.type === PaymentMethodType.GoogleInApp) + ); + } +} diff --git a/apps/web/src/app/settings/payment.component.html b/apps/web/src/app/settings/payment.component.html new file mode 100644 index 0000000000..66135e0b9a --- /dev/null +++ b/apps/web/src/app/settings/payment.component.html @@ -0,0 +1,163 @@ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ +
+
+
+ Visa, MasterCard, Discover, AmEx, JCB, Diners Club, UnionPay +
+
+ +
+
+
+
+ + + + +
+
+
+
+
+ + + {{ "verifyBankAccountInitialDesc" | i18n }} {{ "verifyBankAccountFailureWarning" | i18n }} + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+
+ {{ "paypalClickSubmit" | i18n }} +
+
+ + + {{ "makeSureEnoughCredit" | i18n }} + + diff --git a/apps/web/src/app/settings/payment.component.ts b/apps/web/src/app/settings/payment.component.ts new file mode 100644 index 0000000000..eb5fd4e0e2 --- /dev/null +++ b/apps/web/src/app/settings/payment.component.ts @@ -0,0 +1,289 @@ +import { Component, Input, OnInit } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PaymentMethodType } from "jslib-common/enums/paymentMethodType"; +import { ThemeType } from "jslib-common/enums/themeType"; + +import ThemeVariables from "src/scss/export.module.scss"; + +const lightInputColor = ThemeVariables.lightInputColor; +const lightInputPlaceholderColor = ThemeVariables.lightInputPlaceholderColor; +const darkInputColor = ThemeVariables.darkInputColor; +const darkInputPlaceholderColor = ThemeVariables.darkInputPlaceholderColor; + +@Component({ + selector: "app-payment", + templateUrl: "payment.component.html", +}) +export class PaymentComponent implements OnInit { + @Input() showMethods = true; + @Input() showOptions = true; + @Input() method = PaymentMethodType.Card; + @Input() hideBank = false; + @Input() hidePaypal = false; + @Input() hideCredit = false; + + bank: any = { + routing_number: null, + account_number: null, + account_holder_name: null, + account_holder_type: "", + currency: "USD", + country: "US", + }; + + paymentMethodType = PaymentMethodType; + + private btScript: HTMLScriptElement; + private btInstance: any = null; + private stripeScript: HTMLScriptElement; + private stripe: any = null; + private stripeElements: any = null; + private stripeCardNumberElement: any = null; + private stripeCardExpiryElement: any = null; + private stripeCardCvcElement: any = null; + private StripeElementStyle: any; + private StripeElementClasses: any; + + constructor( + private platformUtilsService: PlatformUtilsService, + private apiService: ApiService, + private logService: LogService + ) { + this.stripeScript = window.document.createElement("script"); + this.stripeScript.src = "https://js.stripe.com/v3/"; + this.stripeScript.async = true; + this.stripeScript.onload = () => { + this.stripe = (window as any).Stripe(process.env.STRIPE_KEY); + this.stripeElements = this.stripe.elements(); + this.setStripeElement(); + }; + this.btScript = window.document.createElement("script"); + this.btScript.src = `scripts/dropin.js?cache=${process.env.CACHE_TAG}`; + this.btScript.async = true; + this.StripeElementStyle = { + base: { + color: null, + fontFamily: + '"Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif, ' + + '"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"', + fontSize: "14px", + fontSmoothing: "antialiased", + "::placeholder": { + color: null, + }, + }, + invalid: { + color: null, + }, + }; + this.StripeElementClasses = { + focus: "is-focused", + empty: "is-empty", + invalid: "is-invalid", + }; + } + + async ngOnInit() { + if (!this.showOptions) { + this.hidePaypal = this.method !== PaymentMethodType.PayPal; + this.hideBank = this.method !== PaymentMethodType.BankAccount; + this.hideCredit = this.method !== PaymentMethodType.Credit; + } + await this.setTheme(); + window.document.head.appendChild(this.stripeScript); + if (!this.hidePaypal) { + window.document.head.appendChild(this.btScript); + } + } + + ngOnDestroy() { + window.document.head.removeChild(this.stripeScript); + window.setTimeout(() => { + Array.from(window.document.querySelectorAll("iframe")).forEach((el) => { + if (el.src != null && el.src.indexOf("stripe") > -1) { + try { + window.document.body.removeChild(el); + } catch (e) { + this.logService.error(e); + } + } + }); + }, 500); + if (!this.hidePaypal) { + window.document.head.removeChild(this.btScript); + window.setTimeout(() => { + Array.from(window.document.head.querySelectorAll("script")).forEach((el) => { + if (el.src != null && el.src.indexOf("paypal") > -1) { + try { + window.document.head.removeChild(el); + } catch (e) { + this.logService.error(e); + } + } + }); + const btStylesheet = window.document.head.querySelector("#braintree-dropin-stylesheet"); + if (btStylesheet != null) { + try { + window.document.head.removeChild(btStylesheet); + } catch (e) { + this.logService.error(e); + } + } + }, 500); + } + } + + changeMethod() { + this.btInstance = null; + + if (this.method === PaymentMethodType.PayPal) { + window.setTimeout(() => { + (window as any).braintree.dropin.create( + { + authorization: process.env.BRAINTREE_KEY, + container: "#bt-dropin-container", + paymentOptionPriority: ["paypal"], + paypal: { + flow: "vault", + buttonStyle: { + label: "pay", + size: "medium", + shape: "pill", + color: "blue", + tagline: "false", + }, + }, + }, + (createErr: any, instance: any) => { + if (createErr != null) { + // eslint-disable-next-line + console.error(createErr); + return; + } + this.btInstance = instance; + } + ); + }, 250); + } else { + this.setStripeElement(); + } + } + + createPaymentToken(): Promise<[string, PaymentMethodType]> { + return new Promise((resolve, reject) => { + if (this.method === PaymentMethodType.Credit) { + resolve([null, this.method]); + } else if (this.method === PaymentMethodType.PayPal) { + this.btInstance + .requestPaymentMethod() + .then((payload: any) => { + resolve([payload.nonce, this.method]); + }) + .catch((err: any) => { + reject(err.message); + }); + } else if ( + this.method === PaymentMethodType.Card || + this.method === PaymentMethodType.BankAccount + ) { + if (this.method === PaymentMethodType.Card) { + this.apiService + .postSetupPayment() + .then((clientSecret) => + this.stripe.handleCardSetup(clientSecret, this.stripeCardNumberElement) + ) + .then((result: any) => { + if (result.error) { + reject(result.error.message); + } else if (result.setupIntent && result.setupIntent.status === "succeeded") { + resolve([result.setupIntent.payment_method, this.method]); + } else { + reject(); + } + }); + } else { + this.stripe.createToken("bank_account", this.bank).then((result: any) => { + if (result.error) { + reject(result.error.message); + } else if (result.token && result.token.id != null) { + resolve([result.token.id, this.method]); + } else { + reject(); + } + }); + } + } + }); + } + + handleStripeCardPayment(clientSecret: string, successCallback: () => Promise): Promise { + return new Promise((resolve, reject) => { + if (this.showMethods && this.stripeCardNumberElement == null) { + reject(); + return; + } + const handleCardPayment = () => + this.showMethods + ? this.stripe.handleCardSetup(clientSecret, this.stripeCardNumberElement) + : this.stripe.handleCardSetup(clientSecret); + return handleCardPayment().then(async (result: any) => { + if (result.error) { + reject(result.error.message); + } else if (result.paymentIntent && result.paymentIntent.status === "succeeded") { + if (successCallback != null) { + await successCallback(); + } + resolve(); + } else { + reject(); + } + }); + }); + } + + private setStripeElement() { + window.setTimeout(() => { + if (this.showMethods && this.method === PaymentMethodType.Card) { + if (this.stripeCardNumberElement == null) { + this.stripeCardNumberElement = this.stripeElements.create("cardNumber", { + style: this.StripeElementStyle, + classes: this.StripeElementClasses, + placeholder: "", + }); + } + if (this.stripeCardExpiryElement == null) { + this.stripeCardExpiryElement = this.stripeElements.create("cardExpiry", { + style: this.StripeElementStyle, + classes: this.StripeElementClasses, + }); + } + if (this.stripeCardCvcElement == null) { + this.stripeCardCvcElement = this.stripeElements.create("cardCvc", { + style: this.StripeElementStyle, + classes: this.StripeElementClasses, + placeholder: "", + }); + } + this.stripeCardNumberElement.mount("#stripe-card-number-element"); + this.stripeCardExpiryElement.mount("#stripe-card-expiry-element"); + this.stripeCardCvcElement.mount("#stripe-card-cvc-element"); + } + }, 50); + } + + private async setTheme() { + const theme = await this.platformUtilsService.getEffectiveTheme(); + if (theme === ThemeType.Dark) { + this.StripeElementStyle.base.color = darkInputColor; + this.StripeElementStyle.base["::placeholder"].color = darkInputPlaceholderColor; + this.StripeElementStyle.invalid.color = darkInputColor; + } else { + this.StripeElementStyle.base.color = lightInputColor; + this.StripeElementStyle.base["::placeholder"].color = lightInputPlaceholderColor; + this.StripeElementStyle.invalid.color = lightInputColor; + } + } +} diff --git a/apps/web/src/app/settings/preferences.component.html b/apps/web/src/app/settings/preferences.component.html new file mode 100644 index 0000000000..16ded5642f --- /dev/null +++ b/apps/web/src/app/settings/preferences.component.html @@ -0,0 +1,145 @@ + +

{{ "preferencesDesc" | i18n }}

+
+
+
+ + +
+
+
+ +
+ + +
+
+ + +
+
+
+
+
+
+ + + + +
+ + {{ "languageDesc" | i18n }} +
+
+
+
+
+ + + + + +
+ {{ "disableIconsDesc" | i18n }} +
+
+
+ + + + + +
+ {{ "enableGravatarsDesc" | i18n }} +
+
+
+ + +
+ {{ "enableFullWidthDesc" | i18n }} +
+
+
+
+ + + {{ "themeDesc" | i18n }} +
+
+
+ +
diff --git a/apps/web/src/app/settings/preferences.component.ts b/apps/web/src/app/settings/preferences.component.ts new file mode 100644 index 0000000000..734c50bc53 --- /dev/null +++ b/apps/web/src/app/settings/preferences.component.ts @@ -0,0 +1,134 @@ +import { Component, OnInit } from "@angular/core"; +import { FormControl } from "@angular/forms"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { VaultTimeoutService } from "jslib-common/abstractions/vaultTimeout.service"; +import { ThemeType } from "jslib-common/enums/themeType"; +import { Utils } from "jslib-common/misc/utils"; + +@Component({ + selector: "app-preferences", + templateUrl: "preferences.component.html", +}) +export class PreferencesComponent implements OnInit { + vaultTimeoutAction = "lock"; + disableIcons: boolean; + enableGravatars: boolean; + enableFullWidth: boolean; + theme: ThemeType; + locale: string; + vaultTimeouts: { name: string; value: number }[]; + localeOptions: any[]; + themeOptions: any[]; + + vaultTimeout: FormControl = new FormControl(null); + + private startingLocale: string; + private startingTheme: ThemeType; + + constructor( + private stateService: StateService, + private i18nService: I18nService, + private vaultTimeoutService: VaultTimeoutService, + private platformUtilsService: PlatformUtilsService, + private messagingService: MessagingService + ) { + this.vaultTimeouts = [ + { name: i18nService.t("oneMinute"), value: 1 }, + { name: i18nService.t("fiveMinutes"), value: 5 }, + { name: i18nService.t("fifteenMinutes"), value: 15 }, + { name: i18nService.t("thirtyMinutes"), value: 30 }, + { name: i18nService.t("oneHour"), value: 60 }, + { name: i18nService.t("fourHours"), value: 240 }, + { name: i18nService.t("onRefresh"), value: -1 }, + ]; + if (this.platformUtilsService.isDev()) { + this.vaultTimeouts.push({ name: i18nService.t("never"), value: null }); + } + + const localeOptions: any[] = []; + i18nService.supportedTranslationLocales.forEach((locale) => { + let name = locale; + if (i18nService.localeNames.has(locale)) { + name += " - " + i18nService.localeNames.get(locale); + } + localeOptions.push({ name: name, value: locale }); + }); + localeOptions.sort(Utils.getSortFunction(i18nService, "name")); + localeOptions.splice(0, 0, { name: i18nService.t("default"), value: null }); + this.localeOptions = localeOptions; + this.themeOptions = [ + { name: i18nService.t("themeLight"), value: ThemeType.Light }, + { name: i18nService.t("themeDark"), value: ThemeType.Dark }, + { name: i18nService.t("themeSystem"), value: ThemeType.System }, + ]; + } + + async ngOnInit() { + this.vaultTimeout.setValue(await this.vaultTimeoutService.getVaultTimeout()); + this.vaultTimeoutAction = await this.stateService.getVaultTimeoutAction(); + this.disableIcons = await this.stateService.getDisableFavicon(); + this.enableGravatars = await this.stateService.getEnableGravitars(); + this.enableFullWidth = await this.stateService.getEnableFullWidth(); + + this.locale = (await this.stateService.getLocale()) ?? null; + this.startingLocale = this.locale; + + this.theme = await this.stateService.getTheme(); + this.startingTheme = this.theme; + } + + async submit() { + if (!this.vaultTimeout.valid) { + this.platformUtilsService.showToast("error", null, this.i18nService.t("vaultTimeoutToLarge")); + return; + } + + await this.vaultTimeoutService.setVaultTimeoutOptions( + this.vaultTimeout.value, + this.vaultTimeoutAction + ); + await this.stateService.setDisableFavicon(this.disableIcons); + await this.stateService.setEnableGravitars(this.enableGravatars); + await this.stateService.setEnableFullWidth(this.enableFullWidth); + this.messagingService.send("setFullWidth"); + if (this.theme !== this.startingTheme) { + await this.stateService.setTheme(this.theme); + this.startingTheme = this.theme; + const effectiveTheme = await this.platformUtilsService.getEffectiveTheme(); + const htmlEl = window.document.documentElement; + htmlEl.classList.remove("theme_" + ThemeType.Light, "theme_" + ThemeType.Dark); + htmlEl.classList.add("theme_" + effectiveTheme); + } + await this.stateService.setLocale(this.locale); + if (this.locale !== this.startingLocale) { + window.location.reload(); + } else { + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("preferencesUpdated") + ); + } + } + + async vaultTimeoutActionChanged(newValue: string) { + if (newValue === "logOut") { + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("vaultTimeoutLogOutConfirmation"), + this.i18nService.t("vaultTimeoutLogOutConfirmationTitle"), + this.i18nService.t("yes"), + this.i18nService.t("cancel"), + "warning" + ); + if (!confirmed) { + this.vaultTimeoutAction = "lock"; + return; + } + } + this.vaultTimeoutAction = newValue; + } +} diff --git a/apps/web/src/app/settings/premium.component.html b/apps/web/src/app/settings/premium.component.html new file mode 100644 index 0000000000..4d6613aa1e --- /dev/null +++ b/apps/web/src/app/settings/premium.component.html @@ -0,0 +1,132 @@ + +
+

{{ "goPremium" | i18n }}

+
+ + {{ "alreadyPremiumFromOrg" | i18n }} + + +

{{ "premiumUpgradeUnlockFeatures" | i18n }}

+
    +
  • + + {{ "premiumSignUpStorage" | i18n }} +
  • +
  • + + {{ "premiumSignUpTwoStep" | i18n }} +
  • +
  • + + {{ "premiumSignUpEmergency" | i18n }} +
  • +
  • + + {{ "premiumSignUpReports" | i18n }} +
  • +
  • + + {{ "premiumSignUpTotp" | i18n }} +
  • +
  • + + {{ "premiumSignUpSupport" | i18n }} +
  • +
  • + + {{ "premiumSignUpFuture" | i18n }} +
  • +
+

+ {{ "premiumPrice" | i18n: (premiumPrice | currency: "$") }} +

+ + {{ "purchasePremium" | i18n }} + +
+ +

{{ "uploadLicenseFilePremium" | i18n }}

+
+
+ + + {{ + "licenseFileDesc" | i18n: "bitwarden_premium_license.json" + }} +
+ +
+
+
+

{{ "addons" | i18n }}

+
+
+ + + {{ + "additionalStorageIntervalDesc" + | i18n: "1 GB":(storageGbPrice | currency: "$"):("year" | i18n) + }} +
+
+

{{ "summary" | i18n }}

+ {{ "premiumMembership" | i18n }}: {{ premiumPrice | currency: "$" }}
+ {{ "additionalStorageGb" | i18n }}: {{ additionalStorage || 0 }} GB × + {{ storageGbPrice | currency: "$" }} = + {{ additionalStorageTotal | currency: "$" }} +
+

{{ "paymentInformation" | i18n }}

+ + +
+
+ {{ "planPrice" | i18n }}: {{ subtotal | currency: "USD $" }} +
+ + {{ "estimatedTax" | i18n }}: {{ taxCharges | currency: "USD $" }} + +
+
+

+ {{ "total" | i18n }}: {{ total | currency: "USD $" }}/{{ "year" | i18n }} +

+
+ {{ "paymentChargedAnnually" | i18n }} + +
diff --git a/apps/web/src/app/settings/premium.component.ts b/apps/web/src/app/settings/premium.component.ts new file mode 100644 index 0000000000..5b9566e5dc --- /dev/null +++ b/apps/web/src/app/settings/premium.component.ts @@ -0,0 +1,142 @@ +import { Component, OnInit, ViewChild } from "@angular/core"; +import { Router } from "@angular/router"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { TokenService } from "jslib-common/abstractions/token.service"; + +import { PaymentComponent } from "./payment.component"; +import { TaxInfoComponent } from "./tax-info.component"; + +@Component({ + selector: "app-premium", + templateUrl: "premium.component.html", +}) +export class PremiumComponent implements OnInit { + @ViewChild(PaymentComponent) paymentComponent: PaymentComponent; + @ViewChild(TaxInfoComponent) taxInfoComponent: TaxInfoComponent; + + canAccessPremium = false; + selfHosted = false; + premiumPrice = 10; + storageGbPrice = 4; + additionalStorage = 0; + + formPromise: Promise; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private tokenService: TokenService, + private router: Router, + private messagingService: MessagingService, + private syncService: SyncService, + private logService: LogService, + private stateService: StateService + ) { + this.selfHosted = platformUtilsService.isSelfHost(); + } + + async ngOnInit() { + this.canAccessPremium = await this.stateService.getCanAccessPremium(); + const premium = await this.tokenService.getPremium(); + if (premium) { + this.router.navigate(["/settings/subscription/user-subscription"]); + return; + } + } + + async submit() { + let files: FileList = null; + if (this.selfHosted) { + const fileEl = document.getElementById("file") as HTMLInputElement; + files = fileEl.files; + if (files == null || files.length === 0) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("selectFile") + ); + return; + } + } + + try { + if (this.selfHosted) { + if (!this.tokenService.getEmailVerified()) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("verifyEmailFirst") + ); + return; + } + + const fd = new FormData(); + fd.append("license", files[0]); + this.formPromise = this.apiService.postAccountLicense(fd).then(() => { + return this.finalizePremium(); + }); + } else { + this.formPromise = this.paymentComponent + .createPaymentToken() + .then((result) => { + const fd = new FormData(); + fd.append("paymentMethodType", result[1].toString()); + if (result[0] != null) { + fd.append("paymentToken", result[0]); + } + fd.append("additionalStorageGb", (this.additionalStorage || 0).toString()); + fd.append("country", this.taxInfoComponent.taxInfo.country); + fd.append("postalCode", this.taxInfoComponent.taxInfo.postalCode); + return this.apiService.postPremium(fd); + }) + .then((paymentResponse) => { + if (!paymentResponse.success && paymentResponse.paymentIntentClientSecret != null) { + return this.paymentComponent.handleStripeCardPayment( + paymentResponse.paymentIntentClientSecret, + () => this.finalizePremium() + ); + } else { + return this.finalizePremium(); + } + }); + } + await this.formPromise; + } catch (e) { + this.logService.error(e); + } + } + + async finalizePremium() { + await this.apiService.refreshIdentityToken(); + await this.syncService.fullSync(true); + this.platformUtilsService.showToast("success", null, this.i18nService.t("premiumUpdated")); + this.messagingService.send("purchasedPremium"); + this.router.navigate(["/settings/subscription/user-subscription"]); + } + + get additionalStorageTotal(): number { + return this.storageGbPrice * Math.abs(this.additionalStorage || 0); + } + + get subtotal(): number { + return this.premiumPrice + this.additionalStorageTotal; + } + + get taxCharges(): number { + return this.taxInfoComponent != null && this.taxInfoComponent.taxRate != null + ? (this.taxInfoComponent.taxRate / 100) * this.subtotal + : 0; + } + + get total(): number { + return this.subtotal + this.taxCharges || 0; + } +} diff --git a/apps/web/src/app/settings/profile.component.html b/apps/web/src/app/settings/profile.component.html new file mode 100644 index 0000000000..bdc6932ee4 --- /dev/null +++ b/apps/web/src/app/settings/profile.component.html @@ -0,0 +1,74 @@ +
+ + {{ "loading" | i18n }} +
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+

+ {{ "yourAccountsFingerprint" | i18n }}: + +
+ {{ fingerprint }} +

+
+
+ +
diff --git a/apps/web/src/app/settings/profile.component.ts b/apps/web/src/app/settings/profile.component.ts new file mode 100644 index 0000000000..e9a4914a5a --- /dev/null +++ b/apps/web/src/app/settings/profile.component.ts @@ -0,0 +1,57 @@ +import { Component, OnInit } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { KeyConnectorService } from "jslib-common/abstractions/keyConnector.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { UpdateProfileRequest } from "jslib-common/models/request/updateProfileRequest"; +import { ProfileResponse } from "jslib-common/models/response/profileResponse"; + +@Component({ + selector: "app-profile", + templateUrl: "profile.component.html", +}) +export class ProfileComponent implements OnInit { + loading = true; + profile: ProfileResponse; + fingerprint: string; + hidePasswordHint = false; + + formPromise: Promise; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private cryptoService: CryptoService, + private logService: LogService, + private keyConnectorService: KeyConnectorService, + private stateService: StateService + ) {} + + async ngOnInit() { + this.profile = await this.apiService.getProfile(); + this.loading = false; + const fingerprint = await this.cryptoService.getFingerprint( + await this.stateService.getUserId() + ); + if (fingerprint != null) { + this.fingerprint = fingerprint.join("-"); + } + this.hidePasswordHint = await this.keyConnectorService.getUsesKeyConnector(); + } + + async submit() { + try { + const request = new UpdateProfileRequest(this.profile.name, this.profile.masterPasswordHint); + this.formPromise = this.apiService.putProfile(request); + await this.formPromise; + this.platformUtilsService.showToast("success", null, this.i18nService.t("accountUpdated")); + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/apps/web/src/app/settings/purge-vault.component.html b/apps/web/src/app/settings/purge-vault.component.html new file mode 100644 index 0000000000..2c6a9f50fc --- /dev/null +++ b/apps/web/src/app/settings/purge-vault.component.html @@ -0,0 +1,38 @@ + diff --git a/apps/web/src/app/settings/purge-vault.component.ts b/apps/web/src/app/settings/purge-vault.component.ts new file mode 100644 index 0000000000..d40e21b32f --- /dev/null +++ b/apps/web/src/app/settings/purge-vault.component.ts @@ -0,0 +1,46 @@ +import { Component, Input } from "@angular/core"; +import { Router } from "@angular/router"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; +import { Verification } from "jslib-common/types/verification"; + +@Component({ + selector: "app-purge-vault", + templateUrl: "purge-vault.component.html", +}) +export class PurgeVaultComponent { + @Input() organizationId?: string = null; + + masterPassword: Verification; + formPromise: Promise; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private userVerificationService: UserVerificationService, + private router: Router, + private logService: LogService + ) {} + + async submit() { + try { + this.formPromise = this.userVerificationService + .buildRequest(this.masterPassword) + .then((request) => this.apiService.postPurgeCiphers(request, this.organizationId)); + await this.formPromise; + this.platformUtilsService.showToast("success", null, this.i18nService.t("vaultPurged")); + if (this.organizationId != null) { + this.router.navigate(["organizations", this.organizationId, "vault"]); + } else { + this.router.navigate(["vault"]); + } + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/apps/web/src/app/settings/security-keys.component.html b/apps/web/src/app/settings/security-keys.component.html new file mode 100644 index 0000000000..58201014be --- /dev/null +++ b/apps/web/src/app/settings/security-keys.component.html @@ -0,0 +1,18 @@ + +
+

{{ "apiKey" | i18n }}

+
+

+ {{ "userApiKeyDesc" | i18n }} +

+ + + + diff --git a/apps/web/src/app/settings/security-keys.component.ts b/apps/web/src/app/settings/security-keys.component.ts new file mode 100644 index 0000000000..650f5c4851 --- /dev/null +++ b/apps/web/src/app/settings/security-keys.component.ts @@ -0,0 +1,61 @@ +import { Component, OnInit, ViewChild, ViewContainerRef } from "@angular/core"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { KeyConnectorService } from "jslib-common/abstractions/keyConnector.service"; +import { StateService } from "jslib-common/abstractions/state.service"; + +import { ApiKeyComponent } from "./api-key.component"; + +@Component({ + selector: "app-security-keys", + templateUrl: "security-keys.component.html", +}) +export class SecurityKeysComponent implements OnInit { + @ViewChild("viewUserApiKeyTemplate", { read: ViewContainerRef, static: true }) + viewUserApiKeyModalRef: ViewContainerRef; + @ViewChild("rotateUserApiKeyTemplate", { read: ViewContainerRef, static: true }) + rotateUserApiKeyModalRef: ViewContainerRef; + + showChangeKdf = true; + + constructor( + private keyConnectorService: KeyConnectorService, + private stateService: StateService, + private modalService: ModalService, + private apiService: ApiService + ) {} + + async ngOnInit() { + this.showChangeKdf = !(await this.keyConnectorService.getUsesKeyConnector()); + } + + async viewUserApiKey() { + const entityId = await this.stateService.getUserId(); + await this.modalService.openViewRef(ApiKeyComponent, this.viewUserApiKeyModalRef, (comp) => { + comp.keyType = "user"; + comp.entityId = entityId; + comp.postKey = this.apiService.postUserApiKey.bind(this.apiService); + comp.scope = "api"; + comp.grantType = "client_credentials"; + comp.apiKeyTitle = "apiKey"; + comp.apiKeyWarning = "userApiKeyWarning"; + comp.apiKeyDescription = "userApiKeyDesc"; + }); + } + + async rotateUserApiKey() { + const entityId = await this.stateService.getUserId(); + await this.modalService.openViewRef(ApiKeyComponent, this.rotateUserApiKeyModalRef, (comp) => { + comp.keyType = "user"; + comp.isRotation = true; + comp.entityId = entityId; + comp.postKey = this.apiService.postUserRotateApiKey.bind(this.apiService); + comp.scope = "api"; + comp.grantType = "client_credentials"; + comp.apiKeyTitle = "apiKey"; + comp.apiKeyWarning = "userApiKeyWarning"; + comp.apiKeyDescription = "apiKeyRotateDesc"; + }); + } +} diff --git a/apps/web/src/app/settings/security-routing.module.ts b/apps/web/src/app/settings/security-routing.module.ts new file mode 100644 index 0000000000..42d36e0a88 --- /dev/null +++ b/apps/web/src/app/settings/security-routing.module.ts @@ -0,0 +1,39 @@ +import { NgModule } from "@angular/core"; +import { RouterModule, Routes } from "@angular/router"; + +import { ChangePasswordComponent } from "./change-password.component"; +import { SecurityKeysComponent } from "./security-keys.component"; +import { SecurityComponent } from "./security.component"; +import { TwoFactorSetupComponent } from "./two-factor-setup.component"; + +const routes: Routes = [ + { + path: "", + component: SecurityComponent, + data: { titleId: "security" }, + children: [ + { path: "", pathMatch: "full", redirectTo: "change-password" }, + { + path: "change-password", + component: ChangePasswordComponent, + data: { titleId: "masterPassword" }, + }, + { + path: "two-factor", + component: TwoFactorSetupComponent, + data: { titleId: "twoStepLogin" }, + }, + { + path: "security-keys", + component: SecurityKeysComponent, + data: { titleId: "keys" }, + }, + ], + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class SecurityRoutingModule {} diff --git a/apps/web/src/app/settings/security.component.html b/apps/web/src/app/settings/security.component.html new file mode 100644 index 0000000000..6e6b76fbab --- /dev/null +++ b/apps/web/src/app/settings/security.component.html @@ -0,0 +1,22 @@ + + diff --git a/apps/web/src/app/settings/security.component.ts b/apps/web/src/app/settings/security.component.ts new file mode 100644 index 0000000000..7312392ee7 --- /dev/null +++ b/apps/web/src/app/settings/security.component.ts @@ -0,0 +1,17 @@ +import { Component } from "@angular/core"; + +import { KeyConnectorService } from "jslib-common/abstractions/keyConnector.service"; + +@Component({ + selector: "app-security", + templateUrl: "security.component.html", +}) +export class SecurityComponent { + showChangePassword = true; + + constructor(private keyConnectorService: KeyConnectorService) {} + + async ngOnInit() { + this.showChangePassword = !(await this.keyConnectorService.getUsesKeyConnector()); + } +} diff --git a/apps/web/src/app/settings/settings.component.html b/apps/web/src/app/settings/settings.component.html new file mode 100644 index 0000000000..d5236fa63d --- /dev/null +++ b/apps/web/src/app/settings/settings.component.html @@ -0,0 +1,45 @@ + diff --git a/apps/web/src/app/settings/settings.component.ts b/apps/web/src/app/settings/settings.component.ts new file mode 100644 index 0000000000..9756ba41ad --- /dev/null +++ b/apps/web/src/app/settings/settings.component.ts @@ -0,0 +1,64 @@ +import { Component, NgZone, OnDestroy, OnInit } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { BroadcasterService } from "jslib-common/abstractions/broadcaster.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { TokenService } from "jslib-common/abstractions/token.service"; + +import { StateService } from "../../abstractions/state.service"; + +const BroadcasterSubscriptionId = "SettingsComponent"; + +@Component({ + selector: "app-settings", + templateUrl: "settings.component.html", +}) +export class SettingsComponent implements OnInit, OnDestroy { + premium: boolean; + selfHosted: boolean; + hasFamilySponsorshipAvailable: boolean; + hideSubscription: boolean; + + constructor( + private tokenService: TokenService, + private broadcasterService: BroadcasterService, + private ngZone: NgZone, + private platformUtilsService: PlatformUtilsService, + private organizationService: OrganizationService, + private stateService: StateService, + private apiService: ApiService + ) {} + + async ngOnInit() { + this.broadcasterService.subscribe(BroadcasterSubscriptionId, async (message: any) => { + this.ngZone.run(async () => { + switch (message.command) { + case "purchasedPremium": + await this.load(); + break; + default: + } + }); + }); + + this.selfHosted = await this.platformUtilsService.isSelfHost(); + await this.load(); + } + + ngOnDestroy() { + this.broadcasterService.unsubscribe(BroadcasterSubscriptionId); + } + + async load() { + this.premium = await this.tokenService.getPremium(); + this.hasFamilySponsorshipAvailable = await this.organizationService.canManageSponsorships(); + const hasPremiumFromOrg = await this.stateService.getCanAccessPremium(); + let billing = null; + if (!this.selfHosted) { + billing = await this.apiService.getUserBillingHistory(); + } + this.hideSubscription = + !this.premium && hasPremiumFromOrg && (this.selfHosted || billing?.hasNoHistory); + } +} diff --git a/apps/web/src/app/settings/sponsored-families.component.html b/apps/web/src/app/settings/sponsored-families.component.html new file mode 100644 index 0000000000..9bd2bb7027 --- /dev/null +++ b/apps/web/src/app/settings/sponsored-families.component.html @@ -0,0 +1,102 @@ + + + + {{ "loading" | i18n }} + + +

+ {{ "sponsoredFamiliesEligible" | i18n }} +

+
+ {{ "sponsoredFamiliesInclude" | i18n }}: +
    +
  • {{ "sponsoredFamiliesPremiumAccess" | i18n }}
  • +
  • {{ "sponsoredFamiliesSharedCollections" | i18n }}
  • +
+
+
+
+ + +
+
+ + + + + {{ "cannotSponsorSelf" | i18n }} + + + + {{ "invalidEmail" | i18n }} + +
+
+ +
+
+ +
+ + + + + + + + + + + + + + +
{{ "recipient" | i18n }}{{ "sponsoringOrg" | i18n }}{{ "status" | i18n }}
+
+ {{ "sponsoredFamiliesLeaveCopy" | i18n }} +
+
diff --git a/apps/web/src/app/settings/sponsored-families.component.ts b/apps/web/src/app/settings/sponsored-families.component.ts new file mode 100644 index 0000000000..c168d00d82 --- /dev/null +++ b/apps/web/src/app/settings/sponsored-families.component.ts @@ -0,0 +1,123 @@ +import { Component, OnInit } from "@angular/core"; +import { FormBuilder, FormGroup, Validators } from "@angular/forms"; + +import { notAllowedValueAsync } from "jslib-angular/validators/notAllowedValueAsync.validator"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { PlanSponsorshipType } from "jslib-common/enums/planSponsorshipType"; +import { Organization } from "jslib-common/models/domain/organization"; + +@Component({ + selector: "app-sponsored-families", + templateUrl: "sponsored-families.component.html", +}) +export class SponsoredFamiliesComponent implements OnInit { + loading = false; + + availableSponsorshipOrgs: Organization[] = []; + activeSponsorshipOrgs: Organization[] = []; + + // Conditional display properties + formPromise: Promise; + + sponsorshipForm: FormGroup; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private syncService: SyncService, + private organizationService: OrganizationService, + private formBuilder: FormBuilder, + private stateService: StateService + ) { + this.sponsorshipForm = this.formBuilder.group({ + selectedSponsorshipOrgId: [ + "", + { + validators: [Validators.required], + }, + ], + sponsorshipEmail: [ + "", + { + validators: [Validators.email], + asyncValidators: [ + notAllowedValueAsync(async () => await this.stateService.getEmail(), true), + ], + updateOn: "blur", + }, + ], + }); + } + + async ngOnInit() { + await this.load(); + } + + async submit() { + this.formPromise = this.apiService.postCreateSponsorship( + this.sponsorshipForm.value.selectedSponsorshipOrgId, + { + sponsoredEmail: this.sponsorshipForm.value.sponsorshipEmail, + planSponsorshipType: PlanSponsorshipType.FamiliesForEnterprise, + friendlyName: this.sponsorshipForm.value.sponsorshipEmail, + } + ); + + await this.formPromise; + this.platformUtilsService.showToast("success", null, this.i18nService.t("sponsorshipCreated")); + this.formPromise = null; + this.resetForm(); + await this.load(true); + } + + async load(forceReload = false) { + if (this.loading) { + return; + } + + this.loading = true; + if (forceReload) { + await this.syncService.fullSync(true); + } + + const allOrgs = await this.organizationService.getAll(); + this.availableSponsorshipOrgs = allOrgs.filter((org) => org.familySponsorshipAvailable); + + this.activeSponsorshipOrgs = allOrgs.filter( + (org) => org.familySponsorshipFriendlyName !== null + ); + + if (this.availableSponsorshipOrgs.length === 1) { + this.sponsorshipForm.patchValue({ + selectedSponsorshipOrgId: this.availableSponsorshipOrgs[0].id, + }); + } + this.loading = false; + } + + get sponsorshipEmailControl() { + return this.sponsorshipForm.controls["sponsorshipEmail"]; + } + + private async resetForm() { + this.sponsorshipForm.reset(); + } + + get anyActiveSponsorships(): boolean { + return this.activeSponsorshipOrgs.length > 0; + } + + get anyOrgsAvailable(): boolean { + return this.availableSponsorshipOrgs.length > 0; + } + + get isSelfHosted(): boolean { + return this.platformUtilsService.isSelfHost(); + } +} diff --git a/apps/web/src/app/settings/sponsoring-org-row.component.html b/apps/web/src/app/settings/sponsoring-org-row.component.html new file mode 100644 index 0000000000..30abad4475 --- /dev/null +++ b/apps/web/src/app/settings/sponsoring-org-row.component.html @@ -0,0 +1,48 @@ + + {{ sponsoringOrg.familySponsorshipFriendlyName }} + +{{ sponsoringOrg.name }} + + {{ statusMessage }} + + + + diff --git a/apps/web/src/app/settings/sponsoring-org-row.component.ts b/apps/web/src/app/settings/sponsoring-org-row.component.ts new file mode 100644 index 0000000000..59723f0c8b --- /dev/null +++ b/apps/web/src/app/settings/sponsoring-org-row.component.ts @@ -0,0 +1,130 @@ +import { formatDate } from "@angular/common"; +import { Component, EventEmitter, Input, Output, OnInit } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { Organization } from "jslib-common/models/domain/organization"; + +@Component({ + selector: "[sponsoring-org-row]", + templateUrl: "sponsoring-org-row.component.html", +}) +export class SponsoringOrgRowComponent implements OnInit { + @Input() sponsoringOrg: Organization = null; + @Input() isSelfHosted = false; + + @Output() sponsorshipRemoved = new EventEmitter(); + + statusMessage = "loading"; + statusClass: "text-success" | "text-danger" = "text-success"; + + revokeSponsorshipPromise: Promise; + resendEmailPromise: Promise; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private logService: LogService, + private platformUtilsService: PlatformUtilsService + ) {} + + ngOnInit(): void { + this.setStatus( + this.isSelfHosted, + this.sponsoringOrg.familySponsorshipToDelete, + this.sponsoringOrg.familySponsorshipValidUntil, + this.sponsoringOrg.familySponsorshipLastSyncDate + ); + } + + async revokeSponsorship() { + try { + this.revokeSponsorshipPromise = this.doRevokeSponsorship(); + await this.revokeSponsorshipPromise; + } catch (e) { + this.logService.error(e); + } + + this.revokeSponsorshipPromise = null; + } + + async resendEmail() { + this.resendEmailPromise = this.apiService.postResendSponsorshipOffer(this.sponsoringOrg.id); + await this.resendEmailPromise; + this.platformUtilsService.showToast("success", null, this.i18nService.t("emailSent")); + this.resendEmailPromise = null; + } + + get isSentAwaitingSync() { + return this.isSelfHosted && !this.sponsoringOrg.familySponsorshipLastSyncDate; + } + + private async doRevokeSponsorship() { + const isConfirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("revokeSponsorshipConfirmation"), + `${this.i18nService.t("remove")} ${this.sponsoringOrg.familySponsorshipFriendlyName}?`, + this.i18nService.t("remove"), + this.i18nService.t("cancel"), + "warning" + ); + + if (!isConfirmed) { + return; + } + + await this.apiService.deleteRevokeSponsorship(this.sponsoringOrg.id); + this.platformUtilsService.showToast("success", null, this.i18nService.t("reclaimedFreePlan")); + this.sponsorshipRemoved.emit(); + } + + private setStatus( + selfHosted: boolean, + toDelete?: boolean, + validUntil?: Date, + lastSyncDate?: Date + ) { + /* + * Possible Statuses: + * Requested (self-hosted only) + * Sent + * Active + * RequestRevoke + * RevokeWhenExpired + */ + + if (toDelete && validUntil) { + // They want to delete but there is a valid until date which means there is an active sponsorship + this.statusMessage = this.i18nService.t( + "revokeWhenExpired", + formatDate(validUntil, "MM/dd/yyyy", this.i18nService.locale) + ); + this.statusClass = "text-danger"; + } else if (toDelete) { + // They want to delete and we don't have a valid until date so we can + // this should only happen on a self-hosted install + this.statusMessage = this.i18nService.t("requestRemoved"); + this.statusClass = "text-danger"; + } else if (validUntil) { + // They don't want to delete and they have a valid until date + // that means they are actively sponsoring someone + this.statusMessage = this.i18nService.t("active"); + this.statusClass = "text-success"; + } else if (selfHosted && lastSyncDate) { + // We are on a self-hosted install and it has been synced but we have not gotten + // a valid until date so we can't know if they are actively sponsoring someone + this.statusMessage = this.i18nService.t("sent"); + this.statusClass = "text-success"; + } else if (!selfHosted) { + // We are in cloud and all other status checks have been false therefore we have + // sent the request but it hasn't been accepted yet + this.statusMessage = this.i18nService.t("sent"); + this.statusClass = "text-success"; + } else { + // We are on a self-hosted install and we have not synced yet + this.statusMessage = this.i18nService.t("requested"); + this.statusClass = "text-success"; + } + } +} diff --git a/apps/web/src/app/settings/subscription-routing.module.ts b/apps/web/src/app/settings/subscription-routing.module.ts new file mode 100644 index 0000000000..ae1e58cb16 --- /dev/null +++ b/apps/web/src/app/settings/subscription-routing.module.ts @@ -0,0 +1,45 @@ +import { NgModule } from "@angular/core"; +import { RouterModule, Routes } from "@angular/router"; + +import { PaymentMethodComponent } from "./payment-method.component"; +import { PremiumComponent } from "./premium.component"; +import { SubscriptionComponent } from "./subscription.component"; +import { UserBillingHistoryComponent } from "./user-billing-history.component"; +import { UserSubscriptionComponent } from "./user-subscription.component"; + +const routes: Routes = [ + { + path: "", + component: SubscriptionComponent, + data: { titleId: "subscription" }, + children: [ + { path: "", pathMatch: "full", redirectTo: "premium" }, + { + path: "user-subscription", + component: UserSubscriptionComponent, + data: { titleId: "premiumMembership" }, + }, + { + path: "premium", + component: PremiumComponent, + data: { titleId: "goPremium" }, + }, + { + path: "payment-method", + component: PaymentMethodComponent, + data: { titleId: "paymentMethod" }, + }, + { + path: "billing-history", + component: UserBillingHistoryComponent, + data: { titleId: "billingHistory" }, + }, + ], + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class SubscriptionRoutingModule {} diff --git a/apps/web/src/app/settings/subscription.component.html b/apps/web/src/app/settings/subscription.component.html new file mode 100644 index 0000000000..6d19d0929a --- /dev/null +++ b/apps/web/src/app/settings/subscription.component.html @@ -0,0 +1,20 @@ + + diff --git a/apps/web/src/app/settings/subscription.component.ts b/apps/web/src/app/settings/subscription.component.ts new file mode 100644 index 0000000000..48dc67f945 --- /dev/null +++ b/apps/web/src/app/settings/subscription.component.ts @@ -0,0 +1,27 @@ +import { Component } from "@angular/core"; + +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { TokenService } from "jslib-common/abstractions/token.service"; + +@Component({ + selector: "app-subscription", + templateUrl: "subscription.component.html", +}) +export class SubscriptionComponent { + hasPremium: boolean; + selfHosted: boolean; + + constructor( + private tokenService: TokenService, + private platformUtilsService: PlatformUtilsService + ) {} + + async ngOnInit() { + this.hasPremium = await this.tokenService.getPremium(); + this.selfHosted = this.platformUtilsService.isSelfHost(); + } + + get subscriptionRoute(): string { + return this.hasPremium ? "user-subscription" : "premium"; + } +} diff --git a/apps/web/src/app/settings/tax-info.component.html b/apps/web/src/app/settings/tax-info.component.html new file mode 100644 index 0000000000..ea21a46154 --- /dev/null +++ b/apps/web/src/app/settings/tax-info.component.html @@ -0,0 +1,356 @@ +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
diff --git a/apps/web/src/app/settings/tax-info.component.ts b/apps/web/src/app/settings/tax-info.component.ts new file mode 100644 index 0000000000..f36feadde2 --- /dev/null +++ b/apps/web/src/app/settings/tax-info.component.ts @@ -0,0 +1,170 @@ +import { Component, EventEmitter, Output } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { OrganizationTaxInfoUpdateRequest } from "jslib-common/models/request/organizationTaxInfoUpdateRequest"; +import { TaxInfoUpdateRequest } from "jslib-common/models/request/taxInfoUpdateRequest"; +import { TaxRateResponse } from "jslib-common/models/response/taxRateResponse"; + +@Component({ + selector: "app-tax-info", + templateUrl: "tax-info.component.html", +}) +export class TaxInfoComponent { + @Output() onCountryChanged = new EventEmitter(); + + loading = true; + organizationId: string; + taxInfo: any = { + taxId: null, + line1: null, + line2: null, + city: null, + state: null, + postalCode: null, + country: "US", + includeTaxId: false, + }; + + taxRates: TaxRateResponse[]; + + private pristine: any = { + taxId: null, + line1: null, + line2: null, + city: null, + state: null, + postalCode: null, + country: "US", + includeTaxId: false, + }; + + constructor( + private apiService: ApiService, + private route: ActivatedRoute, + private logService: LogService + ) {} + + async ngOnInit() { + this.route.parent.parent.params.subscribe(async (params) => { + this.organizationId = params.organizationId; + if (this.organizationId) { + try { + const taxInfo = await this.apiService.getOrganizationTaxInfo(this.organizationId); + if (taxInfo) { + this.taxInfo.taxId = taxInfo.taxId; + this.taxInfo.state = taxInfo.state; + this.taxInfo.line1 = taxInfo.line1; + this.taxInfo.line2 = taxInfo.line2; + this.taxInfo.city = taxInfo.city; + this.taxInfo.state = taxInfo.state; + this.taxInfo.postalCode = taxInfo.postalCode; + this.taxInfo.country = taxInfo.country || "US"; + this.taxInfo.includeTaxId = + this.taxInfo.country !== "US" && + (!!taxInfo.taxId || + !!taxInfo.line1 || + !!taxInfo.line2 || + !!taxInfo.city || + !!taxInfo.state); + } + } catch (e) { + this.logService.error(e); + } + } else { + try { + const taxInfo = await this.apiService.getTaxInfo(); + if (taxInfo) { + this.taxInfo.postalCode = taxInfo.postalCode; + this.taxInfo.country = taxInfo.country || "US"; + } + } catch (e) { + this.logService.error(e); + } + } + this.pristine = Object.assign({}, this.taxInfo); + // If not the default (US) then trigger onCountryChanged + if (this.taxInfo.country !== "US") { + this.onCountryChanged.emit(); + } + }); + + try { + const taxRates = await this.apiService.getTaxRates(); + if (taxRates) { + this.taxRates = taxRates.data; + } + } catch (e) { + this.logService.error(e); + } finally { + this.loading = false; + } + } + + get taxRate() { + if (this.taxRates != null) { + const localTaxRate = this.taxRates.find( + (x) => x.country === this.taxInfo.country && x.postalCode === this.taxInfo.postalCode + ); + return localTaxRate?.rate ?? null; + } + } + + getTaxInfoRequest(): TaxInfoUpdateRequest { + if (this.organizationId) { + const request = new OrganizationTaxInfoUpdateRequest(); + request.taxId = this.taxInfo.taxId; + request.state = this.taxInfo.state; + request.line1 = this.taxInfo.line1; + request.line2 = this.taxInfo.line2; + request.city = this.taxInfo.city; + request.state = this.taxInfo.state; + request.postalCode = this.taxInfo.postalCode; + request.country = this.taxInfo.country; + return request; + } else { + const request = new TaxInfoUpdateRequest(); + request.postalCode = this.taxInfo.postalCode; + request.country = this.taxInfo.country; + return request; + } + } + + submitTaxInfo(): Promise { + if (!this.hasChanged()) { + return new Promise((resolve) => { + resolve(); + }); + } + const request = this.getTaxInfoRequest(); + return this.organizationId + ? this.apiService.putOrganizationTaxInfo( + this.organizationId, + request as OrganizationTaxInfoUpdateRequest + ) + : this.apiService.putTaxInfo(request); + } + + changeCountry() { + if (this.taxInfo.country === "US") { + this.taxInfo.includeTaxId = false; + this.taxInfo.taxId = null; + this.taxInfo.line1 = null; + this.taxInfo.line2 = null; + this.taxInfo.city = null; + this.taxInfo.state = null; + } + this.onCountryChanged.emit(); + } + + private hasChanged(): boolean { + for (const key in this.taxInfo) { + // eslint-disable-next-line + if (this.pristine.hasOwnProperty(key) && this.pristine[key] !== this.taxInfo[key]) { + return true; + } + } + return false; + } +} diff --git a/apps/web/src/app/settings/two-factor-authenticator.component.html b/apps/web/src/app/settings/two-factor-authenticator.component.html new file mode 100644 index 0000000000..e46c7b0703 --- /dev/null +++ b/apps/web/src/app/settings/two-factor-authenticator.component.html @@ -0,0 +1,116 @@ + diff --git a/apps/web/src/app/settings/two-factor-authenticator.component.ts b/apps/web/src/app/settings/two-factor-authenticator.component.ts new file mode 100644 index 0000000000..c8f7b8c1fa --- /dev/null +++ b/apps/web/src/app/settings/two-factor-authenticator.component.ts @@ -0,0 +1,95 @@ +import { Component, OnDestroy, OnInit } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; +import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; +import { UpdateTwoFactorAuthenticatorRequest } from "jslib-common/models/request/updateTwoFactorAuthenticatorRequest"; +import { TwoFactorAuthenticatorResponse } from "jslib-common/models/response/twoFactorAuthenticatorResponse"; + +import { TwoFactorBaseComponent } from "./two-factor-base.component"; + +@Component({ + selector: "app-two-factor-authenticator", + templateUrl: "two-factor-authenticator.component.html", +}) +export class TwoFactorAuthenticatorComponent + extends TwoFactorBaseComponent + implements OnInit, OnDestroy +{ + type = TwoFactorProviderType.Authenticator; + key: string; + token: string; + formPromise: Promise; + + private qrScript: HTMLScriptElement; + + constructor( + apiService: ApiService, + i18nService: I18nService, + userVerificationService: UserVerificationService, + platformUtilsService: PlatformUtilsService, + logService: LogService, + private stateService: StateService + ) { + super(apiService, i18nService, platformUtilsService, logService, userVerificationService); + this.qrScript = window.document.createElement("script"); + this.qrScript.src = "scripts/qrious.min.js"; + this.qrScript.async = true; + } + + ngOnInit() { + window.document.body.appendChild(this.qrScript); + } + + ngOnDestroy() { + window.document.body.removeChild(this.qrScript); + } + + auth(authResponse: any) { + super.auth(authResponse); + return this.processResponse(authResponse.response); + } + + submit() { + if (this.enabled) { + return super.disable(this.formPromise); + } else { + return this.enable(); + } + } + + protected async enable() { + const request = await this.buildRequestModel(UpdateTwoFactorAuthenticatorRequest); + request.token = this.token; + request.key = this.key; + + return super.enable(async () => { + this.formPromise = this.apiService.putTwoFactorAuthenticator(request); + const response = await this.formPromise; + await this.processResponse(response); + }); + } + + private async processResponse(response: TwoFactorAuthenticatorResponse) { + this.token = null; + this.enabled = response.enabled; + this.key = response.key; + const email = await this.stateService.getEmail(); + window.setTimeout(() => { + new (window as any).QRious({ + element: document.getElementById("qr"), + value: + "otpauth://totp/Bitwarden:" + + encodeURIComponent(email) + + "?secret=" + + encodeURIComponent(this.key) + + "&issuer=Bitwarden", + size: 160, + }); + }, 100); + } +} diff --git a/apps/web/src/app/settings/two-factor-base.component.ts b/apps/web/src/app/settings/two-factor-base.component.ts new file mode 100644 index 0000000000..b07c9d4138 --- /dev/null +++ b/apps/web/src/app/settings/two-factor-base.component.ts @@ -0,0 +1,90 @@ +import { Directive, EventEmitter, Output } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; +import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; +import { VerificationType } from "jslib-common/enums/verificationType"; +import { SecretVerificationRequest } from "jslib-common/models/request/secretVerificationRequest"; +import { TwoFactorProviderRequest } from "jslib-common/models/request/twoFactorProviderRequest"; + +@Directive() +export abstract class TwoFactorBaseComponent { + @Output() onUpdated = new EventEmitter(); + + type: TwoFactorProviderType; + organizationId: string; + twoFactorProviderType = TwoFactorProviderType; + enabled = false; + authed = false; + + protected hashedSecret: string; + protected verificationType: VerificationType; + + constructor( + protected apiService: ApiService, + protected i18nService: I18nService, + protected platformUtilsService: PlatformUtilsService, + protected logService: LogService, + protected userVerificationService: UserVerificationService + ) {} + + protected auth(authResponse: any) { + this.hashedSecret = authResponse.secret; + this.verificationType = authResponse.verificationType; + this.authed = true; + } + + protected async enable(enableFunction: () => Promise) { + try { + await enableFunction(); + this.onUpdated.emit(true); + } catch (e) { + this.logService.error(e); + } + } + + protected async disable(promise: Promise) { + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("twoStepDisableDesc"), + this.i18nService.t("disable"), + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!confirmed) { + return; + } + + try { + const request = await this.buildRequestModel(TwoFactorProviderRequest); + request.type = this.type; + if (this.organizationId != null) { + promise = this.apiService.putTwoFactorOrganizationDisable(this.organizationId, request); + } else { + promise = this.apiService.putTwoFactorDisable(request); + } + await promise; + this.enabled = false; + this.platformUtilsService.showToast("success", null, this.i18nService.t("twoStepDisabled")); + this.onUpdated.emit(false); + } catch (e) { + this.logService.error(e); + } + } + + protected async buildRequestModel( + requestClass: new () => T + ) { + return this.userVerificationService.buildRequest( + { + secret: this.hashedSecret, + type: this.verificationType, + }, + requestClass, + true + ); + } +} diff --git a/apps/web/src/app/settings/two-factor-duo.component.html b/apps/web/src/app/settings/two-factor-duo.component.html new file mode 100644 index 0000000000..220c6997b7 --- /dev/null +++ b/apps/web/src/app/settings/two-factor-duo.component.html @@ -0,0 +1,105 @@ + diff --git a/apps/web/src/app/settings/two-factor-duo.component.ts b/apps/web/src/app/settings/two-factor-duo.component.ts new file mode 100644 index 0000000000..e17f04ea24 --- /dev/null +++ b/apps/web/src/app/settings/two-factor-duo.component.ts @@ -0,0 +1,74 @@ +import { Component } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; +import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; +import { UpdateTwoFactorDuoRequest } from "jslib-common/models/request/updateTwoFactorDuoRequest"; +import { TwoFactorDuoResponse } from "jslib-common/models/response/twoFactorDuoResponse"; + +import { TwoFactorBaseComponent } from "./two-factor-base.component"; + +@Component({ + selector: "app-two-factor-duo", + templateUrl: "two-factor-duo.component.html", +}) +export class TwoFactorDuoComponent extends TwoFactorBaseComponent { + type = TwoFactorProviderType.Duo; + ikey: string; + skey: string; + host: string; + formPromise: Promise; + + constructor( + apiService: ApiService, + i18nService: I18nService, + platformUtilsService: PlatformUtilsService, + logService: LogService, + userVerificationService: UserVerificationService + ) { + super(apiService, i18nService, platformUtilsService, logService, userVerificationService); + } + + auth(authResponse: any) { + super.auth(authResponse); + this.processResponse(authResponse.response); + } + + submit() { + if (this.enabled) { + return super.disable(this.formPromise); + } else { + return this.enable(); + } + } + + protected async enable() { + const request = await this.buildRequestModel(UpdateTwoFactorDuoRequest); + request.integrationKey = this.ikey; + request.secretKey = this.skey; + request.host = this.host; + + return super.enable(async () => { + if (this.organizationId != null) { + this.formPromise = this.apiService.putTwoFactorOrganizationDuo( + this.organizationId, + request + ); + } else { + this.formPromise = this.apiService.putTwoFactorDuo(request); + } + const response = await this.formPromise; + await this.processResponse(response); + }); + } + + private processResponse(response: TwoFactorDuoResponse) { + this.ikey = response.integrationKey; + this.skey = response.secretKey; + this.host = response.host; + this.enabled = response.enabled; + } +} diff --git a/apps/web/src/app/settings/two-factor-email.component.html b/apps/web/src/app/settings/two-factor-email.component.html new file mode 100644 index 0000000000..f189a27504 --- /dev/null +++ b/apps/web/src/app/settings/two-factor-email.component.html @@ -0,0 +1,108 @@ + diff --git a/apps/web/src/app/settings/two-factor-email.component.ts b/apps/web/src/app/settings/two-factor-email.component.ts new file mode 100644 index 0000000000..e45bb87743 --- /dev/null +++ b/apps/web/src/app/settings/two-factor-email.component.ts @@ -0,0 +1,84 @@ +import { Component } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; +import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; +import { TwoFactorEmailRequest } from "jslib-common/models/request/twoFactorEmailRequest"; +import { UpdateTwoFactorEmailRequest } from "jslib-common/models/request/updateTwoFactorEmailRequest"; +import { TwoFactorEmailResponse } from "jslib-common/models/response/twoFactorEmailResponse"; + +import { TwoFactorBaseComponent } from "./two-factor-base.component"; + +@Component({ + selector: "app-two-factor-email", + templateUrl: "two-factor-email.component.html", +}) +export class TwoFactorEmailComponent extends TwoFactorBaseComponent { + type = TwoFactorProviderType.Email; + email: string; + token: string; + sentEmail: string; + formPromise: Promise; + emailPromise: Promise; + + constructor( + apiService: ApiService, + i18nService: I18nService, + platformUtilsService: PlatformUtilsService, + logService: LogService, + userVerificationService: UserVerificationService, + private stateService: StateService + ) { + super(apiService, i18nService, platformUtilsService, logService, userVerificationService); + } + + auth(authResponse: any) { + super.auth(authResponse); + return this.processResponse(authResponse.response); + } + + submit() { + if (this.enabled) { + return super.disable(this.formPromise); + } else { + return this.enable(); + } + } + + async sendEmail() { + try { + const request = await this.buildRequestModel(TwoFactorEmailRequest); + request.email = this.email; + this.emailPromise = this.apiService.postTwoFactorEmailSetup(request); + await this.emailPromise; + this.sentEmail = this.email; + } catch (e) { + this.logService.error(e); + } + } + + protected async enable() { + const request = await this.buildRequestModel(UpdateTwoFactorEmailRequest); + request.email = this.email; + request.token = this.token; + + return super.enable(async () => { + this.formPromise = this.apiService.putTwoFactorEmail(request); + const response = await this.formPromise; + await this.processResponse(response); + }); + } + + private async processResponse(response: TwoFactorEmailResponse) { + this.token = null; + this.email = response.email; + this.enabled = response.enabled; + if (!this.enabled && (this.email == null || this.email === "")) { + this.email = await this.stateService.getEmail(); + } + } +} diff --git a/apps/web/src/app/settings/two-factor-recovery.component.html b/apps/web/src/app/settings/two-factor-recovery.component.html new file mode 100644 index 0000000000..ba9129da17 --- /dev/null +++ b/apps/web/src/app/settings/two-factor-recovery.component.html @@ -0,0 +1,46 @@ + diff --git a/apps/web/src/app/settings/two-factor-recovery.component.ts b/apps/web/src/app/settings/two-factor-recovery.component.ts new file mode 100644 index 0000000000..576f91566c --- /dev/null +++ b/apps/web/src/app/settings/two-factor-recovery.component.ts @@ -0,0 +1,55 @@ +import { Component } from "@angular/core"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; +import { TwoFactorRecoverResponse } from "jslib-common/models/response/twoFactorRescoverResponse"; + +@Component({ + selector: "app-two-factor-recovery", + templateUrl: "two-factor-recovery.component.html", +}) +export class TwoFactorRecoveryComponent { + type = -1; + code: string; + authed: boolean; + twoFactorProviderType = TwoFactorProviderType; + + constructor(private i18nService: I18nService) {} + + auth(authResponse: any) { + this.authed = true; + this.processResponse(authResponse.response); + } + + print() { + const w = window.open(); + w.document.write( + '
' + + "

" + + this.i18nService.t("twoFactorRecoveryYourCode") + + ":

" + + "" + + this.code + + "
" + + '

' + + new Date() + + "

" + ); + w.onafterprint = () => w.close(); + w.print(); + } + + private formatString(s: string) { + if (s == null) { + return null; + } + return s + .replace(/(.{4})/g, "$1 ") + .trim() + .toUpperCase(); + } + + private processResponse(response: TwoFactorRecoverResponse) { + this.code = this.formatString(response.code); + } +} diff --git a/apps/web/src/app/settings/two-factor-setup.component.html b/apps/web/src/app/settings/two-factor-setup.component.html new file mode 100644 index 0000000000..27fc2990e6 --- /dev/null +++ b/apps/web/src/app/settings/two-factor-setup.component.html @@ -0,0 +1,64 @@ +
+

{{ "twoStepLogin" | i18n }}

+
+

{{ "twoStepLoginDesc" | i18n }}

+

{{ "twoStepLoginOrganizationDesc" | i18n }}

+ +

{{ "twoStepLoginRecoveryWarning" | i18n }}

+ +
+

+ {{ "providers" | i18n }} + + + {{ "loading" | i18n }} + +

+ + {{ "twoStepLoginPolicyUserWarning" | i18n }} + +
    +
  • +
    + +
    +
    +

    + {{ p.name }} + + + {{ "enabled" | i18n }} + + +

    + {{ p.description }} +
    +
    + +
    +
  • +
+ + + + + + + diff --git a/apps/web/src/app/settings/two-factor-setup.component.ts b/apps/web/src/app/settings/two-factor-setup.component.ts new file mode 100644 index 0000000000..bab2594237 --- /dev/null +++ b/apps/web/src/app/settings/two-factor-setup.component.ts @@ -0,0 +1,189 @@ +import { Component, OnInit, Type, ViewChild, ViewContainerRef } from "@angular/core"; + +import { ModalRef } from "jslib-angular/components/modal/modal.ref"; +import { ModalService } from "jslib-angular/services/modal.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { PolicyType } from "jslib-common/enums/policyType"; +import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; +import { TwoFactorProviders } from "jslib-common/services/twoFactor.service"; + +import { TwoFactorAuthenticatorComponent } from "./two-factor-authenticator.component"; +import { TwoFactorDuoComponent } from "./two-factor-duo.component"; +import { TwoFactorEmailComponent } from "./two-factor-email.component"; +import { TwoFactorRecoveryComponent } from "./two-factor-recovery.component"; +import { TwoFactorWebAuthnComponent } from "./two-factor-webauthn.component"; +import { TwoFactorYubiKeyComponent } from "./two-factor-yubikey.component"; + +@Component({ + selector: "app-two-factor-setup", + templateUrl: "two-factor-setup.component.html", +}) +export class TwoFactorSetupComponent implements OnInit { + @ViewChild("recoveryTemplate", { read: ViewContainerRef, static: true }) + recoveryModalRef: ViewContainerRef; + @ViewChild("authenticatorTemplate", { read: ViewContainerRef, static: true }) + authenticatorModalRef: ViewContainerRef; + @ViewChild("yubikeyTemplate", { read: ViewContainerRef, static: true }) + yubikeyModalRef: ViewContainerRef; + @ViewChild("duoTemplate", { read: ViewContainerRef, static: true }) duoModalRef: ViewContainerRef; + @ViewChild("emailTemplate", { read: ViewContainerRef, static: true }) + emailModalRef: ViewContainerRef; + @ViewChild("webAuthnTemplate", { read: ViewContainerRef, static: true }) + webAuthnModalRef: ViewContainerRef; + + organizationId: string; + providers: any[] = []; + canAccessPremium: boolean; + showPolicyWarning = false; + loading = true; + modal: ModalRef; + + constructor( + protected apiService: ApiService, + protected modalService: ModalService, + protected messagingService: MessagingService, + protected policyService: PolicyService, + private stateService: StateService + ) {} + + async ngOnInit() { + this.canAccessPremium = await this.stateService.getCanAccessPremium(); + + for (const key in TwoFactorProviders) { + // eslint-disable-next-line + if (!TwoFactorProviders.hasOwnProperty(key)) { + continue; + } + + const p = (TwoFactorProviders as any)[key]; + if (this.filterProvider(p.type)) { + continue; + } + + this.providers.push({ + type: p.type, + name: p.name, + description: p.description, + enabled: false, + premium: p.premium, + sort: p.sort, + }); + } + + this.providers.sort((a: any, b: any) => a.sort - b.sort); + await this.load(); + } + + async load() { + this.loading = true; + const providerList = await this.getTwoFactorProviders(); + providerList.data.forEach((p) => { + this.providers.forEach((p2) => { + if (p.type === p2.type) { + p2.enabled = p.enabled; + } + }); + }); + this.evaluatePolicies(); + this.loading = false; + } + + async manage(type: TwoFactorProviderType) { + switch (type) { + case TwoFactorProviderType.Authenticator: { + const authComp = await this.openModal( + this.authenticatorModalRef, + TwoFactorAuthenticatorComponent + ); + authComp.onUpdated.subscribe((enabled: boolean) => { + this.updateStatus(enabled, TwoFactorProviderType.Authenticator); + }); + break; + } + case TwoFactorProviderType.Yubikey: { + const yubiComp = await this.openModal(this.yubikeyModalRef, TwoFactorYubiKeyComponent); + yubiComp.onUpdated.subscribe((enabled: boolean) => { + this.updateStatus(enabled, TwoFactorProviderType.Yubikey); + }); + break; + } + case TwoFactorProviderType.Duo: { + const duoComp = await this.openModal(this.duoModalRef, TwoFactorDuoComponent); + duoComp.onUpdated.subscribe((enabled: boolean) => { + this.updateStatus(enabled, TwoFactorProviderType.Duo); + }); + break; + } + case TwoFactorProviderType.Email: { + const emailComp = await this.openModal(this.emailModalRef, TwoFactorEmailComponent); + emailComp.onUpdated.subscribe((enabled: boolean) => { + this.updateStatus(enabled, TwoFactorProviderType.Email); + }); + break; + } + case TwoFactorProviderType.WebAuthn: { + const webAuthnComp = await this.openModal( + this.webAuthnModalRef, + TwoFactorWebAuthnComponent + ); + webAuthnComp.onUpdated.subscribe((enabled: boolean) => { + this.updateStatus(enabled, TwoFactorProviderType.WebAuthn); + }); + break; + } + default: + break; + } + } + + recoveryCode() { + this.openModal(this.recoveryModalRef, TwoFactorRecoveryComponent); + } + + async premiumRequired() { + if (!this.canAccessPremium) { + this.messagingService.send("premiumRequired"); + return; + } + } + + protected getTwoFactorProviders() { + return this.apiService.getTwoFactorProviders(); + } + + protected filterProvider(type: TwoFactorProviderType) { + return type === TwoFactorProviderType.OrganizationDuo; + } + + protected async openModal(ref: ViewContainerRef, type: Type): Promise { + const [modal, childComponent] = await this.modalService.openViewRef(type, ref); + this.modal = modal; + + return childComponent; + } + + protected updateStatus(enabled: boolean, type: TwoFactorProviderType) { + if (!enabled && this.modal != null) { + this.modal.close(); + } + this.providers.forEach((p) => { + if (p.type === type) { + p.enabled = enabled; + } + }); + this.evaluatePolicies(); + } + + private async evaluatePolicies() { + if (this.organizationId == null && this.providers.filter((p) => p.enabled).length === 1) { + this.showPolicyWarning = await this.policyService.policyAppliesToUser( + PolicyType.TwoFactorAuthentication + ); + } else { + this.showPolicyWarning = false; + } + } +} diff --git a/apps/web/src/app/settings/two-factor-verify.component.html b/apps/web/src/app/settings/two-factor-verify.component.html new file mode 100644 index 0000000000..523514f1ae --- /dev/null +++ b/apps/web/src/app/settings/two-factor-verify.component.html @@ -0,0 +1,16 @@ +
+ + +
diff --git a/apps/web/src/app/settings/two-factor-verify.component.ts b/apps/web/src/app/settings/two-factor-verify.component.ts new file mode 100644 index 0000000000..ff1fe7ed46 --- /dev/null +++ b/apps/web/src/app/settings/two-factor-verify.component.ts @@ -0,0 +1,87 @@ +import { Component, EventEmitter, Input, Output } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; +import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; +import { VerificationType } from "jslib-common/enums/verificationType"; +import { SecretVerificationRequest } from "jslib-common/models/request/secretVerificationRequest"; +import { TwoFactorAuthenticatorResponse } from "jslib-common/models/response/twoFactorAuthenticatorResponse"; +import { TwoFactorDuoResponse } from "jslib-common/models/response/twoFactorDuoResponse"; +import { TwoFactorEmailResponse } from "jslib-common/models/response/twoFactorEmailResponse"; +import { TwoFactorRecoverResponse } from "jslib-common/models/response/twoFactorRescoverResponse"; +import { TwoFactorWebAuthnResponse } from "jslib-common/models/response/twoFactorWebAuthnResponse"; +import { TwoFactorYubiKeyResponse } from "jslib-common/models/response/twoFactorYubiKeyResponse"; +import { Verification } from "jslib-common/types/verification"; + +type TwoFactorResponse = + | TwoFactorRecoverResponse + | TwoFactorDuoResponse + | TwoFactorEmailResponse + | TwoFactorWebAuthnResponse + | TwoFactorAuthenticatorResponse + | TwoFactorYubiKeyResponse; + +@Component({ + selector: "app-two-factor-verify", + templateUrl: "two-factor-verify.component.html", +}) +export class TwoFactorVerifyComponent { + @Input() type: TwoFactorProviderType; + @Input() organizationId: string; + @Output() onAuthed = new EventEmitter(); + + secret: Verification; + formPromise: Promise; + + constructor( + private apiService: ApiService, + private logService: LogService, + private userVerificationService: UserVerificationService + ) {} + + async submit() { + let hashedSecret: string; + + try { + this.formPromise = this.userVerificationService.buildRequest(this.secret).then((request) => { + hashedSecret = + this.secret.type === VerificationType.MasterPassword + ? request.masterPasswordHash + : request.otp; + return this.apiCall(request); + }); + + const response = await this.formPromise; + this.onAuthed.emit({ + response: response, + secret: hashedSecret, + verificationType: this.secret.type, + }); + } catch (e) { + this.logService.error(e); + } + } + + private apiCall(request: SecretVerificationRequest): Promise { + switch (this.type) { + case -1 as TwoFactorProviderType: + return this.apiService.getTwoFactorRecover(request); + case TwoFactorProviderType.Duo: + case TwoFactorProviderType.OrganizationDuo: + if (this.organizationId != null) { + return this.apiService.getTwoFactorOrganizationDuo(this.organizationId, request); + } else { + return this.apiService.getTwoFactorDuo(request); + } + case TwoFactorProviderType.Email: + return this.apiService.getTwoFactorEmail(request); + case TwoFactorProviderType.WebAuthn: + return this.apiService.getTwoFactorWebAuthn(request); + case TwoFactorProviderType.Authenticator: + return this.apiService.getTwoFactorAuthenticator(request); + case TwoFactorProviderType.Yubikey: + return this.apiService.getTwoFactorYubiKey(request); + } + } +} diff --git a/apps/web/src/app/settings/two-factor-webauthn.component.html b/apps/web/src/app/settings/two-factor-webauthn.component.html new file mode 100644 index 0000000000..2c91dbc5ae --- /dev/null +++ b/apps/web/src/app/settings/two-factor-webauthn.component.html @@ -0,0 +1,160 @@ + diff --git a/apps/web/src/app/settings/two-factor-webauthn.component.ts b/apps/web/src/app/settings/two-factor-webauthn.component.ts new file mode 100644 index 0000000000..41e12f90c6 --- /dev/null +++ b/apps/web/src/app/settings/two-factor-webauthn.component.ts @@ -0,0 +1,171 @@ +import { Component, NgZone } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; +import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; +import { SecretVerificationRequest } from "jslib-common/models/request/secretVerificationRequest"; +import { UpdateTwoFactorWebAuthnDeleteRequest } from "jslib-common/models/request/updateTwoFactorWebAuthnDeleteRequest"; +import { UpdateTwoFactorWebAuthnRequest } from "jslib-common/models/request/updateTwoFactorWebAuthnRequest"; +import { + ChallengeResponse, + TwoFactorWebAuthnResponse, +} from "jslib-common/models/response/twoFactorWebAuthnResponse"; + +import { TwoFactorBaseComponent } from "./two-factor-base.component"; + +@Component({ + selector: "app-two-factor-webauthn", + templateUrl: "two-factor-webauthn.component.html", +}) +export class TwoFactorWebAuthnComponent extends TwoFactorBaseComponent { + type = TwoFactorProviderType.WebAuthn; + name: string; + keys: any[]; + keyIdAvailable: number = null; + keysConfiguredCount = 0; + webAuthnError: boolean; + webAuthnListening: boolean; + webAuthnResponse: PublicKeyCredential; + challengePromise: Promise; + formPromise: Promise; + + constructor( + apiService: ApiService, + i18nService: I18nService, + platformUtilsService: PlatformUtilsService, + private ngZone: NgZone, + logService: LogService, + userVerificationService: UserVerificationService + ) { + super(apiService, i18nService, platformUtilsService, logService, userVerificationService); + } + + auth(authResponse: any) { + super.auth(authResponse); + this.processResponse(authResponse.response); + } + + async submit() { + if (this.webAuthnResponse == null || this.keyIdAvailable == null) { + // Should never happen. + return Promise.reject(); + } + const request = await this.buildRequestModel(UpdateTwoFactorWebAuthnRequest); + request.deviceResponse = this.webAuthnResponse; + request.id = this.keyIdAvailable; + request.name = this.name; + + return super.enable(async () => { + this.formPromise = this.apiService.putTwoFactorWebAuthn(request); + const response = await this.formPromise; + await this.processResponse(response); + }); + } + + disable() { + return super.disable(this.formPromise); + } + + async remove(key: any) { + if (this.keysConfiguredCount <= 1 || key.removePromise != null) { + return; + } + const name = key.name != null ? key.name : this.i18nService.t("webAuthnkeyX", key.id); + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("removeU2fConfirmation"), + name, + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!confirmed) { + return; + } + const request = await this.buildRequestModel(UpdateTwoFactorWebAuthnDeleteRequest); + request.id = key.id; + try { + key.removePromise = this.apiService.deleteTwoFactorWebAuthn(request); + const response = await key.removePromise; + key.removePromise = null; + await this.processResponse(response); + } catch (e) { + this.logService.error(e); + } + } + + async readKey() { + if (this.keyIdAvailable == null) { + return; + } + const request = await this.buildRequestModel(SecretVerificationRequest); + try { + this.challengePromise = this.apiService.getTwoFactorWebAuthnChallenge(request); + const challenge = await this.challengePromise; + this.readDevice(challenge); + } catch (e) { + this.logService.error(e); + } + } + + private readDevice(webAuthnChallenge: ChallengeResponse) { + // eslint-disable-next-line + console.log("listening for key..."); + this.resetWebAuthn(true); + + navigator.credentials + .create({ + publicKey: webAuthnChallenge, + }) + .then((data: PublicKeyCredential) => { + this.ngZone.run(() => { + this.webAuthnListening = false; + this.webAuthnResponse = data; + }); + }) + .catch((err) => { + // eslint-disable-next-line + console.error(err); + this.resetWebAuthn(false); + // TODO: Should we display the actual error? + this.webAuthnError = true; + }); + } + + private resetWebAuthn(listening = false) { + this.webAuthnResponse = null; + this.webAuthnError = false; + this.webAuthnListening = listening; + } + + private processResponse(response: TwoFactorWebAuthnResponse) { + this.resetWebAuthn(); + this.keys = []; + this.keyIdAvailable = null; + this.name = null; + this.keysConfiguredCount = 0; + for (let i = 1; i <= 5; i++) { + if (response.keys != null) { + const key = response.keys.filter((k) => k.id === i); + if (key.length > 0) { + this.keysConfiguredCount++; + this.keys.push({ + id: i, + name: key[0].name, + configured: true, + migrated: key[0].migrated, + removePromise: null, + }); + continue; + } + } + this.keys.push({ id: i, name: null, configured: false, removePromise: null }); + if (this.keyIdAvailable == null) { + this.keyIdAvailable = i; + } + } + this.enabled = response.enabled; + } +} diff --git a/apps/web/src/app/settings/two-factor-yubikey.component.html b/apps/web/src/app/settings/two-factor-yubikey.component.html new file mode 100644 index 0000000000..96eff9b3a4 --- /dev/null +++ b/apps/web/src/app/settings/two-factor-yubikey.component.html @@ -0,0 +1,125 @@ + diff --git a/apps/web/src/app/settings/two-factor-yubikey.component.ts b/apps/web/src/app/settings/two-factor-yubikey.component.ts new file mode 100644 index 0000000000..ee653df7ea --- /dev/null +++ b/apps/web/src/app/settings/two-factor-yubikey.component.ts @@ -0,0 +1,89 @@ +import { Component } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; +import { TwoFactorProviderType } from "jslib-common/enums/twoFactorProviderType"; +import { UpdateTwoFactorYubioOtpRequest } from "jslib-common/models/request/updateTwoFactorYubioOtpRequest"; +import { TwoFactorYubiKeyResponse } from "jslib-common/models/response/twoFactorYubiKeyResponse"; + +import { TwoFactorBaseComponent } from "./two-factor-base.component"; + +@Component({ + selector: "app-two-factor-yubikey", + templateUrl: "two-factor-yubikey.component.html", +}) +export class TwoFactorYubiKeyComponent extends TwoFactorBaseComponent { + type = TwoFactorProviderType.Yubikey; + keys: any[]; + nfc = false; + + formPromise: Promise; + disablePromise: Promise; + + constructor( + apiService: ApiService, + i18nService: I18nService, + platformUtilsService: PlatformUtilsService, + logService: LogService, + userVerificationService: UserVerificationService + ) { + super(apiService, i18nService, platformUtilsService, logService, userVerificationService); + } + + auth(authResponse: any) { + super.auth(authResponse); + this.processResponse(authResponse.response); + } + + async submit() { + const request = await this.buildRequestModel(UpdateTwoFactorYubioOtpRequest); + request.key1 = this.keys != null && this.keys.length > 0 ? this.keys[0].key : null; + request.key2 = this.keys != null && this.keys.length > 1 ? this.keys[1].key : null; + request.key3 = this.keys != null && this.keys.length > 2 ? this.keys[2].key : null; + request.key4 = this.keys != null && this.keys.length > 3 ? this.keys[3].key : null; + request.key5 = this.keys != null && this.keys.length > 4 ? this.keys[4].key : null; + request.nfc = this.nfc; + + return super.enable(async () => { + this.formPromise = this.apiService.putTwoFactorYubiKey(request); + const response = await this.formPromise; + await this.processResponse(response); + this.platformUtilsService.showToast("success", null, this.i18nService.t("yubikeysUpdated")); + }); + } + + disable() { + return super.disable(this.disablePromise); + } + + remove(key: any) { + key.existingKey = null; + key.key = null; + } + + private processResponse(response: TwoFactorYubiKeyResponse) { + this.enabled = response.enabled; + this.keys = [ + { key: response.key1, existingKey: this.padRight(response.key1) }, + { key: response.key2, existingKey: this.padRight(response.key2) }, + { key: response.key3, existingKey: this.padRight(response.key3) }, + { key: response.key4, existingKey: this.padRight(response.key4) }, + { key: response.key5, existingKey: this.padRight(response.key5) }, + ]; + this.nfc = response.nfc || !response.enabled; + } + + private padRight(str: string, character = "•", size = 44) { + if (str == null || character == null || str.length >= size) { + return str; + } + const max = (size - str.length) / character.length; + for (let i = 0; i < max; i++) { + str += character; + } + return str; + } +} diff --git a/apps/web/src/app/settings/update-key.component.html b/apps/web/src/app/settings/update-key.component.html new file mode 100644 index 0000000000..e82fc77267 --- /dev/null +++ b/apps/web/src/app/settings/update-key.component.html @@ -0,0 +1,55 @@ + diff --git a/apps/web/src/app/settings/update-key.component.ts b/apps/web/src/app/settings/update-key.component.ts new file mode 100644 index 0000000000..54d7cd5946 --- /dev/null +++ b/apps/web/src/app/settings/update-key.component.ts @@ -0,0 +1,104 @@ +import { Component } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { FolderService } from "jslib-common/abstractions/folder.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { EncString } from "jslib-common/models/domain/encString"; +import { CipherWithIdRequest } from "jslib-common/models/request/cipherWithIdRequest"; +import { FolderWithIdRequest } from "jslib-common/models/request/folderWithIdRequest"; +import { UpdateKeyRequest } from "jslib-common/models/request/updateKeyRequest"; + +@Component({ + selector: "app-update-key", + templateUrl: "update-key.component.html", +}) +export class UpdateKeyComponent { + masterPassword: string; + formPromise: Promise; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private cryptoService: CryptoService, + private messagingService: MessagingService, + private syncService: SyncService, + private folderService: FolderService, + private cipherService: CipherService, + private logService: LogService + ) {} + + async submit() { + const hasEncKey = await this.cryptoService.hasEncKey(); + if (hasEncKey) { + return; + } + + if (this.masterPassword == null || this.masterPassword === "") { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("masterPassRequired") + ); + return; + } + + try { + this.formPromise = this.makeRequest().then((request) => { + return this.apiService.postAccountKey(request); + }); + await this.formPromise; + this.platformUtilsService.showToast( + "success", + this.i18nService.t("keyUpdated"), + this.i18nService.t("logBackInOthersToo"), + { timeout: 15000 } + ); + this.messagingService.send("logout"); + } catch (e) { + this.logService.error(e); + } + } + + private async makeRequest(): Promise { + const key = await this.cryptoService.getKey(); + const encKey = await this.cryptoService.makeEncKey(key); + const privateKey = await this.cryptoService.getPrivateKey(); + let encPrivateKey: EncString = null; + if (privateKey != null) { + encPrivateKey = await this.cryptoService.encrypt(privateKey, encKey[0]); + } + const request = new UpdateKeyRequest(); + request.privateKey = encPrivateKey != null ? encPrivateKey.encryptedString : null; + request.key = encKey[1].encryptedString; + request.masterPasswordHash = await this.cryptoService.hashPassword(this.masterPassword, null); + + await this.syncService.fullSync(true); + + const folders = await this.folderService.getAllDecrypted(); + for (let i = 0; i < folders.length; i++) { + if (folders[i].id == null) { + continue; + } + const folder = await this.folderService.encrypt(folders[i], encKey[0]); + request.folders.push(new FolderWithIdRequest(folder)); + } + + const ciphers = await this.cipherService.getAllDecrypted(); + for (let i = 0; i < ciphers.length; i++) { + if (ciphers[i].organizationId != null) { + continue; + } + const cipher = await this.cipherService.encrypt(ciphers[i], encKey[0]); + request.ciphers.push(new CipherWithIdRequest(cipher)); + } + + return request; + } +} diff --git a/apps/web/src/app/settings/update-license.component.html b/apps/web/src/app/settings/update-license.component.html new file mode 100644 index 0000000000..3884f56935 --- /dev/null +++ b/apps/web/src/app/settings/update-license.component.html @@ -0,0 +1,20 @@ +
+
+ + + {{ + "licenseFileDesc" + | i18n + : (!organizationId + ? "bitwarden_premium_license.json" + : "bitwarden_organization_license.json") + }} +
+ + +
diff --git a/apps/web/src/app/settings/update-license.component.ts b/apps/web/src/app/settings/update-license.component.ts new file mode 100644 index 0000000000..a163123564 --- /dev/null +++ b/apps/web/src/app/settings/update-license.component.ts @@ -0,0 +1,64 @@ +import { Component, EventEmitter, Input, Output } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; + +@Component({ + selector: "app-update-license", + templateUrl: "update-license.component.html", +}) +export class UpdateLicenseComponent { + @Input() organizationId: string; + @Output() onUpdated = new EventEmitter(); + @Output() onCanceled = new EventEmitter(); + + formPromise: Promise; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private logService: LogService + ) {} + + async submit() { + const fileEl = document.getElementById("file") as HTMLInputElement; + const files = fileEl.files; + if (files == null || files.length === 0) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("selectFile") + ); + return; + } + + try { + const fd = new FormData(); + fd.append("license", files[0]); + + let updatePromise: Promise = null; + if (this.organizationId == null) { + updatePromise = this.apiService.postAccountLicense(fd); + } else { + updatePromise = this.apiService.postOrganizationLicenseUpdate(this.organizationId, fd); + } + + this.formPromise = updatePromise.then(() => { + return this.apiService.refreshIdentityToken(); + }); + + await this.formPromise; + this.platformUtilsService.showToast("success", null, this.i18nService.t("updatedLicense")); + this.onUpdated.emit(); + } catch (e) { + this.logService.error(e); + } + } + + cancel() { + this.onCanceled.emit(); + } +} diff --git a/apps/web/src/app/settings/user-billing-history.component.html b/apps/web/src/app/settings/user-billing-history.component.html new file mode 100644 index 0000000000..804830c84e --- /dev/null +++ b/apps/web/src/app/settings/user-billing-history.component.html @@ -0,0 +1,98 @@ +
+

+ {{ "billingHistory" | i18n }} +

+ +
+ + + {{ "loading" | i18n }} + + +

{{ "invoices" | i18n }}

+

{{ "noInvoices" | i18n }}

+ + + + + + + + + +
{{ i.date | date: "mediumDate" }} + + + + {{ "invoiceNumber" | i18n: i.number }} + {{ i.amount | currency: "$" }} + + + {{ "paid" | i18n }} + + + + {{ "unpaid" | i18n }} + +
+

{{ "transactions" | i18n }}

+

{{ "noTransactions" | i18n }}

+ + + + + + + + + +
{{ t.createdDate | date: "mediumDate" }} + + {{ "chargeNoun" | i18n }} + + {{ "refundNoun" | i18n }} + + + {{ t.details }} + + {{ t.amount | currency: "$" }} +
+ * {{ "chargesStatement" | i18n: "BITWARDEN" }} +
diff --git a/apps/web/src/app/settings/user-billing-history.component.ts b/apps/web/src/app/settings/user-billing-history.component.ts new file mode 100644 index 0000000000..ae26862d07 --- /dev/null +++ b/apps/web/src/app/settings/user-billing-history.component.ts @@ -0,0 +1,53 @@ +import { Component, OnInit } from "@angular/core"; +import { Router } from "@angular/router"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PaymentMethodType } from "jslib-common/enums/paymentMethodType"; +import { TransactionType } from "jslib-common/enums/transactionType"; +import { BillingHistoryResponse } from "jslib-common/models/response/billingHistoryResponse"; + +@Component({ + selector: "app-user-billing", + templateUrl: "user-billing-history.component.html", +}) +export class UserBillingHistoryComponent implements OnInit { + loading = false; + firstLoaded = false; + billing: BillingHistoryResponse; + paymentMethodType = PaymentMethodType; + transactionType = TransactionType; + + constructor( + protected apiService: ApiService, + protected i18nService: I18nService, + protected platformUtilsService: PlatformUtilsService, + private router: Router + ) {} + + async ngOnInit() { + if (this.platformUtilsService.isSelfHost()) { + this.router.navigate(["/settings/subscription"]); + } + await this.load(); + this.firstLoaded = true; + } + + async load() { + if (this.loading) { + return; + } + this.loading = true; + this.billing = await this.apiService.getUserBillingHistory(); + this.loading = false; + } + + get invoices() { + return this.billing != null ? this.billing.invoices : null; + } + + get transactions() { + return this.billing != null ? this.billing.transactions : null; + } +} diff --git a/apps/web/src/app/settings/user-subscription.component.html b/apps/web/src/app/settings/user-subscription.component.html new file mode 100644 index 0000000000..64d6f93602 --- /dev/null +++ b/apps/web/src/app/settings/user-subscription.component.html @@ -0,0 +1,197 @@ +
+

+ {{ title }} + + + {{ "loading" | i18n }} + +

+
+ + + {{ "loading" | i18n }} + + + + {{ "subscriptionCanceled" | i18n }} + +

{{ "subscriptionPendingCanceled" | i18n }}

+ +
+
+
{{ "expiration" | i18n }}
+
{{ sub.expiration | date: "mediumDate" }}
+
{{ "neverExpires" | i18n }}
+
+
+
+
+
{{ "status" | i18n }}
+
+ {{ (subscription && subscription.status) || "-" }} + {{ + "pendingCancellation" | i18n + }} +
+
{{ "nextCharge" | i18n }}
+
+ {{ + nextInvoice + ? (nextInvoice.date | date: "mediumDate") + + ", " + + (nextInvoice.amount | currency: "$") + : "-" + }} +
+
+
+
+ {{ "details" | i18n }} + + + + + + + +
+ {{ i.name }} {{ i.quantity > 1 ? "×" + i.quantity : "" }} @ + {{ i.amount | currency: "$" }} + {{ i.quantity * i.amount | currency: "$" }} /{{ i.interval | i18n }}
+
+
+ +
+ + + {{ "manageSubscription" | i18n }} + +
+
+
+ +

{{ "updateLicense" | i18n }}

+ + +
+
+
+ +
+ + +
+

{{ "storage" | i18n }}

+

{{ "subscriptionStorage" | i18n: sub.maxStorageGb || 0:sub.storageName || "0 MB" }}

+
+
+ {{ storagePercentage / 100 | percent }} +
+
+ +
+
+ + +
+ +
+
+
+
diff --git a/apps/web/src/app/settings/user-subscription.component.ts b/apps/web/src/app/settings/user-subscription.component.ts new file mode 100644 index 0000000000..ec369ddc7f --- /dev/null +++ b/apps/web/src/app/settings/user-subscription.component.ts @@ -0,0 +1,217 @@ +import { Component, OnInit } from "@angular/core"; +import { Router } from "@angular/router"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { TokenService } from "jslib-common/abstractions/token.service"; +import { SubscriptionResponse } from "jslib-common/models/response/subscriptionResponse"; + +@Component({ + selector: "app-user-subscription", + templateUrl: "user-subscription.component.html", +}) +export class UserSubscriptionComponent implements OnInit { + loading = false; + firstLoaded = false; + adjustStorageAdd = true; + showAdjustStorage = false; + showUpdateLicense = false; + sub: SubscriptionResponse; + selfHosted = false; + + cancelPromise: Promise; + reinstatePromise: Promise; + + constructor( + private tokenService: TokenService, + private apiService: ApiService, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private router: Router, + private logService: LogService + ) { + this.selfHosted = platformUtilsService.isSelfHost(); + } + + async ngOnInit() { + await this.load(); + this.firstLoaded = true; + } + + async load() { + if (this.loading) { + return; + } + + if (this.tokenService.getPremium()) { + this.loading = true; + this.sub = await this.apiService.getUserSubscription(); + } else { + this.router.navigate(["/settings/subscription/premium"]); + return; + } + + this.loading = false; + } + + async reinstate() { + if (this.loading) { + return; + } + + if (this.usingInAppPurchase) { + this.platformUtilsService.showDialog( + this.i18nService.t("manageSubscriptionFromStore"), + this.i18nService.t("cancelSubscription"), + null, + null, + "warning" + ); + return; + } + + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("reinstateConfirmation"), + this.i18nService.t("reinstateSubscription"), + this.i18nService.t("yes"), + this.i18nService.t("cancel") + ); + if (!confirmed) { + return; + } + + try { + this.reinstatePromise = this.apiService.postReinstatePremium(); + await this.reinstatePromise; + this.platformUtilsService.showToast("success", null, this.i18nService.t("reinstated")); + this.load(); + } catch (e) { + this.logService.error(e); + } + } + + async cancel() { + if (this.loading) { + return; + } + + if (this.usingInAppPurchase) { + this.platformUtilsService.showDialog( + this.i18nService.t("manageSubscriptionFromStore"), + this.i18nService.t("cancelSubscription"), + null, + null, + "warning" + ); + return; + } + + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("cancelConfirmation"), + this.i18nService.t("cancelSubscription"), + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!confirmed) { + return; + } + + try { + this.cancelPromise = this.apiService.postCancelPremium(); + await this.cancelPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("canceledSubscription") + ); + this.load(); + } catch (e) { + this.logService.error(e); + } + } + + downloadLicense() { + if (this.loading) { + return; + } + + const licenseString = JSON.stringify(this.sub.license, null, 2); + this.platformUtilsService.saveFile( + window, + licenseString, + null, + "bitwarden_premium_license.json" + ); + } + + updateLicense() { + if (this.loading) { + return; + } + this.showUpdateLicense = true; + } + + closeUpdateLicense(load: boolean) { + this.showUpdateLicense = false; + if (load) { + this.load(); + } + } + + adjustStorage(add: boolean) { + if (this.usingInAppPurchase) { + this.platformUtilsService.showDialog( + this.i18nService.t("cannotPerformInAppPurchase"), + this.i18nService.t(add ? "addStorage" : "removeStorage"), + null, + null, + "warning" + ); + return; + } + this.adjustStorageAdd = add; + this.showAdjustStorage = true; + } + + closeStorage(load: boolean) { + this.showAdjustStorage = false; + if (load) { + this.load(); + } + } + + get subscriptionMarkedForCancel() { + return ( + this.subscription != null && !this.subscription.cancelled && this.subscription.cancelAtEndDate + ); + } + + get subscription() { + return this.sub != null ? this.sub.subscription : null; + } + + get nextInvoice() { + return this.sub != null ? this.sub.upcomingInvoice : null; + } + + get storagePercentage() { + return this.sub != null && this.sub.maxStorageGb + ? +(100 * (this.sub.storageGb / this.sub.maxStorageGb)).toFixed(2) + : 0; + } + + get storageProgressWidth() { + return this.storagePercentage < 5 ? 5 : 0; + } + + get usingInAppPurchase() { + return this.sub != null ? this.sub.usingInAppPurchase : false; + } + + get title(): string { + return this.i18nService.t(this.selfHosted ? "subscription" : "premiumMembership"); + } +} diff --git a/apps/web/src/app/settings/vault-timeout-input.component.html b/apps/web/src/app/settings/vault-timeout-input.component.html new file mode 100644 index 0000000000..b658054a15 --- /dev/null +++ b/apps/web/src/app/settings/vault-timeout-input.component.html @@ -0,0 +1,45 @@ + + {{ "vaultTimeoutPolicyInEffect" | i18n: vaultTimeoutPolicyHours:vaultTimeoutPolicyMinutes }} + + +
+
+ + + {{ "vaultTimeoutDesc" | i18n }} +
+
+ +
+
+ + {{ "hours" | i18n }} +
+
+ + {{ "minutes" | i18n }} +
+
+
+
diff --git a/apps/web/src/app/settings/vault-timeout-input.component.ts b/apps/web/src/app/settings/vault-timeout-input.component.ts new file mode 100644 index 0000000000..8eb308b4c0 --- /dev/null +++ b/apps/web/src/app/settings/vault-timeout-input.component.ts @@ -0,0 +1,22 @@ +import { Component } from "@angular/core"; +import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from "@angular/forms"; + +import { VaultTimeoutInputComponent as VaultTimeoutInputComponentBase } from "jslib-angular/components/settings/vault-timeout-input.component"; + +@Component({ + selector: "app-vault-timeout-input", + templateUrl: "vault-timeout-input.component.html", + providers: [ + { + provide: NG_VALUE_ACCESSOR, + multi: true, + useExisting: VaultTimeoutInputComponent, + }, + { + provide: NG_VALIDATORS, + multi: true, + useExisting: VaultTimeoutInputComponent, + }, + ], +}) +export class VaultTimeoutInputComponent extends VaultTimeoutInputComponentBase {} diff --git a/apps/web/src/app/settings/verify-email.component.html b/apps/web/src/app/settings/verify-email.component.html new file mode 100644 index 0000000000..c599fdad4c --- /dev/null +++ b/apps/web/src/app/settings/verify-email.component.html @@ -0,0 +1,21 @@ +
+
+ {{ "verifyEmail" | i18n }} +
+
+

{{ "verifyEmailDesc" | i18n }}

+ +
+
diff --git a/apps/web/src/app/settings/verify-email.component.ts b/apps/web/src/app/settings/verify-email.component.ts new file mode 100644 index 0000000000..0927c8216a --- /dev/null +++ b/apps/web/src/app/settings/verify-email.component.ts @@ -0,0 +1,39 @@ +import { Component } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; + +@Component({ + selector: "app-verify-email", + templateUrl: "verify-email.component.html", +}) +export class VerifyEmailComponent { + actionPromise: Promise; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private logService: LogService + ) {} + + async send() { + if (this.actionPromise != null) { + return; + } + try { + this.actionPromise = this.apiService.postAccountVerifyEmail(); + await this.actionPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("checkInboxForVerification") + ); + } catch (e) { + this.logService.error(e); + } + this.actionPromise = null; + } +} diff --git a/apps/web/src/app/tools/export.component.html b/apps/web/src/app/tools/export.component.html new file mode 100644 index 0000000000..da667f3e44 --- /dev/null +++ b/apps/web/src/app/tools/export.component.html @@ -0,0 +1,42 @@ +
+ + + + {{ "personalVaultExportPolicyInEffect" | i18n }} + + + +
+
+ + +
+
+
+
+ + +
+
+ +
diff --git a/apps/web/src/app/tools/export.component.ts b/apps/web/src/app/tools/export.component.ts new file mode 100644 index 0000000000..a35a022249 --- /dev/null +++ b/apps/web/src/app/tools/export.component.ts @@ -0,0 +1,50 @@ +import { Component } from "@angular/core"; +import { FormBuilder } from "@angular/forms"; + +import { ExportComponent as BaseExportComponent } from "jslib-angular/components/export.component"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { EventService } from "jslib-common/abstractions/event.service"; +import { ExportService } from "jslib-common/abstractions/export.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { UserVerificationService } from "jslib-common/abstractions/userVerification.service"; + +@Component({ + selector: "app-export", + templateUrl: "export.component.html", +}) +export class ExportComponent extends BaseExportComponent { + organizationId: string; + + constructor( + cryptoService: CryptoService, + i18nService: I18nService, + platformUtilsService: PlatformUtilsService, + exportService: ExportService, + eventService: EventService, + policyService: PolicyService, + logService: LogService, + userVerificationService: UserVerificationService, + formBuilder: FormBuilder + ) { + super( + cryptoService, + i18nService, + platformUtilsService, + exportService, + eventService, + policyService, + window, + logService, + userVerificationService, + formBuilder + ); + } + + protected saved() { + super.saved(); + this.platformUtilsService.showToast("success", null, this.i18nService.t("exportSuccess")); + } +} diff --git a/apps/web/src/app/tools/generator.component.html b/apps/web/src/app/tools/generator.component.html new file mode 100644 index 0000000000..30f2a30401 --- /dev/null +++ b/apps/web/src/app/tools/generator.component.html @@ -0,0 +1,400 @@ + + + {{ "passwordGeneratorPolicyInEffect" | i18n }} + +
+
+
+
+
+
+
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+
+ + +
+
+ +
+
+
+ +
+
+ + + + +
+
+ + +
+
+ +
+ +
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
+
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+
+
+ + +
+
+ diff --git a/apps/web/src/app/tools/generator.component.ts b/apps/web/src/app/tools/generator.component.ts new file mode 100644 index 0000000000..ad825ba599 --- /dev/null +++ b/apps/web/src/app/tools/generator.component.ts @@ -0,0 +1,67 @@ +import { Component, ViewChild, ViewContainerRef } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { GeneratorComponent as BaseGeneratorComponent } from "jslib-angular/components/generator.component"; +import { ModalService } from "jslib-angular/services/modal.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { UsernameGenerationService } from "jslib-common/abstractions/usernameGeneration.service"; + +import { PasswordGeneratorHistoryComponent } from "./password-generator-history.component"; + +@Component({ + selector: "app-generator", + templateUrl: "generator.component.html", +}) +export class GeneratorComponent extends BaseGeneratorComponent { + @ViewChild("historyTemplate", { read: ViewContainerRef, static: true }) + historyModalRef: ViewContainerRef; + + constructor( + passwordGenerationService: PasswordGenerationService, + usernameGenerationService: UsernameGenerationService, + stateService: StateService, + platformUtilsService: PlatformUtilsService, + i18nService: I18nService, + logService: LogService, + route: ActivatedRoute, + private modalService: ModalService + ) { + super( + passwordGenerationService, + usernameGenerationService, + platformUtilsService, + stateService, + i18nService, + logService, + route, + window + ); + if (platformUtilsService.isSelfHost()) { + // Cannot use Firefox Relay on self hosted web vaults due to CORS issues with Firefox Relay API + this.forwardOptions.splice( + this.forwardOptions.findIndex((o) => o.value === "firefoxrelay"), + 1 + ); + } + } + + async history() { + await this.modalService.openViewRef(PasswordGeneratorHistoryComponent, this.historyModalRef); + } + + lengthChanged() { + document.getElementById("length").focus(); + } + + minNumberChanged() { + document.getElementById("min-number").focus(); + } + + minSpecialChanged() { + document.getElementById("min-special").focus(); + } +} diff --git a/apps/web/src/app/tools/import.component.html b/apps/web/src/app/tools/import.component.html new file mode 100644 index 0000000000..26d820b518 --- /dev/null +++ b/apps/web/src/app/tools/import.component.html @@ -0,0 +1,323 @@ + + + {{ "personalOwnershipPolicyInEffectImports" | i18n }} + +
+
+
+
+ + +
+
+
+ + + See detailed instructions on our help site at + + https://bitwarden.com/help/export-your-data/ + + + See detailed instructions on our help site at + + https://bitwarden.com/help/import-from-lastpass/ + + + Using the KeePassX desktop application, navigate to "Database" → "Export to CSV file" and + save the CSV file. + + + In the Avira web vault, go to "Settings" → "My Data" → "Export data" and save the + CSV file. + + + In the Blur web vault, click your username at the top and go to "Settings" → "Export + Data", then click "Export CSV" for your "Accounts". + + + Using the SaveInCloud desktop application, navigate to "File" → "Export" → "As XML" + and save the XML file. + + + Using the Padlock desktop application, click the hamburger icon in the top left corner and + navigate to "Settings" → "Export" button and save the file "As CSV". + + + Using the KeePass 2 desktop application, navigate to "File" → "Export" and select the + "KeePass XML (2.x)" option. + + + Using the Universal Password Manager desktop application, navigate to "Database" → + "Export" and save the CSV file. + + + Using the SaferPass browser extension, click the hamburger icon in the top left corner and + navigate to "Settings". Click the "Export accounts" button to save the CSV file. + + + Using the Meldium web vault, navigate to "Settings". Locate the "Export data" function and + click "Show me my data" to save the CSV file. + + + Log into the Keeper web vault (keepersecurity.com/vault). Click on your "account email" (top + right) and select "Settings". Go to "Export" and find the "Export to .csv File" option. Click + "Export" to save the CSV file. + + + Log into the Keeper web vault (keepersecurity.com/vault). Click on your "account email" (top + right) and select "Settings". Go to "Export" and find the "Export to .json File" option. Click + "Export" to save the JSON file. + + + + The process is exactly the same as importing from Google Chrome. + + See detailed instructions on our help site at + + https://bitwarden.com/help/import-from-chrome/ + + + See detailed instructions on our help site at + + https://bitwarden.com/help/import-from-firefox/. + + + See detailed instructions on our help site at + + https://bitwarden.com/help/import-from-safari/. + + + See detailed instructions on our help site at + + https://bitwarden.com/help/import-from-1password/. + + + Using the Password Dragon desktop application, navigate to "File" → "Export" → "To + XML". In the dialog that pops up select "All Rows" and check all fields. Click the "Export" + button and save the XML file. + + + Using the Enpass desktop application, navigate to "File" → "Export" → "As CSV". + Select "OK" to the warning alert and save the CSV file. Note that the importer only supports + files exported while Enpass is set to the English language, so adjust your settings + accordingly. + + + Using the Enpass 6 desktop application, click the menu button and navigate to "File" → + "Export". Select the ".json" file format option and save the JSON file. + + + Using the Password Safe desktop application, navigate to "File" → "Export To" → "XML + format..." and save the XML file. + + + Log in to Dashlane, click on "My Account" → "Settings" → "Export file" and select + "Export as a CSV file". This will download a zip archive containing various CSV files. Unzip + the archive and import each CSV file individually. + + + Dashlane no longer supports the JSON format. Only use this if you have an existing JSON for + import. Use the CSV importer when creating new exports. + + + Using the mSecure desktop application, navigate to "File" → "Export" → "CSV File..." + and save the CSV file. + + + Using the Sticky Password desktop application, navigate to "Menu" (top right) → "Export" + → "Export all". Select the unencrypted format XML option and save the XML file. + + + Using the True Key desktop application, click the gear icon (top right) and then navigate to + "App Settings". Click the "Export" button, enter your password and save the CSV file. + + + Log into the Clipperz web application (clipperz.is/app). Click the hamburger menu icon in the + top right to expand the navigation bar. Navigate to "Data" → "Export". Click the + "download HTML+JSON" button to save the HTML file. + + + Using the RoboForm Editor desktop application, navigate to "RoboForm" (top left) → + "Options" → "Account & Data" and click the "Export" button. Select all of your data, + change the "Format" to "CSV file" and then click the "Export" button to save the CSV file. + Note: RoboForm only allows you to export Logins. Other items will not be exported. + + + Log into the Passbolt web vault and navigate to the "Passwords" listing. Select all of the + passwords you would like to export and click the "Export" button at the top of the listing. + Choose the "csv (lastpass)" export format and click the "Export" button. + + + Using the Ascendo DataVault desktop application, navigate to "Tools" → "Export". In the + dialog that pops up, select the "All Items (DVX, CSV)" option. Click the "Ok" button to save + the CSV file. + + + Using the Password Boss desktop application, navigate to "File" → "Export data" → + "Password Boss JSON - not encrypted" and save the JSON file. + + + Log into the Zoho web vault (vault.zoho.com). Navigate to "Tools" → "Export Secrets". + Select "All Secrets" and click the "Zoho Vault Format CSV" button. Highlight and copy the data + from the textarea. Open a text editor like Notepad and paste the data. Save the data from the + text editor as + zoho_export.csv. + + + Using the SplashID Safe desktop application, click on the SplashID blue lock logo in the top + right corner. Navigate to "Export" → "Export as CSV" and save the CSV file. + + + Using the PassKeep mobile app, navigate to "Backup/Restore". Locate the "CSV Backup/Restore" + section and click "Backup to CSV" to save the CSV file. + + + Make sure you have python-keyring and python-gnomekeyring installed. Save the + GNOME Keyring Import/Export + python script to your desktop as pw_helper.py. Open terminal and run + chmod +rx Desktop/pw_helper.py and then + python Desktop/pw_helper.py export Desktop/my_passwords.json. Then upload the + resulting my_passwords.json file here to Bitwarden. + + + Using the Password Agent desktop application navigate to "File" → "Export", select the + "Fields to export" button and check all of the fields, change the "Output format" to "CSV", + and then click the "Start" button to save the CSV file. + + + Log into the Passpack website vault and navigate to "Settings" → "Export", then click the + "Download" button to save the CSV file. + + + Open your Passman vault and click on "Settings" in the bottom left corner. In the "Settings" + window switch to the "Export credentials" tab and choose "JSON" as the export type. Enter your + vault's passphrase and click the "Export" button to save the JSON file. + + + Open the Avast Passwords desktop application and navigate to "Settings" → "Import/export + data". Select the "Export" button for the "Export to CSV file" option to save the CSV file. + + + Open the Avast Passwords desktop application and navigate to "Settings" → "Import/export + data". Select the "Export" button for the "Export to JSON file" option to save the JSON file. + + + Open the F-Secure KEY desktop application and navigate to "Settings" → "Export + Passwords". Select the "Export" button, enter your master password, and save the FSK file. + + + Open the Kaspersky Password Manager desktop application and navigate to "Settings" → + "Import/Export". Locate the "Export to text file" section and select the "Export" button to + save the TXT file. + + + Open the RememBear desktop application and navigate to "Settings" → "Account" → + "Export". Enter your master password and select the "Export Anyway" button to save the CSV + file. + + + Open the PasswordWallet desktop application and navigate to "File" → "Export" → + "Visible entries to text file". Enter your password and select the "Ok" button to save the TXT + file. + + + Open the Myki desktop browser extension and navigate to "Advanced" → "Export Accounts" + and then scan the QR code with your mobile device. Various CSV files will then be saved to + your computer's downloads folder. + + + Export your SecureSafe password safe to a CSV file with a comma delimiter. + + + Open the LogMeOnce browser extension, then navigate to "Open Menu" → "Export To" and + select "CSV File" to save the CSV file. + + + Open the BlackBerry Password Keeper application, then navigate to "Settings" → + "Import/Export". Select "Export Passwords" and follow the instructions on screen to save the + unencrypted CSV file. + + + Open the Buttercup desktop application and unlock your vault. Right click on your vault's icon + and select "Export" to save the CSV file. + + + Open the Codebook desktop application and log in. Navigate to "File" → "Export all", then + click "Yes" on the dialog and save the CSV file. + + + Open the newest version of the Encryptr desktop application and allow all of your data to + sync. Once syncing of your data is complete, the download icon in the top right corner will + turn pink. Click the download icon and save the CSV file. + + + From the Yoti browser extension, click on "Settings", then "Export Saved Logins" and save the + CSV file. + + +
+
+
+ + +
+
+
+
+ + +
+ +
diff --git a/apps/web/src/app/tools/import.component.ts b/apps/web/src/app/tools/import.component.ts new file mode 100644 index 0000000000..c274c29b23 --- /dev/null +++ b/apps/web/src/app/tools/import.component.ts @@ -0,0 +1,228 @@ +import { Component, OnInit } from "@angular/core"; +import { Router } from "@angular/router"; +import * as JSZip from "jszip"; +import Swal, { SweetAlertIcon } from "sweetalert2"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { ImportService } from "jslib-common/abstractions/import.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { ImportOption, ImportType } from "jslib-common/enums/importOptions"; +import { PolicyType } from "jslib-common/enums/policyType"; + +@Component({ + selector: "app-import", + templateUrl: "import.component.html", +}) +export class ImportComponent implements OnInit { + featuredImportOptions: ImportOption[]; + importOptions: ImportOption[]; + format: ImportType = null; + fileContents: string; + formPromise: Promise; + loading = false; + importBlockedByPolicy = false; + + protected organizationId: string = null; + protected successNavigate: any[] = ["vault"]; + + constructor( + protected i18nService: I18nService, + protected importService: ImportService, + protected router: Router, + protected platformUtilsService: PlatformUtilsService, + protected policyService: PolicyService, + private logService: LogService + ) {} + + async ngOnInit() { + this.setImportOptions(); + + this.importBlockedByPolicy = await this.policyService.policyAppliesToUser( + PolicyType.PersonalOwnership + ); + } + + async submit() { + if (this.importBlockedByPolicy) { + this.platformUtilsService.showToast( + "error", + null, + this.i18nService.t("personalOwnershipPolicyInEffectImports") + ); + return; + } + + this.loading = true; + + const importer = this.importService.getImporter(this.format, this.organizationId); + if (importer === null) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("selectFormat") + ); + this.loading = false; + return; + } + + const fileEl = document.getElementById("file") as HTMLInputElement; + const files = fileEl.files; + if ( + (files == null || files.length === 0) && + (this.fileContents == null || this.fileContents === "") + ) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("selectFile") + ); + this.loading = false; + return; + } + + let fileContents = this.fileContents; + if (files != null && files.length > 0) { + try { + const content = await this.getFileContents(files[0]); + if (content != null) { + fileContents = content; + } + } catch (e) { + this.logService.error(e); + } + } + + if (fileContents == null || fileContents === "") { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("selectFile") + ); + this.loading = false; + return; + } + + try { + this.formPromise = this.importService.import(importer, fileContents, this.organizationId); + const error = await this.formPromise; + if (error != null) { + this.error(error); + this.loading = false; + return; + } + this.platformUtilsService.showToast("success", null, this.i18nService.t("importSuccess")); + this.router.navigate(this.successNavigate); + } catch (e) { + this.logService.error(e); + } + + this.loading = false; + } + + getFormatInstructionTitle() { + if (this.format == null) { + return null; + } + + const results = this.featuredImportOptions + .concat(this.importOptions) + .filter((o) => o.id === this.format); + if (results.length > 0) { + return this.i18nService.t("instructionsFor", results[0].name); + } + return null; + } + + protected setImportOptions() { + this.featuredImportOptions = [ + { + id: null, + name: "-- " + this.i18nService.t("select") + " --", + }, + ...this.importService.featuredImportOptions, + ]; + this.importOptions = [...this.importService.regularImportOptions].sort((a, b) => { + if (a.name == null && b.name != null) { + return -1; + } + if (a.name != null && b.name == null) { + return 1; + } + if (a.name == null && b.name == null) { + return 0; + } + + return this.i18nService.collator + ? this.i18nService.collator.compare(a.name, b.name) + : a.name.localeCompare(b.name); + }); + } + + private async error(error: Error) { + await Swal.fire({ + heightAuto: false, + buttonsStyling: false, + icon: "error" as SweetAlertIcon, + iconHtml: ``, + input: "textarea", + inputValue: error.message, + inputAttributes: { + readonly: "true", + }, + titleText: this.i18nService.t("importError"), + text: this.i18nService.t("importErrorDesc"), + showConfirmButton: true, + confirmButtonText: this.i18nService.t("ok"), + onOpen: (popupEl) => { + popupEl.querySelector(".swal2-textarea").scrollTo(0, 0); + }, + }); + } + + private getFileContents(file: File): Promise { + if (this.format === "1password1pux") { + return this.extract1PuxContent(file); + } + + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.readAsText(file, "utf-8"); + reader.onload = (evt) => { + if (this.format === "lastpasscsv" && file.type === "text/html") { + const parser = new DOMParser(); + const doc = parser.parseFromString((evt.target as any).result, "text/html"); + const pre = doc.querySelector("pre"); + if (pre != null) { + resolve(pre.textContent); + return; + } + reject(); + return; + } + + resolve((evt.target as any).result); + }; + reader.onerror = () => { + reject(); + }; + }); + } + + private extract1PuxContent(file: File): Promise { + return new JSZip() + .loadAsync(file) + .then((zip) => { + return zip.file("export.data").async("string"); + }) + .then( + function success(content) { + return content; + }, + function error(e) { + return ""; + } + ); + } +} diff --git a/apps/web/src/app/tools/password-generator-history.component.html b/apps/web/src/app/tools/password-generator-history.component.html new file mode 100644 index 0000000000..5b9e32378a --- /dev/null +++ b/apps/web/src/app/tools/password-generator-history.component.html @@ -0,0 +1,58 @@ + diff --git a/apps/web/src/app/tools/password-generator-history.component.ts b/apps/web/src/app/tools/password-generator-history.component.ts new file mode 100644 index 0000000000..d7f344365f --- /dev/null +++ b/apps/web/src/app/tools/password-generator-history.component.ts @@ -0,0 +1,20 @@ +import { Component } from "@angular/core"; + +import { PasswordGeneratorHistoryComponent as BasePasswordGeneratorHistoryComponent } from "jslib-angular/components/password-generator-history.component"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; + +@Component({ + selector: "app-password-generator-history", + templateUrl: "password-generator-history.component.html", +}) +export class PasswordGeneratorHistoryComponent extends BasePasswordGeneratorHistoryComponent { + constructor( + passwordGenerationService: PasswordGenerationService, + platformUtilsService: PlatformUtilsService, + i18nService: I18nService + ) { + super(passwordGenerationService, platformUtilsService, i18nService, window); + } +} diff --git a/apps/web/src/app/tools/tools.component.html b/apps/web/src/app/tools/tools.component.html new file mode 100644 index 0000000000..667a4025b6 --- /dev/null +++ b/apps/web/src/app/tools/tools.component.html @@ -0,0 +1,23 @@ + diff --git a/apps/web/src/app/tools/tools.component.ts b/apps/web/src/app/tools/tools.component.ts new file mode 100644 index 0000000000..7e2c776ec6 --- /dev/null +++ b/apps/web/src/app/tools/tools.component.ts @@ -0,0 +1,25 @@ +import { Component, OnInit } from "@angular/core"; + +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { StateService } from "jslib-common/abstractions/state.service"; + +@Component({ + selector: "app-tools", + templateUrl: "tools.component.html", +}) +export class ToolsComponent implements OnInit { + canAccessPremium = false; + + constructor(private stateService: StateService, private messagingService: MessagingService) {} + + async ngOnInit() { + this.canAccessPremium = await this.stateService.getCanAccessPremium(); + } + + premiumRequired() { + if (!this.canAccessPremium) { + this.messagingService.send("premiumRequired"); + return; + } + } +} diff --git a/apps/web/src/app/vault/add-edit-custom-fields.component.html b/apps/web/src/app/vault/add-edit-custom-fields.component.html new file mode 100644 index 0000000000..736aa181e4 --- /dev/null +++ b/apps/web/src/app/vault/add-edit-custom-fields.component.html @@ -0,0 +1,167 @@ + +

{{ "customFields" | i18n }}

+
+
+
+
+ + + + +
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+ + +
+
+ +
+ +
+
+ + +
+ + +
+
+
+
+ + + {{ "newCustomField" | i18n }} + +
+
+ + +
+
+
diff --git a/apps/web/src/app/vault/add-edit-custom-fields.component.ts b/apps/web/src/app/vault/add-edit-custom-fields.component.ts new file mode 100644 index 0000000000..644e23f413 --- /dev/null +++ b/apps/web/src/app/vault/add-edit-custom-fields.component.ts @@ -0,0 +1,18 @@ +import { Component, Input } from "@angular/core"; + +import { AddEditCustomFieldsComponent as BaseAddEditCustomFieldsComponent } from "jslib-angular/components/add-edit-custom-fields.component"; +import { EventService } from "jslib-common/abstractions/event.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; + +@Component({ + selector: "app-vault-add-edit-custom-fields", + templateUrl: "add-edit-custom-fields.component.html", +}) +export class AddEditCustomFieldsComponent extends BaseAddEditCustomFieldsComponent { + @Input() viewOnly: boolean; + @Input() copy: (value: string, typeI18nKey: string, aType: string) => void; + + constructor(i18nService: I18nService, eventService: EventService) { + super(i18nService, eventService); + } +} diff --git a/apps/web/src/app/vault/add-edit.component.html b/apps/web/src/app/vault/add-edit.component.html new file mode 100644 index 0000000000..37410ea595 --- /dev/null +++ b/apps/web/src/app/vault/add-edit.component.html @@ -0,0 +1,851 @@ + diff --git a/apps/web/src/app/vault/add-edit.component.ts b/apps/web/src/app/vault/add-edit.component.ts new file mode 100644 index 0000000000..6cd8182aa1 --- /dev/null +++ b/apps/web/src/app/vault/add-edit.component.ts @@ -0,0 +1,213 @@ +import { Component } from "@angular/core"; + +import { AddEditComponent as BaseAddEditComponent } from "jslib-angular/components/add-edit.component"; +import { AuditService } from "jslib-common/abstractions/audit.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { CollectionService } from "jslib-common/abstractions/collection.service"; +import { EventService } from "jslib-common/abstractions/event.service"; +import { FolderService } from "jslib-common/abstractions/folder.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PasswordGenerationService } from "jslib-common/abstractions/passwordGeneration.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { PolicyService } from "jslib-common/abstractions/policy.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { TotpService } from "jslib-common/abstractions/totp.service"; +import { CipherType } from "jslib-common/enums/cipherType"; +import { EventType } from "jslib-common/enums/eventType"; +import { LoginUriView } from "jslib-common/models/view/loginUriView"; + +@Component({ + selector: "app-vault-add-edit", + templateUrl: "add-edit.component.html", +}) +export class AddEditComponent extends BaseAddEditComponent { + canAccessPremium: boolean; + totpCode: string; + totpCodeFormatted: string; + totpDash: number; + totpSec: number; + totpLow: boolean; + showRevisionDate = false; + hasPasswordHistory = false; + viewingPasswordHistory = false; + viewOnly = false; + + protected totpInterval: number; + + constructor( + cipherService: CipherService, + folderService: FolderService, + i18nService: I18nService, + platformUtilsService: PlatformUtilsService, + auditService: AuditService, + stateService: StateService, + collectionService: CollectionService, + protected totpService: TotpService, + protected passwordGenerationService: PasswordGenerationService, + protected messagingService: MessagingService, + eventService: EventService, + protected policyService: PolicyService, + organizationService: OrganizationService, + logService: LogService, + passwordRepromptService: PasswordRepromptService + ) { + super( + cipherService, + folderService, + i18nService, + platformUtilsService, + auditService, + stateService, + collectionService, + messagingService, + eventService, + policyService, + logService, + passwordRepromptService, + organizationService + ); + } + + async ngOnInit() { + await super.ngOnInit(); + await this.load(); + this.showRevisionDate = this.cipher.passwordRevisionDisplayDate != null; + this.hasPasswordHistory = this.cipher.hasPasswordHistory; + this.cleanUp(); + + this.canAccessPremium = await this.stateService.getCanAccessPremium(); + if ( + this.cipher.type === CipherType.Login && + this.cipher.login.totp && + (this.cipher.organizationUseTotp || this.canAccessPremium) + ) { + await this.totpUpdateCode(); + const interval = this.totpService.getTimeInterval(this.cipher.login.totp); + await this.totpTick(interval); + + this.totpInterval = window.setInterval(async () => { + await this.totpTick(interval); + }, 1000); + } + } + + toggleFavorite() { + this.cipher.favorite = !this.cipher.favorite; + } + + launch(uri: LoginUriView) { + if (!uri.canLaunch) { + return; + } + + this.platformUtilsService.launchUri(uri.launchUri); + } + + copy(value: string, typeI18nKey: string, aType: string) { + if (value == null) { + return; + } + + this.platformUtilsService.copyToClipboard(value, { window: window }); + this.platformUtilsService.showToast( + "info", + null, + this.i18nService.t("valueCopied", this.i18nService.t(typeI18nKey)) + ); + + if (this.editMode) { + if (typeI18nKey === "password") { + this.eventService.collect(EventType.Cipher_ClientToggledHiddenFieldVisible, this.cipherId); + } else if (typeI18nKey === "securityCode") { + this.eventService.collect(EventType.Cipher_ClientCopiedCardCode, this.cipherId); + } else if (aType === "H_Field") { + this.eventService.collect(EventType.Cipher_ClientCopiedHiddenField, this.cipherId); + } + } + } + + async generatePassword(): Promise { + const confirmed = await super.generatePassword(); + if (confirmed) { + const options = (await this.passwordGenerationService.getOptions())[0]; + this.cipher.login.password = await this.passwordGenerationService.generatePassword(options); + } + return confirmed; + } + + premiumRequired() { + if (!this.canAccessPremium) { + this.messagingService.send("premiumRequired"); + return; + } + } + + upgradeOrganization() { + this.messagingService.send("upgradeOrganization", { + organizationId: this.cipher.organizationId, + }); + } + + viewHistory() { + this.viewingPasswordHistory = !this.viewingPasswordHistory; + } + + protected cleanUp() { + if (this.totpInterval) { + window.clearInterval(this.totpInterval); + } + } + + protected async totpUpdateCode() { + if ( + this.cipher == null || + this.cipher.type !== CipherType.Login || + this.cipher.login.totp == null + ) { + if (this.totpInterval) { + window.clearInterval(this.totpInterval); + } + return; + } + + this.totpCode = await this.totpService.getCode(this.cipher.login.totp); + if (this.totpCode != null) { + if (this.totpCode.length > 4) { + const half = Math.floor(this.totpCode.length / 2); + this.totpCodeFormatted = + this.totpCode.substring(0, half) + " " + this.totpCode.substring(half); + } else { + this.totpCodeFormatted = this.totpCode; + } + } else { + this.totpCodeFormatted = null; + if (this.totpInterval) { + window.clearInterval(this.totpInterval); + } + } + } + + protected allowOwnershipAssignment() { + return ( + (!this.editMode || this.cloneMode) && + this.ownershipOptions != null && + (this.ownershipOptions.length > 1 || !this.allowPersonal) + ); + } + + private async totpTick(intervalSeconds: number) { + const epoch = Math.round(new Date().getTime() / 1000.0); + const mod = epoch % intervalSeconds; + + this.totpSec = intervalSeconds - mod; + this.totpDash = +(Math.round(((78.6 / intervalSeconds) * mod + "e+2") as any) + "e-2"); + this.totpLow = this.totpSec <= 7; + if (mod === 0) { + await this.totpUpdateCode(); + } + } +} diff --git a/apps/web/src/app/vault/attachments.component.html b/apps/web/src/app/vault/attachments.component.html new file mode 100644 index 0000000000..a358acc553 --- /dev/null +++ b/apps/web/src/app/vault/attachments.component.html @@ -0,0 +1,116 @@ + diff --git a/apps/web/src/app/vault/attachments.component.ts b/apps/web/src/app/vault/attachments.component.ts new file mode 100644 index 0000000000..fef3875fee --- /dev/null +++ b/apps/web/src/app/vault/attachments.component.ts @@ -0,0 +1,50 @@ +import { Component } from "@angular/core"; + +import { AttachmentsComponent as BaseAttachmentsComponent } from "jslib-angular/components/attachments.component"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { AttachmentView } from "jslib-common/models/view/attachmentView"; + +@Component({ + selector: "app-vault-attachments", + templateUrl: "attachments.component.html", +}) +export class AttachmentsComponent extends BaseAttachmentsComponent { + viewOnly = false; + + constructor( + cipherService: CipherService, + i18nService: I18nService, + cryptoService: CryptoService, + stateService: StateService, + platformUtilsService: PlatformUtilsService, + apiService: ApiService, + logService: LogService + ) { + super( + cipherService, + i18nService, + cryptoService, + platformUtilsService, + apiService, + window, + logService, + stateService + ); + } + + protected async reupload(attachment: AttachmentView) { + if (this.showFixOldAttachments(attachment)) { + await this.reuploadCipherAttachment(attachment, false); + } + } + + protected showFixOldAttachments(attachment: AttachmentView) { + return attachment.key == null && this.cipher.organizationId == null; + } +} diff --git a/apps/web/src/app/vault/bulk-actions.component.html b/apps/web/src/app/vault/bulk-actions.component.html new file mode 100644 index 0000000000..fafcefdeb4 --- /dev/null +++ b/apps/web/src/app/vault/bulk-actions.component.html @@ -0,0 +1,55 @@ + + + + + + diff --git a/apps/web/src/app/vault/bulk-actions.component.ts b/apps/web/src/app/vault/bulk-actions.component.ts new file mode 100644 index 0000000000..29bf474087 --- /dev/null +++ b/apps/web/src/app/vault/bulk-actions.component.ts @@ -0,0 +1,167 @@ +import { Component, Input, ViewChild, ViewContainerRef } from "@angular/core"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { CipherRepromptType } from "jslib-common/enums/cipherRepromptType"; +import { Organization } from "jslib-common/models/domain/organization"; + +import { BulkDeleteComponent } from "./bulk-delete.component"; +import { BulkMoveComponent } from "./bulk-move.component"; +import { BulkRestoreComponent } from "./bulk-restore.component"; +import { BulkShareComponent } from "./bulk-share.component"; +import { CiphersComponent } from "./ciphers.component"; + +@Component({ + selector: "app-vault-bulk-actions", + templateUrl: "bulk-actions.component.html", +}) +export class BulkActionsComponent { + @Input() ciphersComponent: CiphersComponent; + @Input() deleted: boolean; + @Input() organization: Organization; + + @ViewChild("bulkDeleteTemplate", { read: ViewContainerRef, static: true }) + bulkDeleteModalRef: ViewContainerRef; + @ViewChild("bulkRestoreTemplate", { read: ViewContainerRef, static: true }) + bulkRestoreModalRef: ViewContainerRef; + @ViewChild("bulkMoveTemplate", { read: ViewContainerRef, static: true }) + bulkMoveModalRef: ViewContainerRef; + @ViewChild("bulkShareTemplate", { read: ViewContainerRef, static: true }) + bulkShareModalRef: ViewContainerRef; + + constructor( + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private modalService: ModalService, + private passwordRepromptService: PasswordRepromptService + ) {} + + async bulkDelete() { + if (!(await this.promptPassword())) { + return; + } + + const selectedIds = this.ciphersComponent.getSelectedIds(); + if (selectedIds.length === 0) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("nothingSelected") + ); + return; + } + + const [modal] = await this.modalService.openViewRef( + BulkDeleteComponent, + this.bulkDeleteModalRef, + (comp) => { + comp.permanent = this.deleted; + comp.cipherIds = selectedIds; + comp.organization = this.organization; + comp.onDeleted.subscribe(async () => { + modal.close(); + await this.ciphersComponent.refresh(); + }); + } + ); + } + + async bulkRestore() { + if (!(await this.promptPassword())) { + return; + } + + const selectedIds = this.ciphersComponent.getSelectedIds(); + if (selectedIds.length === 0) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("nothingSelected") + ); + return; + } + + const [modal] = await this.modalService.openViewRef( + BulkRestoreComponent, + this.bulkRestoreModalRef, + (comp) => { + comp.cipherIds = selectedIds; + comp.onRestored.subscribe(async () => { + modal.close(); + await this.ciphersComponent.refresh(); + }); + } + ); + } + + async bulkShare() { + if (!(await this.promptPassword())) { + return; + } + + const selectedCiphers = this.ciphersComponent.getSelected(); + if (selectedCiphers.length === 0) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("nothingSelected") + ); + return; + } + + const [modal] = await this.modalService.openViewRef( + BulkShareComponent, + this.bulkShareModalRef, + (comp) => { + comp.ciphers = selectedCiphers; + comp.onShared.subscribe(async () => { + modal.close(); + await this.ciphersComponent.refresh(); + }); + } + ); + } + + async bulkMove() { + if (!(await this.promptPassword())) { + return; + } + + const selectedIds = this.ciphersComponent.getSelectedIds(); + if (selectedIds.length === 0) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("nothingSelected") + ); + return; + } + + const [modal] = await this.modalService.openViewRef( + BulkMoveComponent, + this.bulkMoveModalRef, + (comp) => { + comp.cipherIds = selectedIds; + comp.onMoved.subscribe(async () => { + modal.close(); + await this.ciphersComponent.refresh(); + }); + } + ); + } + + selectAll(select: boolean) { + this.ciphersComponent.selectAll(select); + } + + private async promptPassword() { + const selectedCiphers = this.ciphersComponent.getSelected(); + const notProtected = !selectedCiphers.find( + (cipher) => cipher.reprompt !== CipherRepromptType.None + ); + + return notProtected || (await this.passwordRepromptService.showPasswordPrompt()); + } +} diff --git a/apps/web/src/app/vault/bulk-delete.component.html b/apps/web/src/app/vault/bulk-delete.component.html new file mode 100644 index 0000000000..154786960a --- /dev/null +++ b/apps/web/src/app/vault/bulk-delete.component.html @@ -0,0 +1,39 @@ + diff --git a/apps/web/src/app/vault/bulk-delete.component.ts b/apps/web/src/app/vault/bulk-delete.component.ts new file mode 100644 index 0000000000..04e86c5ce6 --- /dev/null +++ b/apps/web/src/app/vault/bulk-delete.component.ts @@ -0,0 +1,62 @@ +import { Component, EventEmitter, Input, Output } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { Organization } from "jslib-common/models/domain/organization"; +import { CipherBulkDeleteRequest } from "jslib-common/models/request/cipherBulkDeleteRequest"; + +@Component({ + selector: "app-vault-bulk-delete", + templateUrl: "bulk-delete.component.html", +}) +export class BulkDeleteComponent { + @Input() cipherIds: string[] = []; + @Input() permanent = false; + @Input() organization: Organization; + @Output() onDeleted = new EventEmitter(); + + formPromise: Promise; + + constructor( + private cipherService: CipherService, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private apiService: ApiService + ) {} + + async submit() { + if (!this.organization || !this.organization.canEditAnyCollection) { + await this.deleteCiphers(); + } else { + await this.deleteCiphersAdmin(); + } + + await this.formPromise; + + this.onDeleted.emit(); + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t(this.permanent ? "permanentlyDeletedItems" : "deletedItems") + ); + } + + private async deleteCiphers() { + if (this.permanent) { + this.formPromise = await this.cipherService.deleteManyWithServer(this.cipherIds); + } else { + this.formPromise = await this.cipherService.softDeleteManyWithServer(this.cipherIds); + } + } + + private async deleteCiphersAdmin() { + const deleteRequest = new CipherBulkDeleteRequest(this.cipherIds, this.organization.id); + if (this.permanent) { + this.formPromise = await this.apiService.deleteManyCiphersAdmin(deleteRequest); + } else { + this.formPromise = await this.apiService.putDeleteManyCiphersAdmin(deleteRequest); + } + } +} diff --git a/apps/web/src/app/vault/bulk-move.component.html b/apps/web/src/app/vault/bulk-move.component.html new file mode 100644 index 0000000000..866cc49c2c --- /dev/null +++ b/apps/web/src/app/vault/bulk-move.component.html @@ -0,0 +1,37 @@ + diff --git a/apps/web/src/app/vault/bulk-move.component.ts b/apps/web/src/app/vault/bulk-move.component.ts new file mode 100644 index 0000000000..d7da60a4dd --- /dev/null +++ b/apps/web/src/app/vault/bulk-move.component.ts @@ -0,0 +1,39 @@ +import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core"; + +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { FolderService } from "jslib-common/abstractions/folder.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { FolderView } from "jslib-common/models/view/folderView"; + +@Component({ + selector: "app-vault-bulk-move", + templateUrl: "bulk-move.component.html", +}) +export class BulkMoveComponent implements OnInit { + @Input() cipherIds: string[] = []; + @Output() onMoved = new EventEmitter(); + + folderId: string = null; + folders: FolderView[] = []; + formPromise: Promise; + + constructor( + private cipherService: CipherService, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private folderService: FolderService + ) {} + + async ngOnInit() { + this.folders = await this.folderService.getAllDecrypted(); + this.folderId = this.folders[0].id; + } + + async submit() { + this.formPromise = this.cipherService.moveManyWithServer(this.cipherIds, this.folderId); + await this.formPromise; + this.onMoved.emit(); + this.platformUtilsService.showToast("success", null, this.i18nService.t("movedItems")); + } +} diff --git a/apps/web/src/app/vault/bulk-restore.component.html b/apps/web/src/app/vault/bulk-restore.component.html new file mode 100644 index 0000000000..5331b25fcc --- /dev/null +++ b/apps/web/src/app/vault/bulk-restore.component.html @@ -0,0 +1,36 @@ + diff --git a/apps/web/src/app/vault/bulk-restore.component.ts b/apps/web/src/app/vault/bulk-restore.component.ts new file mode 100644 index 0000000000..61bc0e165e --- /dev/null +++ b/apps/web/src/app/vault/bulk-restore.component.ts @@ -0,0 +1,29 @@ +import { Component, EventEmitter, Input, Output } from "@angular/core"; + +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; + +@Component({ + selector: "app-vault-bulk-restore", + templateUrl: "bulk-restore.component.html", +}) +export class BulkRestoreComponent { + @Input() cipherIds: string[] = []; + @Output() onRestored = new EventEmitter(); + + formPromise: Promise; + + constructor( + private cipherService: CipherService, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService + ) {} + + async submit() { + this.formPromise = this.cipherService.restoreManyWithServer(this.cipherIds); + await this.formPromise; + this.onRestored.emit(); + this.platformUtilsService.showToast("success", null, this.i18nService.t("restoredItems")); + } +} diff --git a/apps/web/src/app/vault/bulk-share.component.html b/apps/web/src/app/vault/bulk-share.component.html new file mode 100644 index 0000000000..5a7a38e8f5 --- /dev/null +++ b/apps/web/src/app/vault/bulk-share.component.html @@ -0,0 +1,85 @@ + diff --git a/apps/web/src/app/vault/bulk-share.component.ts b/apps/web/src/app/vault/bulk-share.component.ts new file mode 100644 index 0000000000..e2cf361f12 --- /dev/null +++ b/apps/web/src/app/vault/bulk-share.component.ts @@ -0,0 +1,116 @@ +import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core"; + +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { CollectionService } from "jslib-common/abstractions/collection.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { Organization } from "jslib-common/models/domain/organization"; +import { CipherView } from "jslib-common/models/view/cipherView"; +import { CollectionView } from "jslib-common/models/view/collectionView"; + +@Component({ + selector: "app-vault-bulk-share", + templateUrl: "bulk-share.component.html", +}) +export class BulkShareComponent implements OnInit { + @Input() ciphers: CipherView[] = []; + @Input() organizationId: string; + @Output() onShared = new EventEmitter(); + + nonShareableCount = 0; + collections: CollectionView[] = []; + organizations: Organization[] = []; + shareableCiphers: CipherView[] = []; + formPromise: Promise; + + private writeableCollections: CollectionView[] = []; + + constructor( + private cipherService: CipherService, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private collectionService: CollectionService, + private organizationService: OrganizationService, + private logService: LogService + ) {} + + async ngOnInit() { + this.shareableCiphers = this.ciphers.filter( + (c) => !c.hasOldAttachments && c.organizationId == null + ); + this.nonShareableCount = this.ciphers.length - this.shareableCiphers.length; + const allCollections = await this.collectionService.getAllDecrypted(); + this.writeableCollections = allCollections.filter((c) => !c.readOnly); + this.organizations = await this.organizationService.getAll(); + if (this.organizationId == null && this.organizations.length > 0) { + this.organizationId = this.organizations[0].id; + } + this.filterCollections(); + } + + ngOnDestroy() { + this.selectAll(false); + } + + filterCollections() { + this.selectAll(false); + if (this.organizationId == null || this.writeableCollections.length === 0) { + this.collections = []; + } else { + this.collections = this.writeableCollections.filter( + (c) => c.organizationId === this.organizationId + ); + } + } + + async submit() { + const checkedCollectionIds = this.collections + .filter((c) => (c as any).checked) + .map((c) => c.id); + try { + this.formPromise = this.cipherService.shareManyWithServer( + this.shareableCiphers, + this.organizationId, + checkedCollectionIds + ); + await this.formPromise; + this.onShared.emit(); + const orgName = + this.organizations.find((o) => o.id === this.organizationId)?.name ?? + this.i18nService.t("organization"); + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("movedItemsToOrg", orgName) + ); + } catch (e) { + this.logService.error(e); + } + } + + check(c: CollectionView, select?: boolean) { + (c as any).checked = select == null ? !(c as any).checked : select; + } + + selectAll(select: boolean) { + const collections = select ? this.collections : this.writeableCollections; + collections.forEach((c) => this.check(c, select)); + } + + get canSave() { + if ( + this.shareableCiphers != null && + this.shareableCiphers.length > 0 && + this.collections != null + ) { + for (let i = 0; i < this.collections.length; i++) { + if ((this.collections[i] as any).checked) { + return true; + } + } + } + return false; + } +} diff --git a/apps/web/src/app/vault/ciphers.component.html b/apps/web/src/app/vault/ciphers.component.html new file mode 100644 index 0000000000..096a0833ff --- /dev/null +++ b/apps/web/src/app/vault/ciphers.component.html @@ -0,0 +1,151 @@ + + + + + + + + + + + +
+ + + + + {{ c.name }} + + + {{ "attachments" | i18n }} + + + {{ "attachmentsNeedFix" | i18n }} + + +
+ {{ c.subTitle }} +
+ + + + + + + + + + + + + + + + + + + +
+
+ + + {{ "loading" | i18n }} + + +

{{ "noItemsInList" | i18n }}

+ +
+
+
diff --git a/apps/web/src/app/vault/ciphers.component.ts b/apps/web/src/app/vault/ciphers.component.ts new file mode 100644 index 0000000000..3f1dc3e059 --- /dev/null +++ b/apps/web/src/app/vault/ciphers.component.ts @@ -0,0 +1,306 @@ +import { Component, EventEmitter, Input, OnDestroy, Output } from "@angular/core"; + +import { CiphersComponent as BaseCiphersComponent } from "jslib-angular/components/ciphers.component"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { EventService } from "jslib-common/abstractions/event.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PasswordRepromptService } from "jslib-common/abstractions/passwordReprompt.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { SearchService } from "jslib-common/abstractions/search.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { TokenService } from "jslib-common/abstractions/token.service"; +import { TotpService } from "jslib-common/abstractions/totp.service"; +import { CipherRepromptType } from "jslib-common/enums/cipherRepromptType"; +import { CipherType } from "jslib-common/enums/cipherType"; +import { EventType } from "jslib-common/enums/eventType"; +import { Organization } from "jslib-common/models/domain/organization"; +import { CipherView } from "jslib-common/models/view/cipherView"; + +const MaxCheckedCount = 500; + +@Component({ + selector: "app-vault-ciphers", + templateUrl: "ciphers.component.html", +}) +export class CiphersComponent extends BaseCiphersComponent implements OnDestroy { + @Input() showAddNew = true; + @Output() onAttachmentsClicked = new EventEmitter(); + @Output() onShareClicked = new EventEmitter(); + @Output() onCollectionsClicked = new EventEmitter(); + @Output() onCloneClicked = new EventEmitter(); + @Output() onOrganzationBadgeClicked = new EventEmitter(); + + pagedCiphers: CipherView[] = []; + pageSize = 200; + cipherType = CipherType; + actionPromise: Promise; + userHasPremiumAccess = false; + organizations: Organization[] = []; + profileName: string; + + private didScroll = false; + private pagedCiphersCount = 0; + private refreshing = false; + + constructor( + searchService: SearchService, + protected i18nService: I18nService, + protected platformUtilsService: PlatformUtilsService, + protected cipherService: CipherService, + protected eventService: EventService, + protected totpService: TotpService, + protected stateService: StateService, + protected passwordRepromptService: PasswordRepromptService, + private logService: LogService, + private organizationService: OrganizationService, + private tokenService: TokenService + ) { + super(searchService); + } + + ngOnDestroy() { + this.selectAll(false); + } + + // load() is called after the page loads and the first sync has completed. + // Do not use ngOnInit() for anything that requires sync data. + async load(filter: (cipher: CipherView) => boolean = null, deleted = false) { + await super.load(filter, deleted); + this.profileName = await this.tokenService.getName(); + this.organizations = await this.organizationService.getAll(); + this.userHasPremiumAccess = await this.stateService.getCanAccessPremium(); + } + + loadMore() { + if (this.ciphers.length <= this.pageSize) { + return; + } + const pagedLength = this.pagedCiphers.length; + let pagedSize = this.pageSize; + if (this.refreshing && pagedLength === 0 && this.pagedCiphersCount > this.pageSize) { + pagedSize = this.pagedCiphersCount; + } + if (this.ciphers.length > pagedLength) { + this.pagedCiphers = this.pagedCiphers.concat( + this.ciphers.slice(pagedLength, pagedLength + pagedSize) + ); + } + this.pagedCiphersCount = this.pagedCiphers.length; + this.didScroll = this.pagedCiphers.length > this.pageSize; + } + + async refresh() { + try { + this.refreshing = true; + await this.reload(this.filter, this.deleted); + } finally { + this.refreshing = false; + } + } + + isPaging() { + const searching = this.isSearching(); + if (searching && this.didScroll) { + this.resetPaging(); + } + return !searching && this.ciphers.length > this.pageSize; + } + + async resetPaging() { + this.pagedCiphers = []; + this.loadMore(); + } + + async doSearch(indexedCiphers?: CipherView[]) { + this.ciphers = await this.searchService.searchCiphers( + this.searchText, + [this.filter, this.deletedFilter], + indexedCiphers + ); + this.resetPaging(); + } + + launch(uri: string) { + this.platformUtilsService.launchUri(uri); + } + + async attachments(c: CipherView) { + if (!(await this.repromptCipher(c))) { + return; + } + this.onAttachmentsClicked.emit(c); + } + + async share(c: CipherView) { + if (!(await this.repromptCipher(c))) { + return; + } + this.onShareClicked.emit(c); + } + + collections(c: CipherView) { + this.onCollectionsClicked.emit(c); + } + + async clone(c: CipherView) { + if (!(await this.repromptCipher(c))) { + return; + } + this.onCloneClicked.emit(c); + } + + async delete(c: CipherView): Promise { + if (!(await this.repromptCipher(c))) { + return; + } + if (this.actionPromise != null) { + return; + } + const permanent = c.isDeleted; + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t( + permanent ? "permanentlyDeleteItemConfirmation" : "deleteItemConfirmation" + ), + this.i18nService.t(permanent ? "permanentlyDeleteItem" : "deleteItem"), + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!confirmed) { + return false; + } + + try { + this.actionPromise = this.deleteCipher(c.id, permanent); + await this.actionPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t(permanent ? "permanentlyDeletedItem" : "deletedItem") + ); + this.refresh(); + } catch (e) { + this.logService.error(e); + } + this.actionPromise = null; + } + + async restore(c: CipherView): Promise { + if (this.actionPromise != null || !c.isDeleted) { + return; + } + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("restoreItemConfirmation"), + this.i18nService.t("restoreItem"), + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!confirmed) { + return false; + } + + try { + this.actionPromise = this.cipherService.restoreWithServer(c.id); + await this.actionPromise; + this.platformUtilsService.showToast("success", null, this.i18nService.t("restoredItem")); + this.refresh(); + } catch (e) { + this.logService.error(e); + } + this.actionPromise = null; + } + + async copy(cipher: CipherView, value: string, typeI18nKey: string, aType: string) { + if ( + this.passwordRepromptService.protectedFields().includes(aType) && + !(await this.repromptCipher(cipher)) + ) { + return; + } + + if (value == null || (aType === "TOTP" && !this.displayTotpCopyButton(cipher))) { + return; + } else if (value === cipher.login.totp) { + value = await this.totpService.getCode(value); + } + + if (!cipher.viewPassword) { + return; + } + + this.platformUtilsService.copyToClipboard(value, { window: window }); + this.platformUtilsService.showToast( + "info", + null, + this.i18nService.t("valueCopied", this.i18nService.t(typeI18nKey)) + ); + + if (typeI18nKey === "password" || typeI18nKey === "verificationCodeTotp") { + this.eventService.collect(EventType.Cipher_ClientToggledHiddenFieldVisible, cipher.id); + } else if (typeI18nKey === "securityCode") { + this.eventService.collect(EventType.Cipher_ClientCopiedCardCode, cipher.id); + } + } + + selectAll(select: boolean) { + if (select) { + this.selectAll(false); + } + const selectCount = + select && this.ciphers.length > MaxCheckedCount ? MaxCheckedCount : this.ciphers.length; + for (let i = 0; i < selectCount; i++) { + this.checkCipher(this.ciphers[i], select); + } + } + + checkCipher(c: CipherView, select?: boolean) { + (c as any).checked = select == null ? !(c as any).checked : select; + } + + getSelected(): CipherView[] { + if (this.ciphers == null) { + return []; + } + return this.ciphers.filter((c) => !!(c as any).checked); + } + + getSelectedIds(): string[] { + return this.getSelected().map((c) => c.id); + } + + displayTotpCopyButton(cipher: CipherView) { + return ( + (cipher?.login?.hasTotp ?? false) && (cipher.organizationUseTotp || this.userHasPremiumAccess) + ); + } + + async selectCipher(cipher: CipherView) { + if (await this.repromptCipher(cipher)) { + super.selectCipher(cipher); + } + } + + onOrganizationClicked(organizationId: string) { + this.onOrganzationBadgeClicked.emit(organizationId); + } + + protected deleteCipher(id: string, permanent: boolean) { + return permanent + ? this.cipherService.deleteWithServer(id) + : this.cipherService.softDeleteWithServer(id); + } + + protected showFixOldAttachments(c: CipherView) { + return c.hasOldAttachments && c.organizationId == null; + } + + protected async repromptCipher(c: CipherView) { + return ( + c.reprompt === CipherRepromptType.None || + (await this.passwordRepromptService.showPasswordPrompt()) + ); + } +} diff --git a/apps/web/src/app/vault/collections.component.html b/apps/web/src/app/vault/collections.component.html new file mode 100644 index 0000000000..486ed03e32 --- /dev/null +++ b/apps/web/src/app/vault/collections.component.html @@ -0,0 +1,63 @@ + diff --git a/apps/web/src/app/vault/collections.component.ts b/apps/web/src/app/vault/collections.component.ts new file mode 100644 index 0000000000..17dc207d33 --- /dev/null +++ b/apps/web/src/app/vault/collections.component.ts @@ -0,0 +1,37 @@ +import { Component, OnDestroy } from "@angular/core"; + +import { CollectionsComponent as BaseCollectionsComponent } from "jslib-angular/components/collections.component"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { CollectionService } from "jslib-common/abstractions/collection.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { CollectionView } from "jslib-common/models/view/collectionView"; + +@Component({ + selector: "app-vault-collections", + templateUrl: "collections.component.html", +}) +export class CollectionsComponent extends BaseCollectionsComponent implements OnDestroy { + constructor( + collectionService: CollectionService, + platformUtilsService: PlatformUtilsService, + i18nService: I18nService, + cipherService: CipherService, + logService: LogService + ) { + super(collectionService, platformUtilsService, i18nService, cipherService, logService); + } + + ngOnDestroy() { + this.selectAll(false); + } + + check(c: CollectionView, select?: boolean) { + (c as any).checked = select == null ? !(c as any).checked : select; + } + + selectAll(select: boolean) { + this.collections.forEach((c) => this.check(c, select)); + } +} diff --git a/apps/web/src/app/vault/folder-add-edit.component.html b/apps/web/src/app/vault/folder-add-edit.component.html new file mode 100644 index 0000000000..fe59530f68 --- /dev/null +++ b/apps/web/src/app/vault/folder-add-edit.component.html @@ -0,0 +1,68 @@ + diff --git a/apps/web/src/app/vault/folder-add-edit.component.ts b/apps/web/src/app/vault/folder-add-edit.component.ts new file mode 100644 index 0000000000..a65f3f0226 --- /dev/null +++ b/apps/web/src/app/vault/folder-add-edit.component.ts @@ -0,0 +1,22 @@ +import { Component } from "@angular/core"; + +import { FolderAddEditComponent as BaseFolderAddEditComponent } from "jslib-angular/components/folder-add-edit.component"; +import { FolderService } from "jslib-common/abstractions/folder.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; + +@Component({ + selector: "app-folder-add-edit", + templateUrl: "folder-add-edit.component.html", +}) +export class FolderAddEditComponent extends BaseFolderAddEditComponent { + constructor( + folderService: FolderService, + i18nService: I18nService, + platformUtilsService: PlatformUtilsService, + logService: LogService + ) { + super(folderService, i18nService, platformUtilsService, logService); + } +} diff --git a/apps/web/src/app/vault/share.component.html b/apps/web/src/app/vault/share.component.html new file mode 100644 index 0000000000..1f56c8c395 --- /dev/null +++ b/apps/web/src/app/vault/share.component.html @@ -0,0 +1,92 @@ + diff --git a/apps/web/src/app/vault/share.component.ts b/apps/web/src/app/vault/share.component.ts new file mode 100644 index 0000000000..719f0ac075 --- /dev/null +++ b/apps/web/src/app/vault/share.component.ts @@ -0,0 +1,47 @@ +import { Component, OnDestroy } from "@angular/core"; + +import { ShareComponent as BaseShareComponent } from "jslib-angular/components/share.component"; +import { CipherService } from "jslib-common/abstractions/cipher.service"; +import { CollectionService } from "jslib-common/abstractions/collection.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { CollectionView } from "jslib-common/models/view/collectionView"; + +@Component({ + selector: "app-vault-share", + templateUrl: "share.component.html", +}) +export class ShareComponent extends BaseShareComponent implements OnDestroy { + constructor( + collectionService: CollectionService, + platformUtilsService: PlatformUtilsService, + i18nService: I18nService, + cipherService: CipherService, + organizationService: OrganizationService, + logService: LogService + ) { + super( + collectionService, + platformUtilsService, + i18nService, + cipherService, + logService, + organizationService + ); + } + + ngOnDestroy() { + this.selectAll(false); + } + + check(c: CollectionView, select?: boolean) { + (c as any).checked = select == null ? !(c as any).checked : select; + } + + selectAll(select: boolean) { + const collections = select ? this.collections : this.writeableCollections; + collections.forEach((c) => this.check(c, select)); + } +} diff --git a/apps/web/src/app/wildcard-routing.module.ts b/apps/web/src/app/wildcard-routing.module.ts new file mode 100644 index 0000000000..a8f59f37b7 --- /dev/null +++ b/apps/web/src/app/wildcard-routing.module.ts @@ -0,0 +1,10 @@ +import { NgModule } from "@angular/core"; +import { RouterModule, Routes } from "@angular/router"; + +const routes: Routes = [{ path: "**", redirectTo: "" }]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class WildcardRoutingModule {} diff --git a/apps/web/src/browserconfig.xml b/apps/web/src/browserconfig.xml new file mode 100644 index 0000000000..ea394e344f --- /dev/null +++ b/apps/web/src/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #175DDC + + + diff --git a/apps/web/src/connectors/captcha-mobile.html b/apps/web/src/connectors/captcha-mobile.html new file mode 100644 index 0000000000..3cef730598 --- /dev/null +++ b/apps/web/src/connectors/captcha-mobile.html @@ -0,0 +1,23 @@ + + + + + + + + Bitwarden Captcha Connector + + + +
+
+ +

Captcha Required

+
+
+
+ + diff --git a/apps/web/src/connectors/captcha-mobile.scss b/apps/web/src/connectors/captcha-mobile.scss new file mode 100644 index 0000000000..a4c7f9b25b --- /dev/null +++ b/apps/web/src/connectors/captcha-mobile.scss @@ -0,0 +1 @@ +@import "../scss/styles.scss"; diff --git a/apps/web/src/connectors/captcha.html b/apps/web/src/connectors/captcha.html new file mode 100644 index 0000000000..366db5fc2d --- /dev/null +++ b/apps/web/src/connectors/captcha.html @@ -0,0 +1,17 @@ + + + + + + + + Bitwarden Captcha Connector + + + +
+ + diff --git a/apps/web/src/connectors/captcha.scss b/apps/web/src/connectors/captcha.scss new file mode 100644 index 0000000000..2af0e2db99 --- /dev/null +++ b/apps/web/src/connectors/captcha.scss @@ -0,0 +1,6 @@ +body { + min-width: 0px !important; + padding: 0; + margin: 0; + background: transparent; +} diff --git a/apps/web/src/connectors/captcha.ts b/apps/web/src/connectors/captcha.ts new file mode 100644 index 0000000000..d1110e8892 --- /dev/null +++ b/apps/web/src/connectors/captcha.ts @@ -0,0 +1,144 @@ +import { b64Decode, getQsParam } from "./common"; + +declare let hcaptcha: any; + +if (window.location.pathname.includes("mobile")) { + require("./captcha-mobile.scss"); +} else { + require("./captcha.scss"); +} + +document.addEventListener("DOMContentLoaded", () => { + init(); +}); + +(window as any).captchaSuccess = captchaSuccess; +(window as any).captchaError = captchaError; + +let parentUrl: string = null; +let parentOrigin: string = null; +let mobileResponse: boolean = null; +let sentSuccess = false; + +async function init() { + await start(); + onMessage(); +} + +async function start() { + sentSuccess = false; + + const data = getQsParam("data"); + if (!data) { + error("No data."); + return; + } + + parentUrl = getQsParam("parent"); + if (!parentUrl) { + error("No parent."); + return; + } else { + parentUrl = decodeURIComponent(parentUrl); + parentOrigin = new URL(parentUrl).origin; + } + + let decodedData: any; + try { + decodedData = JSON.parse(b64Decode(data, true)); + } catch (e) { + error("Cannot parse data."); + return; + } + mobileResponse = decodedData.callbackUri != null || decodedData.mobile === true; + + let src = "https://hcaptcha.com/1/api.js?render=explicit"; + + // Set language code + if (decodedData.locale) { + src += `&hl=${encodeURIComponent(decodedData.locale) ?? "en"}`; + } + + // Set captchaRequired subtitle for mobile + const subtitleEl = document.getElementById("captchaRequired"); + if (decodedData.captchaRequiredText && subtitleEl) { + subtitleEl.textContent = decodedData.captchaRequiredText; + } + + const script = document.createElement("script"); + script.src = src; + script.async = true; + script.defer = true; + script.addEventListener("load", () => { + hcaptcha.render("captcha", { + sitekey: encodeURIComponent(decodedData.siteKey), + callback: "captchaSuccess", + "error-callback": "captchaError", + }); + watchHeight(); + }); + document.head.appendChild(script); +} + +function captchaSuccess(response: string) { + if (mobileResponse) { + document.location.replace("bitwarden://captcha-callback?token=" + encodeURIComponent(response)); + } else { + success(response); + } +} + +function captchaError() { + error("An error occurred with the captcha. Try again."); +} + +function onMessage() { + window.addEventListener( + "message", + (event) => { + if (!event.origin || event.origin === "" || event.origin !== parentOrigin) { + return; + } + + if (event.data === "start") { + start(); + } + }, + false + ); +} + +function error(message: string) { + parent.postMessage("error|" + message, parentUrl); +} + +function success(data: string) { + if (sentSuccess) { + return; + } + parent.postMessage("success|" + data, parentUrl); + sentSuccess = true; +} + +function info(message: string | object) { + parent.postMessage("info|" + JSON.stringify(message), parentUrl); +} + +async function watchHeight() { + const imagesDiv = document.body.lastChild as HTMLElement; + // eslint-disable-next-line + while (true) { + info({ + height: + imagesDiv.style.visibility === "hidden" + ? document.documentElement.offsetHeight + : document.documentElement.scrollHeight, + width: document.documentElement.scrollWidth, + }); + await sleep(100); + } +} + +async function sleep(ms: number) { + await new Promise((r) => setTimeout(r, ms)); +} diff --git a/apps/web/src/connectors/common-webauthn.ts b/apps/web/src/connectors/common-webauthn.ts new file mode 100644 index 0000000000..3d07b50adb --- /dev/null +++ b/apps/web/src/connectors/common-webauthn.ts @@ -0,0 +1,71 @@ +export function buildDataString(assertedCredential: PublicKeyCredential) { + const response = assertedCredential.response as AuthenticatorAssertionResponse; + + const authData = new Uint8Array(response.authenticatorData); + const clientDataJSON = new Uint8Array(response.clientDataJSON); + const rawId = new Uint8Array(assertedCredential.rawId); + const sig = new Uint8Array(response.signature); + + const data = { + id: assertedCredential.id, + rawId: coerceToBase64Url(rawId), + type: assertedCredential.type, + extensions: assertedCredential.getClientExtensionResults(), + response: { + authenticatorData: coerceToBase64Url(authData), + clientDataJson: coerceToBase64Url(clientDataJSON), + signature: coerceToBase64Url(sig), + }, + }; + + return JSON.stringify(data); +} + +export function parseWebauthnJson(jsonString: string) { + const json = JSON.parse(jsonString); + + const challenge = json.challenge.replace(/-/g, "+").replace(/_/g, "/"); + json.challenge = Uint8Array.from(atob(challenge), (c) => c.charCodeAt(0)); + + json.allowCredentials.forEach((listItem: any) => { + // eslint-disable-next-line + const fixedId = listItem.id.replace(/\_/g, "/").replace(/\-/g, "+"); + listItem.id = Uint8Array.from(atob(fixedId), (c) => c.charCodeAt(0)); + }); + + return json; +} + +// From https://github.com/abergs/fido2-net-lib/blob/b487a1d47373ea18cd752b4988f7262035b7b54e/Demo/wwwroot/js/helpers.js#L34 +// License: https://github.com/abergs/fido2-net-lib/blob/master/LICENSE.txt +function coerceToBase64Url(thing: any) { + // Array or ArrayBuffer to Uint8Array + if (Array.isArray(thing)) { + thing = Uint8Array.from(thing); + } + + if (thing instanceof ArrayBuffer) { + thing = new Uint8Array(thing); + } + + // Uint8Array to base64 + if (thing instanceof Uint8Array) { + let str = ""; + const len = thing.byteLength; + + for (let i = 0; i < len; i++) { + str += String.fromCharCode(thing[i]); + } + thing = window.btoa(str); + } + + if (typeof thing !== "string") { + throw new Error("could not coerce to string"); + } + + // base64 to base64url + // NOTE: "=" at the end of challenge is optional, strip it off here + thing = thing.replace(/\+/g, "-").replace(/\//g, "_").replace(/=*$/g, ""); + + return thing; +} diff --git a/apps/web/src/connectors/common.ts b/apps/web/src/connectors/common.ts new file mode 100644 index 0000000000..a8855f1d4b --- /dev/null +++ b/apps/web/src/connectors/common.ts @@ -0,0 +1,30 @@ +export function getQsParam(name: string) { + const url = window.location.href; + // eslint-disable-next-line + name = name.replace(/[\[\]]/g, "\\$&"); + const regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"); + const results = regex.exec(url); + + if (!results) { + return null; + } + if (!results[2]) { + return ""; + } + + return decodeURIComponent(results[2].replace(/\+/g, " ")); +} + +export function b64Decode(str: string, spaceAsPlus = false) { + if (spaceAsPlus) { + str = str.replace(/ /g, "+"); + } + + return decodeURIComponent( + Array.prototype.map + .call(atob(str), (c: string) => { + return "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2); + }) + .join("") + ); +} diff --git a/apps/web/src/connectors/duo.html b/apps/web/src/connectors/duo.html new file mode 100644 index 0000000000..b58587baa0 --- /dev/null +++ b/apps/web/src/connectors/duo.html @@ -0,0 +1,13 @@ + + + + + + Bitwarden Duo Connector + + + + diff --git a/apps/web/src/connectors/duo.scss b/apps/web/src/connectors/duo.scss new file mode 100644 index 0000000000..0fa97956ee --- /dev/null +++ b/apps/web/src/connectors/duo.scss @@ -0,0 +1,18 @@ +html, +body { + margin: 0; + padding: 0; +} + +body { + background: #efeff4 url("../images/loading.svg") 0 0 no-repeat; +} + +iframe { + display: block; + width: 100%; + height: 400px; + border: none; + margin: 0; + padding: 0; +} diff --git a/apps/web/src/connectors/duo.ts b/apps/web/src/connectors/duo.ts new file mode 100644 index 0000000000..96b129585f --- /dev/null +++ b/apps/web/src/connectors/duo.ts @@ -0,0 +1,47 @@ +import * as DuoWebSDK from "duo_web_sdk"; + +import { getQsParam } from "./common"; + +require("./duo.scss"); + +document.addEventListener("DOMContentLoaded", () => { + const frameElement = document.createElement("iframe"); + frameElement.setAttribute("id", "duo_iframe"); + setFrameHeight(); + document.body.appendChild(frameElement); + + const hostParam = getQsParam("host"); + const requestParam = getQsParam("request"); + + const hostUrl = new URL("https://" + hostParam); + if ( + !hostUrl.hostname.endsWith(".duosecurity.com") && + !hostUrl.hostname.endsWith(".duofederal.com") + ) { + return; + } + + DuoWebSDK.init({ + iframe: "duo_iframe", + host: hostParam, + sig_request: requestParam, + submit_callback: (form: any) => { + invokeCSCode(form.elements.sig_response.value); + }, + }); + + window.onresize = setFrameHeight; + + function setFrameHeight() { + frameElement.style.height = window.innerHeight + "px"; + } +}); + +function invokeCSCode(data: string) { + try { + (window as any).invokeCSharpAction(data); + } catch (err) { + // eslint-disable-next-line + console.log(err); + } +} diff --git a/apps/web/src/connectors/sso.html b/apps/web/src/connectors/sso.html new file mode 100644 index 0000000000..b2ebc78265 --- /dev/null +++ b/apps/web/src/connectors/sso.html @@ -0,0 +1,33 @@ + + + + + + + + Bitwarden + + + + + + + + + +
+
+ +
+

+ +

+
+
+
+ + diff --git a/apps/web/src/connectors/sso.scss b/apps/web/src/connectors/sso.scss new file mode 100644 index 0000000000..a4c7f9b25b --- /dev/null +++ b/apps/web/src/connectors/sso.scss @@ -0,0 +1 @@ +@import "../scss/styles.scss"; diff --git a/apps/web/src/connectors/sso.ts b/apps/web/src/connectors/sso.ts new file mode 100644 index 0000000000..9195c61f9c --- /dev/null +++ b/apps/web/src/connectors/sso.ts @@ -0,0 +1,47 @@ +import { getQsParam } from "./common"; + +require("./sso.scss"); + +document.addEventListener("DOMContentLoaded", () => { + const code = getQsParam("code"); + const state = getQsParam("state"); + + if (state != null && state.includes(":clientId=browser")) { + initiateBrowserSso(code, state); + } else { + window.location.href = window.location.origin + "/#/sso?code=" + code + "&state=" + state; + // Match any characters between "_returnUri='" and the next "'" + const returnUri = extractFromRegex(state, "(?<=_returnUri=')(.*)(?=')"); + if (returnUri) { + window.location.href = window.location.origin + `/#${returnUri}`; + } else { + window.location.href = window.location.origin + "/#/sso?code=" + code + "&state=" + state; + } + } +}); + +function initiateBrowserSso(code: string, state: string) { + window.postMessage({ command: "authResult", code: code, state: state }, "*"); + const handOffMessage = ("; " + document.cookie) + .split("; ssoHandOffMessage=") + .pop() + .split(";") + .shift(); + document.cookie = "ssoHandOffMessage=;SameSite=strict;max-age=0"; + const content = document.getElementById("content"); + content.innerHTML = ""; + const p = document.createElement("p"); + p.innerText = handOffMessage; + content.appendChild(p); +} + +function extractFromRegex(s: string, regexString: string) { + const regex = new RegExp(regexString); + const results = regex.exec(s); + + if (!results) { + return null; + } + + return results[0]; +} diff --git a/apps/web/src/connectors/webauthn-fallback.html b/apps/web/src/connectors/webauthn-fallback.html new file mode 100644 index 0000000000..919d92b79e --- /dev/null +++ b/apps/web/src/connectors/webauthn-fallback.html @@ -0,0 +1,39 @@ + + + + + Bitwarden WebAuthn Connector + + + +
+
+
+ +
+

+ +

+
+
+
+

+
+ + +
+
+

+ +

+
+
+
+
+
+ + diff --git a/apps/web/src/connectors/webauthn-fallback.ts b/apps/web/src/connectors/webauthn-fallback.ts new file mode 100644 index 0000000000..60d53e0324 --- /dev/null +++ b/apps/web/src/connectors/webauthn-fallback.ts @@ -0,0 +1,164 @@ +import { b64Decode, getQsParam } from "./common"; +import { buildDataString, parseWebauthnJson } from "./common-webauthn"; + +require("./webauthn.scss"); + +let parsed = false; +let webauthnJson: any; +let parentUrl: string = null; +let sentSuccess = false; +let locale = "en"; + +let locales: any = {}; + +function parseParameters() { + if (parsed) { + return; + } + + parentUrl = getQsParam("parent"); + if (!parentUrl) { + error("No parent."); + return; + } else { + parentUrl = decodeURIComponent(parentUrl); + } + + locale = getQsParam("locale").replace("-", "_"); + + const version = getQsParam("v"); + + if (version === "1") { + parseParametersV1(); + } else { + parseParametersV2(); + } + parsed = true; +} + +function parseParametersV1() { + const data = getQsParam("data"); + if (!data) { + error("No data."); + return; + } + + webauthnJson = b64Decode(data); +} + +function parseParametersV2() { + let dataObj: { data: any; btnText: string } = null; + try { + dataObj = JSON.parse(b64Decode(getQsParam("data"))); + } catch (e) { + error("Cannot parse data."); + return; + } + + webauthnJson = dataObj.data; +} + +document.addEventListener("DOMContentLoaded", async () => { + parseParameters(); + try { + locales = await loadLocales(locale); + } catch { + // eslint-disable-next-line + console.error("Failed to load the locale", locale); + locales = await loadLocales("en"); + } + + document.getElementById("msg").innerText = translate("webAuthnFallbackMsg"); + document.getElementById("remember-label").innerText = translate("rememberMe"); + + const button = document.getElementById("webauthn-button"); + button.innerText = translate("webAuthnAuthenticate"); + button.onclick = start; + + document.getElementById("spinner").classList.add("d-none"); + const content = document.getElementById("content"); + content.classList.add("d-block"); + content.classList.remove("d-none"); +}); + +async function loadLocales(newLocale: string) { + const filePath = `locales/${newLocale}/messages.json?cache=${process.env.CACHE_TAG}`; + const localesResult = await fetch(filePath); + return await localesResult.json(); +} + +function translate(id: string) { + return locales[id]?.message || ""; +} + +function start() { + if (sentSuccess) { + return; + } + + if (!("credentials" in navigator)) { + error(translate("webAuthnNotSupported")); + return; + } + + parseParameters(); + if (!webauthnJson) { + error("No data."); + return; + } + + let json: any; + try { + json = parseWebauthnJson(webauthnJson); + } catch (e) { + error("Cannot parse data."); + return; + } + + initWebAuthn(json); +} + +async function initWebAuthn(obj: any) { + try { + const assertedCredential = (await navigator.credentials.get({ + publicKey: obj, + })) as PublicKeyCredential; + + if (sentSuccess) { + return; + } + + const dataString = buildDataString(assertedCredential); + const remember = (document.getElementById("remember") as HTMLInputElement).checked; + window.postMessage({ command: "webAuthnResult", data: dataString, remember: remember }, "*"); + + sentSuccess = true; + success(translate("webAuthnSuccess")); + } catch (err) { + error(err); + } +} + +function error(message: string) { + const el = document.getElementById("msg"); + resetMsgBox(el); + el.textContent = message; + el.classList.add("alert"); + el.classList.add("alert-danger"); +} + +function success(message: string) { + (document.getElementById("webauthn-button") as HTMLButtonElement).disabled = true; + + const el = document.getElementById("msg"); + resetMsgBox(el); + el.textContent = message; + el.classList.add("alert"); + el.classList.add("alert-success"); +} + +function resetMsgBox(el: HTMLElement) { + el.classList.remove("alert"); + el.classList.remove("alert-danger"); + el.classList.remove("alert-success"); +} diff --git a/apps/web/src/connectors/webauthn-mobile.html b/apps/web/src/connectors/webauthn-mobile.html new file mode 100644 index 0000000000..f2a015aae4 --- /dev/null +++ b/apps/web/src/connectors/webauthn-mobile.html @@ -0,0 +1,30 @@ + + + + + + + + Bitwarden WebAuthn Connector + + + +
+
+ +

+ + + + + +
+ +
+
+
+ + diff --git a/apps/web/src/connectors/webauthn.html b/apps/web/src/connectors/webauthn.html new file mode 100644 index 0000000000..2e77cc0d5d --- /dev/null +++ b/apps/web/src/connectors/webauthn.html @@ -0,0 +1,18 @@ + + + + + Bitwarden WebAuthn Connector + + + + + + + + +
+ +
+ + diff --git a/apps/web/src/connectors/webauthn.scss b/apps/web/src/connectors/webauthn.scss new file mode 100644 index 0000000000..5cca0413fc --- /dev/null +++ b/apps/web/src/connectors/webauthn.scss @@ -0,0 +1,5 @@ +@import "../scss/styles.scss"; + +body { + min-width: 0px !important; +} diff --git a/apps/web/src/connectors/webauthn.ts b/apps/web/src/connectors/webauthn.ts new file mode 100644 index 0000000000..8e4213d881 --- /dev/null +++ b/apps/web/src/connectors/webauthn.ts @@ -0,0 +1,200 @@ +import { b64Decode, getQsParam } from "./common"; +import { buildDataString, parseWebauthnJson } from "./common-webauthn"; + +require("./webauthn.scss"); + +const mobileCallbackUri = "bitwarden://webauthn-callback"; + +let parsed = false; +let webauthnJson: any; +let headerText: string = null; +let btnText: string = null; +let btnReturnText: string = null; +let parentUrl: string = null; +let parentOrigin: string = null; +let mobileResponse = false; +let stopWebAuthn = false; +let sentSuccess = false; +let obj: any = null; + +document.addEventListener("DOMContentLoaded", () => { + init(); + + parseParameters(); + if (headerText) { + const header = document.getElementById("webauthn-header"); + header.innerText = decodeURI(headerText); + } + if (btnText) { + const button = document.getElementById("webauthn-button"); + button.innerText = decodeURI(btnText); + button.onclick = executeWebAuthn; + } +}); + +function init() { + start(); + onMessage(); + info("ready"); +} + +function parseParameters() { + if (parsed) { + return; + } + + parentUrl = getQsParam("parent"); + if (!parentUrl) { + error("No parent."); + return; + } else { + parentUrl = decodeURIComponent(parentUrl); + parentOrigin = new URL(parentUrl).origin; + } + + const version = getQsParam("v"); + + if (version === "1") { + parseParametersV1(); + } else { + parseParametersV2(); + } + parsed = true; +} + +function parseParametersV1() { + const data = getQsParam("data"); + if (!data) { + error("No data."); + return; + } + + webauthnJson = b64Decode(data); + headerText = getQsParam("headerText"); + btnText = getQsParam("btnText"); + btnReturnText = getQsParam("btnReturnText"); +} + +function parseParametersV2() { + let dataObj: { + data: any; + headerText: string; + btnText: string; + btnReturnText: string; + callbackUri?: string; + mobile?: boolean; + } = null; + try { + dataObj = JSON.parse(b64Decode(getQsParam("data"))); + } catch (e) { + error("Cannot parse data."); + return; + } + + mobileResponse = dataObj.callbackUri != null || dataObj.mobile === true; + webauthnJson = dataObj.data; + headerText = dataObj.headerText; + btnText = dataObj.btnText; + btnReturnText = dataObj.btnReturnText; +} + +function start() { + sentSuccess = false; + + if (!("credentials" in navigator)) { + error("WebAuthn is not supported in this browser."); + return; + } + + parseParameters(); + if (!webauthnJson) { + error("No data."); + return; + } + + try { + obj = parseWebauthnJson(webauthnJson); + } catch (e) { + error("Cannot parse webauthn data."); + return; + } + + stopWebAuthn = false; + + if ( + mobileResponse || + (navigator.userAgent.indexOf(" Safari/") !== -1 && navigator.userAgent.indexOf("Chrome") === -1) + ) { + // Safari and mobile chrome blocks non-user initiated WebAuthn requests. + } else { + executeWebAuthn(); + } +} + +function executeWebAuthn() { + if (stopWebAuthn) { + return; + } + + navigator.credentials.get({ publicKey: obj }).then(success).catch(error); +} + +function onMessage() { + window.addEventListener( + "message", + (event) => { + if (!event.origin || event.origin === "" || event.origin !== parentOrigin) { + return; + } + + if (event.data === "stop") { + stopWebAuthn = true; + } else if (event.data === "start" && stopWebAuthn) { + start(); + } + }, + false + ); +} + +function error(message: string) { + if (mobileResponse) { + document.location.replace(mobileCallbackUri + "?error=" + encodeURIComponent(message)); + returnButton(mobileCallbackUri + "?error=" + encodeURIComponent(message)); + } else { + parent.postMessage("error|" + message, parentUrl); + } +} + +function success(assertedCredential: PublicKeyCredential) { + if (sentSuccess) { + return; + } + + const dataString = buildDataString(assertedCredential); + + if (mobileResponse) { + document.location.replace(mobileCallbackUri + "?data=" + encodeURIComponent(dataString)); + returnButton(mobileCallbackUri + "?data=" + encodeURIComponent(dataString)); + } else { + parent.postMessage("success|" + dataString, parentUrl); + sentSuccess = true; + } +} + +function info(message: string) { + if (mobileResponse) { + return; + } + + parent.postMessage("info|" + message, parentUrl); +} + +function returnButton(uri: string) { + // provides 'return' button in case scripted navigation is blocked + const button = document.getElementById("webauthn-button"); + button.innerText = decodeURI(btnReturnText); + button.onclick = () => { + document.location.replace(uri); + }; +} diff --git a/apps/web/src/favicon.ico b/apps/web/src/favicon.ico new file mode 100644 index 0000000000..841840dfe1 Binary files /dev/null and b/apps/web/src/favicon.ico differ diff --git a/apps/web/src/global.d.ts b/apps/web/src/global.d.ts new file mode 100644 index 0000000000..4859a0869e --- /dev/null +++ b/apps/web/src/global.d.ts @@ -0,0 +1,2 @@ +declare function escape(s: string): string; +declare function unescape(s: string): string; diff --git a/apps/web/src/images/404.png b/apps/web/src/images/404.png new file mode 100644 index 0000000000..db1c31bf55 Binary files /dev/null and b/apps/web/src/images/404.png differ diff --git a/apps/web/src/images/bwi-globe.png b/apps/web/src/images/bwi-globe.png new file mode 100644 index 0000000000..cceeaefbcf Binary files /dev/null and b/apps/web/src/images/bwi-globe.png differ diff --git a/apps/web/src/images/cards.png b/apps/web/src/images/cards.png new file mode 100644 index 0000000000..bd43abe54c Binary files /dev/null and b/apps/web/src/images/cards.png differ diff --git a/apps/web/src/images/icons/android-chrome-192x192.png b/apps/web/src/images/icons/android-chrome-192x192.png new file mode 100644 index 0000000000..43976a5832 Binary files /dev/null and b/apps/web/src/images/icons/android-chrome-192x192.png differ diff --git a/apps/web/src/images/icons/android-chrome-512x512.png b/apps/web/src/images/icons/android-chrome-512x512.png new file mode 100644 index 0000000000..8e5600b4df Binary files /dev/null and b/apps/web/src/images/icons/android-chrome-512x512.png differ diff --git a/apps/web/src/images/icons/apple-touch-icon.png b/apps/web/src/images/icons/apple-touch-icon.png new file mode 100644 index 0000000000..ea07eca818 Binary files /dev/null and b/apps/web/src/images/icons/apple-touch-icon.png differ diff --git a/apps/web/src/images/icons/favicon-16x16.png b/apps/web/src/images/icons/favicon-16x16.png new file mode 100644 index 0000000000..e42bf10e80 Binary files /dev/null and b/apps/web/src/images/icons/favicon-16x16.png differ diff --git a/apps/web/src/images/icons/favicon-32x32.png b/apps/web/src/images/icons/favicon-32x32.png new file mode 100644 index 0000000000..7dc2e8f9ac Binary files /dev/null and b/apps/web/src/images/icons/favicon-32x32.png differ diff --git a/apps/web/src/images/icons/mstile-150x150.png b/apps/web/src/images/icons/mstile-150x150.png new file mode 100644 index 0000000000..90bdd338c4 Binary files /dev/null and b/apps/web/src/images/icons/mstile-150x150.png differ diff --git a/apps/web/src/images/icons/safari-pinned-tab.svg b/apps/web/src/images/icons/safari-pinned-tab.svg new file mode 100644 index 0000000000..29063dd6de --- /dev/null +++ b/apps/web/src/images/icons/safari-pinned-tab.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + diff --git a/apps/web/src/images/loading-white.svg b/apps/web/src/images/loading-white.svg new file mode 100644 index 0000000000..3023914006 --- /dev/null +++ b/apps/web/src/images/loading-white.svg @@ -0,0 +1,6 @@ + + + Loading... + + diff --git a/apps/web/src/images/loading.svg b/apps/web/src/images/loading.svg new file mode 100644 index 0000000000..7076310516 --- /dev/null +++ b/apps/web/src/images/loading.svg @@ -0,0 +1,6 @@ + + + Loading... + + diff --git a/apps/web/src/images/logo-dark@2x.png b/apps/web/src/images/logo-dark@2x.png new file mode 100644 index 0000000000..e6519fb0fe Binary files /dev/null and b/apps/web/src/images/logo-dark@2x.png differ diff --git a/apps/web/src/images/logo-white@2x.png b/apps/web/src/images/logo-white@2x.png new file mode 100644 index 0000000000..099a4e4de2 Binary files /dev/null and b/apps/web/src/images/logo-white@2x.png differ diff --git a/apps/web/src/images/register-layout/cnet-logo.svg b/apps/web/src/images/register-layout/cnet-logo.svg new file mode 100644 index 0000000000..6e66987f4b --- /dev/null +++ b/apps/web/src/images/register-layout/cnet-logo.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/web/src/images/register-layout/forbes-logo.svg b/apps/web/src/images/register-layout/forbes-logo.svg new file mode 100644 index 0000000000..c28a8e30f8 --- /dev/null +++ b/apps/web/src/images/register-layout/forbes-logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/web/src/images/register-layout/logo-horizontal-white.png b/apps/web/src/images/register-layout/logo-horizontal-white.png new file mode 100644 index 0000000000..d5abf466e9 Binary files /dev/null and b/apps/web/src/images/register-layout/logo-horizontal-white.png differ diff --git a/apps/web/src/images/register-layout/logo-horizontal-white.svg b/apps/web/src/images/register-layout/logo-horizontal-white.svg new file mode 100644 index 0000000000..c8f13bd5fe --- /dev/null +++ b/apps/web/src/images/register-layout/logo-horizontal-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/web/src/images/register-layout/usnews-360-badge.svg b/apps/web/src/images/register-layout/usnews-360-badge.svg new file mode 100644 index 0000000000..e7a63ed330 --- /dev/null +++ b/apps/web/src/images/register-layout/usnews-360-badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/web/src/images/register-layout/wired-logo.png b/apps/web/src/images/register-layout/wired-logo.png new file mode 100644 index 0000000000..bf893de347 Binary files /dev/null and b/apps/web/src/images/register-layout/wired-logo.png differ diff --git a/apps/web/src/images/totp-countdown.png b/apps/web/src/images/totp-countdown.png new file mode 100644 index 0000000000..ef07c49b98 Binary files /dev/null and b/apps/web/src/images/totp-countdown.png differ diff --git a/apps/web/src/images/two-factor/0.png b/apps/web/src/images/two-factor/0.png new file mode 100644 index 0000000000..307ff4fd60 Binary files /dev/null and b/apps/web/src/images/two-factor/0.png differ diff --git a/apps/web/src/images/two-factor/1-w.png b/apps/web/src/images/two-factor/1-w.png new file mode 100644 index 0000000000..a4e39b3f46 Binary files /dev/null and b/apps/web/src/images/two-factor/1-w.png differ diff --git a/apps/web/src/images/two-factor/1.png b/apps/web/src/images/two-factor/1.png new file mode 100644 index 0000000000..37fb7bc432 Binary files /dev/null and b/apps/web/src/images/two-factor/1.png differ diff --git a/apps/web/src/images/two-factor/2.png b/apps/web/src/images/two-factor/2.png new file mode 100644 index 0000000000..d069bdab99 Binary files /dev/null and b/apps/web/src/images/two-factor/2.png differ diff --git a/apps/web/src/images/two-factor/3.png b/apps/web/src/images/two-factor/3.png new file mode 100644 index 0000000000..c543343f53 Binary files /dev/null and b/apps/web/src/images/two-factor/3.png differ diff --git a/apps/web/src/images/two-factor/4.png b/apps/web/src/images/two-factor/4.png new file mode 100644 index 0000000000..058671ea37 Binary files /dev/null and b/apps/web/src/images/two-factor/4.png differ diff --git a/apps/web/src/images/two-factor/6.png b/apps/web/src/images/two-factor/6.png new file mode 100644 index 0000000000..d069bdab99 Binary files /dev/null and b/apps/web/src/images/two-factor/6.png differ diff --git a/apps/web/src/images/two-factor/7-w.png b/apps/web/src/images/two-factor/7-w.png new file mode 100644 index 0000000000..89fdd8a2a0 Binary files /dev/null and b/apps/web/src/images/two-factor/7-w.png differ diff --git a/apps/web/src/images/two-factor/7.png b/apps/web/src/images/two-factor/7.png new file mode 100644 index 0000000000..2a38bdcd3e Binary files /dev/null and b/apps/web/src/images/two-factor/7.png differ diff --git a/apps/web/src/images/two-factor/rc-w.png b/apps/web/src/images/two-factor/rc-w.png new file mode 100644 index 0000000000..e83b8db132 Binary files /dev/null and b/apps/web/src/images/two-factor/rc-w.png differ diff --git a/apps/web/src/images/two-factor/rc.png b/apps/web/src/images/two-factor/rc.png new file mode 100644 index 0000000000..4bebdf936c Binary files /dev/null and b/apps/web/src/images/two-factor/rc.png differ diff --git a/apps/web/src/images/u2fkey-mobile.avif b/apps/web/src/images/u2fkey-mobile.avif new file mode 100644 index 0000000000..2a1a733b92 Binary files /dev/null and b/apps/web/src/images/u2fkey-mobile.avif differ diff --git a/apps/web/src/images/u2fkey-mobile.jpg b/apps/web/src/images/u2fkey-mobile.jpg new file mode 100644 index 0000000000..ddbd545b0e Binary files /dev/null and b/apps/web/src/images/u2fkey-mobile.jpg differ diff --git a/apps/web/src/images/u2fkey-mobile.webp b/apps/web/src/images/u2fkey-mobile.webp new file mode 100644 index 0000000000..4faa32283d Binary files /dev/null and b/apps/web/src/images/u2fkey-mobile.webp differ diff --git a/apps/web/src/images/u2fkey.avif b/apps/web/src/images/u2fkey.avif new file mode 100644 index 0000000000..3c5f94dd83 Binary files /dev/null and b/apps/web/src/images/u2fkey.avif differ diff --git a/apps/web/src/images/u2fkey.jpg b/apps/web/src/images/u2fkey.jpg new file mode 100644 index 0000000000..595ae0c4a3 Binary files /dev/null and b/apps/web/src/images/u2fkey.jpg differ diff --git a/apps/web/src/images/u2fkey.webp b/apps/web/src/images/u2fkey.webp new file mode 100644 index 0000000000..65d7501950 Binary files /dev/null and b/apps/web/src/images/u2fkey.webp differ diff --git a/apps/web/src/images/yubikey.avif b/apps/web/src/images/yubikey.avif new file mode 100644 index 0000000000..ca67e1a25c Binary files /dev/null and b/apps/web/src/images/yubikey.avif differ diff --git a/apps/web/src/images/yubikey.jpg b/apps/web/src/images/yubikey.jpg new file mode 100644 index 0000000000..6130819ac8 Binary files /dev/null and b/apps/web/src/images/yubikey.jpg differ diff --git a/apps/web/src/images/yubikey.webp b/apps/web/src/images/yubikey.webp new file mode 100644 index 0000000000..8d39087682 Binary files /dev/null and b/apps/web/src/images/yubikey.webp differ diff --git a/apps/web/src/index.html b/apps/web/src/index.html new file mode 100644 index 0000000000..63d4e72c09 --- /dev/null +++ b/apps/web/src/index.html @@ -0,0 +1,32 @@ + + + + + + + + Bitwarden Web Vault + + + + + + + + + +
+
+ +

+ +

+
+
+
+ + diff --git a/apps/web/src/locales/af/messages.json b/apps/web/src/locales/af/messages.json new file mode 100644 index 0000000000..8b083155e1 --- /dev/null +++ b/apps/web/src/locales/af/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Webkluis", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Welke tipe item is dit?" + }, + "name": { + "message": "Naam" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Nuwe URI" + }, + "username": { + "message": "Gebruikersnaam" + }, + "password": { + "message": "Wagwoord" + }, + "newPassword": { + "message": "Nuwe wagwoord" + }, + "passphrase": { + "message": "Wagfrase" + }, + "notes": { + "message": "Notas" + }, + "customFields": { + "message": "Pasgemaakte velde" + }, + "cardholderName": { + "message": "Kaarthouernaam" + }, + "number": { + "message": "Nommer" + }, + "brand": { + "message": "Handelsmerk" + }, + "expiration": { + "message": "Vervaldatum" + }, + "securityCode": { + "message": "Security Code (CVV)" + }, + "identityName": { + "message": "Identiteitnaam" + }, + "company": { + "message": "Maatskappy" + }, + "ssn": { + "message": "Identiteitsnommer" + }, + "passportNumber": { + "message": "Paspoortnommer" + }, + "licenseNumber": { + "message": "Lisensienommer" + }, + "email": { + "message": "E-pos" + }, + "phone": { + "message": "Telefoon" + }, + "january": { + "message": "Januarie" + }, + "february": { + "message": "Februarie" + }, + "march": { + "message": "Maart" + }, + "april": { + "message": "April" + }, + "may": { + "message": "Mei" + }, + "june": { + "message": "Junie" + }, + "july": { + "message": "Julie" + }, + "august": { + "message": "Augustus" + }, + "september": { + "message": "September" + }, + "october": { + "message": "Oktober" + }, + "november": { + "message": "November" + }, + "december": { + "message": "Desember" + }, + "title": { + "message": "Titel" + }, + "mr": { + "message": "Mnr." + }, + "mrs": { + "message": "Mev." + }, + "ms": { + "message": "Mej." + }, + "dr": { + "message": "Dr." + }, + "expirationMonth": { + "message": "Vervalmaand" + }, + "expirationYear": { + "message": "Vervaljaar" + }, + "authenticatorKeyTotp": { + "message": "Waarmerksleutel (TOTP)" + }, + "folder": { + "message": "Vouer" + }, + "newCustomField": { + "message": "Nuwe pasgemaakte veld" + }, + "value": { + "message": "Waarde" + }, + "dragToSort": { + "message": "Sleep om te sorteer" + }, + "cfTypeText": { + "message": "Teks" + }, + "cfTypeHidden": { + "message": "Versteek" + }, + "cfTypeBoolean": { + "message": "Booleaans" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Verwyder" + }, + "unassigned": { + "message": "Unassigned" + }, + "noneFolder": { + "message": "Geen vouer", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Voeg vouer toe" + }, + "editFolder": { + "message": "Wysig vouer" + }, + "baseDomain": { + "message": "Basisdomein", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Gasheer", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Presies" + }, + "startsWith": { + "message": "Begin met" + }, + "regEx": { + "message": "Gewone uitdrukking", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Ooreenkomsbespeuring", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Verstekooreenkomsbespeuring", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Nooit" + }, + "toggleVisibility": { + "message": "Tokkel sigbaarheid" + }, + "toggleCollapse": { + "message": "Tokkel invou", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Genereer Wagwoord" + }, + "checkPassword": { + "message": "Gaan na of wagwoord blootgestel is." + }, + "passwordExposed": { + "message": "Hierdie wagwoord is $VALUE$ keer in databreuke blootgestel. U behoort dit te verander.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Hierdie wagwoord is in geen bekende databreuke gevind nie. Dit behoort veilig vir gebruik te wees." + }, + "save": { + "message": "Bewaar" + }, + "cancel": { + "message": "Kanselleer" + }, + "canceled": { + "message": "Gekanselleer" + }, + "close": { + "message": "Sluit" + }, + "delete": { + "message": "Skrap" + }, + "favorite": { + "message": "Gunsteling" + }, + "unfavorite": { + "message": "Unfavorite" + }, + "edit": { + "message": "Wysig" + }, + "searchCollection": { + "message": "Deursoek versameling" + }, + "searchFolder": { + "message": "Deursoek vouer" + }, + "searchFavorites": { + "message": "Deursoek gunstelinge" + }, + "searchType": { + "message": "Deursoek tipe", + "description": "Search item type" + }, + "searchVault": { + "message": "Deursoek kluis" + }, + "allItems": { + "message": "Alle items" + }, + "favorites": { + "message": "Gunstelinge" + }, + "types": { + "message": "Tipes" + }, + "typeLogin": { + "message": "Aantekening" + }, + "typeCard": { + "message": "Kaart" + }, + "typeIdentity": { + "message": "Identiteit" + }, + "typeSecureNote": { + "message": "Beveiligde nota" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "Vouers" + }, + "collections": { + "message": "Versamelings" + }, + "firstName": { + "message": "Voornaam" + }, + "middleName": { + "message": "Middelnaam" + }, + "lastName": { + "message": "Van" + }, + "fullName": { + "message": "Full Name" + }, + "address1": { + "message": "Adres 1" + }, + "address2": { + "message": "Adres 2" + }, + "address3": { + "message": "Adres 3" + }, + "cityTown": { + "message": "Stad / Dorp" + }, + "stateProvince": { + "message": "Staat / Provinsie" + }, + "zipPostalCode": { + "message": "Poskode" + }, + "country": { + "message": "Land" + }, + "shared": { + "message": "Gedeel" + }, + "attachments": { + "message": "Aanhegsels" + }, + "select": { + "message": "Kies" + }, + "addItem": { + "message": "Voeg item toe" + }, + "editItem": { + "message": "Wysig item" + }, + "viewItem": { + "message": "Bekyk item" + }, + "ex": { + "message": "bv.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Ander" + }, + "share": { + "message": "Deel" + }, + "moveToOrganization": { + "message": "Skuif na organisasie" + }, + "valueCopied": { + "message": "$VALUE$ gekopieer", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Kopieer waarde", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Kopieer wagwoord", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Kopieer gebruikersnaam", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Kopieer nommer", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Kopieer sekureiteitskode", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Kopieer URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "My kluis" + }, + "vault": { + "message": "Kluis" + }, + "moveSelectedToOrg": { + "message": "Skuif seleksie na organisasie" + }, + "deleteSelected": { + "message": "Skrap seleksie" + }, + "moveSelected": { + "message": "Skuif seleksie" + }, + "selectAll": { + "message": "Kies alles" + }, + "unselectAll": { + "message": "Unselect All" + }, + "launch": { + "message": "Lanseer" + }, + "newAttachment": { + "message": "Voeg nuwe aanhegsel toe" + }, + "deletedAttachment": { + "message": "Skrap aanhegsel" + }, + "deleteAttachmentConfirmation": { + "message": "Is u seker u wil hierdie aanhegsel skrap?" + }, + "attachmentSaved": { + "message": "Die aanhegsel is bewaar." + }, + "file": { + "message": "Lêer" + }, + "selectFile": { + "message": "Kies ’n lêer." + }, + "maxFileSize": { + "message": "Maksimum lêergrootte is 500 MB." + }, + "updateKey": { + "message": "U kan eers hierdie funksie gebruik wanneer u u enkripsiesleutel bygewerk het." + }, + "addedItem": { + "message": "Toegevoegde item" + }, + "editedItem": { + "message": "Gewysigde item" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ geskuif na $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Gekose items is na $ORGNAME$ geskuif", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Skrap item" + }, + "deleteFolder": { + "message": "Skrap vouer" + }, + "deleteAttachment": { + "message": "Skrap aanhegsel" + }, + "deleteItemConfirmation": { + "message": "Wil u dit regtig na die asblik stuur?" + }, + "deletedItem": { + "message": "Item na asblik gestuur" + }, + "deletedItems": { + "message": "Items na asblik gestuur" + }, + "movedItems": { + "message": "Geskuifde items" + }, + "overwritePasswordConfirmation": { + "message": "Is u seker u wil die huidige wagwoord oorskryf?" + }, + "editedFolder": { + "message": "Gewysigde vouer" + }, + "addedFolder": { + "message": "Toegevoegde vouer" + }, + "deleteFolderConfirmation": { + "message": "Is u seker u wil hierdie vouer skrap?" + }, + "deletedFolder": { + "message": "Geskrapte vouer" + }, + "loggedOut": { + "message": "Uitgeteken" + }, + "loginExpired": { + "message": "U aantekensessie het verstryk." + }, + "logOutConfirmation": { + "message": "Is u seker u wil uitteken?" + }, + "logOut": { + "message": "Teken uit" + }, + "ok": { + "message": "Goed" + }, + "yes": { + "message": "Ja" + }, + "no": { + "message": "Nee" + }, + "loginOrCreateNewAccount": { + "message": "Teken aan of skep ’n nuwe rekening vir toegang tot u beveiligde kluis." + }, + "createAccount": { + "message": "Skep rekening" + }, + "logIn": { + "message": "Teken aan" + }, + "submit": { + "message": "Dien in" + }, + "emailAddressDesc": { + "message": "U gaan u e-posadres gebruik vir aantekening." + }, + "yourName": { + "message": "U naam" + }, + "yourNameDesc": { + "message": "Wat moet ons u noem?" + }, + "masterPass": { + "message": "Hoofwagwoord" + }, + "masterPassDesc": { + "message": "Die hoofwagwoord is die wagwoord wat u gaan gebruik vir toegang tot u kluis. Dit is baie belangrik dat u u hoofwagwoord onthou. Daar is geen manier om dit terug te kry ingeval u dit vergeet het nie." + }, + "masterPassHintDesc": { + "message": "’n Hoofwagwoordwenk kan u help om u wagwoord te onthou, sou u dit vergeet." + }, + "reTypeMasterPass": { + "message": "Voer weer hoofwagwoord in" + }, + "masterPassHint": { + "message": "Hoofwagwoordwenk (opsioneel)" + }, + "masterPassHintLabel": { + "message": "Hoofwagwoordwenk" + }, + "settings": { + "message": "Instellings" + }, + "passwordHint": { + "message": "Wagwoordwenk" + }, + "enterEmailToGetHint": { + "message": "Voer u rekening-e-posadres in om u hoofwagwoordwenk te kry." + }, + "getMasterPasswordHint": { + "message": "Kry hoofwagwoordwenk" + }, + "emailRequired": { + "message": "E-posadres word benodig." + }, + "invalidEmail": { + "message": "Ongeldige e-posadres." + }, + "masterPassRequired": { + "message": "Hoofwagwoord word benodig." + }, + "masterPassLength": { + "message": "Hoofwagwoord moet ten minste 8 karakters lank wees." + }, + "masterPassDoesntMatch": { + "message": "Hoofwagwoordbevestiging stem nie ooreen nie." + }, + "newAccountCreated": { + "message": "U nuwe rekening is geskep! U kan nou aanteken." + }, + "masterPassSent": { + "message": "Ons het ’n e-pos gestuur met u hoofwagwoordwenk." + }, + "unexpectedError": { + "message": "'n Onverwagte fout het voorgekom." + }, + "emailAddress": { + "message": "E-posadres" + }, + "yourVaultIsLocked": { + "message": "U kluis is vergrendel. Verifieer u hoofwagwoord om voort te gaan." + }, + "unlock": { + "message": "Ontgrendel" + }, + "loggedInAsEmailOn": { + "message": "Aangeteken as $EMAIL$ by $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Ongeldige hoofwagwoord" + }, + "lockNow": { + "message": "Vergrendel nou" + }, + "noItemsInList": { + "message": "Daar is geen items om te lys nie." + }, + "noCollectionsInList": { + "message": "Daar is geen versamelings om te lys nie." + }, + "noGroupsInList": { + "message": "Daar is geen groepe om te lys nie." + }, + "noUsersInList": { + "message": "Daar is geen gebruikers om te lys nie." + }, + "noEventsInList": { + "message": "Daar is geen gebeure om te lys nie." + }, + "newOrganization": { + "message": "Nuwe organisasie" + }, + "noOrganizationsList": { + "message": "U behoort aan geen organisasies nie. Organisasies laat u toe om items op beveiligde wyse met ander gebruikers te deel." + }, + "versionNumber": { + "message": "Weergawe $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Voer die 6-syferbevestigingskode van u waarmerktoep in." + }, + "enterVerificationCodeEmail": { + "message": "Voer die 8-syferbevestigingskode in wat aan $EMAIL$ gestuur is.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Verification email sent to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Onthou my" + }, + "sendVerificationCodeEmailAgain": { + "message": "Stuur weer e-pos met bevestigingskode" + }, + "useAnotherTwoStepMethod": { + "message": "Gebruik ’n ander tweestapaantekenmetode" + }, + "insertYubiKey": { + "message": "Insert your YubiKey into your computer's USB port, then touch its button." + }, + "insertU2f": { + "message": "Insert your security key into your computer's USB port. If it has a button, touch it." + }, + "loginUnavailable": { + "message": "Aantekening onbeskikbaar" + }, + "noTwoStepProviders": { + "message": "This account has two-step login enabled, however, none of the configured two-step providers are supported by this web browser." + }, + "noTwoStepProviders2": { + "message": "Gebruik asb. ’n ondersteunde webblaaier (soos Chrome) en/of bykomende verskaffers wat beter oor webblaaiers ondersteun word (soos ’n waarmerktoep)." + }, + "twoStepOptions": { + "message": "Opsies vir tweestapaantekening" + }, + "recoveryCodeDesc": { + "message": "Lost access to all of your two-factor providers? Use your recovery code to disable all two-factor providers from your account." + }, + "recoveryCodeTitle": { + "message": "Terugstelkode" + }, + "authenticatorAppTitle": { + "message": "Waarmerktoep" + }, + "authenticatorAppDesc": { + "message": "Gebruik ’n waarmerktoep (soos Authy of Google Authenticator) om tydgebaseerde bevestigingskodes te genereer.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP Security Key" + }, + "yubiKeyDesc": { + "message": "Gebruik ’n YubiKey vir toegang tot u rekening. Werk met YubiKey reeks 4, reeks 5 en NEO-toestelle." + }, + "duoDesc": { + "message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verify with Duo Security for your organization using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Use any FIDO U2F enabled security key to access your account." + }, + "u2fTitle": { + "message": "FIDO U2F Security Key" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "E-pos" + }, + "emailDesc": { + "message": "Verification codes will be emailed to you." + }, + "continue": { + "message": "Gaan voort" + }, + "organization": { + "message": "Organisasie" + }, + "organizations": { + "message": "Organisasies" + }, + "moveToOrgDesc": { + "message": "Kies ’n organisasie waarheen u hierdie item wil skuif. Deur te skuif kry die organisasie die einaarskap van die item. U is dan nie meer die direkte eienaar van die item wanneer dit geskuif is nie." + }, + "moveManyToOrgDesc": { + "message": "Kies ’n organisasie waarheen u hierdie items wil skuif. Deur te skuif kry die organisasie die einaarskap van die items. U is dan nie meer die direkte eienaar van die items wanneer dit geskuif is nie." + }, + "collectionsDesc": { + "message": "Edit the collections that this item is being shared with. Only organization users with access to these collections will be able to see this item." + }, + "deleteSelectedItemsDesc": { + "message": "U het $COUNT$ item(s) gekies om te skrap. Is u seker u wil al hierdie items skrap?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Kies ’n vouer waarheen u die $COUNT$ gekose item(s) heen wil skuif.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "U het $COUNT$ item(s) gekies. $MOVEABLE_COUNT$ item(s) kan na ’n organisasie geskuif word, $NONMOVEABLE_COUNT$ kan nie.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Bevestigingskode (TOTP)" + }, + "copyVerificationCode": { + "message": "Kopieer bevestigingskode" + }, + "warning": { + "message": "Waarskuwing" + }, + "confirmVaultExport": { + "message": "Bevestig kluisuitstuur" + }, + "exportWarningDesc": { + "message": "Hierdie uitstuur bevat u kluisdata in ’n ongeënkripteerde formaat. U behoort dit nie oor onbeveiligde kanale (soos e-pos) te bewaar of verstuur nie. Skrap dit sodra u dit klaar gebruik het." + }, + "encExportKeyWarningDesc": { + "message": "Hierdie uitstuur vergrendel u data met u rekening se enkripsiesleutel. Indien u ooit u rekening se enkripsiesleitel wil verander moet u dit weer uitstuur aangesien u dan nie hierdie uitstuurlêer sal kan dekripteer nie." + }, + "encExportAccountWarningDesc": { + "message": "Rekeningenkripsiesleutels is uniek tot elke Bitwarden-gebruikersrekening, daarom kan u nie ’n geënkripteerde uitstuur in ’n ander rekening invoer nie." + }, + "export": { + "message": "Uitstuur" + }, + "exportVault": { + "message": "Stuur kluis uit" + }, + "fileFormat": { + "message": "Lêerformaat" + }, + "exportSuccess": { + "message": "U kluisdata is uitgestuur." + }, + "passwordGenerator": { + "message": "Wagwoordgenereerder" + }, + "minComplexityScore": { + "message": "Minimum ingewikkeldheidstelling" + }, + "minNumbers": { + "message": "Min. aantal syfers" + }, + "minSpecial": { + "message": "Min. aantal spesiaal", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Vermy dubbelsinnige karakters" + }, + "regeneratePassword": { + "message": "Hergenereer wagwoord" + }, + "length": { + "message": "Lengte" + }, + "numWords": { + "message": "Aantal woorde" + }, + "wordSeparator": { + "message": "Woordskeier" + }, + "capitalize": { + "message": "Maak beginhoofletters", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Voeg syfer toe" + }, + "passwordHistory": { + "message": "Wagwoordgeskiedenis" + }, + "noPasswordsInList": { + "message": "Daar is geen wagwoorde om te lys nie." + }, + "clear": { + "message": "Wis", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Rekening bygewerk" + }, + "changeEmail": { + "message": "Verander e-pos" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "Nuwe e-pos" + }, + "code": { + "message": "Kode" + }, + "changeEmailDesc": { + "message": "We have emailed a verification code to $EMAIL$. Please check your email for this code and enter it below to finalize the email address change.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "emailChanged": { + "message": "E-pos is verander" + }, + "logBackIn": { + "message": "Teken asb. weer aan." + }, + "logBackInOthersToo": { + "message": "Teken asb. weer aan. Indien u ander Bitwarden-toepassings gebruik, teken daarop ook weer uit en aan." + }, + "changeMasterPassword": { + "message": "Verander hoofwagwoord" + }, + "masterPasswordChanged": { + "message": "Hoofwagwoord is verander" + }, + "currentMasterPass": { + "message": "Huidige hoofwagwoord" + }, + "newMasterPass": { + "message": "Nuwe hoofwagwoord" + }, + "confirmNewMasterPass": { + "message": "Bevestig nuwe hoofwagwoord" + }, + "encKeySettings": { + "message": "Enkripsiesleutelinstellings" + }, + "kdfAlgorithm": { + "message": "KDF-algoritme" + }, + "kdfIterations": { + "message": "KDF-iteraties" + }, + "kdfIterationsDesc": { + "message": "Hoër KDF-iteraties beskerm u hoofwagwoord teen brutekragaanvalle. Ons beveel ’n waarde van $VALUE$ of meer aan.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Setting your KDF iterations too high could result in poor performance when logging into (and unlocking) Bitwarden on devices with slower CPUs. We recommend that you increase the value in increments of $INCREMENT$ and then test all of your devices.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Verander KDF" + }, + "encKeySettingsChanged": { + "message": "Enkripsiesleutelinstellings is verander" + }, + "dangerZone": { + "message": "Gevaarsone" + }, + "dangerZoneDesc": { + "message": "Careful, these actions are not reversible!" + }, + "deauthorizeSessions": { + "message": "Deauthorize Sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Concerned your account is logged in on another device? Proceed below to deauthorize all computers or devices that you have previously used. This security step is recommended if you previously used a public computer or accidentally saved your password on a device that isn't yours. This step will also clear all previously remembered two-step login sessions." + }, + "deauthorizeSessionsWarning": { + "message": "Proceeding will also log you out of your current session, requiring you to log back in. You will also be prompted for two-step login again, if enabled. Active sessions on other devices may continue to remain active for up to one hour." + }, + "sessionsDeauthorized": { + "message": "All Sessions Deauthorized" + }, + "purgeVault": { + "message": "Purge Vault" + }, + "purgedOrganizationVault": { + "message": "Purged organization vault." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Proceed below to delete all items and folders in your vault. Items that belong to an organization that you share with will not be deleted." + }, + "purgeOrgVaultDesc": { + "message": "Proceed below to delete all items in the organization's vault." + }, + "purgeVaultWarning": { + "message": "Purging your vault is permanent. It cannot be undone." + }, + "vaultPurged": { + "message": "Your vault has been purged." + }, + "deleteAccount": { + "message": "Skrap rekening" + }, + "deleteAccountDesc": { + "message": "Gaan hieronder voort om u rekening en alle bybehorende data te skrap." + }, + "deleteAccountWarning": { + "message": "Skrap van u rekening is permanent. Dit kan nie ontdaan word nie." + }, + "accountDeleted": { + "message": "Rekening geskrap" + }, + "accountDeletedDesc": { + "message": "Your account has been closed and all associated data has been deleted." + }, + "myAccount": { + "message": "My rekening" + }, + "tools": { + "message": "Nutsmiddels" + }, + "importData": { + "message": "Voer data in" + }, + "importError": { + "message": "Invoerfout" + }, + "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." + }, + "importSuccess": { + "message": "Data has been successfully imported into your vault." + }, + "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": "Niks is ingevoer nie." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Kies die invoerlêer" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "Instruksies vir $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Opsies" + }, + "optionsDesc": { + "message": "Customize your web vault experience." + }, + "optionsUpdated": { + "message": "Opsies bygewerk" + }, + "language": { + "message": "Taal" + }, + "languageDesc": { + "message": "Verander die taal wat deur die webkluis gebruik word." + }, + "disableIcons": { + "message": "Deaktiveer webwerfikone" + }, + "disableIconsDesc": { + "message": "Webwerfikone verskaf ’n herkenbare beeld langs elke aantekenitem in u kluis." + }, + "enableGravatars": { + "message": "Aktiveer Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use avatar images loaded from gravatar.com." + }, + "enableFullWidth": { + "message": "Enable Full Width Layout", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Allow the web vault to expand the full width of the browser window." + }, + "default": { + "message": "Verstek" + }, + "domainRules": { + "message": "Domeinreëls" + }, + "domainRulesDesc": { + "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + }, + "globalEqDomains": { + "message": "Global Equivalent Domains" + }, + "customEqDomains": { + "message": "Custom Equivalent Domains" + }, + "exclude": { + "message": "Sluit uit" + }, + "include": { + "message": "Sluit in" + }, + "customize": { + "message": "Pas aan" + }, + "newCustomDomain": { + "message": "Nuwe passgemaakte domein" + }, + "newCustomDomainDesc": { + "message": "Enter a list of domains separated by commas. Only \"base\" domains are allowed. Do not enter subdomains. For example, enter \"google.com\" instead of \"www.google.com\". You can also enter \"androidapp://package.name\" to associate an android app with other website domains." + }, + "customDomainX": { + "message": "Pasgemaakte domein $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domeine bygewerk" + }, + "twoStepLogin": { + "message": "Tweestapaantekening" + }, + "twoStepLoginDesc": { + "message": "Secure your account by requiring an additional step when logging in." + }, + "twoStepLoginOrganizationDesc": { + "message": "Vereis tweestapsaantekening vir die gebruikers van u organisasie deur aanbieders op organisatievlak in te stel." + }, + "twoStepLoginRecoveryWarning": { + "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (ex. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + }, + "viewRecoveryCode": { + "message": "Bekyk terugstelkode" + }, + "providers": { + "message": "Aanbieders", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Aktiveer" + }, + "enabled": { + "message": "Geaktiveer" + }, + "premium": { + "message": "Premie", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premie-lidmaatskap" + }, + "premiumRequired": { + "message": "Premie word vereis" + }, + "premiumRequiredDesc": { + "message": "’n Premie-lidmaatskap is nodig om hierdie funksie te gebruik." + }, + "youHavePremiumAccess": { + "message": "U het premie-toegang" + }, + "alreadyPremiumFromOrg": { + "message": "U het reeds toegang tot Premie-funksies d.m.v. ’n organisasie waarvan u lid is." + }, + "manage": { + "message": "Bestuur" + }, + "disable": { + "message": "Deaktiveer" + }, + "twoStepLoginProviderEnabled": { + "message": "Hierdie tweestapaantekenaanbieder is vir u rekening geaktiveer." + }, + "twoStepLoginAuthDesc": { + "message": "Voer u hoofwagwoord in om tweestapaantekeninstellings te wysig." + }, + "twoStepAuthenticatorDesc": { + "message": "Volg hierdie stappe om tweestapaantekening met ’n waarmerktoep op te stel:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Laai ’n tweestapwaarmerktoep af" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Need a two-step authenticator app? Download one of the following" + }, + "iosDevices": { + "message": "iOS-toestelle" + }, + "androidDevices": { + "message": "Android-toestelle" + }, + "windowsDevices": { + "message": "Windows-toestelle" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "These apps are recommended, however, other authenticator apps will also work." + }, + "twoStepAuthenticatorScanCode": { + "message": "Skandeer hierdie QR-kode met u waarmerktoep" + }, + "key": { + "message": "Sleutel" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Enter the resulting 6 digit verification code from the app" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app." + }, + "twoStepDisableDesc": { + "message": "Are you sure you want to disable this two-step login provider?" + }, + "twoStepDisabled": { + "message": "Two-step login provider disabled." + }, + "twoFactorYubikeyAdd": { + "message": "Add a new YubiKey to your account" + }, + "twoFactorYubikeyPlugIn": { + "message": "Plug the YubiKey into your computer's USB port." + }, + "twoFactorYubikeySelectKey": { + "message": "Select the first empty YubiKey input field below." + }, + "twoFactorYubikeyTouchButton": { + "message": "Touch the YubiKey's button." + }, + "twoFactorYubikeySaveForm": { + "message": "Bewaar die vorm." + }, + "twoFactorYubikeyWarning": { + "message": "Due to platform limitations, YubiKeys cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when YubiKeys cannot be used. Supported platforms:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile apps on a device with NFC capabilities or a USB port that can accept your YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F-sleutel $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn-sleutel $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC-ondersteuning" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Een van my sleutels ondersteun NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Indien een van u YubiKeys NFC ondersteun (soos ’n YubiKey NEO) dan word u op ’n mobiele toestel met NFC gevra om dit te gebruik." + }, + "yubikeysUpdated": { + "message": "YubiKeys bygewerk" + }, + "disableAllKeys": { + "message": "Deaktiveer alle sleutels" + }, + "twoFactorDuoDesc": { + "message": "Enter the Bitwarden application information from your Duo Admin panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integrasiesleutel" + }, + "twoFactorDuoSecretKey": { + "message": "Geheime sleutel" + }, + "twoFactorDuoApiHostname": { + "message": "API-gasheernaam" + }, + "twoFactorEmailDesc": { + "message": "Follow these steps to set up two-step login with email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enter the email that you wish to receive verification codes" + }, + "twoFactorEmailEnterCode": { + "message": "Enter the resulting 6 digit verification code from the email" + }, + "sendEmail": { + "message": "Stuur e-pos" + }, + "twoFactorU2fAdd": { + "message": "Add a FIDO U2F security key to your account" + }, + "removeU2fConfirmation": { + "message": "Is u seker u wil hierdie sekuriteitsleutel verwyder?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Lees sleutel" + }, + "keyCompromised": { + "message": "Sleutel is blootgestel." + }, + "twoFactorU2fGiveName": { + "message": "Give the security key a friendly name to identify it." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Plug the security key into your computer's USB port and click the \"Read Key\" button." + }, + "twoFactorU2fTouchButton": { + "message": "If the security key has a button, touch it." + }, + "twoFactorU2fSaveForm": { + "message": "Bewaar die vorm." + }, + "twoFactorU2fWarning": { + "message": "Due to platform limitations, FIDO U2F cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when FIDO U2F cannot be used. Supported platforms:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorU2fWaiting": { + "message": "Waiting for you to touch the button on your security key" + }, + "twoFactorU2fClickSave": { + "message": "Click the \"Save\" button below to enable this security key for two-step login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Your Bitwarden two-step login recovery code" + }, + "twoFactorRecoveryNoCode": { + "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + }, + "printCode": { + "message": "Druk kode af", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Verslae" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Unsecure Websites" + }, + "unsecuredWebsitesReportDesc": { + "message": "URLs that start with http:// don’t use the best available encryption. Change the Login URIs for these accounts to https:// for safer browsing." + }, + "unsecuredWebsitesFound": { + "message": "Unsecured Websites Found" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Inactive Two-step Login" + }, + "inactive2faReportDesc": { + "message": "Two-step Login adds a layer of protection to your accounts. Turn on Two-Step Login using Bitwarden Authenticator for these accounts or use an alternative method." + }, + "inactive2faFound": { + "message": "Logins Without 2FA Found" + }, + "inactive2faFoundDesc": { + "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to 2fa.directory). To further protect these accounts, you should enable two-factor authentication.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No websites were found in your vault with a missing two-factor authentication configuration." + }, + "instructions": { + "message": "Instruksies" + }, + "exposedPasswordsReport": { + "message": "Exposed Passwords" + }, + "exposedPasswordsReportDesc": { + "message": "Passwords exposed in a data breach are easy targets for attackers. Change these passwords to prevent potential break-ins." + }, + "exposedPasswordsFound": { + "message": "Blootgestelde wagwoorde gevind" + }, + "exposedPasswordsFoundDesc": { + "message": "Ons het $COUNT$ wagwoorde in u kluis gevind wat in databreuke blootgestel is. U behoort dit te verander en ’n nuwe wagwoord te gebruik.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No items in your vault have passwords that have been exposed in known data breaches." + }, + "checkExposedPasswords": { + "message": "Check Exposed Passwords" + }, + "exposedXTimes": { + "message": "$COUNT$ keer blootgestel", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Weak Passwords" + }, + "weakPasswordsReportDesc": { + "message": "Weak passwords can be easily guessed by attackers. Change these passwords to strong ones using the Password Generator." + }, + "weakPasswordsFound": { + "message": "Swak wagwoorde gevind" + }, + "weakPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Geen items in u kluis het swak wagwoorde nie." + }, + "reusedPasswordsReport": { + "message": "Reused Passwords" + }, + "reusedPasswordsReportDesc": { + "message": "Reusing passwords makes it easier for attackers to break into multiple accounts. Change these passwords so that each is unique." + }, + "reusedPasswordsFound": { + "message": "Hergebruikte wagwoorde gevind" + }, + "reusedPasswordsFoundDesc": { + "message": "Ons het $COUNT$ wagwoorde in u kluis gewind wat hergebruik word. U behoort dit na ’n unieke waarde te verander.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Geen aantekeninge in u kluis het wagwoorde wat hergebruik is nie." + }, + "reusedXTimes": { + "message": "$COUNT$ keer hergebruik", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Databreukverslag" + }, + "breachDesc": { + "message": "Breached accounts can expose your personal information. Secure breached accounts by enabling 2FA or creating a stronger password." + }, + "breachCheckUsernameEmail": { + "message": "Check any usernames or email addresses that you use." + }, + "checkBreaches": { + "message": "Check Breaches" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ was not found in any known data breaches.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Goeie nuus", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Breached Accounts Found" + }, + "compromisedData": { + "message": "Compromised data" + }, + "website": { + "message": "Webwerf" + }, + "affectedUsers": { + "message": "Gebruikers geraak" + }, + "breachOccurred": { + "message": "Breach Occurred" + }, + "breachReported": { + "message": "Breuk gerapporteer" + }, + "reportError": { + "message": "An error occurred trying to load the report. Try again" + }, + "billing": { + "message": "Fakturering" + }, + "accountCredit": { + "message": "Account Credit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Rekeningbalans", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Add Credit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Bedrag", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Added credit will appear on your account after the payment has been fully processed. Some payment methods are delayed and can take longer to process than others." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + }, + "goPremium": { + "message": "Kry Premie", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "U het na premie opgegradeer." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Upgrade your account to a premium membership and unlock some great additional features." + }, + "premiumSignUpStorage": { + "message": "1 GG geënkripteerde berging vir lêeraanhegsels." + }, + "premiumSignUpTwoStep": { + "message": "Bykomende tweestapaantekenopsies soos YubiKey, FIDO U2F en Duo." + }, + "premiumSignUpEmergency": { + "message": "Noodtoegang" + }, + "premiumSignUpReports": { + "message": "Wagwoordhigiëne, rekeningwelstand en databreukverslae om u kluis veilig te hou." + }, + "premiumSignUpTotp": { + "message": "TOTP verification code (2FA) generator for logins in your vault." + }, + "premiumSignUpSupport": { + "message": "Klantediens met hoë prioriteit." + }, + "premiumSignUpFuture": { + "message": "Alle toekomstige premie-funksies. Binnekort meer!" + }, + "premiumPrice": { + "message": "Alles vir slegs $PRICE$ /jaar!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Toevoegings" + }, + "premiumAccess": { + "message": "Premie-toegang" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organization for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Bykomende berging (GB)" + }, + "additionalStorageGbDesc": { + "message": "# in bykomende GB" + }, + "additionalStorageIntervalDesc": { + "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Opsomming" + }, + "total": { + "message": "Totaal" + }, + "year": { + "message": "jaar" + }, + "month": { + "message": "maand" + }, + "monthAbbr": { + "message": "md.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Your payment method will be charged immediately and then on a recurring basis each year. You may cancel at any time." + }, + "paymentCharged": { + "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Your plan comes with a free 7 day trial. Your payment method will not be charged until the trial has ended. You may cancel at any time." + }, + "paymentInformation": { + "message": "Betaalinligting" + }, + "billingInformation": { + "message": "Faktureringsinligting" + }, + "creditCard": { + "message": "Kredietkaart" + }, + "paypalClickSubmit": { + "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + }, + "cancelSubscription": { + "message": "Kanselleer Intekening" + }, + "subscriptionCanceled": { + "message": "Die intekening is gekanselleer." + }, + "pendingCancellation": { + "message": "Hangende kansellasie" + }, + "subscriptionPendingCanceled": { + "message": "Die intekening is gemerk vir kansellasie aan die einde van die huidige faktureringstydperk." + }, + "reinstateSubscription": { + "message": "Reinstate Subscription" + }, + "reinstateConfirmation": { + "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + }, + "reinstated": { + "message": "The subscription has been reinstated." + }, + "cancelConfirmation": { + "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + }, + "canceledSubscription": { + "message": "Die intekening is gekanselleer." + }, + "neverExpires": { + "message": "Verval nooit" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Next Charge" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "Laai lisensie af" + }, + "updateLicense": { + "message": "Werk lisensie by" + }, + "updatedLicense": { + "message": "Lisensie bygewerk" + }, + "manageSubscription": { + "message": "Bestuur intekening" + }, + "storage": { + "message": "Berging" + }, + "addStorage": { + "message": "Voeg berging toe" + }, + "removeStorage": { + "message": "Verwyder berging" + }, + "subscriptionStorage": { + "message": "Your subscription has a total of $MAX_STORAGE$ GB of encrypted file storage. You are currently using $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Betaalmetode" + }, + "noPaymentMethod": { + "message": "Geen betaalmetode op lêer." + }, + "addPaymentMethod": { + "message": "Voeg betaalmetode toe" + }, + "changePaymentMethod": { + "message": "Verander betaalmetode" + }, + "invoices": { + "message": "Fakture" + }, + "noInvoices": { + "message": "Geen fakture." + }, + "paid": { + "message": "Betaal", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Nie betaal", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transaksies", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Geen transaksies." + }, + "chargeNoun": { + "message": "Koste", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Terugbetaling", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Any charges will appear on your statement as $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB of Storage To Add" + }, + "gbStorageRemove": { + "message": "GB of Storage To Remove" + }, + "storageAddNote": { + "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "storageRemoveNote": { + "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedStorage": { + "message": "Adjusted $AMOUNT$ GB of storage.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contact Customer Support" + }, + "updatedPaymentMethod": { + "message": "Betalingsmetode is bygewerk." + }, + "purchasePremium": { + "message": "Koop Premie" + }, + "licenseFile": { + "message": "Lisensielêer" + }, + "licenseFileDesc": { + "message": "U lisensielêer sal iets soos $FILE_NAME$ genoem wees", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "To upgrade your account to a premium membership you need to upload a valid license file." + }, + "uploadLicenseFileOrg": { + "message": "To create an on-premise hosted organization you need to upload a valid license file." + }, + "accountEmailMustBeVerified": { + "message": "U rekening se e-posadres moet bevestig word." + }, + "newOrganizationDesc": { + "message": "Organizations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company." + }, + "generalInformation": { + "message": "Algemene Inligting" + }, + "organizationName": { + "message": "Organisasienaam" + }, + "accountOwnedBusiness": { + "message": "This account is owned by a business." + }, + "billingEmail": { + "message": "Billing Email" + }, + "businessName": { + "message": "Besigheidnaam" + }, + "chooseYourPlan": { + "message": "Kies U Plan" + }, + "users": { + "message": "Gebruikers" + }, + "userSeats": { + "message": "User Seats" + }, + "additionalUserSeats": { + "message": "Bykomende gebruikersplekke" + }, + "userSeatsDesc": { + "message": "# gebruikersplekke" + }, + "userSeatsAdditionalDesc": { + "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "How many user seats do you need? You can also add additional seats later if needed." + }, + "planNameFree": { + "message": "Gratis", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing or personal users to share with $COUNT$ other user.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Gesinne" + }, + "planDescFamilies": { + "message": "Vir persoonlike gebruik om met vriende en familie te deel." + }, + "planNameTeams": { + "message": "Spanne" + }, + "planDescTeams": { + "message": "Vir sake- en ander spanorganisasies." + }, + "planNameEnterprise": { + "message": "Onderneming" + }, + "planDescEnterprise": { + "message": "Vir sake- en ander groot organisasies." + }, + "freeForever": { + "message": "Altyd Gratis" + }, + "includesXUsers": { + "message": "sluit $COUNT$ gebruikers in", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Bykomende Gebruikers" + }, + "costPerUser": { + "message": "$COST$ per gebruiker", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Beperk tot $COUNT$ gebruikers (insluitend u)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Beperk tot $COUNT$ verzamelings", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Voeg toe en deel met tot $COUNT$ gebruikers", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Voeg toe en deel met onbeperkte gebruikers" + }, + "createUnlimitedCollections": { + "message": "Skep onbeperkte versamelings" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ encrypted file storage", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "On-premise hosting (optional)" + }, + "usersGetPremium": { + "message": "Users get access to Premium Features" + }, + "controlAccessWithGroups": { + "message": "Control user access with Groups" + }, + "syncUsersFromDirectory": { + "message": "Sync your users and Groups from a directory" + }, + "trackAuditLogs": { + "message": "Track user actions with audit logs" + }, + "enforce2faDuo": { + "message": "Enforce 2FA with Duo" + }, + "priorityCustomerSupport": { + "message": "Klantediens met hoë prioriteit" + }, + "xDayFreeTrial": { + "message": "$COUNT$ day free trial, cancel anytime", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Maandeliks" + }, + "annually": { + "message": "Jaarliks" + }, + "basePrice": { + "message": "Basisprys" + }, + "organizationCreated": { + "message": "Organisasie Geskep" + }, + "organizationReadyToGo": { + "message": "U nuwe organisasie is gereed vir gebruik!" + }, + "organizationUpgraded": { + "message": "U organisasie is opgegradeer." + }, + "leave": { + "message": "Verlaat" + }, + "leaveOrganizationConfirmation": { + "message": "Is u seker u wil hierdie organisasie verlaat?" + }, + "leftOrganization": { + "message": "U het die organisasie verlaat." + }, + "defaultCollection": { + "message": "Verstekversameling" + }, + "getHelp": { + "message": "Kry Hulp" + }, + "getApps": { + "message": "Kry die Toeps" + }, + "loggedInAs": { + "message": "Aangeteken as" + }, + "eventLogs": { + "message": "Gebeurtenislogboek" + }, + "people": { + "message": "Mense" + }, + "policies": { + "message": "Beleide" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Wysig Beleid" + }, + "groups": { + "message": "Groepe" + }, + "newGroup": { + "message": "Nuwe Groep" + }, + "addGroup": { + "message": "Voeg Groep Toe" + }, + "editGroup": { + "message": "Wysig Groep" + }, + "deleteGroupConfirmation": { + "message": "Is u seker u wil hierdie groep skrap?" + }, + "removeUserConfirmation": { + "message": "Is u seker u wil hierdie gebruiker verwyder?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "Eksterne ID" + }, + "externalIdDesc": { + "message": "U kan die eksterne ID as verwysing gebruik of om hierdie hulpbron aan ’n eksterne stelsel soos ’n gebruikersgids te koppel." + }, + "accessControl": { + "message": "Toegangbeheer" + }, + "groupAccessAllItems": { + "message": "Hierdie groep het toegang tot alle items en kan dit wysig." + }, + "groupAccessSelectedCollections": { + "message": "Hierdie groep het slegs toegang tot die gekose versamelings." + }, + "readOnly": { + "message": "Leesalleen" + }, + "newCollection": { + "message": "Nuwe Versameling" + }, + "addCollection": { + "message": "Voeg Versameling Toe" + }, + "editCollection": { + "message": "Wysig Versameling" + }, + "deleteCollectionConfirmation": { + "message": "Is u seker u wil hierdie versameling skrap?" + }, + "editUser": { + "message": "Wysig Gebruiker" + }, + "inviteUser": { + "message": "Nooi Gebruiker Uit" + }, + "inviteUserDesc": { + "message": "Invite a new user to your organization by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "inviteMultipleEmailDesc": { + "message": "You can invite up to $COUNT$ users at a time by comma separating a list of email addresses.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "This user is using two-step login to protect their account." + }, + "userAccessAllItems": { + "message": "Hierdie gebruiker het toegang tot alle items en kan dit wysig." + }, + "userAccessSelectedCollections": { + "message": "Hierdie gebruiker het slegs toegang tot die gekose versamelings." + }, + "search": { + "message": "Soek" + }, + "invited": { + "message": "Genooi" + }, + "accepted": { + "message": "Aanvaar" + }, + "confirmed": { + "message": "Bevestig" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Eienaar" + }, + "ownerDesc": { + "message": "The highest access user that can manage all aspects of your organization." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admins can access and manage all items, collections and users in your organization." + }, + "user": { + "message": "Gebruiker" + }, + "userDesc": { + "message": "A regular user with access to assigned collections in your organization." + }, + "manager": { + "message": "Bestuurder" + }, + "managerDesc": { + "message": "Bestuurders bestuur en het toegang tot toegewysde versamelings in u organisasie." + }, + "all": { + "message": "Alle" + }, + "refresh": { + "message": "Verfris" + }, + "timestamp": { + "message": "Tydstempel" + }, + "event": { + "message": "Gebeurtenis" + }, + "unknown": { + "message": "Onbekend" + }, + "loadMore": { + "message": "Laai Meer" + }, + "mobile": { + "message": "Mobiel", + "description": "Mobile app" + }, + "extension": { + "message": "Uitbreiding", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Werkskerm", + "description": "Desktop app" + }, + "webVault": { + "message": "Webkluis" + }, + "loggedIn": { + "message": "Aangeteken." + }, + "changedPassword": { + "message": "Rekeningwagwoord is verander." + }, + "enabledUpdated2fa": { + "message": "Tweestapaantekening geaktiveer/bygewerk." + }, + "disabled2fa": { + "message": "Tweestapaantekening gedeaktiveer." + }, + "recovered2fa": { + "message": "Recovered account from two-step login." + }, + "failedLogin": { + "message": "Login attempt failed with incorrect password." + }, + "failedLogin2fa": { + "message": "Login attempt failed with incorrect two-step login." + }, + "exportedVault": { + "message": "Kluis uitgestuur." + }, + "exportedOrganizationVault": { + "message": "Organisasiekluis uitgestuur." + }, + "editedOrgSettings": { + "message": "Organisasie-instellings gewysig." + }, + "createdItemId": { + "message": "Item $ID$ geskep.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Item $ID$ gewysig.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Item $ID$ na asblik gestuur.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Item $ID$ gekyk.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Het wagwoord vir item $ID$ bekyk.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Het versteekte veld vir item $ID$ bekyk.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Het sekerheidskode vir item $ID$ bekyk.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Het wagwoord vir item $ID$ gekopieer.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Het versteekte veld vir item $ID$ gekopieer.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Het sekerheidskode vir item $ID$ gekopieer.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Item $ID$ outomaties ingevul.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Versameling $ID$ geskep.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Versameling $ID$ gewysig.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Versameling $ID$ geskrap.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Beleid $ID$ gewysig.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Groep $ID$ geskep.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Groep $ID$ gewysig.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Groep $ID$ geskrap.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Gebruiker $ID$ verwyder.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Het aanhegsel vir item $ID$ geskep.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Het aanhegsel vir item $ID$ geskrap.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Het aanhegsel vir item $ID$ gewysig.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Gebruiker $ID$ genooi.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Gebruiker $ID$ is bevestig.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Gebruiker $ID$ gewysig.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Groepe vir gebruiker $ID$ gewysig.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Toestel" + }, + "view": { + "message": "Bekyk" + }, + "invalidDateRange": { + "message": "Ongeldige datumbereik." + }, + "errorOccurred": { + "message": "’n Fout het voorgekom." + }, + "userAccess": { + "message": "Gebruikertoegang" + }, + "userType": { + "message": "Gebruikertipe" + }, + "groupAccess": { + "message": "Groeptoegang" + }, + "groupAccessUserDesc": { + "message": "Wysig die groepe waaraan hierdie gebruiker behoort." + }, + "invitedUsers": { + "message": "Gebruiker(s) genooi." + }, + "resendInvitation": { + "message": "Stuur weer uitnodiging" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ is weer uitgenooi.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Bevestig" + }, + "confirmUser": { + "message": "Bevestig Gebruiker" + }, + "hasBeenConfirmed": { + "message": "$USER$ is bevestig.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Bevestig Gebruikers" + }, + "usersNeedConfirmed": { + "message": "U het gebruikers wat die uitnodiging aanvaar het, maar nog bevestig moet word. Gebruikers sal nie toegang tot die organisasie hê tot hulle bevestig is nie." + }, + "startDate": { + "message": "Begindatum" + }, + "endDate": { + "message": "Einddatum" + }, + "verifyEmail": { + "message": "Bevestig e-pos" + }, + "verifyEmailDesc": { + "message": "Bevestig u rekening se e-posadres om toegang tot alle funksies te ontgrendel." + }, + "verifyEmailFirst": { + "message": "U rekening se e-posadres moet eers bevestig word." + }, + "checkInboxForVerification": { + "message": "Check your email inbox for a verification link." + }, + "emailVerified": { + "message": "U e-pos is bevestig." + }, + "emailVerifiedFailed": { + "message": "Unable to verify your email. Try sending a new verification email." + }, + "emailVerificationRequired": { + "message": "Vereis e-posbevestiging" + }, + "emailVerificationRequiredDesc": { + "message": "U moet u e-pos bevestig om die funksie te gebruik." + }, + "updateBrowser": { + "message": "Werk Blaaier By" + }, + "updateBrowserDesc": { + "message": "You are using an unsupported web browser. The web vault may not function properly." + }, + "joinOrganization": { + "message": "Join Organization" + }, + "joinOrganizationDesc": { + "message": "You've been invited to join the organization listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "inviteAccepted": { + "message": "Uitnodiging is Aanvaar" + }, + "inviteAcceptedDesc": { + "message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens." + }, + "inviteAcceptFailed": { + "message": "Unable to accept invitation. Ask an organization admin to send a new invitation." + }, + "inviteAcceptFailedShort": { + "message": "Kan nie uitnodiging aanvaar nie. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Remember email" + }, + "recoverAccountTwoStepDesc": { + "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + }, + "recoverAccountTwoStep": { + "message": "Recover Account Two-Step Login" + }, + "twoStepRecoverDisabled": { + "message": "Tweestapaantekenaanbieder vir u rekening is gedeaktiveer." + }, + "learnMore": { + "message": "Leer meer" + }, + "deleteRecoverDesc": { + "message": "Enter your email address below to recover and delete your account." + }, + "deleteRecoverEmailSent": { + "message": "If your account exists, we've sent you an email with further instructions." + }, + "deleteRecoverConfirmDesc": { + "message": "You have requested to delete your Bitwarden account. Click the button below to confirm." + }, + "myOrganization": { + "message": "My Organisasie" + }, + "deleteOrganization": { + "message": "Skrap Organisasie" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organisasie Geskrap" + }, + "organizationDeletedDesc": { + "message": "Die organisasie en alle verwante data is geskrap." + }, + "organizationUpdated": { + "message": "Organisasie bygewerk" + }, + "taxInformation": { + "message": "Belastinginligting" + }, + "taxInformationDesc": { + "message": "For customers within the US, ZIP code is required to satisfy sales tax requirements, for other countries you may optionally provide a tax identification number (VAT/GST) and/or address to appear on your invoices." + }, + "billingPlan": { + "message": "Pakket", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Verander Pakket", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade your account to another plan be providing the information below. Please ensure that you have an active payment method added to the account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Faktuur #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Bekyk Faktuur" + }, + "downloadInvoice": { + "message": "Laai Faktuur Af" + }, + "verifyBankAccount": { + "message": "Bevestig Bankrekening" + }, + "verifyBankAccountDesc": { + "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." + }, + "verifyBankAccountInitialDesc": { + "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organization's billing page to verify the bank account." + }, + "verifyBankAccountFailureWarning": { + "message": "Failure to verify the bank account will result in a missed payment and your subscription being disabled." + }, + "verifiedBankAccount": { + "message": "Bankrekening is bevestig." + }, + "bankAccount": { + "message": "Bankrekening" + }, + "amountX": { + "message": "Bedrag $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Rekeningnommer" + }, + "accountHolderName": { + "message": "Rekeninghouernaam" + }, + "bankAccountType": { + "message": "Rekeningtipe" + }, + "bankAccountTypeCompany": { + "message": "Maatskappy (Saaklik)" + }, + "bankAccountTypeIndividual": { + "message": "Individueel (Persoonlik)" + }, + "enterInstallationId": { + "message": "Enter your installation id" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Add Seats", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remove Seats", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Your subscription allows for a total of $COUNT$ users.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seats To Add" + }, + "seatsToRemove": { + "message": "Seats To Remove" + }, + "seatsAddNote": { + "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "seatsRemoveNote": { + "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedSeats": { + "message": "Adjusted $AMOUNT$ user seats.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Key Updated" + }, + "updateKeyTitle": { + "message": "Werk sleutel by" + }, + "updateEncryptionKey": { + "message": "Werk enkripsiesleutel by" + }, + "updateEncryptionKeyShortDesc": { + "message": "U gebruik tans ’n verouderde enkripsieskema." + }, + "updateEncryptionKeyDesc": { + "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, however, it may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Enige geënkripteerde uitsture wat u bewaar het word ook ongeldig." + }, + "subscription": { + "message": "Intekening" + }, + "loading": { + "message": "Laai tans" + }, + "upgrade": { + "message": "Gradeer Op" + }, + "upgradeOrganization": { + "message": "Gradeer Organisasie Op" + }, + "upgradeOrganizationDesc": { + "message": "Hierdie funksie is nie beskikbaar vir gratis organisasies nie. Kry ’n betaalde pakket om nog funksies te ontgrendel." + }, + "createOrganizationStep1": { + "message": "Skep Organisasie: Stap 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "U moet eers ’n gratis persoonlike rekening skep voor u u organisasie skep." + }, + "refunded": { + "message": "Terugbetaal" + }, + "nothingSelected": { + "message": "U het niks gekies nie." + }, + "acceptPolicies": { + "message": "Deur hierdie kassie af te merk stem u in tot die volgende:" + }, + "acceptPoliciesError": { + "message": "Gebruiksvoorwaardes en privaatheidsbeleid is nie erken nie." + }, + "termsOfService": { + "message": "Gebruiksvoorwaardes" + }, + "privacyPolicy": { + "message": "Privaatheidsbeleid" + }, + "filters": { + "message": "Filters" + }, + "vaultTimeout": { + "message": "Kluis-uittel" + }, + "vaultTimeoutDesc": { + "message": "Kies wanneer u kluis sal uittel en die gekose aksie sal uitvoer." + }, + "oneMinute": { + "message": "1 minuut" + }, + "fiveMinutes": { + "message": "5 minute" + }, + "fifteenMinutes": { + "message": "15 minute" + }, + "thirtyMinutes": { + "message": "30 minute" + }, + "oneHour": { + "message": "1 uur" + }, + "fourHours": { + "message": "4 uur" + }, + "onRefresh": { + "message": "On Browser Refresh" + }, + "dateUpdated": { + "message": "Bygewerk", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Wagwoord Bygewerk", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organisasie is gedeaktiveer." + }, + "licenseIsExpired": { + "message": "Lisensie het verstryk." + }, + "updatedUsers": { + "message": "Bygewerkte gebruikers" + }, + "selected": { + "message": "Gekose" + }, + "ownership": { + "message": "Eienaarskap" + }, + "whoOwnsThisItem": { + "message": "Wie besit hierdie item?" + }, + "strong": { + "message": "Sterk", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Goed", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Swak", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Baie Swak", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Swak Hoofwagwoord" + }, + "weakMasterPasswordDesc": { + "message": "U gekose hoofwagwoord is te swak. U behoort ’n sterk wagwoord (of ’n wagfrase) te gebruik om u Bitwarden-rekening behoorlik te beveilig. Is u seker u wil hierdie hoofwagwoord gebruik?" + }, + "rotateAccountEncKey": { + "message": "Roteer ook my rekening se enrkipsiesleutel" + }, + "rotateEncKeyTitle": { + "message": "Roteer Enkripsiesleutel" + }, + "rotateEncKeyConfirmation": { + "message": "Is u seker u wil u rekening se enkripsiesleutel roteer?" + }, + "attachmentsNeedFix": { + "message": "Hierdie item het ou lêeraanhegsels wat herstel moet word." + }, + "attachmentFixDesc": { + "message": "Dit is ’n ou lêeraanhegsel wat herstel moet word. Klik om meer uit te vind." + }, + "fix": { + "message": "Herstel", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Daar is ou lêeraanhegsels in u kluis wat herstel moet word alvorens u u rekening se enkripsiesleutel kan roteer." + }, + "yourAccountsFingerprint": { + "message": "U rekening se vingerafdrukfrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Bevestig die gebruiker se vingerafdrukfrase alvorens voortgegaan word om die integriteit van u enkripsiesleutels te verseker.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Moenie weer vra om die vingerafdrukfrase te bevestig nie", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Gratis", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API-sleutel" + }, + "apiKeyDesc": { + "message": "U API-sleutel kan gebruik word om aan die Bitwarden openbare API te bevestig." + }, + "apiKeyRotateDesc": { + "message": "Rotasie van die API-sleutel sal die vorige sleutel ongeldig maak. U kan u API-sleutel roteer indien u dink die huidige sleutel is nie meer veilig is vir gebruik nie." + }, + "apiKeyWarning": { + "message": "U API-sleutel het volledige toegang tot die organisasie. Dit moet geheim bly." + }, + "userApiKeyDesc": { + "message": "U API-sleutel kan gebruik word om in die Bitwarden-CLI te bevestig." + }, + "userApiKeyWarning": { + "message": "U API-sleutel is ’n alternatiewe waarmerkmeganisme. Dit moet geheim gehou word." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 Client Credentials", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Bekyk API-sleutel" + }, + "rotateApiKey": { + "message": "Roteer API-sleutel" + }, + "selectOneCollection": { + "message": "U moet ten minste een versameling kies." + }, + "couldNotChargeCardPayInvoice": { + "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + }, + "inAppPurchase": { + "message": "Toepgebonde Aankope" + }, + "cannotPerformInAppPurchase": { + "message": "U kan nie hierdie aksie uitvoer terwyl ’n toepgebonde aankoopmetode gebruik word nie." + }, + "manageSubscriptionFromStore": { + "message": "U moet u intekening bestuur vanuit die winkel waarin u toepgebonde aankoop gedoen is." + }, + "minLength": { + "message": "Minimum lengte" + }, + "clone": { + "message": "Kloon" + }, + "masterPassPolicyDesc": { + "message": "Stel minimum vereistes vir hoofwagwoordsterkte." + }, + "twoStepLoginPolicyDesc": { + "message": "Vereis tweestapaantekening op gebruikers se persoonlike rekeninge." + }, + "twoStepLoginPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and do not have two-step login enabled for their personal account will be removed from the organization and will receive an email notifying them about the change." + }, + "twoStepLoginPolicyUserWarning": { + "message": "You are a member of an organization that requires two-step login to be enabled on your user account. If you disable all two-step login providers you will be automatically removed from these organizations." + }, + "passwordGeneratorPolicyDesc": { + "message": "Stel minimum vereistes vir opstelling van wagwoordgenereerder." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Een of meer organisasiebeleide beïnvloed u genereerderinstellings." + }, + "masterPasswordPolicyInEffect": { + "message": "Een of meer organisasiebeleide stel die volgende eise aan u hoofwagwoord:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum ingewikkeldheidstelling van $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum lengte van $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Bevat een of meer hoofletterkarakters" + }, + "policyInEffectLowercase": { + "message": "Bevat een of meer kleinletterkarakters" + }, + "policyInEffectNumbers": { + "message": "Bevat een of meer syfers" + }, + "policyInEffectSpecial": { + "message": "Bevat een of meer van die volgende spesiale karakters $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "U nuwe hoofwagwoord voldoen nie aan die beleidsvereistes nie." + }, + "minimumNumberOfWords": { + "message": "Minimum Aantal Woorde" + }, + "defaultType": { + "message": "Verstektipe" + }, + "userPreference": { + "message": "Gebruikersvoorkeure" + }, + "vaultTimeoutAction": { + "message": "Kluis-uittelaksie" + }, + "vaultTimeoutActionLockDesc": { + "message": "Om toegang tot ’n vergendelde kluis te kry moet die hoofwagwoord weer ingevoer word." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Om toegang tot ’n uitgetekende kluis te kry moet u weer waarmerk." + }, + "lock": { + "message": "Vergrendel", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Asblik", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Deursoek Asblik" + }, + "permanentlyDelete": { + "message": "Skrap Permanent" + }, + "permanentlyDeleteSelected": { + "message": "Skrap Gekose Permanent" + }, + "permanentlyDeleteItem": { + "message": "Skrap Item Permanent" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Is u seker u wil hierdie item permanent skrap?" + }, + "permanentlyDeletedItem": { + "message": "Permanent Geskrapte Item" + }, + "permanentlyDeletedItems": { + "message": "Permanent Geskrapte Items" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "U het $COUNT$ item(s) gekies om permanent te skrap. Is u seker u wil al hierdie items permanent skrap?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Permanent Geskrapte Items $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Stel terug" + }, + "restoreSelected": { + "message": "Stel gekose terug" + }, + "restoreItem": { + "message": "Stel item terug" + }, + "restoredItem": { + "message": "Teruggestelde item" + }, + "restoredItems": { + "message": "Teruggestelde items" + }, + "restoreItemConfirmation": { + "message": "Is u seker u wil hierdie item terugstel?" + }, + "restoreItems": { + "message": "Stel items terug" + }, + "restoreSelectedItemsDesc": { + "message": "U het $COUNT$ item(s) gekies om terug te stel. Is u seker u wil al hierdie items terugstel?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Item $ID$ teruggestel.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Deur uit te teken word alle toegang tot u kluis verwyder en word waarmerking na die uitteltydperk vereis. Is u seker u wil hierdie instelling gebruik?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Uittelaksiebevestiging" + }, + "hidePasswords": { + "message": "Versteek wagwoorde" + }, + "countryPostalCodeRequiredDesc": { + "message": "Ons benodig hierdie inligting slegs om verkoopsbelasting te bereken en vir finansiële verslaggewing." + }, + "includeVAT": { + "message": "Sluit BTW-inligting in (opsioneel)" + }, + "taxIdNumber": { + "message": "BTW-nommer" + }, + "taxInfoUpdated": { + "message": "Belastinginligting bygewerk." + }, + "setMasterPassword": { + "message": "Stel Hoofwagwoord" + }, + "ssoCompleteRegistration": { + "message": "Om aantekening met SSO te voltooi moet u ’n hoofwagwoord instel vir toegang tot en beskerming van u kluis." + }, + "identifier": { + "message": "Identifiseerder" + }, + "organizationIdentifier": { + "message": "Organisasie-identifiseerder" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Teken vinnig aan d.m.v. u organisasie se enkelaantekenportaal (SSO). Voer u organisasie se identifiseerder in om te begin." + }, + "enterpriseSingleSignOn": { + "message": "Onderneming-enkelaanteken" + }, + "ssoHandOff": { + "message": "You may now close this tab and continue in the extension." + }, + "includeAllTeamsFeatures": { + "message": "All Teams features, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO Authentication via SAML2.0 and OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Ondernemingsbeleide" + }, + "ssoValidationFailed": { + "message": "SSO Validation Failed" + }, + "ssoIdentifierRequired": { + "message": "Organisasie-identifiseerder word benodig." + }, + "unlinkSso": { + "message": "Unlink SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Link SSO" + }, + "singleOrg": { + "message": "Enkele organisasie" + }, + "singleOrgDesc": { + "message": "Restrict users from being able to join any other organizations." + }, + "singleOrgBlockCreateMessage": { + "message": "U huidige organisasie het ’n beleid wat u nie toelaat om deel te neem aan meer as een organisasie nie. Kontak u organisasie se beheerders of teken aan met’n ander Bitwarden-rekening." + }, + "singleOrgPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + }, + "requireSso": { + "message": "Single Sign-On Authentication" + }, + "requireSsoPolicyDesc": { + "message": "Require users to log in with the Enterprise Single Sign-On method." + }, + "prerequisite": { + "message": "Voorvereiste" + }, + "requireSsoPolicyReq": { + "message": "The Single Organization enterprise policy must be enabled before activating this policy." + }, + "requireSsoPolicyReqError": { + "message": "Single Organization policy not enabled." + }, + "requireSsoExemption": { + "message": "Organisasie-eienaars en -administrateurs is vrygestel van die afdwing van hierdie beleid." + }, + "sendTypeFile": { + "message": "Lêer" + }, + "sendTypeText": { + "message": "Teks" + }, + "createSend": { + "message": "Skep nuwe Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Wysig Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send geskep", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Send gewysig", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send geskrap", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Skrap Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Is u seker u wil hierdie Send skrap?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Welke tipe Send is dit?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Skrapdatum" + }, + "deletionDateDesc": { + "message": "Die Send sal outomaties op die aangewese datum en tyd geskrap word.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Vervaldatum" + }, + "expirationDateDesc": { + "message": "Indien ingestel sal toegang tot hierdie Send op die aangewese datum en tyd verstryk.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maksimum toegangsaantal" + }, + "maxAccessCountDesc": { + "message": "Indien ingestel het gebruikers ne meer toegang tot hierdie Send sodra die maksimum aantal toegang bereik is.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Huidige toegangsaantal" + }, + "sendPasswordDesc": { + "message": "Vereis opsioneel ’n wagwoord vir gebruikers om toegang tot hierdie Send te verkry.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Privaat notas oor hierdie Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Gedeaktiveer" + }, + "sendLink": { + "message": "Send-skakel", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Kopieer Send-skakel", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Verwyder wagwoord" + }, + "removedPassword": { + "message": "Wagwoord verwyder" + }, + "removePasswordConfirmation": { + "message": "Is u seker u wil die wagwoord verwyder?" + }, + "hideEmail": { + "message": "Versteek my e-posadres vir ontvangers." + }, + "disableThisSend": { + "message": "Deaktiveer hierdie Send sodat niemand toegang daartoe het nie.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Alle Sends" + }, + "maxAccessCountReached": { + "message": "Maks toegangsaantal bereik", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Word geskrap" + }, + "expired": { + "message": "Verstreke" + }, + "searchSends": { + "message": "Deursoek Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Hierdie Send is met ’n wagwoord beveilig. Voer die wagwoord hieronder in om woort te gaan.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Laai lêer af" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Daar is geen Sends om te lys nie.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Noodtoegang" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "U is die eienaar van een of meer organisasies. Indien u toegang tot oorname aan ’n noodkontak gee, sal hulle na oorname al u toestemmings as eienaar kan gebruik." + }, + "trustedEmergencyContacts": { + "message": "Vertroude noodkontakte" + }, + "noTrustedContacts": { + "message": "U het nog geen noodkontakte toegevoeg nie, nooi ’n vertroude kontak uit om te begin." + }, + "addEmergencyContact": { + "message": "Voeg noodkontak toe" + }, + "designatedEmergencyContacts": { + "message": "Toegewys as noodkontak" + }, + "noGrantedAccess": { + "message": "U is nog deur niemand as noodkontak toegewys nie." + }, + "inviteEmergencyContact": { + "message": "Nooi noodkontak uit" + }, + "editEmergencyContact": { + "message": "Wysig noodkontak" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Noodtoegang geïnisieer" + }, + "emergencyAccessRecoveryApproved": { + "message": "Noodtoegang goedgekeur" + }, + "viewDesc": { + "message": "Kan alle items in u eie kluis bekyk." + }, + "takeover": { + "message": "Oorname" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wagtyd" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 dag" + }, + "days": { + "message": "$DAYS$ dae", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Genooide gebruiker." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Kan nie uitnodiging aanvaar nie. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Versoek toegang" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Keur goed" + }, + "reject": { + "message": "Keur af" + }, + "approveAccessConfirmation": { + "message": "Is u seker u wil noodtoegang goedkeur? Hiermee laat u $USER$ toe om u rekening te $ACTION$.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Noodtoegang goedgekeur." + }, + "emergencyRejected": { + "message": "Noodtoegang afgekeur." + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Persoonlike eienaarskap" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Weens ’n ondernemingsbeleid mag u geen wagwoorde in u persoonlike kluis bewaar nie. Verander die eienaarskap na ’n organisasie en kies uit ’n van die beskikbare versamelings." + }, + "disableSend": { + "message": "Deaktiveer Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send gedeaktiveer", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "A.g.v. ’n ondernemingsbeleid kan u slegs ’n bestaande Send skrap.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send-opsies", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Stel opsies in vir die maak en wysig van Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Gewysigde beleid $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Pakketprys" + }, + "estimatedTax": { + "message": "Geraamde belasting" + }, + "custom": { + "message": "Pasgemaak" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Toestemmings" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Bestuur alle versamelings" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Bestuur toegekende versamelings" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Bestuur groepe" + }, + "managePolicies": { + "message": "Bestuur beleide" + }, + "manageSso": { + "message": "Bestuur SSO" + }, + "manageUsers": { + "message": "Bestuur gebruikers" + }, + "manageResetPassword": { + "message": "Bestuur wagwoordherstel" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "’n Organisasiebeleid beïnvloed u eienaarskapopsies." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Deaktiveer persoonlike eienaarskap vir organisasiegebruikers" + }, + "textHiddenByDefault": { + "message": "Versteek die teks be verstek wanneer die Send gebruik word", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "’n Vriendelike naam om hierdie Send te beskryf.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Die teks wat u wil verstuur." + }, + "sendFileDesc": { + "message": "Die lêer wat u wil verstuur." + }, + "copySendLinkOnSave": { + "message": "Kopieer die skakel om hierdie Send te deel tydens bewaar na my knipbord." + }, + "sendLinkLabel": { + "message": "Send-skakel", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send verstuur gevoelige, tydelike inligting na ander op ’n maklike en veilige manier.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Leer meer oor", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Leer meer", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "sien", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "hoe dit werk", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "of", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "probeer dit nou", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "of", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "teken in", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "om dit vandag te probeer.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden-gebruiker $USER_IDENTIFIER$ het die volgende met u gedeel", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Die verskafte vervaldatum is ongeldig." + }, + "deletionDateIsInvalid": { + "message": "Die verskafte skrapdatum is ongeldig." + }, + "expirationDateAndTimeRequired": { + "message": "’n Vervaldatum en -tyd word vereis." + }, + "deletionDateAndTimeRequired": { + "message": "’n Skrapdatum en -tyd word vereis." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Waarmerk WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn word nie in hierdie blaaier ondersteun nie." + }, + "webAuthnSuccess": { + "message": "WebAuthn is suksesvol bevestig! U kan hierdie oortjie sluit." + }, + "hintEqualsPassword": { + "message": "U wagwoordwenk kan nie dieselfde as u wagwoord wees nie." + }, + "enrollPasswordReset": { + "message": "Skryf in vir wagwoordterugstel" + }, + "enrolledPasswordReset": { + "message": "Ingeskryf vir wagwoordterugstel" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Suksesvol ingeskryf!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "Gebruiker $ID$ het vir wagwoordterugstelbystand ingeskryf.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Herstel wagwoord" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "hierdie gebruiker" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Een of meer organisasiebeleide stel die volgende eise aan die hoofwagwoord:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Inskrywing stel organisasiebeheerders in staat om y hoofwagwoord te wysig. Is u seker u wil inskryf?" + }, + "resetPasswordPolicy": { + "message": "Bestuur wagwoordherstel" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Gebruikers in die organisasie sal self moet inskryf of moet outomaties ingeskryf word voor beheerders hul hoofwagwoord sal kan terugstel." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Outomatiese inskrywing" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Alle gebruikers sal outomaties in wagwoordterugstel ingeskryf word sodra hul uitnodiging aanvaar is; hulle sal nie kan onttrek nie." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Gebruikers wat reeds in die organisasie is sal nie terugwerkend vir wagwoordterugstel ingeskryf word nie. Hulle sal self moet inskryf voor beheerders hul hoofwagwoord kan terugstel." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Vereis dat nuwe gebruikers outomaties ingeskryf word" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Hierdie organisasie het ’n ondernemingsbeleid wat u outomaties inskryf in die terugstel van u wagwoord. Inskrywing stel organisasiebeheerders in staat om u hoofwagwoord te wysig." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items wat vir langer as 30 dae in die asblik was sal outomaties geskrap word." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items wat vir ’n wyle in die asblik was sal outomaties geskrap word." + }, + "passwordPrompt": { + "message": "Vra weer vir hoofwagwoord" + }, + "passwordConfirmation": { + "message": "Hoofwagwoordbevestiging" + }, + "passwordConfirmationDesc": { + "message": "Hierdie aksie is beskerm. Voer u hoofwagwoord in om u identiteit te bevestig om voort te gaan." + }, + "reinviteSelected": { + "message": "Stuur weer uitnodigings" + }, + "noSelectedUsersApplicable": { + "message": "Hierdie aktie is nie van toepassing op die gekose gebruikers nie." + }, + "removeUsersWarning": { + "message": "Is u seker u wil die volgende gebruikers verwyder? Die proses duur enkele sekondes en kan nie onderbreek of gekanselleer word nie." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Bevestig keuse" + }, + "bulkConfirmStatus": { + "message": "Grootmaataksie status" + }, + "bulkConfirmMessage": { + "message": "Suksesvol bevestig." + }, + "bulkReinviteMessage": { + "message": "Suksesvol heruitgenooi." + }, + "bulkRemovedMessage": { + "message": "Suksesvol verwyder" + }, + "bulkFilteredMessage": { + "message": "Uitgesluit, nie van toepassing vir hierdie aksie." + }, + "fingerprint": { + "message": "Vingerafdruk" + }, + "removeUsers": { + "message": "Verwyder gebruikers" + }, + "error": { + "message": "Fout" + }, + "resetPasswordManageUsers": { + "message": "Bestuur gebruikers moet geaktiveer wees met die Wagwoordherstel-toestemming" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/az/messages.json b/apps/web/src/locales/az/messages.json new file mode 100644 index 0000000000..60f21f11ff --- /dev/null +++ b/apps/web/src/locales/az/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ veb anbarı", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Bu elementin növü nədir?" + }, + "name": { + "message": "Ad" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Yeni URI" + }, + "username": { + "message": "İstifadəçi adı" + }, + "password": { + "message": "Parol" + }, + "newPassword": { + "message": "Yeni parol" + }, + "passphrase": { + "message": "Uzun ifadə" + }, + "notes": { + "message": "Qeydlər" + }, + "customFields": { + "message": "Özəl sahələr" + }, + "cardholderName": { + "message": "Kart sahibinin adı" + }, + "number": { + "message": "Nömrə" + }, + "brand": { + "message": "Brend" + }, + "expiration": { + "message": "Bitmə vaxtı" + }, + "securityCode": { + "message": "Təhlükəsizlik kodu (CVV)" + }, + "identityName": { + "message": "Kimlik adı" + }, + "company": { + "message": "Şirkət" + }, + "ssn": { + "message": "Sosial təhlükəsizlik nömrəsi" + }, + "passportNumber": { + "message": "Pasport nömrəsi" + }, + "licenseNumber": { + "message": "Lisenziya nömrəsi" + }, + "email": { + "message": "E-poçt" + }, + "phone": { + "message": "Telefon" + }, + "january": { + "message": "Yanvar" + }, + "february": { + "message": "Fevral" + }, + "march": { + "message": "Mart" + }, + "april": { + "message": "Aprel" + }, + "may": { + "message": "May" + }, + "june": { + "message": "İyun" + }, + "july": { + "message": "İyul" + }, + "august": { + "message": "Avqust" + }, + "september": { + "message": "Sentyabr" + }, + "october": { + "message": "Oktyabr" + }, + "november": { + "message": "Noyabr" + }, + "december": { + "message": "Dekabr" + }, + "title": { + "message": "Başlıq" + }, + "mr": { + "message": "Cənab" + }, + "mrs": { + "message": "Xanım" + }, + "ms": { + "message": "Hörmətli" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Son istifadə ayı" + }, + "expirationYear": { + "message": "Son istifadə ili" + }, + "authenticatorKeyTotp": { + "message": "Kimlik təsdiqləyici açarı (TOTP)" + }, + "folder": { + "message": "Qovluq" + }, + "newCustomField": { + "message": "Yeni özəl sahə" + }, + "value": { + "message": "Dəyər" + }, + "dragToSort": { + "message": "Sıralamaq üçün sürüşdürün" + }, + "cfTypeText": { + "message": "Mətn" + }, + "cfTypeHidden": { + "message": "Gizli" + }, + "cfTypeBoolean": { + "message": "Boolean" + }, + "cfTypeLinked": { + "message": "Əlaqə yaradıldı", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Çıxart" + }, + "unassigned": { + "message": "Təyin edilməyən" + }, + "noneFolder": { + "message": "Qovluq yoxdur", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Qovluq əlavə et" + }, + "editFolder": { + "message": "Qovluğa düzəliş et" + }, + "baseDomain": { + "message": "Baza domeni", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domen adı", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Tam" + }, + "startsWith": { + "message": "Başlayır" + }, + "regEx": { + "message": "Müntəzəm ifadə", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Uyğunluq aşkarlaması", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "İlkin uyğunluq aşkarlaması", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Heç vaxt" + }, + "toggleVisibility": { + "message": "Görünməni aç/bağla" + }, + "toggleCollapse": { + "message": "Yığcam etməni aç/bağla", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Parol yarat" + }, + "checkPassword": { + "message": "Parolunuzun oğurlanıb oğurlanmadığını yoxlayın." + }, + "passwordExposed": { + "message": "Bu parol, məlumat pozuntularında $VALUE$ dəfə üzə çıxıb. Dəyişdirməyi məsləhət görürük.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Bu parol, məlumat pozuntularında qeydə alınmayıb. Rahatlıqla istifadə edə bilərsiniz." + }, + "save": { + "message": "Saxla" + }, + "cancel": { + "message": "İmtina" + }, + "canceled": { + "message": "Ləğv edildi" + }, + "close": { + "message": "Bağla" + }, + "delete": { + "message": "Sil" + }, + "favorite": { + "message": "Sevimli" + }, + "unfavorite": { + "message": "Sevimlilərdən çıxart" + }, + "edit": { + "message": "Düzəliş et" + }, + "searchCollection": { + "message": "Kolleksiya axtar" + }, + "searchFolder": { + "message": "Qovluq axtar" + }, + "searchFavorites": { + "message": "Sevimliləri axtar" + }, + "searchType": { + "message": "Axtarış növü", + "description": "Search item type" + }, + "searchVault": { + "message": "Anbarda axtar" + }, + "allItems": { + "message": "Bütün elementlər" + }, + "favorites": { + "message": "Sevimlilər" + }, + "types": { + "message": "Növlər" + }, + "typeLogin": { + "message": "Giriş" + }, + "typeCard": { + "message": "Kart" + }, + "typeIdentity": { + "message": "Kimlik" + }, + "typeSecureNote": { + "message": "Təhlükəsizlik qeydi" + }, + "typeLoginPlural": { + "message": "Girişlər" + }, + "typeCardPlural": { + "message": "Kartlar" + }, + "typeIdentityPlural": { + "message": "Kimliklər" + }, + "typeSecureNotePlural": { + "message": "Təhlükəsizlik qeydləri" + }, + "folders": { + "message": "Qovluqlar" + }, + "collections": { + "message": "Kolleksiyalar" + }, + "firstName": { + "message": "Ad" + }, + "middleName": { + "message": "Orta ad" + }, + "lastName": { + "message": "Soyad" + }, + "fullName": { + "message": "Tam ad" + }, + "address1": { + "message": "Ünvan 1" + }, + "address2": { + "message": "Ünvan 2" + }, + "address3": { + "message": "Ünvan 3" + }, + "cityTown": { + "message": "Şəhər/Rayon" + }, + "stateProvince": { + "message": "Ölkə/Əyalət" + }, + "zipPostalCode": { + "message": "Zip/ Poçt kodu" + }, + "country": { + "message": "Ölkə" + }, + "shared": { + "message": "Paylaşılan" + }, + "attachments": { + "message": "Qoşmalar" + }, + "select": { + "message": "Seçin" + }, + "addItem": { + "message": "Element əlavə et" + }, + "editItem": { + "message": "Elementə düzəliş et" + }, + "viewItem": { + "message": "Elementə bax" + }, + "ex": { + "message": "məs.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Digər" + }, + "share": { + "message": "Paylaş" + }, + "moveToOrganization": { + "message": "Təşkilata daşı" + }, + "valueCopied": { + "message": "$VALUE$ kopyalandı", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Dəyəri kopyala", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Parolu kopyala", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "İstifadəçi adını kopyala", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Nömrəni kopyala", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Təhlükəsizlik kodunu kopyala", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "URI-ni kopyala", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Anbarım" + }, + "vault": { + "message": "Anbar" + }, + "moveSelectedToOrg": { + "message": "Seçiləni təşkilata daşı" + }, + "deleteSelected": { + "message": "Seçiləni sil" + }, + "moveSelected": { + "message": "Seçiləni daşı" + }, + "selectAll": { + "message": "Hamısını seç" + }, + "unselectAll": { + "message": "Heç birini seçmə" + }, + "launch": { + "message": "Başlat" + }, + "newAttachment": { + "message": "Yeni qoşma əlavə et" + }, + "deletedAttachment": { + "message": "Qoşma silindi" + }, + "deleteAttachmentConfirmation": { + "message": "Bu qoşmanı silmək istədiyinizə əminsiniz?" + }, + "attachmentSaved": { + "message": "Qoşma saxlanıldı." + }, + "file": { + "message": "Fayl" + }, + "selectFile": { + "message": "Fayl seçin." + }, + "maxFileSize": { + "message": "Maksimal fayl həcmi 500 MB-dır." + }, + "updateKey": { + "message": "Şifrələmə açarınızı yeniləyənə qədər bu özəlliyi istifadə edə bilməzsiniz." + }, + "addedItem": { + "message": "Element əlavə edildi" + }, + "editedItem": { + "message": "Elementə düzəliş edildi" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ $ORGNAME$ şirkətinə daşınıldı", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Seçilən elementlər $ORGNAME$ təşkilatına daşınıldı", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Elementi sil" + }, + "deleteFolder": { + "message": "Qovluğu sil" + }, + "deleteAttachment": { + "message": "Qoşmanı sil" + }, + "deleteItemConfirmation": { + "message": "Həqiqətən tullantı qutusuna göndərmək istəyirsiniz?" + }, + "deletedItem": { + "message": "Element tullantı qutusuna göndərildi" + }, + "deletedItems": { + "message": "Elementlər tullantı qutusuna göndərildi" + }, + "movedItems": { + "message": "Elementlər daşınıldı" + }, + "overwritePasswordConfirmation": { + "message": "Hazırkı parolun üzərinə yazmaq istədiyinizə əminsiniz?" + }, + "editedFolder": { + "message": "Qovluğa düzəliş edildi" + }, + "addedFolder": { + "message": "Qovluq əlavə edildi" + }, + "deleteFolderConfirmation": { + "message": "Bu qovluğu silmək istədiyinizə əminsiniz?" + }, + "deletedFolder": { + "message": "Qovluq silindi" + }, + "loggedOut": { + "message": "Çıxış edildi" + }, + "loginExpired": { + "message": "Seansın müddəti bitdi." + }, + "logOutConfirmation": { + "message": "Çıxış etmək istədiyinizə əminsiniz?" + }, + "logOut": { + "message": "Çıxış" + }, + "ok": { + "message": "Oldu" + }, + "yes": { + "message": "Bəli" + }, + "no": { + "message": "Xeyr" + }, + "loginOrCreateNewAccount": { + "message": "Təhlükəsiz anbarınıza müraciət etmək üçün giriş edin və ya yeni bir hesab yaradın." + }, + "createAccount": { + "message": "Hesab yarat" + }, + "logIn": { + "message": "Giriş et" + }, + "submit": { + "message": "Göndər" + }, + "emailAddressDesc": { + "message": "Giriş etmək üçün e-poçt ünvanınızı istifadə edəcəksiniz." + }, + "yourName": { + "message": "Adınız" + }, + "yourNameDesc": { + "message": "Sizi neçə çağıraq?" + }, + "masterPass": { + "message": "Ana parol" + }, + "masterPassDesc": { + "message": "Ana parol, anbarınıza müraciət etmək üçün istifadə edəcəyiniz şifrədir. Ana parolu yadda saxlamaq çox vacibdir. Unutsanız, parolu bərpa etməyin heç bir yolu yoxdur." + }, + "masterPassHintDesc": { + "message": "Ana parol məsləhəti, unutduğunuz parolu xatırlamağınıza kömək edir." + }, + "reTypeMasterPass": { + "message": "Ana parolu yenidən yaz" + }, + "masterPassHint": { + "message": "Ana parol məsləhəti (ixtiyari)" + }, + "masterPassHintLabel": { + "message": "Ana parol məsləhəti" + }, + "settings": { + "message": "Tənzimləmələr" + }, + "passwordHint": { + "message": "Parol məsləhəti" + }, + "enterEmailToGetHint": { + "message": "Ana parol məsləhətini alacağınız hesabınızın e-poçt ünvanını daxil edin." + }, + "getMasterPasswordHint": { + "message": "Ana parol üçün məsləhət alın" + }, + "emailRequired": { + "message": "E-poçt ünvanı lazımdır." + }, + "invalidEmail": { + "message": "Etibarsız e-poçt ünvanı." + }, + "masterPassRequired": { + "message": "Ana parol lazımdır." + }, + "masterPassLength": { + "message": "Ana parol ən azı 8 simvol uzunluğunda olmalıdır." + }, + "masterPassDoesntMatch": { + "message": "Ana parol təsdiqləməsi uyğun gəlmir." + }, + "newAccountCreated": { + "message": "Yeni hesabınız yaradıldı! İndi giriş edə bilərsiniz." + }, + "masterPassSent": { + "message": "Ana parol məsləhətini ehtiva edən bir e-poçt göndərdik." + }, + "unexpectedError": { + "message": "Gözlənilməz bir səhv baş verdi." + }, + "emailAddress": { + "message": "E-poçt ünvanı" + }, + "yourVaultIsLocked": { + "message": "Anbarınız kilidlənib. Davam etmək üçün ana parolunuzu təsdiqləyin." + }, + "unlock": { + "message": "Kilidi aç" + }, + "loggedInAsEmailOn": { + "message": "$HOSTNAME$ üzərində $EMAIL$ kimi giriş edildi.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Etibarsız ana parol" + }, + "lockNow": { + "message": "İndi kilidlə" + }, + "noItemsInList": { + "message": "Siyahılanacaq heç bir element yoxdur." + }, + "noCollectionsInList": { + "message": "Siyahılanacaq heç bir kolleksiya yoxdur." + }, + "noGroupsInList": { + "message": "Sihayıda heç bir məhsul yoxdur." + }, + "noUsersInList": { + "message": "Siyahılanacaq heç bir element yoxdur." + }, + "noEventsInList": { + "message": "Siyahılanacaq heç bir element yoxdur." + }, + "newOrganization": { + "message": "Yeni təşkilat" + }, + "noOrganizationsList": { + "message": "Heç bir təşkilata aid deyilsiniz. Təşkilatlar, elementlərinizi digər istifadəçilərlə təhlükəsiz şəkildə paylaşmağınızı təmin edir." + }, + "versionNumber": { + "message": "Versiya $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Kimlik təsdiqləyici tətbiqindən 6 rəqəmli təsdiqləmə kodunu daxil edin." + }, + "enterVerificationCodeEmail": { + "message": "$EMAIL$ ünvanına göndərilən e-poçtdakı 6 rəqəmli təsdiqləmə kodunu daxil edin.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Təsdiqləmə poçtu $EMAIL$ ünvanına göndərildi.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Məni xatırla" + }, + "sendVerificationCodeEmailAgain": { + "message": "Təsdiqləmə kodu olan e-poçtu yenidən göndər" + }, + "useAnotherTwoStepMethod": { + "message": "Başqa bir iki mərhələli giriş metodu istifadə edin" + }, + "insertYubiKey": { + "message": "\"YubiKey\"i kompüterinizin USB portuna taxın, daha sonra düyməsinə toxunun." + }, + "insertU2f": { + "message": "Təhlükəsizlik açarını kompüterinizin USB portun taxın. Düyməsi varsa toxunun." + }, + "loginUnavailable": { + "message": "Giriş edilə bilmir" + }, + "noTwoStepProviders": { + "message": "Bu hesabın iki mərhələli giriş özəlliyi fəaldır, ancaq, konfiqurasiya edilmiş iki mərhələli təchizatçıların heç biri bu səyyah tərəfindən dəstəklənmir." + }, + "noTwoStepProviders2": { + "message": "Zəhmət olmasa (Chrome kimi) dəstəklənən bir veb səyyah istifadə edin və/və ya veb səyyahlara (kimlik təsdiqləyici tətbiq kimi) daha yaxşı dəstəklənən təchizatçılar əlavə edin." + }, + "twoStepOptions": { + "message": "İki mərhələli giriş seçimləri" + }, + "recoveryCodeDesc": { + "message": "İki mərhələli təsdiqləmə təchizatçılarına müraciəti itirmisiniz? Bərpa kodunuzu istifadə edərək hesabınızdakı bütün iki mərhələli təchizatçıları sıradan çıxara bilərsiniz." + }, + "recoveryCodeTitle": { + "message": "Bərpa kodu" + }, + "authenticatorAppTitle": { + "message": "Kimlik təsdiqləyici tətbiqi" + }, + "authenticatorAppDesc": { + "message": "Vaxt əsaslı təsdiqləmə kodları yaratmaq üçün (Authy və ya Google Authenticator kimi) kimlik təsdiqləyici tətbiq istifadə edin.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP təhlükəsizlik açarı" + }, + "yubiKeyDesc": { + "message": "Hesabınıza müraciət etmək üçün bir YubiKey istifadə edin. YubiKey 4 seriyası, 5 seriyası və NEO cihazları ilə işləyir." + }, + "duoDesc": { + "message": "Duo Security ilə təsdiqləmək üçün Duo Mobile tətbiqi, SMS, telefon zəngi və ya U2F təhlükəsizlik açarını istifadə edin.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Təşkilatınızını Duo Security ilə təsdiqləmək üçün Duo Mobile tətbiqi, SMS, telefon zəngi və ya U2F təhlükəsizlik açarını istifadə edin.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Hesabınıza müraciət etmək üçün hər hansısa bir FIDO U2F fəallaşdırılan təhlükəsizlik açarı istifadə edin." + }, + "u2fTitle": { + "message": "FIDO U2F Təhlükəsizlik açarı" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Hesabınıza müraciət etmək üçün hər hansısa bir WebAuthn fəallaşdırılan təhlükəsizlik açarı istifadə edin." + }, + "webAuthnMigrated": { + "message": "(FIDO-dan köçürüldü)" + }, + "emailTitle": { + "message": "E-poçt" + }, + "emailDesc": { + "message": "Təsdiqləmə kodları e-poçt ünvanınıza göndəriləcək." + }, + "continue": { + "message": "Davam" + }, + "organization": { + "message": "Təşkilat" + }, + "organizations": { + "message": "Təşkilatlar" + }, + "moveToOrgDesc": { + "message": "Bu elementi daşımaq istədiyiniz təşkilatı seçin. Bir təşkilata daşımaq, elementin sahibliyini də həmin təşkilata daşıyacaq. Daşıdıqdan sonra bu elementə birbaşa sahibliyiniz olmayacaq." + }, + "moveManyToOrgDesc": { + "message": "Bu elementləri daşımaq istədiyiniz təşkilatı seçin. Bir təşkilata daşımaq, elementin sahibliyini də həmin təşkilata daşıyacaq. Daşıdıqdan sonra bu elementlərə birbaşa sahibliyiniz olmayacaq." + }, + "collectionsDesc": { + "message": "Bu elementin paylaşıldığı kolleksiyalara düzəliş edin. Yalnız bu kolleksiyalara müraciəti olan təşkilat istifadəçiləri bu elementi görə bilər." + }, + "deleteSelectedItemsDesc": { + "message": "Silmək üçün $COUNT$ element seçdiniz. Onların hamısını silmək istədiyinizə əminsiniz?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Seçdiyiniz $COUNT$ elementi daşımaq istədiyiniz qovluğu seçin.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "$COUNT$ element seçdiniz. $MOVEABLE_COUNT$ element bir təşkilata daşınıla bilər, $NONMOVEABLE_COUNT$ ədədi isə daşınıla bilməz.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Təsdiqləmə kodu (TOTP)" + }, + "copyVerificationCode": { + "message": "Təsdiqləmə kodunu kopyala" + }, + "warning": { + "message": "Xəbərdarlıq" + }, + "confirmVaultExport": { + "message": "Anbarın ixracını təsdiqləyin" + }, + "exportWarningDesc": { + "message": "Bu ixrac faylındakı anbar verilənləriniz şifrələnməmiş formatdadır. İxrac edilən faylı saxlamamalı və etibarsız yollarla (e-poçt kimi) göndərməməlisiniz. Bu faylı işiniz bitdikdən sonra dərhal silin." + }, + "encExportKeyWarningDesc": { + "message": "Bu ixrac faylı, hesabınızın şifrələmə açarını istifadə edərək verilənlərinizi şifrələyir. Hesabınızın şifrələmə açarını döndərsəniz, bu ixrac faylının şifrəsini aça bilməyəcəyiniz üçün yenidən ixrac etməli olacaqsınız." + }, + "encExportAccountWarningDesc": { + "message": "Hesab şifrələmə açarları, hər Bitwarden istifadəçi hesabı üçün unikaldır, buna görə də şifrələnmiş bir ixracı, fərqli bir hesaba idxal edə bilməzsiniz." + }, + "export": { + "message": "İxrac et" + }, + "exportVault": { + "message": "Anbarı ixrac et" + }, + "fileFormat": { + "message": "Fayl formatı" + }, + "exportSuccess": { + "message": "Anbar verilənləriniz ixrac edildi." + }, + "passwordGenerator": { + "message": "Parol yaradıcı" + }, + "minComplexityScore": { + "message": "Minimum mürəkkəblik xalı" + }, + "minNumbers": { + "message": "Minimum rəqəm" + }, + "minSpecial": { + "message": "Minimum simvol", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Anlaşılmaz simvollardan çəkinin" + }, + "regeneratePassword": { + "message": "Parolu yenidən yarat" + }, + "length": { + "message": "Uzunluq" + }, + "numWords": { + "message": "Söz sayı" + }, + "wordSeparator": { + "message": "Söz ayırıcı" + }, + "capitalize": { + "message": "İlk hərfi böyük yaz", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Rəqəm əlavə et" + }, + "passwordHistory": { + "message": "Parol tarixçəsi" + }, + "noPasswordsInList": { + "message": "Siyahılanacaq heç bir parol yoxdur." + }, + "clear": { + "message": "Təmizlə", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Hesab yeniləndi" + }, + "changeEmail": { + "message": "E-poçtu dəyişdir" + }, + "changeEmailTwoFactorWarning": { + "message": "Davam etmək, hesabınızın e-poçt ünvanını dəyişdirəcəkdir. İki faktorlu kimlik təsdiqləmə üçün istifadə olunan e-poçt ünvanını dəyişdirmir. Bu e-poçt ünvanını iki addımlı giriş tənzimləmələrində dəyişdirə bilərsiniz." + }, + "newEmail": { + "message": "Yeni e-poçt" + }, + "code": { + "message": "Kod" + }, + "changeEmailDesc": { + "message": "$EMAIL$ ünvanına təsdiqləmə kodu olan e-poçt göndərdik. Zəhmət olmasa e-poçt ünvan dəyişikliyini tamamlamaq üçün göndərdiyimiz kodu aşağıda daxil edin.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Davam etsəniz, hazırkı seansınız bitəcək, təkrar giriş etməyiniz tələb olunacaq. Digər cihazlardakı aktiv seanslar, bir saata qədər aktiv qalmağa davam edə bilər." + }, + "emailChanged": { + "message": "E-poçt dəyişdirildi" + }, + "logBackIn": { + "message": "Zəhmət olmasa yenidən giriş edin." + }, + "logBackInOthersToo": { + "message": "Zəhmət olmasa yenidən giriş edin. Digər Bitwarden tətbiqlərini istifadə edirsinizsə, onlardan da çıxış edib təkrar giriş etməlisiniz." + }, + "changeMasterPassword": { + "message": "Ana parolu dəyişdir" + }, + "masterPasswordChanged": { + "message": "Ana parol dəyişdirildi" + }, + "currentMasterPass": { + "message": "Hazırkı ana parol" + }, + "newMasterPass": { + "message": "Yeni ana parol" + }, + "confirmNewMasterPass": { + "message": "Yeni ana parolu təsdiqlə" + }, + "encKeySettings": { + "message": "Şifrələmə açarı tənzimləmələri" + }, + "kdfAlgorithm": { + "message": "KDF Algoritmi" + }, + "kdfIterations": { + "message": "KDF iterasiyaları" + }, + "kdfIterationsDesc": { + "message": "Daha yüksək KDF itereasiyası, ana parolunuzun \"brute force\" hücumuna qarşı qorunmasına kömək edə bilər. $VALUE$ və ya daha yuxarı bir dəyəri tövsiyə edirik.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "KDF iterasiyalarınızı çox yüksək tənzimləmək, zəif prosessora malik cihazlarda \"Bitwarden\"ə giriş edərkən (və ya kilidi açarkən) aşağı performansa səbəb ola bilər. Dəyəri $INCREMENT$ artımları ilə artırmağınızı və daha sonra bütün cihazlarınızda test etməyinizi məsləhət görürük.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "KDF-i dəyişdir" + }, + "encKeySettingsChanged": { + "message": "Şifrələmə açar tənzimləmələri dəyişdirildi" + }, + "dangerZone": { + "message": "Təhlükəli zona" + }, + "dangerZoneDesc": { + "message": "Diqqətli olun, bu əməliyyatları geri qaytara bilməzsiniz!" + }, + "deauthorizeSessions": { + "message": "Seansların səlahiyyətlərini götür" + }, + "deauthorizeSessionsDesc": { + "message": "Hesabınıza başqa cihazdan giriş edildiyi ilə bağlı şübhələnirsiniz? Daha əvvəl istifadə etdiyiniz bütün cihazların və ya kompüterlərin səlahiyyətini götürmək üçün aşağıdan davam edin. Əvvəllər ictimai bir kompüter istifadə etmisinizsə və ya sizin olmayan bir cihazda səhvən parolunuzu saxlamısınızsa, bu təhlükəsizlik addımını məsləhət görürük. Bu addım həmçinin daha əvvəl xatırlanan iki mərhələli giriş seanslarını da təmizləyəcək." + }, + "deauthorizeSessionsWarning": { + "message": "Davam etsəniz, hazırkı seansınız bitəcək, təkrar giriş etməyiniz tələb olunacaq. Fəallaşdırılıbsa, iki mərhələli giriş üçün yenidən soruşulacaq. Digər cihazlardakı aktiv seanslar, bir saata qədər aktiv qalmağa davam edə bilər." + }, + "sessionsDeauthorized": { + "message": "Bütün seansların səlahiyyəti götürüldü" + }, + "purgeVault": { + "message": "Anbarı təmizlə" + }, + "purgedOrganizationVault": { + "message": "Təşkilat anbarı təmizləndi." + }, + "vaultAccessedByProvider": { + "message": "Təchizatçı tərəfindən müraciət edilən anbar." + }, + "purgeVaultDesc": { + "message": "Anbarınızdakı bütün element və qovluqları silmək üçün aşağıdan davam edin. Paylaşdığınız bir təşkilata aid olan elementlər silinməyəcək." + }, + "purgeOrgVaultDesc": { + "message": "Təşkilat anbarındakı bütün elementləri silmək üçün aşağıda davam edin." + }, + "purgeVaultWarning": { + "message": "Anbarınızı təmizləmək birdəfəlik prosesdir. Bu əməliyyatın geri dönüşü yoxdur." + }, + "vaultPurged": { + "message": "Anbarınız təmizləndi." + }, + "deleteAccount": { + "message": "Hesabı sil" + }, + "deleteAccountDesc": { + "message": "Hesabınızı və əlaqəli bütün verilənləri silmək üçün aşağıda davam edin." + }, + "deleteAccountWarning": { + "message": "Hesabınızı silmək birdəfəlik prosesdir. Bu əməliyyatın geri dönüşü yoxdur." + }, + "accountDeleted": { + "message": "Hesab silindi" + }, + "accountDeletedDesc": { + "message": "Hesabınız bağlandı və bütün əlaqəli verilənlər silindi." + }, + "myAccount": { + "message": "Hesabım" + }, + "tools": { + "message": "Alətlər" + }, + "importData": { + "message": "Verilənləri idxal et" + }, + "importError": { + "message": "İdxal xətası" + }, + "importErrorDesc": { + "message": "İdxal etməyə çalışdığınız verilənlərlə bağlı problem var. Zəhmət olmasa mənbə faylınızda siyahılanan xətaları həll edib yenidən sınayın." + }, + "importSuccess": { + "message": "Verilənlər anbarınıza uğurla idxal edildi." + }, + "importWarning": { + "message": "$ORGANIZATION$ təşkilatına verilənləri idxal edirsiniz. Verilənlərinizi bu təşkilatın üzvləri ilə paylaşa bilərsiniz. Davam etmək istəyirsiniz?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Verilənlər doğru format edilməyib. Zəhmət olmasa idxal faylınızı yoxlayıb yenidən sınayın." + }, + "importNothingError": { + "message": "Heç nə idxal edilmədi." + }, + "importEncKeyError": { + "message": "İxrac edilən faylın parolu açılarkən xəta baş verdi. Şifrələmə açarınız, verilənlərin ixracında istifadə olunan şifrələmə açarı ilə uyğunlaşmır." + }, + "selectFormat": { + "message": "İdxal faylının formatını seçin" + }, + "selectImportFile": { + "message": "İdxal faylını seçin" + }, + "orCopyPasteFileContents": { + "message": "və ya idxal faylının məzmununu kopyalayın/yapışdırın" + }, + "instructionsFor": { + "message": "$NAME$ Təlimatları", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Seçimlər" + }, + "optionsDesc": { + "message": "Veb anbar təcrübənizi özəlləşdirin." + }, + "optionsUpdated": { + "message": "Seçimlər yeniləndi" + }, + "language": { + "message": "Dil" + }, + "languageDesc": { + "message": "Veb anbarda istifadə olunan dili dəyişdirin." + }, + "disableIcons": { + "message": "Veb sayt nişanlarını sıradan çıxart" + }, + "disableIconsDesc": { + "message": "Veb sayt nişanları, anbarınızda hər bir giriş elementinin yanında tanımağınıza kömək edən bir təsvir təqdim edir." + }, + "enableGravatars": { + "message": "\"Gravatar\"ı fəallaşdırın", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "gravatar.com saytından yüklənilən avatarları istifadə edin." + }, + "enableFullWidth": { + "message": "Tam en görünüşünü fəallaşdır", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Veb anbara, səyyah pəncərəsinin eninin tamamını istifadə etməsinə icazə ver." + }, + "default": { + "message": "İlkin" + }, + "domainRules": { + "message": "Domen qaydaları" + }, + "domainRulesDesc": { + "message": "Bir neçə fərqli veb sayt domenində eyni giriş məlumatınız varsa, veb saytı \"ekvivalent\" olaraq işarələyə bilərsiniz. \"Qlobal\" domenlər, Bitwarden tərəfindən sizin üçün əvvəlcədən yaradılmış domenlərdir." + }, + "globalEqDomains": { + "message": "Qlobal ekvivalent domenlər" + }, + "customEqDomains": { + "message": "Özəl ekvivalent domenlər" + }, + "exclude": { + "message": "İstisna" + }, + "include": { + "message": "Daxil et" + }, + "customize": { + "message": "Özəlləşdir" + }, + "newCustomDomain": { + "message": "Yeni özəl domen" + }, + "newCustomDomainDesc": { + "message": "Vergüllə ayrılan bir domen siyahısı daxil edin. Yalnız \"təməl\" domenlərə icazə verilir. Alt domen daxil etməyin. Məsələn, \"www.google.com\" əvəzinə \"google.com\" daxil edin. Bir android tətbiqini digər veb sayt domenləri ilə əlaqələndirmək üçün \"androidtətbiqi://paket.adı\" daxil edə bilərsiniz." + }, + "customDomainX": { + "message": "Özəl domen $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domenlər yeniləndi" + }, + "twoStepLogin": { + "message": "İki mərhələli giriş" + }, + "twoStepLoginDesc": { + "message": "Giriş edərkən əlavə bir addım tələb edərək hesabınızı qoruyun." + }, + "twoStepLoginOrganizationDesc": { + "message": "Təchizatçıları təşkilat səviyyəsində konfiqurasiya edərək təşkilatınızın istifadəçiləri üçün iki mərhələli girişi məcburi edin." + }, + "twoStepLoginRecoveryWarning": { + "message": "İki mərhələli girişi fəallaşdırmaq, Bitwarden hesabınızı birdəfəlik kilidləyə bilər. Bərpa kodları, iki mərhələli giriş təchizatçınızı istifadə edə bilmədiyiniz hallarda (məs. cihazınızı itirəndə) hesabınıza müraciət etməyinizə icazə verər. Hesabınıza müraciəti itirsəniz, Bitwarden dəstəyi sizə kömək edə bilməyəcək. Bərpa kodunuzu bir yerə yazmağınızı və ya çap etməyinizi və onu etibarlı bir yerdə saxlamağı məsləhət görürük." + }, + "viewRecoveryCode": { + "message": "Bərpa koduna bax" + }, + "providers": { + "message": "Təchizatçılar", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Fəallaşdır" + }, + "enabled": { + "message": "Fəallaşdırıldı" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium üzvlük" + }, + "premiumRequired": { + "message": "Premium üzvlük lazımdır" + }, + "premiumRequiredDesc": { + "message": "Bu özəlliyi istifadə etmək üçün premium üzvlük lazımdır." + }, + "youHavePremiumAccess": { + "message": "Premium müraciətiniz var" + }, + "alreadyPremiumFromOrg": { + "message": "Üzvü olduğunuz bir təşkilatın sayəsində premium özəlliklərə müraciətiniz var." + }, + "manage": { + "message": "İdarə et" + }, + "disable": { + "message": "Sıradan çıxart" + }, + "twoStepLoginProviderEnabled": { + "message": "Bu iki mərhələli giriş təchizatçısı hesabınızda fəallaşdırılıb." + }, + "twoStepLoginAuthDesc": { + "message": "İki mərhələli giriş tənzimləmələrini dəyişdirmək üçün ana parolu daxil edin." + }, + "twoStepAuthenticatorDesc": { + "message": "Kimlik təsdiqləyici tətbiqi ilə iki mərhələli girişi quraşdırmaq üçün aşağıdakı addımları izləyin:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "İki mərhələli kimlik təsdiqləmə tətbiqi endirin" + }, + "twoStepAuthenticatorNeedApp": { + "message": "İki mərhələli kimlik təsdiqləmə tətbiqi lazımdır? Aşağıdakılardan birini endirin" + }, + "iosDevices": { + "message": "iOS cihazları" + }, + "androidDevices": { + "message": "Android cihazları" + }, + "windowsDevices": { + "message": "Windows cihazları" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Bu tətbiqləri tövsiyə edirik, ancaq digər kimlik təsdiqləmə tətbiqlərini də işlədə bilərsiniz." + }, + "twoStepAuthenticatorScanCode": { + "message": "Bu QR kodunu kimlik təsdiqləyici tətbiqinizlə skan edin" + }, + "key": { + "message": "Açar" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Tətbiqdəki 6 rəqəmli təsdiqləmə kodunu daxil edin" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Başqa bir cihaza əlavə etmək lazım olsa, aşağıda kimlik təsdiqləmə tətbiqinizin tələb etdiyi QR kod (və ya açar) verilib." + }, + "twoStepDisableDesc": { + "message": "Bu iki mərhələli giriş təchizatçısını sıradan çıxartmaq istədiyinizə əminsiniz?" + }, + "twoStepDisabled": { + "message": "İki mərhələli giriş təchizatçısı sıradan çıxarıldı." + }, + "twoFactorYubikeyAdd": { + "message": "Hesabınıza yeni bir YubiKey əlavə edin" + }, + "twoFactorYubikeyPlugIn": { + "message": "\"YubiKey\"i kompüterinizin USB portuna taxın." + }, + "twoFactorYubikeySelectKey": { + "message": "Aşağıdakı ilk boş YubiKey giriş sahəsini seçin." + }, + "twoFactorYubikeyTouchButton": { + "message": "\"YubiKey\"in düyməsinə toxunun." + }, + "twoFactorYubikeySaveForm": { + "message": "Formu saxla." + }, + "twoFactorYubikeyWarning": { + "message": "Platforma məhdudiyyətlərinə görə, YubiKeys bütün Bitwarden tətbiqlərində istifadə edilə bilmir. YubiKeys istifadə edilə bilməyəndə, hesabınıza müraciət edə bilməyiniz üçün başqa bir iki mərhələli giriş təchizatçısını fəallaşdırmalısınız. Dəstəklənən platformalar:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Veb anbar, masaüstü tətbiqi, CLI və \"YubiKey\"inizi qəbul edə biləcək USB portuna sahib bir cihazdakı bütün səyyah genişləndirmələri." + }, + "twoFactorYubikeySupportMobile": { + "message": "Bir cihazda NFC özəlliyi olan mobil tətbiqlər və ya \"YubiKey\"inizi qəbul edə bilən data portu." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F açarı $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn açarı $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC dəstəyi" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Açarlarımdan biri NFC dəstəkləyir." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "\"YubiKey\"lərinizdən biri (YubiKey NEO kimi) NFC dəstəkləyirsə, mobil cihazlarda NFC əlçatımlılığı aşkarlananda bildiriş göndəriləcək." + }, + "yubikeysUpdated": { + "message": "\"YubiKey\"lər yeniləndi" + }, + "disableAllKeys": { + "message": "Bütün açarları sıradan çıxart" + }, + "twoFactorDuoDesc": { + "message": "Duo Admin panelinizdən Bitwarden tətbiq məlumatlarını daxil edin." + }, + "twoFactorDuoIntegrationKey": { + "message": "İnteqrasiya açarı" + }, + "twoFactorDuoSecretKey": { + "message": "Məxfi açar" + }, + "twoFactorDuoApiHostname": { + "message": "API Host adı" + }, + "twoFactorEmailDesc": { + "message": "E-poçt ilə iki mərhələli girişi quraşdırmaq üçün aşağıdakı addımları izləyin:" + }, + "twoFactorEmailEnterEmail": { + "message": "Təsdiqləmə kodlarını almaq istədiyiniz e-poçtu daxil edin" + }, + "twoFactorEmailEnterCode": { + "message": "E-poçtdakı 6 rəqəmli təsdiqləmə kodunu daxil edin" + }, + "sendEmail": { + "message": "E-poçt göndər" + }, + "twoFactorU2fAdd": { + "message": "FIDO U2F təhlükəsizlik açarını hesabınıza əlavə edin" + }, + "removeU2fConfirmation": { + "message": "Bu təhlükəsizlik açarını çıxartmaq istədiyinizə əminsiniz?" + }, + "twoFactorWebAuthnAdd": { + "message": "Hesabınzıa WebAuthn təhlükəsizlik açarı əlavə edin" + }, + "readKey": { + "message": "Açarı oxu" + }, + "keyCompromised": { + "message": "Açar təhlükədədir." + }, + "twoFactorU2fGiveName": { + "message": "Təhlükəsizlik açarını müəyyənləşdirmək üçün açıqlayıcı bir ad verin." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Təhlükəsizlik açarını kompüterinizin USB portuna taxıb \"Açarı oxu\" düyməsinə klikləyin." + }, + "twoFactorU2fTouchButton": { + "message": "Əgər təhlükəsizlik açarının düyməsi varsa, basın." + }, + "twoFactorU2fSaveForm": { + "message": "Formu saxla." + }, + "twoFactorU2fWarning": { + "message": "Platforma məhdudiyyətlərinə görə, FIDO U2F bütün Bitwarden tətbiqlərində istifadə edilə bilmir. FIDO U2F istifadə edilə bilməyəndə, hesabınıza müraciət edə bilməyiniz üçün başqa bir iki mərhələli giriş təchizatçısını fəallaşdırmalısınız. Dəstəklənən platformalar:" + }, + "twoFactorU2fSupportWeb": { + "message": "U2F özəlliyə sahib bir səyyah ilə masaüstü/dizüstü kompüterdə veb anbar və səyyah genişləndirmələri (FIDO U2F özəlliyinə sahib Chrome, Opera, Vivaldi və ya Firefox)." + }, + "twoFactorU2fWaiting": { + "message": "Təhlükəsizlik açarındakı düyməyə toxunmağınız gözlənilir" + }, + "twoFactorU2fClickSave": { + "message": "İki mərhələli giriş üçün bu təhlükəsizlik açarını fəallaşdırmaq üçün \"Saxla\" düyməsinə klikləyin." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Təhlükəsizlik açarı oxunarkən problem yarandı. Yenidən sınayın." + }, + "twoFactorWebAuthnWarning": { + "message": "Platforma məhdudiyyətlərinə görə, WebAuthn bütün Bitwarden tətbiqlərində istifadə edilə bilmir. WebAuthn istifadə edilə bilməyəndə, hesabınıza müraciət edə bilməyiniz üçün başqa bir iki mərhələli giriş təchizatçısını fəallaşdırmalısınız. Dəstəklənən platformalar:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "WebAuthn özəlliyə sahib bir səyyah ilə masaüstü/dizüstü kompüterdə veb anbar və səyyah genişləndirmələri (FIDO U2F özəlliyinə sahib Chrome, Opera, Vivaldi və ya Firefox)." + }, + "twoFactorRecoveryYourCode": { + "message": "Bitwarden iki mərhələli giriş bərpa kodunuz" + }, + "twoFactorRecoveryNoCode": { + "message": "Hələ ki, iki mərhələli griş təchizatçısını fəallaşdırmadınız. İki mərhələli giriş təchizatçısını faəllaşdırdıqdan sonra, bərpa kodunuz üçün buranı yoxlaya bilərsiniz." + }, + "printCode": { + "message": "Kodu çap et", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Hesabatlar" + }, + "reportsDesc": { + "message": "Aşağıdakı hesabatlara klikləyərək onlayn hesablarınızdakı güvənlik boşluqlarına baxın və onları bağlayın." + }, + "unsecuredWebsitesReport": { + "message": "Təhlükəli veb sayt hesabatları" + }, + "unsecuredWebsitesReportDesc": { + "message": "http:// sxemini sahib güvənli olmayan veb saytları istifadə etmək təhlükəli ola bilər. Əgər veb sayt icazə verirsə, hər zaman bağlantınızın şifrələnməsi üçün https:// sxemini istifadə edərək müraciət etməlisiniz." + }, + "unsecuredWebsitesFound": { + "message": "Güvənli olmayan veb sayt tapıldı" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Anbarınızda güvənli olmayan URI-lərə sahib $COUNT$ element tapıldı. Veb sayt icazə verirsə, onların URI sxemini https:// olaraq dəyişdirməlisiniz.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Anbarınızda güvənli olmayan URI-ə sahib element yoxdur." + }, + "inactive2faReport": { + "message": "2FA hesabatı aktiv deyil" + }, + "inactive2faReportDesc": { + "message": "İki mərhələli kimlik təsdiqləmə (2FA), hesablarınızı qorumağınıza kömək etməsi üçün vacib təhlükəsizlik tənzimləməsidir. Veb sayt təklif edirsə, hər zaman iki mərhələli kimlik təsdiqləməsini fəallaşdırmalısınız." + }, + "inactive2faFound": { + "message": "2FA olmayan hesablar tapıldı" + }, + "inactive2faFoundDesc": { + "message": "Anbarınızda (\"2fa.directory\"ə uyğun olaraq) iki mərhələli kimlik təsdiqləmə ilə konfiqurasiya edilmədiyini düşündüyümüz $COUNT$ veb sayt tapdıq. Bu hesabları daha çox qorumaq üçün iki mərhələli kimlik təsdiqləməsini fəallaşdırmalısınız.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Anbarınızda iki mərhələli kimlik təsdiqləmə konfiqurasiyası əskik olan heç bir veb sayt tapılmadı." + }, + "instructions": { + "message": "Təlimatlar" + }, + "exposedPasswordsReport": { + "message": "Parolların hesabatı ifşa olundu" + }, + "exposedPasswordsReportDesc": { + "message": "İfşa olunmuş parollar, ictimai olaraq yayımlanmış və ya xakerlər tərəfindən \"dark web\"də satılmış kimi bilinən məlumat pozuntusunda aşkarlanan parollardır." + }, + "exposedPasswordsFound": { + "message": "İfşa olunmuş parollar tapıldı" + }, + "exposedPasswordsFoundDesc": { + "message": "Anbarınızda, bilinən məlumat pozuntusunda parolları ifşa olunmuş $COUNT$ element tapdıq. Yeni bir parol istifadə etməzdən əvvəl onları dəyişdirməlisiniz.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Anbarınızda heç bir elementin, bilinən məlumat pozuntusunda ifşa olunmuş parollar yoxdur." + }, + "checkExposedPasswords": { + "message": "İfşa olunmuş parolları yoxla" + }, + "exposedXTimes": { + "message": "$COUNT$ dəfə ifşa olunub", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Zəif parol hesabatı" + }, + "weakPasswordsReportDesc": { + "message": "Zəif şifrələr, xakerlər və şifrələri qırmaq üçün istifadə olunan avtomatik alətlər tərəfindən asanlıqla təxmin edilə bilər. Bitwarden şifrə yaradıcı, güclü şifrələr yaratmağınıza kömək edə bilər." + }, + "weakPasswordsFound": { + "message": "Zəif şifrə tapıldı" + }, + "weakPasswordsFoundDesc": { + "message": "Anbarınızda, şifrələri güclü olmayan $COUNT$ element tapdıq. Güclü şifrələr istifadə etmək üçün onları yeniləməlisiniz.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Anbarınızdakı heç bir elementin zəif parolu yoxdur." + }, + "reusedPasswordsReport": { + "message": "Təkrar istifadə edilmiş parolların hesabatı" + }, + "reusedPasswordsReportDesc": { + "message": "İstifadə etdiyiniz bir xidmət təhlükə altındadırsa, eyni parolu başqa yerdə təkrar istifadə etmək, xakerlərin onlayn hesabınızlarınız daha çoxuna asanlıqla müraciət əldə etməsinə şərait yaradır. Hər hesab və ya xidmət üçün unikal bir parol istifadə etməlisiniz." + }, + "reusedPasswordsFound": { + "message": "Təkrar istifadə olunmuş parollar tapıldı" + }, + "reusedPasswordsFoundDesc": { + "message": "Anbarınızda təkrar istifadə edilən $COUNT$ parol tapdıq. Onları unikal bir dəyərlə dəyişdirməlisiniz.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Anbarınızda heç bir hesabda təkrar istifadə olunan parollar yoxdur." + }, + "reusedXTimes": { + "message": "$COUNT$ dəfə təkrar istifadə olunub", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Məlumatların pozuntusu hesabatı" + }, + "breachDesc": { + "message": "\"Pozuntu\", bir saytın verilənlərinə xakerlər tərəfindən qanunsuz bir formada müraciət edildiyi və daha sonra ictimai olaraq yayımlandığı bir hadisədir. Ələ keçirilmiş verilənlərin növlərini (e-poçt, ünvan, şifrələr, kredit kartları və s.) nəzərdən keçirin və parolların dəyidirilməsi kimi müvafiq addımları atın." + }, + "breachCheckUsernameEmail": { + "message": "İstifadə etdiyiniz istifadəçi adlarını və ya e-poçt ünvanlarını yoxlayın." + }, + "checkBreaches": { + "message": "Pozuntuları yoxla" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ bilinən heç bir məlumat pozuntusunda tapılmadı.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Xəbərlər yaxşıdır", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ $COUNT$ fərqli onlayn məlumat pozuntusunda tapıldı.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Pozulan hesablar tapıldı" + }, + "compromisedData": { + "message": "Ələ keçirilmiş verilənlər" + }, + "website": { + "message": "Veb sayt" + }, + "affectedUsers": { + "message": "Təsirlənən istifadəçilər" + }, + "breachOccurred": { + "message": "Pozuntu baş verdi" + }, + "breachReported": { + "message": "Pozuntu bildirildi" + }, + "reportError": { + "message": "Hesabatı yükləməyə çalışarkən bir xəta baş verdi. Yenidən sınayın" + }, + "billing": { + "message": "Faktura" + }, + "accountCredit": { + "message": "Hesab krediti", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Hesab balansı", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Kredit əlavə et", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Məbləğ", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Əlavə edilən kredit, ödəniş tam emal olunandan sonra hesabınızda görünəcək. Bəzi ödəniş metodları gecikir və emalı digərlərinə nisbətən daha uzun çəkə bilər." + }, + "makeSureEnoughCredit": { + "message": "Zəhmət olmasa bu satın alma üçün hesabınızda yetərli qədər kredit olduğuna əmin olun. Hesabınızda yetərli kredit yoxdursa, fərq üçün fayldakı ilkin ödəniş metodunuz istifadə edilir. Hesabınıza, faktura səhifəsindən kredit əlavə edə bilərsiniz." + }, + "creditAppliedDesc": { + "message": "Hesabınızın krediti, satın alma üçün istifadə oluna bilər. Əlçatan istənilən kredit, bu hesab üçün yaradılan fakturalara avtomatik tətbiq ediləcək." + }, + "goPremium": { + "message": "\"Premium\"a keçin", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "\"Premium\"a yüksəltdiniz." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Hesabınızı premium üzvlüyə yüksəldin və bəzi möhtəşəm əlavə özəlliklərin kilidini açın." + }, + "premiumSignUpStorage": { + "message": "Fayl qoşmaları üçün 1 GB şifrələnmiş saxlama sahəsi." + }, + "premiumSignUpTwoStep": { + "message": "YubiKey, FIDO U2F və Duo kimi iki mərhələli giriş seçimləri." + }, + "premiumSignUpEmergency": { + "message": "Fövqəladə vəziyyət müraciəti" + }, + "premiumSignUpReports": { + "message": "Anbarınızın təhlükəsiyini təmin etmək üçün parol gigiyenası, hesab sağlamlığı və verilənlərin pozulması hesabatları." + }, + "premiumSignUpTotp": { + "message": "Anbarınızdakı hesablar üçün TOTP təsdiqləmə kodu (2FA) yaradıcısı." + }, + "premiumSignUpSupport": { + "message": "Prioritet müştəri dəstəyi." + }, + "premiumSignUpFuture": { + "message": "Bütün gələcək premium özəlliklər. Daha çoxu tezliklə!" + }, + "premiumPrice": { + "message": "Hamısı sadəcə ildə $PRICE$!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Əlavələr" + }, + "premiumAccess": { + "message": "Premium müraciət" + }, + "premiumAccessDesc": { + "message": "Təşkilatınızın bütün üzvlərinə premium müraciət əlavə edə bilərsiniz: $PRICE$/$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Əlavə saxlama sahəsi (GB)" + }, + "additionalStorageGbDesc": { + "message": "#/əlavə GB" + }, + "additionalStorageIntervalDesc": { + "message": "Planınızda $SIZE$ şifrələnmiş fayl saxlama sahəsi var. GB/$INTERVAL$ başına $PRICE$ qarşılığında əlavə saxlama sahəsi əlavə edə bilərsiniz.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "İcmal" + }, + "total": { + "message": "Cəmi" + }, + "year": { + "message": "il" + }, + "month": { + "message": "ay" + }, + "monthAbbr": { + "message": "ay", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Ödəniş metodunuz ilə dərhal ödəniş alınacaq və hər il müntəzəm olaraq ödəniş alınacaq. İstədiyiniz vaxt imtina edə bilərsiniz." + }, + "paymentCharged": { + "message": "Ödəniş metodunuz ilə dərhal ödəniş alınacaq və hər $INTERVAL$ müntəzəm olaraq ödəniş alınacaq. İstədiyiniz vaxt imtina edə bilərsiniz.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Planınızda 7 günlük ödənişsiz sınaq var. Sınaq müddəti bitənə qədər ödəniş metodundan pul çıxılmayacaq. Faktura, hər $INTERVAL$ bir müntəzəm olaraq icra ediləcək. İstənilən vaxt imtina edə bilərsiniz." + }, + "paymentInformation": { + "message": "Ödəniş məlumatı" + }, + "billingInformation": { + "message": "Faktura məlumatı" + }, + "creditCard": { + "message": "Kredit kartı" + }, + "paypalClickSubmit": { + "message": "PayPal hesabınıza giriş etmək üçün PayPal düyməsinə klikləyin, ardından Göndər düyməsinə klikləyərək davam edin." + }, + "cancelSubscription": { + "message": "Abunəlikdən imtina" + }, + "subscriptionCanceled": { + "message": "Abunəliyiniz ləğv edildi." + }, + "pendingCancellation": { + "message": "Ləğvi gözlənilir" + }, + "subscriptionPendingCanceled": { + "message": "Abunəlik, hazırkı faktura dövrünün sonunda ləğv edilməsi üçün işarələndi." + }, + "reinstateSubscription": { + "message": "Abunəliyi əvvəlki halına qaytar" + }, + "reinstateConfirmation": { + "message": "Gözləyən imtina tələbini çıxartmaq və abunəliyini əvvəlki halına qaytarmaq istədiyinizə əminsiniz?" + }, + "reinstated": { + "message": "Abunəliyiniz əvvəlki halına qaytarıldı." + }, + "cancelConfirmation": { + "message": "İmtina etmək istədiyinizə əminsiniz? Bu faktura dövrünün sonunda bu abunəliyin bütün özəlliklərinə müraciəti itirəcəksiniz." + }, + "canceledSubscription": { + "message": "Abunəliyiniz ləğv edildi." + }, + "neverExpires": { + "message": "Heç vaxt bitmir" + }, + "status": { + "message": "Vəziyyət" + }, + "nextCharge": { + "message": "Növbəti ödəniş" + }, + "details": { + "message": "Təfsilatlar" + }, + "downloadLicense": { + "message": "Lisenziyanı endir" + }, + "updateLicense": { + "message": "Lisenziyanı yenilə" + }, + "updatedLicense": { + "message": "Lisenziyanı yeniləndi" + }, + "manageSubscription": { + "message": "Abunəliyi idarə et" + }, + "storage": { + "message": "Saxlama" + }, + "addStorage": { + "message": "Saxlama sahəsi əlavə et" + }, + "removeStorage": { + "message": "Saxlama sahəsini çıxart" + }, + "subscriptionStorage": { + "message": "Abunəliyinizdə cəmi $MAX_STORAGE$ GB şifrələnmiş fayl saxlama sahəsi var. Hazırda $USED_STORAGE$ istifadə edirsiniz.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Ödəniş metodu" + }, + "noPaymentMethod": { + "message": "Qeydə alınmış ödəniş metodu yoxdur." + }, + "addPaymentMethod": { + "message": "Ödəniş metodu əlavə et" + }, + "changePaymentMethod": { + "message": "Ödəniş metodunu dəyişdir" + }, + "invoices": { + "message": "Fakturalar" + }, + "noInvoices": { + "message": "Faktura yoxdur." + }, + "paid": { + "message": "Ödənilib", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Ödənilməyib", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Əməliyyatlar", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Əməliyyat yoxdur." + }, + "chargeNoun": { + "message": "Ödəniş", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Geri qaytarma", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Bütün ödənişlər, bəyanatınızda $STATEMENT_NAME$ kimi görünəcək.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB saxlamaya əlavə et" + }, + "gbStorageRemove": { + "message": "GB saxlamadan çıxart" + }, + "storageAddNote": { + "message": "Saxlama sahəsi əlavə etmək, fakturanın cəmində dəyişikliklərə səbəb olacaq və dərhal hesab ödəniş metodunuzdan çıxılacaq. İlk çıxılacaq hesab, hazırkı faktura dövrünün qalanı üçün etibarlı olacaq." + }, + "storageRemoveNote": { + "message": "Saxlama sahəsinin çıxarılması, növbəti faktura ödənişinizə kredit kimi görünəcək faktura cəminizdə dəyişikliklərə səbəb olacaq." + }, + "adjustedStorage": { + "message": "Nizamlanmış $AMOUNT$ GB saxlama sahəsi.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Müştəri dəstəyi ilə əlaqə" + }, + "updatedPaymentMethod": { + "message": "Ödəniş metodu yeniləndi." + }, + "purchasePremium": { + "message": "Premium satın al" + }, + "licenseFile": { + "message": "Lisenziya faylı" + }, + "licenseFileDesc": { + "message": "Lisenziya faylınız $FILE_NAME$ adına bənzər adlandırılacaq", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Hesabınızın premium üzvlüyünü yüksəltmək üçün etibarlı bir lisenziya faylı yükləməlisiniz." + }, + "uploadLicenseFileOrg": { + "message": "Öz-özünə sahiblik edən təşkilat yaratmaq üçün etibarlı bir lisenziya faylı yükləməlisiniz." + }, + "accountEmailMustBeVerified": { + "message": "Hesabınızın e-poçt ünvanı təsdiqlənməlidir." + }, + "newOrganizationDesc": { + "message": "Təşkilatlar, anbarınızın hissələrini başqaları ilə paylaşmağınıza, ailə, kiçik komanda və ya böyük şirkət kimi müəyyən bir varlıq üçün əlaqəli istifadəçiləri idarə etməyinizə icazə verir." + }, + "generalInformation": { + "message": "Ümumi məlumat" + }, + "organizationName": { + "message": "Təşkilat adı" + }, + "accountOwnedBusiness": { + "message": "Bu hesab bir biznesə aiddir." + }, + "billingEmail": { + "message": "Faktura e-poçtu" + }, + "businessName": { + "message": "Biznes adı" + }, + "chooseYourPlan": { + "message": "Planınızı seçin" + }, + "users": { + "message": "İstifadəçilər" + }, + "userSeats": { + "message": "İstifadəçi yeri" + }, + "additionalUserSeats": { + "message": "Əlavə istifadəçi yerləri" + }, + "userSeatsDesc": { + "message": "İstifadəçi sayı" + }, + "userSeatsAdditionalDesc": { + "message": "Planınızda $BASE_SEATS$ istifadəçi yeri var. İstifadəçiləri, istifadəçi/ay başına $SEAT_PRICE$ qarşılığında əlavə edə bilərsiniz.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Neçə istifadəçi yerinə ehtiyac var? Lazım gəlsə daha sonra yenə yerlər əlavə edə bilərsiniz." + }, + "planNameFree": { + "message": "Ödənişsiz", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Digər $COUNT$ istifadəçi ilə paylaşmaq üzrə test və ya fərdi istifadəçilər üçün.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Ailə" + }, + "planDescFamilies": { + "message": "Fərdi istifadə üçün, ailəniz və dostlarınızla paylaşın." + }, + "planNameTeams": { + "message": "Komandalar" + }, + "planDescTeams": { + "message": "Biznes və digər komanda təşkilatları üçün." + }, + "planNameEnterprise": { + "message": "Müəssisə" + }, + "planDescEnterprise": { + "message": "Biznes və digər böyük təşkilatlar üçün." + }, + "freeForever": { + "message": "Həmişə ödənişsiz" + }, + "includesXUsers": { + "message": "$COUNT$ istifadəçi ehtiva edir", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Əlavə istifadəçilər" + }, + "costPerUser": { + "message": "İstifadəçi başına $COST$", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "$COUNT$ istifadəçi ilə limitlidir (siz də daxil)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "$COUNT$ kolleksiya ilə limitlidir", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "$COUNT$ istifadəçiyə qədər əlavə edin və paylaşın", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Limitsiz istifadəçi əlavə et və paylaş" + }, + "createUnlimitedCollections": { + "message": "Limitsiz kolleksiya yarat" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ şifrələnmiş fayl saxlama sahəsi", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Öz-özünə sahiblik etmə (ixtiyari)" + }, + "usersGetPremium": { + "message": "İstifadəçilər, premium özəlliklərə müraciət edə bilər" + }, + "controlAccessWithGroups": { + "message": "Qruplar ilə istifadəçi müraciətinə nəzarət et" + }, + "syncUsersFromDirectory": { + "message": "İstifadəçiləri və qrupları bir kataloqdan eyniləşdirin" + }, + "trackAuditLogs": { + "message": "İstifadəçi hərəkətlərini audit jurnalı ilə izləyin" + }, + "enforce2faDuo": { + "message": "Duo ilə 2FA-nı məcburi et" + }, + "priorityCustomerSupport": { + "message": "Prioritet müştəri dəstəyi" + }, + "xDayFreeTrial": { + "message": "$COUNT$ gün ödənişsiz sınaq, istənilən vaxt imtina edin", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Aylıq" + }, + "annually": { + "message": "İllik" + }, + "basePrice": { + "message": "Baza qiyməti" + }, + "organizationCreated": { + "message": "Təşkilat yaradıldı" + }, + "organizationReadyToGo": { + "message": "Yeni təşkilatınız hazırdır!" + }, + "organizationUpgraded": { + "message": "Təşkilatınız yüksəldildi." + }, + "leave": { + "message": "Tərk et" + }, + "leaveOrganizationConfirmation": { + "message": "Bu təşkilatı tərk etmək istədiyinizə əminsiniz?" + }, + "leftOrganization": { + "message": "Təşkilatı tərk etdiniz." + }, + "defaultCollection": { + "message": "İlkin kolleksiya" + }, + "getHelp": { + "message": "Kömək alın" + }, + "getApps": { + "message": "Tətbiqi endir" + }, + "loggedInAs": { + "message": "Giriş edildi" + }, + "eventLogs": { + "message": "Tədbir jurnalı" + }, + "people": { + "message": "İnsanlar" + }, + "policies": { + "message": "Siyasətlər" + }, + "singleSignOn": { + "message": "Tək daxil olma" + }, + "editPolicy": { + "message": "Siyasətə düzəliş et" + }, + "groups": { + "message": "Qruplar" + }, + "newGroup": { + "message": "Yeni qrup" + }, + "addGroup": { + "message": "Qrup əlavə et" + }, + "editGroup": { + "message": "Qrupa düzəliş et" + }, + "deleteGroupConfirmation": { + "message": "Bu qrupu silmək istədiyinizə əminsiniz?" + }, + "removeUserConfirmation": { + "message": "Bu istifadəçini çıxartmaq istədiyinizə əminsiniz?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Xəbərdarlıq! Bu istifadəçi, şifrələmələrini idarə etmək üçün Açar Bağlayıcı tələb edir. Bu istifadəçini təşkilatınızdan silsəniz, hesabı birdəfəlik sıradan çıxarılacaq. Bu əməliyyatın geri dönüşü yoxdur. Davam etmək istəyirsiniz?" + }, + "externalId": { + "message": "Xarici kimlik" + }, + "externalIdDesc": { + "message": "Xarici kimlik, referans olaraq və ya bu mənbəni istifadəçi kataloqu kimi xarici bir sistemə bağlamaq üçün istifadə edilir." + }, + "accessControl": { + "message": "Müraciət nəzarəti" + }, + "groupAccessAllItems": { + "message": "Bu qrup, bütün elementlərə müraciət edə və onları dəyişdirə bilər." + }, + "groupAccessSelectedCollections": { + "message": "Bu qrup, yalnız seçilmiş kolleksiyalara müraciət edə bilər." + }, + "readOnly": { + "message": "Yalnız-oxunan" + }, + "newCollection": { + "message": "Yeni kolleksiya" + }, + "addCollection": { + "message": "Kolleksiya əlavə et" + }, + "editCollection": { + "message": "Kolleksiyaya düzəliş et" + }, + "deleteCollectionConfirmation": { + "message": "Bu kolleksiyanı silmək istədiyinizə əminsiniz?" + }, + "editUser": { + "message": "İstifadəçiyə düzəliş et" + }, + "inviteUser": { + "message": "İstifadəçini dəvət et" + }, + "inviteUserDesc": { + "message": "Aşağıda Bitwarden hesabının e-poçt ünvanını daxil edərək təşkilatınıza yeni bir istifadəçi dəvət edə bilərsiniz. Əgər Bitwarden hesabı yoxdursa, yeni bir hesab yaratmaları üçün istək göndəriləcək." + }, + "inviteMultipleEmailDesc": { + "message": "E-poçt siyahısını vergüllə ayıraraq bir dəfəyə $COUNT$ istifadəçi dəvət edə bilərsiniz.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Bu istifadəçinin hesabını qorumaq üçün iki mərhələli giriş istifadə edilir." + }, + "userAccessAllItems": { + "message": "Bu istifadəçi bütün elementlərə müraciət edə və onları dəyişdirə bilər." + }, + "userAccessSelectedCollections": { + "message": "Bu istifadəçi, yalnız seçilmiş kolleksiyalara müraciət edə bilər." + }, + "search": { + "message": "Axtar" + }, + "invited": { + "message": "Dəvət edildi" + }, + "accepted": { + "message": "Qəbul edildi" + }, + "confirmed": { + "message": "Təsdiqləndi" + }, + "clientOwnerEmail": { + "message": "Müştəri sahibi e-poçtu" + }, + "owner": { + "message": "Sahiblik" + }, + "ownerDesc": { + "message": "Təşkilatınızın bütün aspektlərini idarə edə bilər yüksək müraciətə malik istifadəçi." + }, + "clientOwnerDesc": { + "message": "Bu istifadəçi, təchizatçıdan müstəqil olmalıdır. Təchizatçının təşkilatla əlaqəsi kəsilsə, bu istifadəçi, təşkilatının sahibliyini davam etdirəcək." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Adminlər təşkilatınızdakı bütün elementlərə, kolleksiyalara və istifadəçilərə müraciət edə və onları idarə edə bilər." + }, + "user": { + "message": "İstifadəçi" + }, + "userDesc": { + "message": "Təşkilatınızda təyin edilmiş kolleksiyalara müraciəti olan müntəzəm bir istifadəçi." + }, + "manager": { + "message": "İdarəçi" + }, + "managerDesc": { + "message": "Təşkilatınızda təyin edilən kolleksiyalara müraciət edə və ya onları idarə edə bilər." + }, + "all": { + "message": "Hamısı" + }, + "refresh": { + "message": "Təzələ" + }, + "timestamp": { + "message": "Vaxt möhürü" + }, + "event": { + "message": "Tədbir" + }, + "unknown": { + "message": "Bilinməyən" + }, + "loadMore": { + "message": "Daha çox yüklə" + }, + "mobile": { + "message": "Mobil", + "description": "Mobile app" + }, + "extension": { + "message": "Genişləndirmə", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Masaüstü", + "description": "Desktop app" + }, + "webVault": { + "message": "Veb anbar" + }, + "loggedIn": { + "message": "Giriş edildi." + }, + "changedPassword": { + "message": "Hesab parolu dəyişdirildi." + }, + "enabledUpdated2fa": { + "message": "İki mərhələli giriş fəallaşdırıldı/yeniləndi." + }, + "disabled2fa": { + "message": "İki mərhələli giriş sıradan çıxarıldı." + }, + "recovered2fa": { + "message": "İki mərhələli girişdən hesab bərpa edildi." + }, + "failedLogin": { + "message": "Yanlış parol ilə giriş etmə cəhdi uğursuz oldu." + }, + "failedLogin2fa": { + "message": "Yanlış iki mərhələli giriş ilə giriş etmə cəhdi uğursuz oldu." + }, + "exportedVault": { + "message": "Anbar ixrac edildi." + }, + "exportedOrganizationVault": { + "message": "Təşkilat anbarı ixrac edildi." + }, + "editedOrgSettings": { + "message": "Təşkilat tənzimləmələrinə düzəliş edildi." + }, + "createdItemId": { + "message": "$ID$ elementi yaradıldı.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "$ID$ elementinə düzəliş edildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "$ID$ elementi tullantı qutusuna göndərildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "$ID$ elementi bir təşkilata daşındı.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "$ID$ elementinə baxıldı.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "$ID$ elementi üçün parola baxıldı.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "$ID$ elementi üçün gizli sahəyə baxıldı.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "$ID$ elementi üçün təhlükəsizlik koduna baxıldı.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "$ID$ elementi üçün parol kopyalandı.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "$ID$ elementi üçün gizli sahə kopyalandı.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "$ID$ elementi üçün təhlükəsizlik kodu kopyalandı.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "$ID$ elementi avto-dolduruldu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "$ID$ kolleksiyası yaradıldı.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "$ID$ kolleksiyasına düzəliş edildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "$ID$ kolleksiyası silindi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "$ID$ siyasətinə düzəliş edildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "$ID$ qrupu yaradıldı.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "$ID$ qrupuna düzəliş edildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "$ID$ qrupu silindi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "$ID$ istifadəçisi çıxarıldı.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "$ID$ elementi üçün qoşma yaradıldı.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "$ID$ elementi üçün qoşma silindi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "$ID$ elementi üçün kolleksiyalara düzəliş edildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "$ID$ istifadəçisi dəvət edildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "$ID$ istifadəçisi təsdiqləndi.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "$ID$ istifadəçisinə düzəliş edildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "$ID$ istifadəçisi üçün qruplara düzəliş edildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "$ID$ istifadəçisi üçün SSO əlaqəsi kəsildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "$ID$ təşkilatı yaradıldı.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "$ID$ təşkilatı əlavə edildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "$ID$ təşkilatı silindi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "$ID$ təşkilatının anbarına müraciət edildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Cihaz" + }, + "view": { + "message": "Bax" + }, + "invalidDateRange": { + "message": "Etibarsız vaxt aralığı." + }, + "errorOccurred": { + "message": "Bir xəta baş verdi." + }, + "userAccess": { + "message": "İstifadəçi müraciəti" + }, + "userType": { + "message": "İstifadəçi növü" + }, + "groupAccess": { + "message": "Qrup müraciəti" + }, + "groupAccessUserDesc": { + "message": "Bu istifadəçinin aid olduğu üçün qruplara düzəliş et." + }, + "invitedUsers": { + "message": "İstifadəçi(lər) dəvət edildi." + }, + "resendInvitation": { + "message": "Dəvəti yenidən göndər" + }, + "resendEmail": { + "message": "E-poçtu təkrar göndər" + }, + "hasBeenReinvited": { + "message": "$USER$ yenidən dəvət edildi.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Təsdiqlə" + }, + "confirmUser": { + "message": "İstifadəçini təsdiqlə" + }, + "hasBeenConfirmed": { + "message": "$USER$ təsdiqləndi.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "İstifadəçiləri təsdiqlə" + }, + "usersNeedConfirmed": { + "message": "Onların dəvətini qəbul edən istifadəçiləriniz var, ancaq hələ də təsdiqlənməlidir. İstifadəçilər, təsdiqlənənə qədər təşkilata müraciət edə bilməz." + }, + "startDate": { + "message": "Başlanğıc tarixi" + }, + "endDate": { + "message": "Bitmə tarixi" + }, + "verifyEmail": { + "message": "E-poçtu təsdiqlə" + }, + "verifyEmailDesc": { + "message": "Bütün özəlliklərə müraciət etmək üçün e-poçt ünvanınızı təsdiqləməlisiniz." + }, + "verifyEmailFirst": { + "message": "Əvvəlcə hesabınızın e-poçt ünvanı təsdiqlənməlidir." + }, + "checkInboxForVerification": { + "message": "Təsdiqləmə bağlantısı üçün e-poçt gələn qutunuzu yoxlayın." + }, + "emailVerified": { + "message": "E-poçtunuz təsdiqləndi." + }, + "emailVerifiedFailed": { + "message": "E-poçtunuz təsdiqlənə bilmir. Yeni bir təsdiqləmə e-poçtu göndərməyə çalışın." + }, + "emailVerificationRequired": { + "message": "E-poçt təsdiqləməsi tələb olunur" + }, + "emailVerificationRequiredDesc": { + "message": "Bu özəlliyi istifadə etmək üçün e-poçtunuzu təsdiqləməlisiniz." + }, + "updateBrowser": { + "message": "Səyyahı yenilə" + }, + "updateBrowserDesc": { + "message": "Dəstəklənməyən bir veb səyyah istifadə edirsiniz. Veb anbar düzgün işləməyə bilər." + }, + "joinOrganization": { + "message": "Təşkilata qoşul" + }, + "joinOrganizationDesc": { + "message": "Yuxarıdakı təşkilata qoşulmaq üçün dəvət edildiniz. Dəvəti qəbul etmək üçün Bitwarden hesabına giriş etməli və ya yeni bir hesab yaratmalısınız." + }, + "inviteAccepted": { + "message": "Dəvət qəbul edildi" + }, + "inviteAcceptedDesc": { + "message": "Administrator üzvlüyünüzü təsdiqlədikdən sonra bu təşkilata müraciət edə bilərsiniz. Bu baş verəndə sizə bir e-poçt göndərəcəyik." + }, + "inviteAcceptFailed": { + "message": "Dəvət qəbul edilə bilmədi. Təşkilat adminindən yeni bir dəvət göndərməsini xahiş edin." + }, + "inviteAcceptFailedShort": { + "message": "Dəvət qəbul edilə bilmədi. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "E-poçtu xatırla" + }, + "recoverAccountTwoStepDesc": { + "message": "Hesabınıza normal iki mərhələli giriş metodları ilə müraciət edə bilmirsinizsə, hesabınızdakı bütün iki mərhələli təchizatçıları sıradan çıxartmaq üçün iki mərhələli giriş bərpa kodunuzu istifadə edə bilərsiniz." + }, + "recoverAccountTwoStep": { + "message": "İki mərhələli giriş ilə hesabı bərpa edin" + }, + "twoStepRecoverDisabled": { + "message": "İki mərhələli giriş, hesabınızda sıradan çıxarıldı." + }, + "learnMore": { + "message": "Daha ətraflı" + }, + "deleteRecoverDesc": { + "message": "Hesabınızı bərpa etmək və silmək üçün e-poçtunuzu daxil edin." + }, + "deleteRecoverEmailSent": { + "message": "Əgər hesabınız mövcuddursa, daha çox təlimat ehtiva edən bir e-poçt göndərəcəyik." + }, + "deleteRecoverConfirmDesc": { + "message": "Bitwarden hesabınızı silmək üçün tələb göndərdiniz. Təsdiqləmək üçün aşağıdakı düyməyə basın." + }, + "myOrganization": { + "message": "Təşkilatım" + }, + "deleteOrganization": { + "message": "Təşkilatı sil" + }, + "deletingOrganizationContentWarning": { + "message": "$ORGANIZATION$ təşkilatının və bütün əlaqəli verilənlərinin silinməsini təsdiqləmək üçün ana parolu daxil edin. $ORGANIZATION$ anbar verilənləri bunları ehtiva edir:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Silmə prosesindən sonra istifadəçi hesabları aktiv qalacaq, ancaq bu təşkilatla əlaqəli olmayacaq." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "$ORGANIZATION$ təşkilatının silinməsi daimi və geri qaytarıla bilməyən prosesdir.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Təşkilat silindi" + }, + "organizationDeletedDesc": { + "message": "Təşkilat və əlaqəli bütün verilənləri silindi." + }, + "organizationUpdated": { + "message": "Təşkilat yeniləndi" + }, + "taxInformation": { + "message": "Vergi məlumatı" + }, + "taxInformationDesc": { + "message": "ABŞ daxili müştərilə üçün, vergi tələblərini qarşılamaq üçün ZIP kod tələb olunur, digər ölkələr üçün ixtiyari olaraq fakturalarınızda görünməsi üçün vergi eyniləşdirmə nömrəsi (ƏDV/GST) və/və ya ünvanı qeyd edə bilərsiniz." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Planı dəyişdir", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Aşağıdakı məlumatları qeyd edərək hesabınızı başqa bir plana yüksəldin. Zəhmət olmasa hesaba aktiv bir ödəniş metodu əlavə etdiyinizə əmin olun.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Faktura nömrəsi: $NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Fakturaya bax" + }, + "downloadInvoice": { + "message": "Fakturanı endir" + }, + "verifyBankAccount": { + "message": "Bank hesabını təsdiqlə" + }, + "verifyBankAccountDesc": { + "message": "Bank hesabınıza iki ədəd mikro depozit qoyduq (görünməsi 1-2 iş günü çəkə bilər). Bankınızı təsdiqləmək üçün bu məbləğləri daxil edin." + }, + "verifyBankAccountInitialDesc": { + "message": "Bank hesabı ilə ödəniş yalnız ABŞ-dakı müştərilə üçün əlçatandır. Bank hesabınızı təsdiqləməyiniz tələb olunacaq. Növbəti 1-2 iş günü ərzində iki ədəd mikro depozit qoyacağıq. Bank hesabınızı təsdiqləməyiniz üçün bu məbləğləri təşkilatınızın faktura səhifəsində daxil edin." + }, + "verifyBankAccountFailureWarning": { + "message": "Bank hesabınızın təsdiqlənməməsi, ödənişin edilməməsinə və abunəliyinizin sıradan çıxarılmasına səbəb olacaq." + }, + "verifiedBankAccount": { + "message": "Bank hesabı təsdiqləndi." + }, + "bankAccount": { + "message": "Bank hesabı" + }, + "amountX": { + "message": "Məbləğ: $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Yönləndirmə nömrəsi", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Hesab nömrəsi" + }, + "accountHolderName": { + "message": "Hesab sahibinin adı" + }, + "bankAccountType": { + "message": "Hesab növü" + }, + "bankAccountTypeCompany": { + "message": "Şirkət (iş)" + }, + "bankAccountTypeIndividual": { + "message": "Fərdi (Şəxsi)" + }, + "enterInstallationId": { + "message": "Quraşdırma kimlik nömrənizi daxil edin" + }, + "limitSubscriptionDesc": { + "message": "Abunəliyiniz üçün bir limit müəyyən edin. Bu limitə çatanda, yeni istifadəçiləri dəvət edə bilməyəcəksiniz." + }, + "maxSeatLimit": { + "message": "Maksimum yer limiti (ixtiyari)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Maksimum mümkün yer qiyməti" + }, + "addSeats": { + "message": "Yer əlavə et", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Yeri götür", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Abunəliyinizə edilən düzəlişlər, faktura cəminizdə nisbətli dəyişikliklərlə nəticələnəcək. Yeni dəvət edilən istifadəçilər abunəlik yerlərini aşsa, əlavə istifadəçilər üçün nisbətli ödəniş dərhal alınacaq." + }, + "subscriptionUserSeats": { + "message": "Abunəliyiniz cəmi $COUNT$ istifadəçiyə icazə verir.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit abunəliyi (ixtiyari)" + }, + "subscriptionSeats": { + "message": "Abunəlik yerləri" + }, + "subscriptionUpdated": { + "message": "Abunəlik yeniləndi" + }, + "additionalOptions": { + "message": "Əlavə seçimlər" + }, + "additionalOptionsDesc": { + "message": "Abunəliyin idarə edilməsi üzrə əlavə kömək üçün zəhmət olmasa Müştəri Dəstəyi ilə əlaqə saxlayın." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Abunəliyinizə edilən düzəlişlər, faktura cəminizdə nisbətli dəyişikliklərlə nəticələnəcək. Yeni dəvət edilən istifadəçilər abunəlik yerlərini aşsa, əlavə istifadəçilər üçün nisbətli ödəniş dərhal alınacaq." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Abunəliyinizə edilən düzəlişlər, faktura cəminizdə nisbətli dəyişikliklərlə nəticələnəcək. Yeni dəvət edilən istifadəçilər abunəlik yerlərini aşsa, $MAX$ yer limitinə çatana qədər əlavə istifadəçilər üçün nisbətli ödəniş dərhal alınacaq.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Planınızı yüksəltmədən $COUNT$ istifadəçidən çoxunu dəvət edə bilməzsiniz.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Planınızı yüksəltmədən $COUNT$ istifadəçidən çoxunu dəvət edə bilməzsiniz. Zəhmət olmasa yüksəltmək üçün Müştəri Dəstəyi ilə əlaqə saxlayın.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Abunəliyiniz cəmi $COUNT$ istifadəçiyə icazə verir. Planınız, sponsorludur və xarici bir təşkilata ödənilir.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Abunəliyinizə edilən düzəlişlər, faktura cəminizdə nisbətli dəyişikliklərlə nəticələnəcək. Abunəlik yerlərinizi artırmadan $COUNT$ istifadəçidən çoxunu dəvət edə bilməzsiniz.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Əlavə ediləcək yerlər" + }, + "seatsToRemove": { + "message": "Götürüləcək yerlər" + }, + "seatsAddNote": { + "message": "İstifadəçi yerləri əlavə etmək, fakturanın cəmində dəyişikliklərə səbəb olacaq və dərhal hesab ödəniş metodunuzdan çıxılacaq. İlk çıxılacaq hesab, hazırkı faktura dövrünün qalanı üçün etibarlı olacaq." + }, + "seatsRemoveNote": { + "message": "İstifadəçi yerlərinin götürülməsi, növbəti faktura ödənişinizə kredit kimi görünəcək faktura cəminizdə dəyişikliklərə səbəb olacaq." + }, + "adjustedSeats": { + "message": "$AMOUNT$ istifadəçi yeri nizamlandı.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Açar yeniləndi" + }, + "updateKeyTitle": { + "message": "Açarı yenilə" + }, + "updateEncryptionKey": { + "message": "Şifrələmə açarını yenilə" + }, + "updateEncryptionKeyShortDesc": { + "message": "Hal-hazırda köhnə bir şifrələmə sxemi istifadə edirsiniz." + }, + "updateEncryptionKeyDesc": { + "message": "Daha yaxşı təhlükəsizlik və daha yeni özəlliklərə müraciəti təmin edən daha böyük şifrələmə açarlarına keçdik. Şifrələmə açarınızı yeniləmək sürətli və asandır. Sadəcə aşağıda ana parolunuzu yazın. Bu yeniləmə, nəticədə məcburi olacaq." + }, + "updateEncryptionKeyWarning": { + "message": "Şifrələmə açarını yenilədikdən sonra, hazırda istifadə etdiyiniz (mobil tətbiq və ya səyyah genişləndirmələri kimi) bütün Bitwarden tətbiqlərində çıxış edib yenidən giriş etməlisiniz. Çıxış edib təkrar giriş etməmək (yeni şifrələmə açarının endirilməsi prosesi) verilənlərin zədələnməsi ilə nəticələnə bilər. Avtomatik olaraq çıxış etməyə çalışacağıq, bu gecikə bilər." + }, + "updateEncryptionKeyExportWarning": { + "message": "Saxladığınız bütün şifrələmə ixracları da etibarsız olacaq." + }, + "subscription": { + "message": "Abunəlik" + }, + "loading": { + "message": "Yüklənir" + }, + "upgrade": { + "message": "Yüksəlt" + }, + "upgradeOrganization": { + "message": "Təşkilatı yüksəlt" + }, + "upgradeOrganizationDesc": { + "message": "Bu özəllik, ödənişsiz təşkilatlar üçün əlçatan deyil. Daha çox özəlliyin kilidini açmaq üçün ödənişli plana keçin." + }, + "createOrganizationStep1": { + "message": "Təşkilat yaratma: 1-ci addım" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Təşkilat yaratmazdan əvvəl, ödənişsiz bir fərdi hesab açmalısınız." + }, + "refunded": { + "message": "Geri qaytarıldı" + }, + "nothingSelected": { + "message": "Heç nə seçmədiniz." + }, + "acceptPolicies": { + "message": "Bu qutunu işarələyərək aşağıdakılarla razılaşırsınız:" + }, + "acceptPoliciesError": { + "message": "Xidmət Şərtləri və Gizlilik Siyasəti qəbul edilməyib." + }, + "termsOfService": { + "message": "Xidmət Şərtləri" + }, + "privacyPolicy": { + "message": "Gizlilik Siyasəti" + }, + "filters": { + "message": "Filtrlər" + }, + "vaultTimeout": { + "message": "Anbara müraciət bitəcək" + }, + "vaultTimeoutDesc": { + "message": "Anbara müraciətin bitəcəyi vaxtı seçin və seçilən əməliyyatı icra edin." + }, + "oneMinute": { + "message": "1 dəqiqə" + }, + "fiveMinutes": { + "message": "5 dəqiqə" + }, + "fifteenMinutes": { + "message": "15 dəqiqə" + }, + "thirtyMinutes": { + "message": "30 dəqiqə" + }, + "oneHour": { + "message": "1 saat" + }, + "fourHours": { + "message": "4 saat" + }, + "onRefresh": { + "message": "Səyyah təzələnəndə" + }, + "dateUpdated": { + "message": "Yeniləndi", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Parol yeniləndi", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Təşkilat sıradan çıxarıldı." + }, + "licenseIsExpired": { + "message": "Lisenziyanın vaxtı bitib." + }, + "updatedUsers": { + "message": "İstifadəçilər yeniləndi" + }, + "selected": { + "message": "Seçildi" + }, + "ownership": { + "message": "Sahiblik" + }, + "whoOwnsThisItem": { + "message": "Bu elementin sahibi kimdir?" + }, + "strong": { + "message": "Güclü", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Yaxşı", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Zəif", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Çox Zəif", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Zəif ana parol" + }, + "weakMasterPasswordDesc": { + "message": "Seçdiyiniz ana parol zəifdir. Bitwarden hesabınızı daha yaxşı qorumaq üçün güclü bir ana parol (və ya uzun ifadə) istifadə etməlisiniz. Bu ana parol istifadə etmək istədiyinizə əminsiniz?" + }, + "rotateAccountEncKey": { + "message": "Həmçinin hesabımın şifrələmə açarını da döndər" + }, + "rotateEncKeyTitle": { + "message": "Şifrələmə açarını döndər" + }, + "rotateEncKeyConfirmation": { + "message": "Hesabınızın şifrələmə açarını döndərmək istədiyinizə əminsiniz?" + }, + "attachmentsNeedFix": { + "message": "Bu element, düzəldilməli köhnə fayl qoşmalarını ehtiva edir." + }, + "attachmentFixDesc": { + "message": "Bu, düzəldilməli köhnə bir fayl qoşmasıdır. Daha ətraflı öyrənmək üçün klikləyin." + }, + "fix": { + "message": "Düzəlt", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Hesabınızın şifrələmə açarını döndərməzdən əvvəl, anbarınızdakı köhnə fayl qoşmalarını düzəltməlisiniz." + }, + "yourAccountsFingerprint": { + "message": "Hesabınızın barmaq izi ifadəsi", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Şifrələmə açarlarının bütövlüyünü təmin etmək üçün, davam etməzdən əvvəl istifadəçinin barmaq izi ifadəsini təsdiqləyin.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Barmaq izi ifadəsini təkrar soruşma", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Ödənişsiz", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API açar" + }, + "apiKeyDesc": { + "message": "API açarınız Bitwarden ictimai API-sini təsdiqləmək üçün istifadə edilə bilər." + }, + "apiKeyRotateDesc": { + "message": "API açarı döndərmək, əvvəlki açarı etibarsız edəcək. Hazırkı açarın artıq təhlükəsiz olmadığına inanırsınızsa, API açarınızı döndərə bilərsiniz." + }, + "apiKeyWarning": { + "message": "API açarınızın təşkilata tam müraciəti var. Gizli saxlanılmalıdır." + }, + "userApiKeyDesc": { + "message": "API açarınız Bitwarden CLI-sini təsdiqləmək üçün istifadə edilə bilər." + }, + "userApiKeyWarning": { + "message": "API açarınız, alternativ bir kimlik təsdiqləmə mexanizmidir. Gizli saxlanılmalıdır." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 müştəri məlumatları", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "API açarına bax" + }, + "rotateApiKey": { + "message": "API açarını döndər" + }, + "selectOneCollection": { + "message": "Ən azı bir kolleksiya seçməlisiniz." + }, + "couldNotChargeCardPayInvoice": { + "message": "Kartınızdan ödənişi ala bilmədik. Zəhmət olmasa aşağıda siyahılanan ödənilməmiş fakturanı göstərin və ödəyin." + }, + "inAppPurchase": { + "message": "Tətbiq daxili satın alma" + }, + "cannotPerformInAppPurchase": { + "message": "Tətbiq daxili satın alma metodunu istifadə edərkən bu əməliyyatı icra edə bilməzsiniz." + }, + "manageSubscriptionFromStore": { + "message": "Abunəliyinizi tətbiq daxili satın almanı etdiyiniz mağazadan idarə etməlisiniz." + }, + "minLength": { + "message": "Minimal uzunluq" + }, + "clone": { + "message": "Klonla" + }, + "masterPassPolicyDesc": { + "message": "Ana parol gücü üçün minimum tələbləri tənzimlə." + }, + "twoStepLoginPolicyDesc": { + "message": "İstifadəçilərin fərdi hesablarında \"iki mərhələli giriş\"i istifadə etmələrini məcburi et." + }, + "twoStepLoginPolicyWarning": { + "message": "Sahib və ya Administrator olmayan və fərdi hesablarında \"iki mərhələli giriş\"i fəallaşdırmayan təşkilat üzvləri təşkilatdan çıxarılacaq və dəyişiklik haqqında onları məlumatlandıran e-poçt göndəriləcək." + }, + "twoStepLoginPolicyUserWarning": { + "message": "İstifadəçi hesabında \"iki mərhələli giriş\"in fəallaşdırılmasını tələb edən təşkilatın üzvüsünüz. İki mərhələli giriş təchizatçılarının hamısını sıradan çıxartsanız, bu təşkilatdan avtomatik olaraq çıxarılacaqsınız." + }, + "passwordGeneratorPolicyDesc": { + "message": "Parol yaradıcı konfiqurasiyası üçün minimum tələbləri tənzimləyin." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Bir və ya daha çox təşkilat siyasətləri yaradıcı seçimlərinizə təsir edir." + }, + "masterPasswordPolicyInEffect": { + "message": "Bir və ya daha çox təşkilat siyasəti, aşağıdakı tələbləri qarşılamaq üçün ana parolunuzu tələb edir:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum mürəkkəblik xalı: $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum uzunluq: $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Bir və ya daha çox böyük hərf ehtiva etməlidir" + }, + "policyInEffectLowercase": { + "message": "Bir və ya daha çox kiçik hərf ehtiva etməlidir" + }, + "policyInEffectNumbers": { + "message": "Bir və ya daha çox rəqəm ehtiva etməlidir" + }, + "policyInEffectSpecial": { + "message": "Bu özəl simvollardan biri və ya daha çoxunu ehtiva etməlidir: $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Yeni ana parolunuz siyasət tələblərini qarşılamır." + }, + "minimumNumberOfWords": { + "message": "Minimum söz sayı" + }, + "defaultType": { + "message": "İlkin növ" + }, + "userPreference": { + "message": "İstifadəçi tərcihi" + }, + "vaultTimeoutAction": { + "message": "Anbara müraciət vaxtının bitmə əməliyyatı" + }, + "vaultTimeoutActionLockDesc": { + "message": "Kilidli bir anbar, təkrar müraciət etmək üçün ana parolunuzu yenidən yazmağınızı tələb edir." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Çıxış edilmiş bir anbar, təkrar müraciət etmək üçün yenidən kimlik təsdiqləmə tələb edir." + }, + "lock": { + "message": "Kilidlə", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Tullantı qutusu", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Tullantı qutusunda axtar" + }, + "permanentlyDelete": { + "message": "Birdəfəlik sil" + }, + "permanentlyDeleteSelected": { + "message": "Seçiləni birdəfəlik sil" + }, + "permanentlyDeleteItem": { + "message": "Elementi birdəfəlik sil" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Bu elementi birdəfəlik silmək istədiyinizə əminsiniz?" + }, + "permanentlyDeletedItem": { + "message": "Element birdəfəlik silindi" + }, + "permanentlyDeletedItems": { + "message": "Elementlər birdəfəlik silindi" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Birdəfəlik silmək üçün $COUNT$ element seçdiniz. Onların hamısını birdəfəlik silmək istədiyinizə əminsiniz?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "$ID$ elementi birdəfəlik silindi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Bərpa et" + }, + "restoreSelected": { + "message": "Seçiləni bərpa et" + }, + "restoreItem": { + "message": "Elementi bərpa et" + }, + "restoredItem": { + "message": "Element bərpa edildi" + }, + "restoredItems": { + "message": "Elementlər bərpa edildi" + }, + "restoreItemConfirmation": { + "message": "Elementi bərpa etmək istədiyinizə əminsiniz?" + }, + "restoreItems": { + "message": "Elementləri bərpa et" + }, + "restoreSelectedItemsDesc": { + "message": "Bərpa üçün $COUNT$ element seçdiniz. Onların hamısını bərpa etmək istədiyinizə əminsiniz?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "$ID$ elementi bərpa edildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Çıxış edəndə, anbarınıza bütün müraciətiniz dayanacaq və vaxt bitməsindən sonra onlayn kimlik təsdiqləməsi tələb olunacaq. Bu tənzimləməni istifadə etmək istədiyinizə əminsiniz?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Vaxt bitmə əməliyyat təsdiqi" + }, + "hidePasswords": { + "message": "Parolları gizlət" + }, + "countryPostalCodeRequiredDesc": { + "message": "Bu məlumatları sadəcə satış vergisinin hesablanması və maliyyə hesabatları üçün tələb edirik." + }, + "includeVAT": { + "message": "ƏDV məlumatını daxil et (ixtiyari)" + }, + "taxIdNumber": { + "message": "ƏDV vergi kimlik nömrəsi" + }, + "taxInfoUpdated": { + "message": "Vergi məlumatlarınız yeniləndi." + }, + "setMasterPassword": { + "message": "Ana parolu tənzimlə" + }, + "ssoCompleteRegistration": { + "message": "SSO ilə giriş prosesini tamamlamaq üçün zəhmət olmasa anbarınıza müraciət etmək və onu qorumaq üçün bir ana parol tənzimləyin." + }, + "identifier": { + "message": "İdentifikator" + }, + "organizationIdentifier": { + "message": "Təşkilat identifikatoru" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Təşkilatınızın tək daxil olma portalını istifadə edərək giriş edin. Başlatmaq üçün zəhmət olmasa təşkilatınızın identifikatorunu daxil edin." + }, + "enterpriseSingleSignOn": { + "message": "Müəssisə üçün tək daxil olma" + }, + "ssoHandOff": { + "message": "Bu vərəqi indi bağlayıb genişləndirmədə davam edə bilərsiniz." + }, + "includeAllTeamsFeatures": { + "message": "Bütün komanda özəllikləri, əlavə olaraq:" + }, + "includeSsoAuthentication": { + "message": "SAML2.0 və OpenID Connect SSO Kimlik təsdiqləmə" + }, + "includeEnterprisePolicies": { + "message": "Müəssisə siyasətləri" + }, + "ssoValidationFailed": { + "message": "SSO təsdiqləmə uğursuz oldu" + }, + "ssoIdentifierRequired": { + "message": "Təşkilat identifikatoru tələb olunur." + }, + "unlinkSso": { + "message": "SSO əlaqəsini kəs" + }, + "unlinkSsoConfirmation": { + "message": "Bu təşkilat üçün SSO əlaqəsini kəsmək istədiyinizə əminsiniz?" + }, + "linkSso": { + "message": "SSO bağlantısını yarat" + }, + "singleOrg": { + "message": "Tək təşkilat" + }, + "singleOrgDesc": { + "message": "İstifadəçilərin digər təşkilatlara qoşulmasını məhdudlaşdırın." + }, + "singleOrgBlockCreateMessage": { + "message": "Hazırkı təşkilatınızın, bir neçə təşkilata qoşulmasına icazə verməyən bir siyasəti var. Zəhmət olmasa təşkilat adminləri ilə əlaqə saxlayın və ya fərqli bir Bitwarden hesabı ilə qeydiyyatdan keçin." + }, + "singleOrgPolicyWarning": { + "message": "Sahib və ya administrator olmayan və hal-hazırda başqa bir təşkilatın üzvü olan istifadəçilər təşkilatınızdan çıxarılacaq." + }, + "requireSso": { + "message": "Tək daxil olma kimlik təsdiqləməsi" + }, + "requireSsoPolicyDesc": { + "message": "İstifadəçilərin müəssisə kimi \"tək daxil olma\" metodu ilə giriş etməsini məcburi edin." + }, + "prerequisite": { + "message": "Ön şərt" + }, + "requireSsoPolicyReq": { + "message": "\"Tək təşkilat\" müəssisə siyasəti, bu siyasəti aktivləşdirməzdən əvvəl fəallaşdırılmalıdır." + }, + "requireSsoPolicyReqError": { + "message": "Tək təşkilat siyasəti fəal deyil." + }, + "requireSsoExemption": { + "message": "Təşkilat sahibləri və administratorlar, bu siyasətin tətbiq edilməsindən azaddırlar." + }, + "sendTypeFile": { + "message": "Fayl" + }, + "sendTypeText": { + "message": "Mətn" + }, + "createSend": { + "message": "Yeni \"Send\" yarat", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "\"Send\"ə düzəliş et", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send yaradıldı", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "\"Send\"ə düzəliş edildi", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send silindi", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "\"Send\"i sil", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Bu \"Send\"i silmək istədiyinizə əminsiniz?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "\"Send\"in növü nədir?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Silinmə tarixi" + }, + "deletionDateDesc": { + "message": "\"Send\" göstərilən tarix və saatda birdəfəlik silinəcək.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Bitmə tarixi" + }, + "expirationDateDesc": { + "message": "Əgər tənzimlənsə, göstərilən tarix və vaxtda \"Send\"ə müraciət başa çatacaq.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maksimal müraciət sayı" + }, + "maxAccessCountDesc": { + "message": "Əgər tənzimlənsə, istifadəçilər maksimal müraciət sayına çatdıqdan sonra bu \"Send\"ə müraciət edə bilməyəcək.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Hazırkı müraciət sayı" + }, + "sendPasswordDesc": { + "message": "İstəyinizə görə istifadəçilərdən bu \"Send\"ə müraciət edərkən parol tələb edə bilərsiniz.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Bu \"Send\" ilə bağlı gizli qeydlər.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Sıradan çıxarıldı" + }, + "sendLink": { + "message": "\"Send\" bağlantısı", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "\"Send\" bağlantısını kopyala", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Parolu çıxart" + }, + "removedPassword": { + "message": "Parol çıxarıldı" + }, + "removePasswordConfirmation": { + "message": "Parolu çıxartmaq istədiyinizə əminsiniz?" + }, + "hideEmail": { + "message": "E-poçt ünvanımı alıcılardan gizlət." + }, + "disableThisSend": { + "message": "Heç kimin müraciət edə bilməməsi üçün bu \"Send\"i sıradan çıxart.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Bütün \"Send\"lər" + }, + "maxAccessCountReached": { + "message": "Maksimal müraciət sayına çatıldı", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Silinməsi gözlənilir" + }, + "expired": { + "message": "Müddəti bitib" + }, + "searchSends": { + "message": "\"Send\"ləri axtar", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Bu \"Send\" şifrə ilə qorunur. Davam etmək üçün zəhmət olmasa aşağıda parolu yazın.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Şifrəni bilmirsiniz? Bu \"Send\"ə müraciət etmək üçün parolu göndərən şəxsdən istəyin.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Bu \"send\" ilkin olaraq gizlidir. Aşağıdakı düyməni istifadə edərək görünməni dəyişdirə bilərsiniz.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Faylı endir" + }, + "sendAccessUnavailable": { + "message": "Müraciət etməyə çalışdığınız Send yoxdur və ya artıq əlçatmazdır.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Bu \"Send\" ilə əlaqəli fayl tapıla bilmədi.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Siyahılanacaq heç bir \"Send\" yoxdur.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Fövqəladə vəziyyət müraciəti" + }, + "emergencyAccessDesc": { + "message": "Etibar etdiyiniz şəxslərə fövqəladə vəziyyət müraciəti verin və ya idarə edin. Etibar etdiyiniz şəxslər, fövqəladə vəziyyətdə hesabınızı görmək və ya təhvil almaq üçün müraciət tələb edə bilər. Sıfır məlumat paylaşımının necə işlədiyi ilə bağlı daha ətraflı və təfsilatlı məlumat üçün kömək səhifəmizi ziyarət edin." + }, + "emergencyAccessOwnerWarning": { + "message": "Bir və ya daha çox təşkilata sahiblik edirsiniz. Fövqəladə vəziyyət üçün təyin olunmuş şəxsə təhvil alma müraciəti versəniz, təhvil almadan sonra sahib olduğunuz bütün hüquqları istifadə edə bilər." + }, + "trustedEmergencyContacts": { + "message": "Etibar edilən fövqəladə vəziyyət əlaqələri" + }, + "noTrustedContacts": { + "message": "Hələ ki, heç bir fövqəladə vəziyyət əlaqəsi əlavə etmədiniz, başlamaq üçün etibar etdiyiniz bir əlaqəni dəvət edin." + }, + "addEmergencyContact": { + "message": "Fövqəladə vəziyyət əlaqəsi əlavə et" + }, + "designatedEmergencyContacts": { + "message": "Fövqəladə vəziyyət əlaqəsi kimi təyin edildi" + }, + "noGrantedAccess": { + "message": "Hələ ki, heç kimi fövqəladə vəziyyət əlaqəsi kimi təyin etmədiniz." + }, + "inviteEmergencyContact": { + "message": "Fövqəladə vəziyyət əlaqəsi üçün dəvət" + }, + "editEmergencyContact": { + "message": "Fövqəladə vəziyyət əlaqəsinə düzəliş et" + }, + "inviteEmergencyContactDesc": { + "message": "Aşağıda Bitwarden hesabının e-poçt ünvanını daxil edərək yeni bir fövqəladə vəziyyət əlaqəsini dəvət edə bilərsiniz. Əgər Bitwarden hesabı yoxdursa, yeni bir hesab yaratmaları üçün istək göndəriləcək." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Fövqəladə vəziyyət müraciəti başladıldı" + }, + "emergencyAccessRecoveryApproved": { + "message": "Fövqəladə vəziyyət müraciəti təsdiqləndi" + }, + "viewDesc": { + "message": "Anbarınızdakı bütün elementlərə baxa bilər." + }, + "takeover": { + "message": "Təhvil alma" + }, + "takeoverDesc": { + "message": "Yeni bir ana parol ilə hesabınızı sıfırlaya bilər." + }, + "waitTime": { + "message": "Gözləmə vaxtı" + }, + "waitTimeDesc": { + "message": "Müraciətə avtomatik icazə verilməzdən əvvəlki tələb olunan vaxt." + }, + "oneDay": { + "message": "1 gün" + }, + "days": { + "message": "$DAYS$ gün", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Dəvət edilən istifadəçi." + }, + "acceptEmergencyAccess": { + "message": "Yuxarıdakı istifadəçi üçün fövqəladə vəziyyət zamanı əlaqə qurulacaq şəxs olaraq dəvət edildiniz. Dəvəti qəbul etmək üçün Bitwarden hesabına giriş etməli və ya yeni bir hesab yaratmalısınız." + }, + "emergencyInviteAcceptFailed": { + "message": "Dəvət qəbul edilə bilmədi. İstifadəçidən yeni bir dəvət göndərməsini xahiş edin." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Dəvət qəbul edilə bilmədi. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Kimliyiniz təsdiqləndikdən sonra bu istifadəçi üçün fövqəladə vəziyyət seçimlərinə müraciət edə bilərsiniz. Bu baş verəndə sizə bir e-poçt göndərəcəyik." + }, + "requestAccess": { + "message": "Müraciət tələb et" + }, + "requestAccessConfirmation": { + "message": "Fövqəladə vəziyyət müraciəti üçün tələb göndərmək istədiyinizə əminsiniz? İstifadəçi tələbi əllə qəbul etdikdən və ya $WAITTIME$ gün keçdikdən sonra müraciət təmin ediləcək.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "$USER$ istifadəçisinə fövqəladə vəziyyət müraciəti göndərildi. Davam etmək mümkün olanda, sizi e-poçtla məlumatlandıracağıq.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Təsdiqlə" + }, + "reject": { + "message": "Rədd et" + }, + "approveAccessConfirmation": { + "message": "Fövqəladə vəziyyət müraciətini təsdiqləmək istədiyinizə əminsiniz? Bu, $USER$ istifadəçisinə hesabınızda $ACTION$ əməliyyatlarını icra etmə icazəsi verəcək.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Fövqəladə vəziyyət müraciəti təsdiqləndi." + }, + "emergencyRejected": { + "message": "Fövqəladə vəziyyət müraciəti rədd edildi" + }, + "passwordResetFor": { + "message": "$USER$ üçün parol sıfırlandı. Artıq yeni parol ilə giriş edə bilərsiniz.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Fərdi sahiblik" + }, + "personalOwnershipPolicyDesc": { + "message": "Fərdi sahiblik seçimini çıxardaraq istifadəçilərin anbar elementlərini bir təşkilatda saxlamalarını məcburi edin." + }, + "personalOwnershipExemption": { + "message": "Təşkilat sahibləri və administratorlar, bu siyasətin tətbiq edilməsindən azaddırlar." + }, + "personalOwnershipSubmitError": { + "message": "Müəssisə siyasətinə görə, elementləri şəxsi anbarınızda saxlamağınız məhdudlaşdırılıb. Sahiblik seçimini təşkilat olaraq dəyişdirin və mövcud kolleksiyalar arasından seçim edin." + }, + "disableSend": { + "message": "\"Send\"i sıradan çıxart" + }, + "disableSendPolicyDesc": { + "message": "İstifadəçilərin Bitwarden Send yaratmasına və ya ona düzəliş etməsinə icazə vermə. Mövcud \"Send\"in silinməsinə hələ də icazə verilir.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Təşkilatın siyasətlərini idarə edə bilən təşkilat istifadəçiləri bu siyasətin tətbiqindən azaddırlar." + }, + "sendDisabled": { + "message": "Send sıradan çıxarıldı", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Müəssisə siyasətinə görə, yalnız mövcud \"Send\"i silə bilərsiniz.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send seçimləri", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "\"Send\" yaratma və düzəliş etmə üçün seçimləri tənzimləyin.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Təşkilatın siyasətlərini idarə edə bilən təşkilat istifadəçiləri bu siyasətin tətbiqindən azaddırlar." + }, + "disableHideEmail": { + "message": "\"Send\" yaradarkən və ya ona düzəliş edərkən istifadəçilərin e-poçt ünvanlarını alıcılardan gizlətməsinə icazə verməyin.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Aşağıdakı təşkilat siyasətləri hal-hazırda qüvvədədir:" + }, + "sendDisableHideEmailInEffect": { + "message": "\"Send\" yaradarkən və ya ona düzəliş edərkən istifadəçilərin e-poçt ünvanlarını alıcılardan gizlətməsinə icazə verilmir.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "$ID$ siyasətinə düzəliş edildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan qiyməti" + }, + "estimatedTax": { + "message": "Təxmini vergi" + }, + "custom": { + "message": "Özəl" + }, + "customDesc": { + "message": "Qabaqcıl konfiqurasiya üçün istifadəçi icazələrinin daha təfsilatlı nəzarətinə icazə verər." + }, + "permissions": { + "message": "İcazələr" + }, + "accessEventLogs": { + "message": "Tədbir jurnalına müraciət" + }, + "accessImportExport": { + "message": "İdxal/ixrac müraciəti" + }, + "accessReports": { + "message": "Hesabatlara müraciət" + }, + "missingPermissions": { + "message": "Bu əməliyyatı icra etmək üçün lazımi icazələri əldə etməmisiniz." + }, + "manageAllCollections": { + "message": "Bütün kolleksiyaları idarə et" + }, + "createNewCollections": { + "message": "Yeni kolleksiya yarat" + }, + "editAnyCollection": { + "message": "İstənilən kolleksiyaya düzəliş et" + }, + "deleteAnyCollection": { + "message": "İstənilən kolleksiyanı sil" + }, + "manageAssignedCollections": { + "message": "Təyin edilmiş kolleksiyaları idarə et" + }, + "editAssignedCollections": { + "message": "Təyin edilmiş kolleksiyalara düzəliş et" + }, + "deleteAssignedCollections": { + "message": "Təyin edilmiş kolleksiyaları sil" + }, + "manageGroups": { + "message": "Qrupları idarə et" + }, + "managePolicies": { + "message": "Siyasətləri idarə et" + }, + "manageSso": { + "message": "SSO idarəsi" + }, + "manageUsers": { + "message": "İstifadəçiləri idarə et" + }, + "manageResetPassword": { + "message": "\"Parol sıfırlama\"nı idarə et" + }, + "disableRequiredError": { + "message": "Bu siyasətin sıradan çıxarıla bilməsi üçün $POLICYNAME$ siyasətini əllə sıradan çıxartmalısınız.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Bir təşkilat siyasəti, sahiblik seçimlərinizə təsir edir." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "Bir təşkilatın siyasəti, elementlərin fərdi anbarınıza idxal edilməsini sıradan çıxartdı." + }, + "personalOwnershipCheckboxDesc": { + "message": "Təşkilat istifadəçiləri üçün fərdi sahibliyi sıradan çıxart" + }, + "textHiddenByDefault": { + "message": "\"Send\"ə müraciət edəndə ilkin olaraq mətni gizlədin", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Bu \"Send\"i açıqlayan bir ad.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Göndərmək istədiyiniz mətn." + }, + "sendFileDesc": { + "message": "Göndərmək istədiyiniz fayl." + }, + "copySendLinkOnSave": { + "message": "Saxladıqdan sonra bu \"Send\"in paylaşma bağlantısını lövhəmə kopyala." + }, + "sendLinkLabel": { + "message": "\"Send\" bağlantısı", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "\"Bitwarden Send\" həssas, müvəqqəti məlumatlarına başqa şəxslərə asan və təhlükəsiz göndərilməsini təmin edir.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Daha ətraflı öyrən", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Mətn və ya faylları birbaşa hər kəslə paylaşın." + }, + "sendVaultCardLearnMore": { + "message": "Daha ətraflı", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "bax", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "necə işləyir", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "və ya", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "indi sınayın", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "və ya", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "qeydiyyatdan keçin", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "bu gün sınamaq üçün.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "$USER_IDENTIFIER$ Bitwarden istifadəçisi aşağıdakıları sizinlə paylaşdı", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Bu \"Send\"i yaradan Bitwarden istifadəçisi e-poçt ünvanını gizlətməyi seçdi. İstifadə etməzdən və ya endirməzdən əvvəl bu bağlantının mənbəyinin etibarlı olduğuna əmin olmalısınız.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Göstərilən son istifadə tarixi etibarsızdır." + }, + "deletionDateIsInvalid": { + "message": "Göstərilən silinmə tarixi etibarsızdır." + }, + "expirationDateAndTimeRequired": { + "message": "Son istifadə tarixi və vaxtı lazımdır." + }, + "deletionDateAndTimeRequired": { + "message": "Silinmə tarixi və vaxtı lazımdır." + }, + "dateParsingError": { + "message": "Silinmə və son istifadə tarixlərini saxlayarkən xəta baş verdi." + }, + "webAuthnFallbackMsg": { + "message": "2FA-nı təsdiqləmək üçün zəhmət olmasa aşağıdakı düyməyə klikləyin." + }, + "webAuthnAuthenticate": { + "message": "WebAuthn təsdiqləmə" + }, + "webAuthnNotSupported": { + "message": "WebAuthn bu səyyahda dəstəklənmir." + }, + "webAuthnSuccess": { + "message": "WebAuthn uğurla təsdiqləndi! Bu vərəqi bağlaya bilərsiniz." + }, + "hintEqualsPassword": { + "message": "Parol məsləhəti, parolunuzla eyni ola bilməz." + }, + "enrollPasswordReset": { + "message": "\"Parol sıfırlama\" üzrə qeydiyyat" + }, + "enrolledPasswordReset": { + "message": "\"Parol sıfırlama\" üzrə qeydiyyat tamamlandı" + }, + "withdrawPasswordReset": { + "message": "\"Parol sıfırlama\"dan çıx" + }, + "enrollPasswordResetSuccess": { + "message": "Qeydiyyat uğurludur!" + }, + "withdrawPasswordResetSuccess": { + "message": "Çıxma uğurludur!" + }, + "eventEnrollPasswordReset": { + "message": "$ID$ istifadəçisi parol sıfırlama dəstəyi üçün qeydiyyatdan keçdi.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "$ID$ istifadəçisi parol sıfırlama dəstəyindən çıxdı.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "$ID$ istifadəçisi üçün ana parol sıfırlama.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "$ID$ istifadəçisi üçün SSO bağlantısını sıfırla", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$, ilk dəfə Sso istifadə edərək giriş etdi", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Parol sıfırlama" + }, + "resetPasswordLoggedOutWarning": { + "message": "Davam etsəniz, $NAME$ üçün hazırkı seans bitəcək, təkrar giriş etməsi tələb olunacaq. Digər cihazlardakı aktiv seanslar, bir saata qədər aktiv qalmağa davam edə bilər.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "bu istifadəçi" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Bir və ya daha çox təşkilat siyasəti, aşağıdakı tələbləri qarşılamaq üçün ana parolu tələb edir:" + }, + "resetPasswordSuccess": { + "message": "Parol sıfırlama uğurludur!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Qeydiyyat, təşkilat administratorlarına ana parolunuzu dəyişdirmə icazəsi verəcək. Qeydiyyatdan keçmək istədiyinizə əminsiniz?" + }, + "resetPasswordPolicy": { + "message": "Ana parol sıfırlama" + }, + "resetPasswordPolicyDescription": { + "message": "Təşkilatdakı administratorların, təşkilat istifadəçilərinin ana parolu sıfırlamağına icazə verin." + }, + "resetPasswordPolicyWarning": { + "message": "Administratorların ana parolları sıfırlaya bilməsi üçün təşkilatdakı istifadəçilər öz-özünə və ya avtomatik olaraq qeydiyyatdan keçməlidir." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Avtomatik qeydiyyat" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Dəvətləri qəbul edən kimi bütün istifadəçilər avtomatik olaraq \"parol sıfırlama\"da qeydiyyata alınacaq." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Hal-hazırda təşkilatdakı istifadəçilər, \"parol sıfırlama\"da retroaktiv (geriyə yönələn) olaraq qeydiyyata alınmayacaq. Administratorlar ana parollarını sıfırlaya bilməsi üçün öz-özünə qeydiyyatdan keçməlidirilər." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Yeni istifadəçiləri avtomatik qeydiyyata al" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Bu təşkilat, sizi \"parol sıfırlama\"da avtomatik olaraq qeydiyyata alan müəssisə siyasətinə sahibdir. Qeydiyyat, təşkilat administratorlarına ana parolunuzu dəyişdirmə icazəsi verəcək." + }, + "resetPasswordOrgKeysError": { + "message": "\"Təşkilat açarları\" cavabı boşdur" + }, + "resetPasswordDetailsError": { + "message": "\"Parol təfsilatlarını sıfırla\" cavabı boşdur" + }, + "trashCleanupWarning": { + "message": "Tullantı qutusunda 30 gündən çox qalan elementlər avtomatik silinəcək." + }, + "trashCleanupWarningSelfHosted": { + "message": "Tullantı qutusunda bir müddət qalan elementlər avtomatik silinəcək." + }, + "passwordPrompt": { + "message": "Ana parolu təkrar soruş" + }, + "passwordConfirmation": { + "message": "Ana parol təsdiqi" + }, + "passwordConfirmationDesc": { + "message": "Bu əməliyyat qorumalıdır, davam etmək üçün zəhmət olmasa kimliyinizi təsdiqləmək üçün ana parolunuzu təkrar daxil edin." + }, + "reinviteSelected": { + "message": "Dəvətləri yenidən göndər" + }, + "noSelectedUsersApplicable": { + "message": "Bu əməliyyat, seçilən istifadəçilərin heç biri üçün etibarlı deyil." + }, + "removeUsersWarning": { + "message": "Aşağıdakı istifadəçiləri çıxartmaq istədiyinizə əminsiniz? Bu prosesin tamamlanması bir neçə saniyə çəkir, ləğv edilə və ya dayandırıla bilməz." + }, + "theme": { + "message": "Tema" + }, + "themeDesc": { + "message": "Veb anbarınız üçün bir tema seçin." + }, + "themeSystem": { + "message": "Sistem temasını istifadə et" + }, + "themeDark": { + "message": "Tünd" + }, + "themeLight": { + "message": "Açıq" + }, + "confirmSelected": { + "message": "Seçiləni təsdiqlə" + }, + "bulkConfirmStatus": { + "message": "Toplu əməliyyat vəziyyəti" + }, + "bulkConfirmMessage": { + "message": "Uğurla təsdiqləndi." + }, + "bulkReinviteMessage": { + "message": "Uğurla yenidən dəvət edildi." + }, + "bulkRemovedMessage": { + "message": "Uğurla çıxarıldı" + }, + "bulkFilteredMessage": { + "message": "İstisna edildi, bu əməliyyat üçün etibarlı deyil." + }, + "fingerprint": { + "message": "Barmaq izi" + }, + "removeUsers": { + "message": "İstifadəçiləri çıxart" + }, + "error": { + "message": "Xəta" + }, + "resetPasswordManageUsers": { + "message": "\"İstifadəçiləri idarə et\", \"Parol sıfırlanmasını idarə et\" icazəsi ilə də fəallaşdırılmalıdır" + }, + "setupProvider": { + "message": "Təchizatçı quraşdırması" + }, + "setupProviderLoginDesc": { + "message": "Yeni bir təchizatçı quraşdırılması üçün dəvət edildiniz. Davam etmək üçün yeni bir Bitwarden hesabı açın və ya mövcud hesaba giriş edin." + }, + "setupProviderDesc": { + "message": "Təchizatçının quraşdırılmasını tamamlamaq üçün zəhmət olmasa aşağıdakı məlumatları daxil edin. Sual yaranarsa, müştəri dəstəyi ilə əlaqə saxlayın." + }, + "providerName": { + "message": "Təchizatçı adı" + }, + "providerSetup": { + "message": "Təchizatçı quraşdırıldı." + }, + "clients": { + "message": "Müştərilər" + }, + "providerAdmin": { + "message": "Təchizatçı admini" + }, + "providerAdminDesc": { + "message": "Təchizatçınızın bütün aspektlərini idarə edə bilən, həmçinin müştəri təşkilatlarına müraciət edə və onları idarə edə bilən ən yüksək müraciətə sahib istifadəçi." + }, + "serviceUser": { + "message": "Xidmət istifadəçisi" + }, + "serviceUserDesc": { + "message": "Xidmət istifadəçisi, bütün müştəri təşkilatlarına müraciət edə və onları idarə edə bilər." + }, + "providerInviteUserDesc": { + "message": "Aşağıda Bitwarden hesabının e-poçt ünvanını daxil edərək təchizatçınıza yeni bir istifadəçi dəvət edə bilərsiniz. Əgər Bitwarden hesabı yoxdursa, yeni bir hesab yaratmaları üçün istək göndəriləcək." + }, + "joinProvider": { + "message": "Təchizatçıya qoşul" + }, + "joinProviderDesc": { + "message": "Yuxarıdakı təchizatçıya qoşulmaq üçün dəvət edildiniz. Dəvəti qəbul etmək üçün Bitwarden hesabına giriş etməli və ya yeni bir hesab yaratmalısınız." + }, + "providerInviteAcceptFailed": { + "message": "Dəvət qəbul edilə bilmədi. Təchizatçı adminindən yeni bir dəvət göndərməsini xahiş edin." + }, + "providerInviteAcceptedDesc": { + "message": "Administrator üzvlüyünüzü təsdiqlədikdən sonra bu təchizatçıya müraciət edə bilərsiniz. Bu baş verəndə sizə bir e-poçt göndərəcəyik." + }, + "providerUsersNeedConfirmed": { + "message": "Onların dəvətini qəbul edən istifadəçiləriniz var, ancaq hələ də təsdiqlənməlidir. İstifadəçilər, təsdiqlənənə qədər təchizatçıya müraciət edə bilməz." + }, + "provider": { + "message": "Təchizatçı" + }, + "newClientOrganization": { + "message": "Yeni müştəri təşkilatı" + }, + "newClientOrganizationDesc": { + "message": "Təchizatçı kimi sizinlə əlaqə yaradılacaq yeni bir müştəri təşkilatı yaradın. Bu təşkilata müraciət edə və onu idarə edə biləcəksiniz." + }, + "addExistingOrganization": { + "message": "Mövcud təşkilatı əlavə et" + }, + "myProvider": { + "message": "Təchizatçım" + }, + "addOrganizationConfirmation": { + "message": "$ORGANIZATION$ təşkilatını müştəri olaraq $PROVIDER$ təchizatçısına əlavə etmək istədiyinizə əminsiniz?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Təşkilat, uğurla təchizatçıya əlavə edildi" + }, + "accessingUsingProvider": { + "message": "$PROVIDER$ təchizatçısını istifadə edən təşkilata müraciət edilir", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Təchizatçı sıradan çıxarıldı." + }, + "providerUpdated": { + "message": "Təchizatçı yeniləndi" + }, + "yourProviderIs": { + "message": "Təchizatçınız: $PROVIDER$. Təşkilatınız üçün inzibati və faktura səlahiyyətlərinə sahibdir.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "$ORGANIZATION$ təşkilatı təchizatçınızdan ayrıldı.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Bu təşkilatı ayırmaq istədiyinizə əminsiniz? Təşkilat, mövcudluğunu davam etdirəcək, ancaq təchizatçı tərəfindən idarə edilməyəcək." + }, + "add": { + "message": "Əlavə et" + }, + "updatedMasterPassword": { + "message": "Yenilənmiş ana parol" + }, + "updateMasterPassword": { + "message": "Ana parolu yenilə" + }, + "updateMasterPasswordWarning": { + "message": "Ana parolunuz təzəlikcə təşkilatınızdakı bir administrator tərəfindən dəyişdirildi. Anbara müraciət üçün Ana parolunuzu indi yeniləməlisiniz. Davam etsəniz, hazırkı seansdan çıxış etmiş və təkrar giriş etməli olacaqsınız. Digər cihazlardakı aktiv seanslar bir saata qədər aktiv qalmağa davam edə bilər." + }, + "masterPasswordInvalidWarning": { + "message": "Ana parolunuz bu təşkilatın siyasət tələblərinə cavab vermir. Təşkilata qoşulmaq üçün Ana parolunuzu indi yeniləməlisiniz. Davam etsəniz, hazırkı seansdan çıxış etmiş və təkrar giriş etməli olacaqsınız. Digər cihazlardakı aktiv seanslar bir saata qədər aktiv qalmağa davam edə bilər." + }, + "maximumVaultTimeout": { + "message": "Anbara müraciət bitəcək" + }, + "maximumVaultTimeoutDesc": { + "message": "Bütün istifadəçilər üçün anbara müraciət üzrə maksimum vaxtı konfiqurasiya edin." + }, + "maximumVaultTimeoutLabel": { + "message": "Anbara müraciət üzrə maksimum vaxt" + }, + "invalidMaximumVaultTimeout": { + "message": "Etibarsız vaxt." + }, + "hours": { + "message": "Saat" + }, + "minutes": { + "message": "Dəqiqə" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Təşkilatınızın siyasətləri, anbarınızın vaxt bitişinə təsir edir. Anbar vaxt bitişi üçün icazə verilən maksimum vaxt $HOURS$ saat $MINUTES$ dəqiqədir", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Özəl vaxt" + }, + "vaultTimeoutToLarge": { + "message": "Anbar vaxt bitişi, təşkilatınız tərəfindən tənzimlənən məhdudiyyətləri aşır." + }, + "disablePersonalVaultExport": { + "message": "Fərdi anbarın ixracını sıradan çıxart" + }, + "disablePersonalVaultExportDesc": { + "message": "İstifadəçilərin fərdi anbar verilənlərini ixrac etməsini əngəlləyir." + }, + "vaultExportDisabled": { + "message": "Anbar ixracı sıradan çıxarıldı" + }, + "personalVaultExportPolicyInEffect": { + "message": "Bir və ya daha çox təşkilat siyasəti, fərdi anbarınızı ixrac etməyinizin qarşısını alır." + }, + "selectType": { + "message": "SSO növü seçin" + }, + "type": { + "message": "Növ" + }, + "openIdConnectConfig": { + "message": "OpenID Bağlantı Konfiqurasiyası" + }, + "samlSpConfig": { + "message": "SAML Servis Təchizatçı Konfiqurasiyası" + }, + "samlIdpConfig": { + "message": "SAML Kimlik Təchizatçı Konfiqurasiyası" + }, + "callbackPath": { + "message": "Geri zəng yolu" + }, + "signedOutCallbackPath": { + "message": "Çıxış edilmiş geri zəng yolu" + }, + "authority": { + "message": "Səlahiyyət" + }, + "clientId": { + "message": "Müştəri kimliyi" + }, + "clientSecret": { + "message": "Müştəri sirri" + }, + "metadataAddress": { + "message": "Meta verilənlər ünvanı" + }, + "oidcRedirectBehavior": { + "message": "OIDC yönləndirmə davranışı" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "İstifadəçi məlumatı uc nöqtəsindən iddia edin" + }, + "additionalScopes": { + "message": "Əlavə/Özəl əhatə dairələri (vergüllə ayrıldı)" + }, + "additionalUserIdClaimTypes": { + "message": "Əlavə/Özəl istifadəçi kimliyi tələb növləri (vergüllə ayrıldı)" + }, + "additionalEmailClaimTypes": { + "message": "Əlavə/Özəl e-poçt tələb növləri (vergüllə ayrıldı)" + }, + "additionalNameClaimTypes": { + "message": "Əlavə/Özəl ad tələb növləri (vergüllə ayrıldı)" + }, + "acrValues": { + "message": "Tələb edilən kimlik təsdiqləmə kontekst istinad dəyərləri (acr_values)" + }, + "expectedReturnAcrValue": { + "message": "Cavab olaraq gözlənilən \"acr\" tələb dəyəri (acr təsdiqləməsi)" + }, + "spEntityId": { + "message": "SP Varlıq Kimliyi" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Meta verilənlər URL-si" + }, + "spAcsUrl": { + "message": "İddia İstehlakçı Xidməti (ACS) URL-si" + }, + "spNameIdFormat": { + "message": "Ad kimlik formatı" + }, + "spOutboundSigningAlgorithm": { + "message": "Gedən imzalama alqoritmi" + }, + "spSigningBehavior": { + "message": "İmzalama davranışı" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum gələn imza alqoritmi" + }, + "spWantAssertionsSigned": { + "message": "İddiaların imzalanmasını istəyir" + }, + "spValidateCertificates": { + "message": "Sertifikatları təsdiqlə" + }, + "idpEntityId": { + "message": "Varlıq kimliyi" + }, + "idpBindingType": { + "message": "Bağlanma növü" + }, + "idpSingleSignOnServiceUrl": { + "message": "Tək daxil olma xidmətinin URL-si" + }, + "idpSingleLogoutServiceUrl": { + "message": "Tək çıxış etmə xidmətinin URL-si" + }, + "idpX509PublicCert": { + "message": "X509 İctimai Sertifikat" + }, + "idpOutboundSigningAlgorithm": { + "message": "Gedən imzalama alqoritmi" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "İstənilməyən kimlik təsdiqləmə cavabına icazə ver" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Gedən çıxış tələblərinə icazə ver" + }, + "idpSignAuthenticationRequests": { + "message": "Kimlik təsdiqləmə tələblərini imzala" + }, + "ssoSettingsSaved": { + "message": "Tək daxil olma konfiqurasiyası saxlanıldı." + }, + "sponsoredFamilies": { + "message": "Ödənişsiz Bitwarden Ailələri" + }, + "sponsoredFamiliesEligible": { + "message": "Siz və ailəniz Ödənişsiz Bitwarden Ailələri üçün uyğunsunuz. İşdə olmadığınız vaxtlarda belə verilənlərinizi güvənli saxlamaq üçün özəl e-poçtunuzu istifadə edin." + }, + "sponsoredFamiliesEligibleCard": { + "message": "İşdə olmadığınız vaxtlarda belə verilənlərinizi güvənli saxlamaq üçün Ailələr üçün nəzərdə tutulan Ödənişsiz Bitwarden planını bu gün istifadə edin." + }, + "sponsoredFamiliesInclude": { + "message": "Ailələr üçün Bitwarden planı bunları ehtiva edir" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "6 istifadəçiyə qədər Premium müraciət" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Ailə sirləri üçün paylaşılan kolleksiyalar" + }, + "badToken": { + "message": "Bağlantı artıq etibarlı deyil. Zəhmət olmasa sponsorun təklifi yenidən göndərməsini təmin edin." + }, + "reclaimedFreePlan": { + "message": "Geri alınmış ödənişsiz plan" + }, + "redeem": { + "message": "İstifadə et" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Sponsor olmasını istədiyiniz təşkilatı seçin" + }, + "familiesSponsoringOrgSelect": { + "message": "Hansı Ödənişsiz Ailələr təklifindən faydalanmaq istəyirsiniz?" + }, + "sponsoredFamiliesEmail": { + "message": "\"Bitwarden Ailələri\"ni istifadə etmək üçün özəl e-poçtunuzu daxil edin" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Bu təşkilatı tərk etsəniz və ya bu təşkilatdan çıxarılsanız, Ailələr planınızın istifadə müddəti faktura dövrünün sonunda başa çatacaq." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Mövcud bir təşkilat üçün bir təklifi qəbul edin və ya yeni bir Ailələr təşkilatını yaradın." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Sizə ödənişsiz bir Bitwarden Ailələr Planı Təşkilatı təklif edildi. Davam etmək üçün, təklifi alan hesaba giriş etməlisiniz." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Təklif qəbul edilə bilmir. Zəhmət olmasa müəssisə hesabınızdan təklif e-poçtunu təkrar göndərib yenidən sınayın." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Təklif qəbul edilə bilmir. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "\"Ödənişsiz Bitwarden Ailələri\"ni qəbul et" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Ödənişsiz Bitwarden Ailələri təklifi uğurla istifadə edildi" + }, + "redeemed": { + "message": "İstifadə edildi" + }, + "redeemedAccount": { + "message": "İstifadə edilən hesab" + }, + "revokeAccount": { + "message": "$NAME$ hesabını ləğv et", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Sponsorluq e-poçtunu $NAME$ sponsorluğuna təkrar göndər", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Ödənişsiz Ailələr Planı" + }, + "redeemNow": { + "message": "İndi istifadə et" + }, + "recipient": { + "message": "Alıcı" + }, + "removeSponsorship": { + "message": "Sponsorluğu sil" + }, + "removeSponsorshipConfirmation": { + "message": "Bir sponsorluğu sildikdən sonra bu abunəliyə və əlaqəli fakturalara görə siz məsuliyyət daşıyacaqsınız. Davam etmək istəyirsiniz?" + }, + "sponsorshipCreated": { + "message": "Sponsorluq yaradıldı" + }, + "revoke": { + "message": "Geri al" + }, + "emailSent": { + "message": "E-poçt göndərildi" + }, + "revokeSponsorshipConfirmation": { + "message": "Bu hesabı sildikdən sonra bu abunəliyə və əlaqəli fakturalara görə Ailələr təşkilatının sahibi məsuliyyət daşıyacaq. Davam etmək istəyirsiniz?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorluq silindi" + }, + "ssoKeyConnectorUnavailable": { + "message": "Açar Bağlayıcı əlçatmazdır, daha sonra yenidən sınayın." + }, + "keyConnectorUrl": { + "message": "Açar Bağlayıcı URL-si" + }, + "sendVerificationCode": { + "message": "E-poçtunuza bir təsdiqləmə kodu göndərin" + }, + "sendCode": { + "message": "Kod göndər" + }, + "codeSent": { + "message": "Kod göndərildi" + }, + "verificationCode": { + "message": "Təsdiqləmə kodu" + }, + "confirmIdentity": { + "message": "Davam etmək üçün kimliyinizi təsdiqləyin." + }, + "verificationCodeRequired": { + "message": "Təsdiq kodu lazımdır." + }, + "invalidVerificationCode": { + "message": "Etibarsız təsdiqləmə kodu" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$, öz-özünə sahiblik edən açar serveri ilə SSO istifadə edir. Bu təşkilatın üzvlərinin giriş etməsi üçün artıq ana parol tələb edilməyəcək.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Təşkilatı tərk et" + }, + "removeMasterPassword": { + "message": "Ana parolu sil" + }, + "removedMasterPassword": { + "message": "Ana parol silindi." + }, + "allowSso": { + "message": "SSO kimlik təsdiqləməsinə icazə ver" + }, + "allowSsoDesc": { + "message": "Qurulduqdan sonra, konfiqurasiyanız saxlanılacaq və üzvləriniz, Kimlik Təchizatçısı üçün kimlik məlumatlarını istifadə edərək kimliklərini təsdiqləyə biləcək." + }, + "ssoPolicyHelpStart": { + "message": "Bütün üzvlərin SSO ilə", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "giriş etməsini məcburi etmək üçün", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "SSO Siyasətini fəallaşdırın.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "Açar Bağlayıcı şifrə açmanı quraşdırmaq üçün SSO Kimlik Təsdiqləmə və Tək Təşkilat siyasətləri tələb olunur." + }, + "memberDecryptionOption": { + "message": "Üzv şifrə açma seçimləri" + }, + "memberDecryptionPassDesc": { + "message": "Kimlik təsdiqləndikdən sonra üzvlər, Ana Parollarını istifadə edərək anbar verilənlərinin şifrələrini aça biləcək." + }, + "keyConnector": { + "message": "Açar Bağlayıcı" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "SSO ilə Giriş etməni, öz-özünə sahiblik edən şifrə açma açar serverinizə bağlayın. Bu seçimi istifadə edərək, üzvlərin anbar verilənlərinin şifrəsini açmaq üçün Ana Parollarını istifadə etməsinə ehtiyac qalmayacaq. Quraşdırma üzrə kömək üçün Bitwarden Dəstək ilə əlaqə saxlayın." + }, + "keyConnectorPolicyRestriction": { + "message": "\"SSO və Açar Bağlayıcı Şifrə Açma ilə Giriş\" fəaldır. Bu siyasət yalnız Sahiblər və Adminlər üçün etibarlıdır." + }, + "enabledSso": { + "message": "SSO fəaldır" + }, + "disabledSso": { + "message": "SSO sıradan çıxarılıb" + }, + "enabledKeyConnector": { + "message": "Açar Bağlayıcı fəaldır" + }, + "disabledKeyConnector": { + "message": "Açar Bağlayıcı sıradan çıxarılıb" + }, + "keyConnectorWarning": { + "message": "Açar Bağlayıcı qurulduqdan sonra, Üzv şifrə açma seçimləri dəyişdirilə bilməz." + }, + "migratedKeyConnector": { + "message": "Açar Bağlayıcıya daşındı" + }, + "paymentSponsored": { + "message": "Zəhmət olmasa təşkilatla əlaqələndirmək üçün bir ödəniş metodu təqdim edin. Narahat olmayın, əlavə özəllikləri seçmədiyiniz və ya sponsorluğunuz bitmədiyi müddətcə sizdən heç bir ödəniş tutulmayacaq. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "Sponsorluq təklifinin müddəti bitdi. 7 günlük sınaq müddətinin sonunda ödəniş tutulmaması üçün yaratdığınız təşkilatı silə bilərsiniz. Əks halda, təşkilatı olduğu kimi saxlamaq və faktura məsuliyyətini öz üzərinizə götürmək üçün bu istəyi bağlaya bilərsiniz." + }, + "newFamiliesOrganization": { + "message": "Yeni Ailə Təşkilatı" + }, + "acceptOffer": { + "message": "Təklifi qəbul et" + }, + "sponsoringOrg": { + "message": "Sponsor Təşkilat" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Uğurlu! Açar Bağlayıcı əlçatandır." + }, + "keyConnectorTestFail": { + "message": "Açar Bağlayıcıya müraciət edilə bilmir. URL-ni yoxlayın." + }, + "sponsorshipTokenHasExpired": { + "message": "Sponsorluq təklifinin müddəti bitdi." + }, + "freeWithSponsorship": { + "message": "ÖDƏNİŞSİZ sponsorluq" + }, + "formErrorSummaryPlural": { + "message": "Yuxarıdakı $COUNT$ sahənin diqqətinizə ehtiyacı var.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "Yuxarıdakı 1 sahənin diqqətinizə ehtiyacı var." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ tələb olunur.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "tələb olunur" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Varlıq Kimliyi bir URL deyilsə tələb olunur." + }, + "openIdOptionalCustomizations": { + "message": "İxtiyari Özəlləşdirmələr" + }, + "openIdAuthorityRequired": { + "message": "Səlahiyyət etibarlı deyilsə tələb olunur." + }, + "separateMultipleWithComma": { + "message": "Vergüllə ayırın." + }, + "sessionTimeout": { + "message": "Seansınızın vaxtı bitdi. Zəhmət olmasa geri qayıdıb yenidən giriş etməyə cəhd edin." + }, + "exportingPersonalVaultTitle": { + "message": "Şəxsi anbarın ixracı" + }, + "exportingOrganizationVaultTitle": { + "message": "Təşkilat anbarının ixracı" + }, + "exportingPersonalVaultDescription": { + "message": "Yalnız $EMAIL$ ilə əlaqəli şəxsi anbar elementləri ixrac ediləcək. Təşkilat anbar elementləri daxil edilmir.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Yalnız $ORGANIZATION$ ilə əlaqəli təşkilat anbar elementləri ixrac ediləcək. Şəxsi anbar elementləri və digər təşkilatlardan olan elementlər daxil edilmir.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Hesabatlara qayıt" + }, + "generator": { + "message": "Yaradıcı" + }, + "whatWouldYouLikeToGenerate": { + "message": "Nə yaratmaq istəyirsiniz?" + }, + "passwordType": { + "message": "Parol növü" + }, + "regenerateUsername": { + "message": "İstifadəçi adını yenidən yarat" + }, + "generateUsername": { + "message": "İstifadəçi adı yarat" + }, + "usernameType": { + "message": "İstifadəçi adı növü" + }, + "plusAddressedEmail": { + "message": "Plyus ünvanlı e-poçt", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "E-poçt təchizatçınızın alt ünvan özəlliklərini istifadə et." + }, + "catchallEmail": { + "message": "Catch-all E-poçt" + }, + "catchallEmailDesc": { + "message": "Domeninizin konfiqurasiya edilmiş hamısını yaxalama gələn qutusunu istifadə edin." + }, + "random": { + "message": "Təsadüfi" + }, + "randomWord": { + "message": "Təsadüfi söz" + }, + "service": { + "message": "Xidmət" + } +} diff --git a/apps/web/src/locales/be/messages.json b/apps/web/src/locales/be/messages.json new file mode 100644 index 0000000000..d56585d468 --- /dev/null +++ b/apps/web/src/locales/be/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ вэб-сховішча", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Выберыце тып элемента" + }, + "name": { + "message": "Назва" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Новы URI" + }, + "username": { + "message": "Імя карыстальніка" + }, + "password": { + "message": "Пароль" + }, + "newPassword": { + "message": "Новы пароль" + }, + "passphrase": { + "message": "Парольная фраза" + }, + "notes": { + "message": "Нататкі" + }, + "customFields": { + "message": "Карыстальніцкія палі" + }, + "cardholderName": { + "message": "Імя ўладальніка карткі" + }, + "number": { + "message": "Нумар" + }, + "brand": { + "message": "Тып карткі" + }, + "expiration": { + "message": "Тэрмін дзеяння" + }, + "securityCode": { + "message": "Код бяспекі (CVV)" + }, + "identityName": { + "message": "Імя" + }, + "company": { + "message": "Кампанія" + }, + "ssn": { + "message": "Нумар сацыяльнага страхавання" + }, + "passportNumber": { + "message": "Нумар пашпарта" + }, + "licenseNumber": { + "message": "Нумар ліцэнзіі" + }, + "email": { + "message": "Электронная пошта" + }, + "phone": { + "message": "Тэлефон" + }, + "january": { + "message": "Студзень" + }, + "february": { + "message": "Люты" + }, + "march": { + "message": "Сакавік" + }, + "april": { + "message": "Красавік" + }, + "may": { + "message": "Май" + }, + "june": { + "message": "Чэрвень" + }, + "july": { + "message": "Ліпень" + }, + "august": { + "message": "Жнівень" + }, + "september": { + "message": "Верасень" + }, + "october": { + "message": "Кастрычнік" + }, + "november": { + "message": "Лістапад" + }, + "december": { + "message": "Снежань" + }, + "title": { + "message": "Зварот" + }, + "mr": { + "message": "С-р" + }, + "mrs": { + "message": "С-ня" + }, + "ms": { + "message": "Пані" + }, + "dr": { + "message": "Док." + }, + "expirationMonth": { + "message": "Месяц заканчэння" + }, + "expirationYear": { + "message": "Год заканчэння" + }, + "authenticatorKeyTotp": { + "message": "Ключ праверкі сапраўднасці (TOTP)" + }, + "folder": { + "message": "Папка" + }, + "newCustomField": { + "message": "Новае карыстальніцкае поле" + }, + "value": { + "message": "Значэнне" + }, + "dragToSort": { + "message": "Перацягніце для сартавання" + }, + "cfTypeText": { + "message": "Тэкст" + }, + "cfTypeHidden": { + "message": "Схавана" + }, + "cfTypeBoolean": { + "message": "Лагічнае" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Выдаліць" + }, + "unassigned": { + "message": "Непрызначаныя" + }, + "noneFolder": { + "message": "Без папкі", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Дадаць папку" + }, + "editFolder": { + "message": "Рэдагаваць папку" + }, + "baseDomain": { + "message": "Асноўны дамен", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Хост", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Дакладна" + }, + "startsWith": { + "message": "Пачынаецца з" + }, + "regEx": { + "message": "Рэгулярны выраз", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Выяўленне супадзенняў", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Метад выяўлення па змаўчанні", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Ніколі" + }, + "toggleVisibility": { + "message": "Пераключыць бачнасць" + }, + "toggleCollapse": { + "message": "Згарнуць/Разгарнуць", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Стварыць пароль" + }, + "checkPassword": { + "message": "Праверце, ці не скампраметаваны пароль." + }, + "passwordExposed": { + "message": "Гэты пароль быў скампраметаваны $VALUE$ раз(-ы/-оў). Вы павінны змяніць яго.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Гэты пароль не быў знойдзены ў вядомых базах уцечак. Можна працягваць яго выкарыстоўваць." + }, + "save": { + "message": "Захаваць" + }, + "cancel": { + "message": "Скасаваць" + }, + "canceled": { + "message": "Скасавана" + }, + "close": { + "message": "Закрыць" + }, + "delete": { + "message": "Выдаліць" + }, + "favorite": { + "message": "Абраны" + }, + "unfavorite": { + "message": "Выдаліць з абранага" + }, + "edit": { + "message": "Рэдагаваць" + }, + "searchCollection": { + "message": "Пошук у калекцыі" + }, + "searchFolder": { + "message": "Пошук у папцы" + }, + "searchFavorites": { + "message": "Пошук у абраным" + }, + "searchType": { + "message": "Пошук па тыпу", + "description": "Search item type" + }, + "searchVault": { + "message": "Пошук у сховішчы" + }, + "allItems": { + "message": "Усе элементы" + }, + "favorites": { + "message": "Абраныя" + }, + "types": { + "message": "Тыпы" + }, + "typeLogin": { + "message": "Імя карыстальніка" + }, + "typeCard": { + "message": "Картка" + }, + "typeIdentity": { + "message": "Пасведчанне" + }, + "typeSecureNote": { + "message": "Бяспечныя нататкі" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "Папкі" + }, + "collections": { + "message": "Калекцыі" + }, + "firstName": { + "message": "Імя" + }, + "middleName": { + "message": "Імя па бацьку" + }, + "lastName": { + "message": "Прозвішча" + }, + "fullName": { + "message": "Full Name" + }, + "address1": { + "message": "Радок адрасу 1" + }, + "address2": { + "message": "Радок адрасу 2" + }, + "address3": { + "message": "Радок адрасу 3" + }, + "cityTown": { + "message": "Горад / Пасёлак" + }, + "stateProvince": { + "message": "Рэгіён / Вобласць" + }, + "zipPostalCode": { + "message": "Паштовы індэкс" + }, + "country": { + "message": "Краіна" + }, + "shared": { + "message": "Абагуленыя" + }, + "attachments": { + "message": "Далучэнні" + }, + "select": { + "message": "Выбраць" + }, + "addItem": { + "message": "Дадаць элемент" + }, + "editItem": { + "message": "Рэдагаванне элемента" + }, + "viewItem": { + "message": "Прагляд элемента" + }, + "ex": { + "message": "напр.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Iншае" + }, + "share": { + "message": "Абагуліць" + }, + "moveToOrganization": { + "message": "Move to Organization" + }, + "valueCopied": { + "message": "$VALUE$ скапіяваны(-а)", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Капіяваць значэнне", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Капіяваць пароль", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Капіяваць імя карыстальніка", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Капіяваць нумар", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Капіяваць код бяспекі", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Капіяваць URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Маё сховішча" + }, + "vault": { + "message": "Сховішча" + }, + "moveSelectedToOrg": { + "message": "Move Selected to Organization" + }, + "deleteSelected": { + "message": "Выдаліць выбраныя" + }, + "moveSelected": { + "message": "Перамясціць выбраныя" + }, + "selectAll": { + "message": "Выбраць усё" + }, + "unselectAll": { + "message": "Адмяніць выбар" + }, + "launch": { + "message": "Запусціць" + }, + "newAttachment": { + "message": "Дадаць новае далучэнне" + }, + "deletedAttachment": { + "message": "Далучэнне выдалена" + }, + "deleteAttachmentConfirmation": { + "message": "Вы ўпэўнены, што хочаце выдаліць гэта далучэнне?" + }, + "attachmentSaved": { + "message": "Далучэнне захавана." + }, + "file": { + "message": "Файл" + }, + "selectFile": { + "message": "Выберыце файл." + }, + "maxFileSize": { + "message": "Максімальны памер файла 500 МБ." + }, + "updateKey": { + "message": "Вы не можаце выкарыстоўваць гэту функцыю, пакуль не абнавіце свой ключ шыфравання." + }, + "addedItem": { + "message": "Элемент дададзены" + }, + "editedItem": { + "message": "Элемент адрэдагаваны" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ moved to $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Selected items moved to $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Выдаліць элемент" + }, + "deleteFolder": { + "message": "Выдаліць папку" + }, + "deleteAttachment": { + "message": "Выдаліць далучэнне" + }, + "deleteItemConfirmation": { + "message": "Вы ўпэўнены, што хочаце выдаліць гэты элемент?" + }, + "deletedItem": { + "message": "Выдалены элемент" + }, + "deletedItems": { + "message": "Выдаленыя элементы" + }, + "movedItems": { + "message": "Перамешчаныя элементы" + }, + "overwritePasswordConfirmation": { + "message": "Вы ўпэўнены, што хочаце перазапісаць бягучы пароль?" + }, + "editedFolder": { + "message": "Папка адрэдагавана" + }, + "addedFolder": { + "message": "Папка дададзена" + }, + "deleteFolderConfirmation": { + "message": "Вы ўпэўнены, што хочаце выдаліць гэту папку?" + }, + "deletedFolder": { + "message": "Папка выдалена" + }, + "loggedOut": { + "message": "Вы выйшлі са сховішча" + }, + "loginExpired": { + "message": "Скончыўся тэрмін дзеяння вашага сеансу." + }, + "logOutConfirmation": { + "message": "Вы ўпэўнены, што хочаце выйсці?" + }, + "logOut": { + "message": "Выйсці" + }, + "ok": { + "message": "ОК" + }, + "yes": { + "message": "Так" + }, + "no": { + "message": "Не" + }, + "loginOrCreateNewAccount": { + "message": "Увайдзіце або стварыце новы ўліковы запіс для доступу да бяспечнага сховішча." + }, + "createAccount": { + "message": "Стварыць уліковы запіс" + }, + "logIn": { + "message": "Увайсці" + }, + "submit": { + "message": "Адправіць" + }, + "emailAddressDesc": { + "message": "You'll use your email address to log in." + }, + "yourName": { + "message": "Ваша імя" + }, + "yourNameDesc": { + "message": "What should we call you?" + }, + "masterPass": { + "message": "Асноўны пароль" + }, + "masterPassDesc": { + "message": "Асноўны пароль — ключ да вашага бяспечнага сховішча. Ён вельмі важны, таму не забывайце яго. Аднавіць асноўны пароль немагчыма." + }, + "masterPassHintDesc": { + "message": "Падказка да асноўнага пароля можа дапамагчы вам яго ўспомніць." + }, + "reTypeMasterPass": { + "message": "Увядзіце асноўны пароль паўторна" + }, + "masterPassHint": { + "message": "Падказка да асноўнага пароля (неабавязкова)" + }, + "masterPassHintLabel": { + "message": "Падказка да асноўнага пароля" + }, + "settings": { + "message": "Налады" + }, + "passwordHint": { + "message": "Падказка да пароля" + }, + "enterEmailToGetHint": { + "message": "Увядзіце адрас электроннай пошты ўліковага запісу для атрымання падказкі для асноўнага пароля." + }, + "getMasterPasswordHint": { + "message": "Атрымаць падказку для асноўнага пароля" + }, + "emailRequired": { + "message": "Патрабуецца адрас электроннай пошты." + }, + "invalidEmail": { + "message": "Памылковы адрас электроннай пошты." + }, + "masterPassRequired": { + "message": "Патрабуецца асноўны пароль." + }, + "masterPassLength": { + "message": "Асноўны пароль павінен быць даўжынёй не менш за 8 сімвалаў." + }, + "masterPassDoesntMatch": { + "message": "Асноўныя паролі не супадаюць." + }, + "newAccountCreated": { + "message": "Ваш уліковы запіс створаны! Вы можаце ўвайсці." + }, + "masterPassSent": { + "message": "Мы адправілі вам на электронную пошту падказку для асноўнага пароля." + }, + "unexpectedError": { + "message": "Адбылася нечаканая памылка." + }, + "emailAddress": { + "message": "Адрас эл. пошты" + }, + "yourVaultIsLocked": { + "message": "Ваша сховішча заблакіравана. Каб працягнуць, увядзіце асноўны пароль." + }, + "unlock": { + "message": "Разблакіраваць" + }, + "loggedInAsEmailOn": { + "message": "Выкананы ўваход на $HOSTNAME$ як $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Памылковы асноўны пароль" + }, + "lockNow": { + "message": "Заблакіраваць" + }, + "noItemsInList": { + "message": "Няма элементаў для паказу." + }, + "noCollectionsInList": { + "message": "Няма калекцый для паказу." + }, + "noGroupsInList": { + "message": "Няма груп для паказу." + }, + "noUsersInList": { + "message": "Няма карыстальнікаў для паказу." + }, + "noEventsInList": { + "message": "Няма падзей для паказу." + }, + "newOrganization": { + "message": "Новая арганізацыя" + }, + "noOrganizationsList": { + "message": "Вы не з'яўляецеся членам якой-небудзь арганізацыі. Арганізацыі дазваляюць бяспечна абменьвацца элементамі з іншымі карыстальнікамі." + }, + "versionNumber": { + "message": "Версія $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Увядзіце 6 лічбаў кода праверкі з вашай праграмы праверкі сапраўднасці." + }, + "enterVerificationCodeEmail": { + "message": "Увядзіце 6 лічбаў кода праверкі, які быў адпраўлены на $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Адпраўлены ліст для пацвярджэння $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Запомніць мяне" + }, + "sendVerificationCodeEmailAgain": { + "message": "Адправіць код пацвярджэння зноў" + }, + "useAnotherTwoStepMethod": { + "message": "Выкарыстоўваць іншы метад двухэтапнага ўваходу" + }, + "insertYubiKey": { + "message": "Устаўце ваш YubiKey ў порт USB вашага камп'ютара, затым націсніце на кнопку." + }, + "insertU2f": { + "message": "Устаўце ваш ключ бяспекі ў порт USB вашага камп'ютара. Калі на ім ёсць кнопка, націсніце на яе." + }, + "loginUnavailable": { + "message": "Уваход недаступны" + }, + "noTwoStepProviders": { + "message": "У гэтага ўліковага запісу ўключаны двухэтапны ўваход, аднак ні адзін з наладжаных варыянтаў не падтрымліваецца гэтым вэб-браўзерам." + }, + "noTwoStepProviders2": { + "message": "Выкарыстоўвайце актуальын вэб-браўзар (напрыклад, Chrome) і/або дадайце дадатковыя варыянты праверкі сапраўднасці, якія падтрымліваюцца ў вэб-браўзерах (напрыклад, праграма для праверкі сапраўднасці)." + }, + "twoStepOptions": { + "message": "Параметры двухэтапнага ўваходу" + }, + "recoveryCodeDesc": { + "message": "Згубілі доступ да ўсіх варыянтаў двухэтапнага ўваходу? Скарыстайцеся кодам аднаўлення, каб адключыць двухэтапны ўваход для вашага ўліковага запісу." + }, + "recoveryCodeTitle": { + "message": "Код аднаўлення" + }, + "authenticatorAppTitle": { + "message": "Праграма праверкі сапраўднасці" + }, + "authenticatorAppDesc": { + "message": "Выкарыстоўвайце праграму для праверкі сапраўднасці (напрыклад, Authy або Google Authenticator) для стварэння кодаў праверкі на аснове часу.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "Ключ бяспекі YubiKey OTP" + }, + "yubiKeyDesc": { + "message": "Выкарыстоўвайце YubiKey для доступу да вашага ўліковага запісу. Працуе з прыладамі YubiKey серый 4, 5 і NEO." + }, + "duoDesc": { + "message": "Пацвярдзіце з дапамогай Duo Security, выкарыстоўваючы праграму Duo Mobile, SMS, тэлефонны выклік або ключ бяспекі.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Пацвярдзіце з дапамогай Duo Security для вашай арганізацыі, выкарыстоўваючы праграму Duo Mobile, SMS, тэлефонны выклік або ключ бяспекі.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Выкарыстоўвайце любы ключ бяспекі FIDO U2F для доступу да вашага ўліковага запісу." + }, + "u2fTitle": { + "message": "Ключ бяспекі FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "Электронная пошта" + }, + "emailDesc": { + "message": "Коды пацвярджэння будуць адпраўлены вам па электроннай пошце." + }, + "continue": { + "message": "Працягнуць" + }, + "organization": { + "message": "Арганізацыя" + }, + "organizations": { + "message": "Арганізацыя" + }, + "moveToOrgDesc": { + "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organization that you wish to move these items to. Moving to an organization transfers ownership of the items to that organization. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "Edit the collections that this item is being shared with. Only organization users with access to these collections will be able to see this item." + }, + "deleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to delete. Are you sure you want to delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Choose a folder that you would like to move the $COUNT$ selected item(s) to.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organization, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Код праверкі (TOTP)" + }, + "copyVerificationCode": { + "message": "Капіяваць код праверкі" + }, + "warning": { + "message": "Увага" + }, + "confirmVaultExport": { + "message": "Confirm Vault Export" + }, + "exportWarningDesc": { + "message": "Экспартуемы файл утрымлівае даныя вашага сховішча ў незашыфраваным фармаце. Яго не варта захоўваць ці адпраўляць па небяспечным каналам (напрыклад, па электроннай пошце). Выдаліце яго адразу пасля выкарыстання." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "Экспарт сховішча" + }, + "fileFormat": { + "message": "Фармат файла" + }, + "exportSuccess": { + "message": "Your vault data has been exported." + }, + "passwordGenerator": { + "message": "Генератар пароляў" + }, + "minComplexityScore": { + "message": "Minimum Complexity Score" + }, + "minNumbers": { + "message": "Мін. колькасць лічбаў" + }, + "minSpecial": { + "message": "Мін. колькасць сімвалаў", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Пазбягаць неадназначных сімвалаў" + }, + "regeneratePassword": { + "message": "Стварыць новы пароль" + }, + "length": { + "message": "Даўжыня" + }, + "numWords": { + "message": "Колькасць слоў" + }, + "wordSeparator": { + "message": "Раздзяляльнік слоў" + }, + "capitalize": { + "message": "З вялікай літары", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Уключыць лічбу" + }, + "passwordHistory": { + "message": "Гісторыя пароляў" + }, + "noPasswordsInList": { + "message": "Няма пароляў для паказу." + }, + "clear": { + "message": "Ачысціць", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Уліковы запіс абноўлены" + }, + "changeEmail": { + "message": "Змяніць адрас электроннай пошты" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "Новы адрас электроннай пошты" + }, + "code": { + "message": "Код" + }, + "changeEmailDesc": { + "message": "We have emailed a verification code to $EMAIL$. Please check your email for this code and enter it below to finalize the email address change.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "emailChanged": { + "message": "Электронная пошта зменена" + }, + "logBackIn": { + "message": "Please log back in." + }, + "logBackInOthersToo": { + "message": "Please log back in. If you are using other Bitwarden applications log out and back in to those as well." + }, + "changeMasterPassword": { + "message": "Змяніць асноўны пароль" + }, + "masterPasswordChanged": { + "message": "Асноўны пароль зменены" + }, + "currentMasterPass": { + "message": "Бягучы асноўны пароль" + }, + "newMasterPass": { + "message": "Новы асноўны пароль" + }, + "confirmNewMasterPass": { + "message": "Пацвердзіць новы асноўны пароль" + }, + "encKeySettings": { + "message": "Encryption Key Settings" + }, + "kdfAlgorithm": { + "message": "KDF Algorithm" + }, + "kdfIterations": { + "message": "KDF Iterations" + }, + "kdfIterationsDesc": { + "message": "Higher KDF iterations can help protect your master password from being brute forced by an attacker. We recommend a value of $VALUE$ or more.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Setting your KDF iterations too high could result in poor performance when logging into (and unlocking) Bitwarden on devices with slower CPUs. We recommend that you increase the value in increments of $INCREMENT$ and then test all of your devices.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Change KDF" + }, + "encKeySettingsChanged": { + "message": "Encryption Key Settings Changed" + }, + "dangerZone": { + "message": "Danger Zone" + }, + "dangerZoneDesc": { + "message": "Careful, these actions are not reversible!" + }, + "deauthorizeSessions": { + "message": "Deauthorize Sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Concerned your account is logged in on another device? Proceed below to deauthorize all computers or devices that you have previously used. This security step is recommended if you previously used a public computer or accidentally saved your password on a device that isn't yours. This step will also clear all previously remembered two-step login sessions." + }, + "deauthorizeSessionsWarning": { + "message": "Proceeding will also log you out of your current session, requiring you to log back in. You will also be prompted for two-step login again, if enabled. Active sessions on other devices may continue to remain active for up to one hour." + }, + "sessionsDeauthorized": { + "message": "All Sessions Deauthorized" + }, + "purgeVault": { + "message": "Purge Vault" + }, + "purgedOrganizationVault": { + "message": "Purged organization vault." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Proceed below to delete all items and folders in your vault. Items that belong to an organization that you share with will not be deleted." + }, + "purgeOrgVaultDesc": { + "message": "Proceed below to delete all items in the organization's vault." + }, + "purgeVaultWarning": { + "message": "Purging your vault is permanent. It cannot be undone." + }, + "vaultPurged": { + "message": "Your vault has been purged." + }, + "deleteAccount": { + "message": "Delete Account" + }, + "deleteAccountDesc": { + "message": "Proceed below to delete your account and all associated data." + }, + "deleteAccountWarning": { + "message": "Deleting your account is permanent. It cannot be undone." + }, + "accountDeleted": { + "message": "Уліковы запіс выдалены" + }, + "accountDeletedDesc": { + "message": "Your account has been closed and all associated data has been deleted." + }, + "myAccount": { + "message": "Мой уліковы запіс" + }, + "tools": { + "message": "Інструменты" + }, + "importData": { + "message": "Імпарт даных" + }, + "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." + }, + "importSuccess": { + "message": "Data has been successfully imported into your vault." + }, + "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." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "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)" + } + } + }, + "options": { + "message": "Параметры" + }, + "optionsDesc": { + "message": "Customize your web vault experience." + }, + "optionsUpdated": { + "message": "Options updated" + }, + "language": { + "message": "Мова" + }, + "languageDesc": { + "message": "Change the language used by the web vault." + }, + "disableIcons": { + "message": "Адключыць значкі вэб-сайтаў" + }, + "disableIconsDesc": { + "message": "Значкі вэб-сайтаў паказваюцца з кожным элементам у вашым сховішчы." + }, + "enableGravatars": { + "message": "Уключыць Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use avatar images loaded from gravatar.com." + }, + "enableFullWidth": { + "message": "Enable Full Width Layout", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Allow the web vault to expand the full width of the browser window." + }, + "default": { + "message": "Па змаўчанні" + }, + "domainRules": { + "message": "Domain Rules" + }, + "domainRulesDesc": { + "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + }, + "globalEqDomains": { + "message": "Global Equivalent Domains" + }, + "customEqDomains": { + "message": "Custom Equivalent Domains" + }, + "exclude": { + "message": "Выключыць" + }, + "include": { + "message": "Уключыць" + }, + "customize": { + "message": "Наладзіць" + }, + "newCustomDomain": { + "message": "New Custom Domain" + }, + "newCustomDomainDesc": { + "message": "Enter a list of domains separated by commas. Only \"base\" domains are allowed. Do not enter subdomains. For example, enter \"google.com\" instead of \"www.google.com\". You can also enter \"androidapp://package.name\" to associate an android app with other website domains." + }, + "customDomainX": { + "message": "Custom Domain $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domains updated" + }, + "twoStepLogin": { + "message": "Двухэтапны ўваход" + }, + "twoStepLoginDesc": { + "message": "Secure your account by requiring an additional step when logging in." + }, + "twoStepLoginOrganizationDesc": { + "message": "Require two-step login for your organization's users by configuring providers at the organization level." + }, + "twoStepLoginRecoveryWarning": { + "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (ex. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + }, + "viewRecoveryCode": { + "message": "Код аднаўлення" + }, + "providers": { + "message": "Правайдары", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Уключыць" + }, + "enabled": { + "message": "Уключана" + }, + "premium": { + "message": "Прэміяльны статус", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Прэміяльны статус" + }, + "premiumRequired": { + "message": "Патрабуецца прэміяльны статус" + }, + "premiumRequiredDesc": { + "message": "Для выкарыстання гэтай функцыі патрабуецца прэміяльны статус." + }, + "youHavePremiumAccess": { + "message": "У вас прэміяльын статус" + }, + "alreadyPremiumFromOrg": { + "message": "You already have access to premium features because of an organization you are a member of." + }, + "manage": { + "message": "Кіраваць" + }, + "disable": { + "message": "Адключыць" + }, + "twoStepLoginProviderEnabled": { + "message": "This two-step login provider is enabled on your account." + }, + "twoStepLoginAuthDesc": { + "message": "Enter your master password to modify two-step login settings." + }, + "twoStepAuthenticatorDesc": { + "message": "Follow these steps to set up two-step login with an authenticator app:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Download a two-step authenticator app" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Need a two-step authenticator app? Download one of the following" + }, + "iosDevices": { + "message": "Прылады на iOS" + }, + "androidDevices": { + "message": "Прылады на Android" + }, + "windowsDevices": { + "message": "Прылады на Windows" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "These apps are recommended, however, other authenticator apps will also work." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scan this QR code with your authenticator app" + }, + "key": { + "message": "Ключ" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Enter the resulting 6 digit verification code from the app" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app." + }, + "twoStepDisableDesc": { + "message": "Are you sure you want to disable this two-step login provider?" + }, + "twoStepDisabled": { + "message": "Two-step login provider disabled." + }, + "twoFactorYubikeyAdd": { + "message": "Add a new YubiKey to your account" + }, + "twoFactorYubikeyPlugIn": { + "message": "Plug the YubiKey into your computer's USB port." + }, + "twoFactorYubikeySelectKey": { + "message": "Select the first empty YubiKey input field below." + }, + "twoFactorYubikeyTouchButton": { + "message": "Touch the YubiKey's button." + }, + "twoFactorYubikeySaveForm": { + "message": "Save the form." + }, + "twoFactorYubikeyWarning": { + "message": "Due to platform limitations, YubiKeys cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when YubiKeys cannot be used. Supported platforms:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile apps on a device with NFC capabilities or a data port that can accept your YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC Support" + }, + "twoFactorYubikeySupportsNfc": { + "message": "One of my keys supports NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "If one of your YubiKeys supports NFC (such as a YubiKey NEO), you will be prompted on mobile devices whenever NFC availability is detected." + }, + "yubikeysUpdated": { + "message": "YubiKeys updated" + }, + "disableAllKeys": { + "message": "Disable All Keys" + }, + "twoFactorDuoDesc": { + "message": "Enter the Bitwarden application information from your Duo Admin panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration Key" + }, + "twoFactorDuoSecretKey": { + "message": "Сакрэтны ключ" + }, + "twoFactorDuoApiHostname": { + "message": "API Hostname" + }, + "twoFactorEmailDesc": { + "message": "Follow these steps to set up two-step login with email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enter the email that you wish to receive verification codes" + }, + "twoFactorEmailEnterCode": { + "message": "Enter the resulting 6 digit verification code from the email" + }, + "sendEmail": { + "message": "Send Email" + }, + "twoFactorU2fAdd": { + "message": "Add a FIDO U2F security key to your account" + }, + "removeU2fConfirmation": { + "message": "Are you sure you want to remove this security key?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Read Key" + }, + "keyCompromised": { + "message": "Key is compromised." + }, + "twoFactorU2fGiveName": { + "message": "Give the security key a friendly name to identify it." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Plug the security key into your computer's USB port and click the \"Read Key\" button." + }, + "twoFactorU2fTouchButton": { + "message": "If the security key has a button, touch it." + }, + "twoFactorU2fSaveForm": { + "message": "Save the form." + }, + "twoFactorU2fWarning": { + "message": "Due to platform limitations, FIDO U2F cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when FIDO U2F cannot be used. Supported platforms:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorU2fWaiting": { + "message": "Waiting for you to touch the button on your security key" + }, + "twoFactorU2fClickSave": { + "message": "Click the \"Save\" button below to enable this security key for two-step login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Your Bitwarden two-step login recovery code" + }, + "twoFactorRecoveryNoCode": { + "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + }, + "printCode": { + "message": "Print Code", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Справаздачы" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Unsecure Websites" + }, + "unsecuredWebsitesReportDesc": { + "message": "URLs that start with http:// don’t use the best available encryption. Change the Login URIs for these accounts to https:// for safer browsing." + }, + "unsecuredWebsitesFound": { + "message": "Unsecured Websites Found" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Inactive Two-step Login" + }, + "inactive2faReportDesc": { + "message": "Two-step Login adds a layer of protection to your accounts. Turn on Two-Step Login using Bitwarden Authenticator for these accounts or use an alternative method." + }, + "inactive2faFound": { + "message": "Logins Without 2FA Found" + }, + "inactive2faFoundDesc": { + "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to 2fa.directory). To further protect these accounts, you should enable two-factor authentication.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No websites were found in your vault with a missing two-factor authentication configuration." + }, + "instructions": { + "message": "Instructions" + }, + "exposedPasswordsReport": { + "message": "Exposed Passwords" + }, + "exposedPasswordsReportDesc": { + "message": "Passwords exposed in a data breach are easy targets for attackers. Change these passwords to prevent potential break-ins." + }, + "exposedPasswordsFound": { + "message": "Exposed Passwords Found" + }, + "exposedPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No items in your vault have passwords that have been exposed in known data breaches." + }, + "checkExposedPasswords": { + "message": "Check Exposed Passwords" + }, + "exposedXTimes": { + "message": "Exposed $COUNT$ time(s)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Weak Passwords" + }, + "weakPasswordsReportDesc": { + "message": "Weak passwords can be easily guessed by attackers. Change these passwords to strong ones using the Password Generator." + }, + "weakPasswordsFound": { + "message": "Weak Passwords Found" + }, + "weakPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "No items in your vault have weak passwords." + }, + "reusedPasswordsReport": { + "message": "Reused Passwords" + }, + "reusedPasswordsReportDesc": { + "message": "Reusing passwords makes it easier for attackers to break into multiple accounts. Change these passwords so that each is unique." + }, + "reusedPasswordsFound": { + "message": "Reused Passwords Found" + }, + "reusedPasswordsFoundDesc": { + "message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "No logins in your vault have passwords that are being reused." + }, + "reusedXTimes": { + "message": "Reused $COUNT$ times", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Data Breach" + }, + "breachDesc": { + "message": "Breached accounts can expose your personal information. Secure breached accounts by enabling 2FA or creating a stronger password." + }, + "breachCheckUsernameEmail": { + "message": "Check any usernames or email addresses that you use." + }, + "checkBreaches": { + "message": "Check Breaches" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ was not found in any known data breaches.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Good News", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Breached Accounts Found" + }, + "compromisedData": { + "message": "Compromised data" + }, + "website": { + "message": "Вэб-сайт" + }, + "affectedUsers": { + "message": "Affected Users" + }, + "breachOccurred": { + "message": "Breach Occurred" + }, + "breachReported": { + "message": "Breach Reported" + }, + "reportError": { + "message": "An error occurred trying to load the report. Try again" + }, + "billing": { + "message": "Billing" + }, + "accountCredit": { + "message": "Account Credit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Account Balance", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Add Credit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Amount", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Added credit will appear on your account after the payment has been fully processed. Some payment methods are delayed and can take longer to process than others." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + }, + "goPremium": { + "message": "Go Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Вы абнавіліся да прэміяльнага статусу." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Upgrade your account to a premium membership and unlock some great additional features." + }, + "premiumSignUpStorage": { + "message": "1 ГБ зашыфраванага сховішча для далучаных файлаў." + }, + "premiumSignUpTwoStep": { + "message": "Дадатковыя варыянты двухэтапнага ўваходу, такія як YubiKey, FIDO U2F і Duo." + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "Гігіена пароляў, здароўе ўліковага запісу і справаздачы аб уцечках даных для забеспячэння бяспекі вашага сховішча." + }, + "premiumSignUpTotp": { + "message": "TOTP-генератар кодаў (2ФА) для імён карыстальнікаў вашага сховішча." + }, + "premiumSignUpSupport": { + "message": "Прыярытэтная падтрымка." + }, + "premiumSignUpFuture": { + "message": "Усе будучыя функцыі прэміяльнага статусу. Іх будзе больш!" + }, + "premiumPrice": { + "message": "Усяго толькі за $PRICE$ на год!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Addons" + }, + "premiumAccess": { + "message": "Premium Access" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organization for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Additional Storage (GB)" + }, + "additionalStorageGbDesc": { + "message": "# of additional GB" + }, + "additionalStorageIntervalDesc": { + "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Summary" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "year" + }, + "month": { + "message": "month" + }, + "monthAbbr": { + "message": "mo.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Your payment method will be charged immediately and then on a recurring basis each year. You may cancel at any time." + }, + "paymentCharged": { + "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Your plan comes with a free 7 day trial. Your payment method will not be charged until the trial has ended. You may cancel at any time." + }, + "paymentInformation": { + "message": "Payment Information" + }, + "billingInformation": { + "message": "Billing Information" + }, + "creditCard": { + "message": "Credit Card" + }, + "paypalClickSubmit": { + "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + }, + "cancelSubscription": { + "message": "Cancel Subscription" + }, + "subscriptionCanceled": { + "message": "The subscription has been canceled." + }, + "pendingCancellation": { + "message": "Pending Cancellation" + }, + "subscriptionPendingCanceled": { + "message": "The subscription has been marked for cancellation at the end of the current billing period." + }, + "reinstateSubscription": { + "message": "Reinstate Subscription" + }, + "reinstateConfirmation": { + "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + }, + "reinstated": { + "message": "The subscription has been reinstated." + }, + "cancelConfirmation": { + "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + }, + "canceledSubscription": { + "message": "The subscription has been canceled." + }, + "neverExpires": { + "message": "Never Expires" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Next Charge" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "Download License" + }, + "updateLicense": { + "message": "Update License" + }, + "updatedLicense": { + "message": "Updated license" + }, + "manageSubscription": { + "message": "Manage Subscription" + }, + "storage": { + "message": "Storage" + }, + "addStorage": { + "message": "Add Storage" + }, + "removeStorage": { + "message": "Remove Storage" + }, + "subscriptionStorage": { + "message": "Your subscription has a total of $MAX_STORAGE$ GB of encrypted file storage. You are currently using $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Спосаб аплаты" + }, + "noPaymentMethod": { + "message": "No payment method on file." + }, + "addPaymentMethod": { + "message": "Дадаць спосаб аплаты" + }, + "changePaymentMethod": { + "message": "Змяніць спосаб аплаты" + }, + "invoices": { + "message": "Invoices" + }, + "noInvoices": { + "message": "No invoices." + }, + "paid": { + "message": "Paid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Unpaid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Трансакцыі", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Няма трансакцый." + }, + "chargeNoun": { + "message": "Charge", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Refund", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Any charges will appear on your statement as $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB of Storage To Add" + }, + "gbStorageRemove": { + "message": "GB of Storage To Remove" + }, + "storageAddNote": { + "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "storageRemoveNote": { + "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedStorage": { + "message": "Adjusted $AMOUNT$ GB of storage.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contact Customer Support" + }, + "updatedPaymentMethod": { + "message": "Updated payment method." + }, + "purchasePremium": { + "message": "Купіць прэміяльны статус" + }, + "licenseFile": { + "message": "License File" + }, + "licenseFileDesc": { + "message": "Your license file will be named something like $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "To upgrade your account to a premium membership you need to upload a valid license file." + }, + "uploadLicenseFileOrg": { + "message": "To create an on-premises hosted organization you need to upload a valid license file." + }, + "accountEmailMustBeVerified": { + "message": "Your account's email address must be verified." + }, + "newOrganizationDesc": { + "message": "Organizations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company." + }, + "generalInformation": { + "message": "General Information" + }, + "organizationName": { + "message": "Назва арганізацыі" + }, + "accountOwnedBusiness": { + "message": "This account is owned by a business." + }, + "billingEmail": { + "message": "Billing Email" + }, + "businessName": { + "message": "Business Name" + }, + "chooseYourPlan": { + "message": "Choose Your Plan" + }, + "users": { + "message": "Карыстальнікі" + }, + "userSeats": { + "message": "User Seats" + }, + "additionalUserSeats": { + "message": "Additional User Seats" + }, + "userSeatsDesc": { + "message": "# of user seats" + }, + "userSeatsAdditionalDesc": { + "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "How many user seats do you need? You can also add additional seats later if needed." + }, + "planNameFree": { + "message": "Free", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing or personal users to share with $COUNT$ other user.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Families" + }, + "planDescFamilies": { + "message": "For personal use, to share with family & friends." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "For businesses and other team organizations." + }, + "planNameEnterprise": { + "message": "Enterprise" + }, + "planDescEnterprise": { + "message": "For businesses and other large organizations." + }, + "freeForever": { + "message": "Free Forever" + }, + "includesXUsers": { + "message": "includes $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Additional Users" + }, + "costPerUser": { + "message": "$COST$ per user", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limited to $COUNT$ users (including you)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limited to $COUNT$ collections", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Add and share with up to $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Add and share with unlimited users" + }, + "createUnlimitedCollections": { + "message": "Create unlimited Collections" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ encrypted file storage", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "On-premise hosting (optional)" + }, + "usersGetPremium": { + "message": "Users get access to Premium Features" + }, + "controlAccessWithGroups": { + "message": "Control user access with Groups" + }, + "syncUsersFromDirectory": { + "message": "Sync your users and Groups from a directory" + }, + "trackAuditLogs": { + "message": "Track user actions with audit logs" + }, + "enforce2faDuo": { + "message": "Enforce 2FA with Duo" + }, + "priorityCustomerSupport": { + "message": "Priority customer support" + }, + "xDayFreeTrial": { + "message": "$COUNT$ day free trial, cancel anytime", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Monthly" + }, + "annually": { + "message": "Annually" + }, + "basePrice": { + "message": "Base Price" + }, + "organizationCreated": { + "message": "Organization Created" + }, + "organizationReadyToGo": { + "message": "Your new organization is ready to go!" + }, + "organizationUpgraded": { + "message": "Your organization has been upgraded." + }, + "leave": { + "message": "Leave" + }, + "leaveOrganizationConfirmation": { + "message": "Are you sure you want to leave this organization?" + }, + "leftOrganization": { + "message": "You have left the organization." + }, + "defaultCollection": { + "message": "Default Collection" + }, + "getHelp": { + "message": "Get Help" + }, + "getApps": { + "message": "Get the Apps" + }, + "loggedInAs": { + "message": "Logged in as" + }, + "eventLogs": { + "message": "Event Logs" + }, + "people": { + "message": "People" + }, + "policies": { + "message": "Policies" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Edit Policy" + }, + "groups": { + "message": "Groups" + }, + "newGroup": { + "message": "New Group" + }, + "addGroup": { + "message": "Add Group" + }, + "editGroup": { + "message": "Edit Group" + }, + "deleteGroupConfirmation": { + "message": "Are you sure you want to delete this group?" + }, + "removeUserConfirmation": { + "message": "Are you sure you want to remove this user?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "External Id" + }, + "externalIdDesc": { + "message": "The external id can be used as a reference or to link this resource to an external system such as a user directory." + }, + "accessControl": { + "message": "Access Control" + }, + "groupAccessAllItems": { + "message": "This group can access and modify all items." + }, + "groupAccessSelectedCollections": { + "message": "This group can access only the selected collections." + }, + "readOnly": { + "message": "Read Only" + }, + "newCollection": { + "message": "Новая калекцыя" + }, + "addCollection": { + "message": "Дадаць калекцыю" + }, + "editCollection": { + "message": "Рэдагаваць калекцыю" + }, + "deleteCollectionConfirmation": { + "message": "Вы ўпэўнены, што хочаце выдаліць гэту калекцыю?" + }, + "editUser": { + "message": "Рэдагаваць карыстальніка" + }, + "inviteUser": { + "message": "Invite User" + }, + "inviteUserDesc": { + "message": "Invite a new user to your organization by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "inviteMultipleEmailDesc": { + "message": "You can invite up to $COUNT$ users at a time by comma separating a list of email addresses.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "This user is using two-step login to protect their account." + }, + "userAccessAllItems": { + "message": "This user can access and modify all items." + }, + "userAccessSelectedCollections": { + "message": "This user can access only the selected collections." + }, + "search": { + "message": "Search" + }, + "invited": { + "message": "Invited" + }, + "accepted": { + "message": "Accepted" + }, + "confirmed": { + "message": "Confirmed" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Owner" + }, + "ownerDesc": { + "message": "The highest access user that can manage all aspects of your organization." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admins can access and manage all items, collections and users in your organization." + }, + "user": { + "message": "User" + }, + "userDesc": { + "message": "A regular user with access to assigned collections in your organization." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managers can access and manage assigned collections in your organization." + }, + "all": { + "message": "All" + }, + "refresh": { + "message": "Refresh" + }, + "timestamp": { + "message": "Timestamp" + }, + "event": { + "message": "Event" + }, + "unknown": { + "message": "Unknown" + }, + "loadMore": { + "message": "Load More" + }, + "mobile": { + "message": "Mobile", + "description": "Mobile app" + }, + "extension": { + "message": "Extension", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Web Vault" + }, + "loggedIn": { + "message": "Logged in." + }, + "changedPassword": { + "message": "Changed account password." + }, + "enabledUpdated2fa": { + "message": "Enabled/updated two-step login." + }, + "disabled2fa": { + "message": "Disabled two-step login." + }, + "recovered2fa": { + "message": "Recovered account from two-step login." + }, + "failedLogin": { + "message": "Login attempt failed with incorrect password." + }, + "failedLogin2fa": { + "message": "Login attempt failed with incorrect two-step login." + }, + "exportedVault": { + "message": "Exported vault." + }, + "exportedOrganizationVault": { + "message": "Exported organization vault." + }, + "editedOrgSettings": { + "message": "Edited organization settings." + }, + "createdItemId": { + "message": "Created item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Edited item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Sent item $ID$ to trash.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Viewed item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Viewed password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Viewed hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Viewed security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Copied password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Copied hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Copied security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Auto-filled item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Created collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Edited collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Deleted collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Edited policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Created group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Edited group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Deleted group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Removed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Created attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Deleted attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Edited collections for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Invited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Confirmed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Edited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Edited groups for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Device" + }, + "view": { + "message": "View" + }, + "invalidDateRange": { + "message": "Invalid date range." + }, + "errorOccurred": { + "message": "An error has occurred." + }, + "userAccess": { + "message": "User Access" + }, + "userType": { + "message": "User Type" + }, + "groupAccess": { + "message": "Group Access" + }, + "groupAccessUserDesc": { + "message": "Edit the groups that this user belongs to." + }, + "invitedUsers": { + "message": "Invited user(s)." + }, + "resendInvitation": { + "message": "Resend Invitation" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ has been reinvited.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirm" + }, + "confirmUser": { + "message": "Confirm User" + }, + "hasBeenConfirmed": { + "message": "$USER$ has been confirmed.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirm Users" + }, + "usersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organization until they are confirmed." + }, + "startDate": { + "message": "Start Date" + }, + "endDate": { + "message": "End Date" + }, + "verifyEmail": { + "message": "Verify Email" + }, + "verifyEmailDesc": { + "message": "Verify your account's email address to unlock access to all features." + }, + "verifyEmailFirst": { + "message": "Your account's email address first must be verified." + }, + "checkInboxForVerification": { + "message": "Check your email inbox for a verification link." + }, + "emailVerified": { + "message": "Your email has been verified." + }, + "emailVerifiedFailed": { + "message": "Unable to verify your email. Try sending a new verification email." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "Update Browser" + }, + "updateBrowserDesc": { + "message": "You are using an unsupported web browser. The web vault may not function properly." + }, + "joinOrganization": { + "message": "Join Organization" + }, + "joinOrganizationDesc": { + "message": "You've been invited to join the organization listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "inviteAccepted": { + "message": "Invitation Accepted" + }, + "inviteAcceptedDesc": { + "message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens." + }, + "inviteAcceptFailed": { + "message": "Unable to accept invitation. Ask an organization admin to send a new invitation." + }, + "inviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Remember email" + }, + "recoverAccountTwoStepDesc": { + "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + }, + "recoverAccountTwoStep": { + "message": "Recover Account Two-Step Login" + }, + "twoStepRecoverDisabled": { + "message": "Two-step login has been disabled on your account." + }, + "learnMore": { + "message": "Learn more" + }, + "deleteRecoverDesc": { + "message": "Enter your email address below to recover and delete your account." + }, + "deleteRecoverEmailSent": { + "message": "If your account exists, we've sent you an email with further instructions." + }, + "deleteRecoverConfirmDesc": { + "message": "You have requested to delete your Bitwarden account. Click the button below to confirm." + }, + "myOrganization": { + "message": "My Organization" + }, + "deleteOrganization": { + "message": "Delete Organization" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organization Deleted" + }, + "organizationDeletedDesc": { + "message": "The organization and all associated data has been deleted." + }, + "organizationUpdated": { + "message": "Organization updated" + }, + "taxInformation": { + "message": "Tax Information" + }, + "taxInformationDesc": { + "message": "For customers within the US, ZIP code is required to satisfy sales tax requirements, for other countries you may optionally provide a tax identification number (VAT/GST) and/or address to appear on your invoices." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Upgrade Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade your account to another plan by providing the information below. Please ensure that you have an active payment method added to the account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Invoice #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "View Invoice" + }, + "downloadInvoice": { + "message": "Download Invoice" + }, + "verifyBankAccount": { + "message": "Verify Bank Account" + }, + "verifyBankAccountDesc": { + "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." + }, + "verifyBankAccountInitialDesc": { + "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organization's billing page to verify the bank account." + }, + "verifyBankAccountFailureWarning": { + "message": "Failure to verify the bank account will result in a missed payment and your subscription being disabled." + }, + "verifiedBankAccount": { + "message": "Bank account has been verified." + }, + "bankAccount": { + "message": "Bank Account" + }, + "amountX": { + "message": "Amount $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Account Number" + }, + "accountHolderName": { + "message": "Account Holder Name" + }, + "bankAccountType": { + "message": "Account Type" + }, + "bankAccountTypeCompany": { + "message": "Company (Business)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Personal)" + }, + "enterInstallationId": { + "message": "Enter your installation id" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Add Seats", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remove Seats", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Your subscription allows for a total of $COUNT$ users.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seats To Add" + }, + "seatsToRemove": { + "message": "Seats To Remove" + }, + "seatsAddNote": { + "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "seatsRemoveNote": { + "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedSeats": { + "message": "Adjusted $AMOUNT$ user seats.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Key Updated" + }, + "updateKeyTitle": { + "message": "Update Key" + }, + "updateEncryptionKey": { + "message": "Update Encryption Key" + }, + "updateEncryptionKeyShortDesc": { + "message": "You are currently using an outdated encryption scheme." + }, + "updateEncryptionKeyDesc": { + "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, however, it may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "Subscription" + }, + "loading": { + "message": "Loading" + }, + "upgrade": { + "message": "Upgrade" + }, + "upgradeOrganization": { + "message": "Upgrade Organization" + }, + "upgradeOrganizationDesc": { + "message": "This feature is not available for free organizations. Switch to a paid plan to unlock more features." + }, + "createOrganizationStep1": { + "message": "Create Organization: Step 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Before creating your organization, you first need to create a free personal account." + }, + "refunded": { + "message": "Refunded" + }, + "nothingSelected": { + "message": "You have not selected anything." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." + }, + "termsOfService": { + "message": "Terms of Service" + }, + "privacyPolicy": { + "message": "Privacy Policy" + }, + "filters": { + "message": "Filters" + }, + "vaultTimeout": { + "message": "Vault Timeout" + }, + "vaultTimeoutDesc": { + "message": "Choose when your vault will timeout and perform the selected action." + }, + "oneMinute": { + "message": "1 minute" + }, + "fiveMinutes": { + "message": "5 minutes" + }, + "fifteenMinutes": { + "message": "15 minutes" + }, + "thirtyMinutes": { + "message": "30 minutes" + }, + "oneHour": { + "message": "1 hour" + }, + "fourHours": { + "message": "4 hours" + }, + "onRefresh": { + "message": "On Browser Refresh" + }, + "dateUpdated": { + "message": "Updated", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Password Updated", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organization is disabled." + }, + "licenseIsExpired": { + "message": "License is expired." + }, + "updatedUsers": { + "message": "Updated users" + }, + "selected": { + "message": "Selected" + }, + "ownership": { + "message": "Ownership" + }, + "whoOwnsThisItem": { + "message": "Who owns this item?" + }, + "strong": { + "message": "Strong", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Good", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Weak", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Very Weak", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Слабы асноўны пароль" + }, + "weakMasterPasswordDesc": { + "message": "Асноўны пароль, выбраны вамі, з'яўляецца слабым. Для належнай абароны ўліковага запісу Bitwarden, вы павінны выкарыстоўваць моцны асноўны пароль (або парольную фразу). Вы ўпэўнены, што хочаце выкарыстоўваць гэты асноўны пароль?" + }, + "rotateAccountEncKey": { + "message": "Also rotate my account's encryption key" + }, + "rotateEncKeyTitle": { + "message": "Rotate Encryption Key" + }, + "rotateEncKeyConfirmation": { + "message": "Are you sure you want to rotate your account's encryption key?" + }, + "attachmentsNeedFix": { + "message": "This item has old file attachments that need to be fixed." + }, + "attachmentFixDesc": { + "message": "This is an old file attachment the needs to be fixed. Click to learn more." + }, + "fix": { + "message": "Fix", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key." + }, + "yourAccountsFingerprint": { + "message": "Your account's fingerprint phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Never prompt to verify fingerprint phrases for invited users (Not recommended)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Free", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API Key" + }, + "apiKeyDesc": { + "message": "Your API key can be used to authenticate to the Bitwarden public API." + }, + "apiKeyRotateDesc": { + "message": "Rotating the API key will invalidate the previous key. You can rotate your API key if you believe that the current key is no longer safe to use." + }, + "apiKeyWarning": { + "message": "Your API key has full access to the organization. It should be kept secret." + }, + "userApiKeyDesc": { + "message": "Your API key can be used to authenticate in the Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 Client Credentials", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "View API Key" + }, + "rotateApiKey": { + "message": "Rotate API Key" + }, + "selectOneCollection": { + "message": "You must select at least one collection." + }, + "couldNotChargeCardPayInvoice": { + "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + }, + "inAppPurchase": { + "message": "In-app Purchase" + }, + "cannotPerformInAppPurchase": { + "message": "You cannot perform this action while using an in-app purchase payment method." + }, + "manageSubscriptionFromStore": { + "message": "You must manage your subscription from the store where your in-app purchase was made." + }, + "minLength": { + "message": "Minimum Length" + }, + "clone": { + "message": "Clone" + }, + "masterPassPolicyDesc": { + "message": "Задайце мінімальныя патрабаванні да надзейнасці асноўнага пароля." + }, + "twoStepLoginPolicyDesc": { + "message": "Require users to set up two-step login on their personal accounts." + }, + "twoStepLoginPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and do not have two-step login enabled for their personal account will be removed from the organization and will receive an email notifying them about the change." + }, + "twoStepLoginPolicyUserWarning": { + "message": "You are a member of an organization that requires two-step login to be enabled on your user account. If you disable all two-step login providers you will be automatically removed from these organizations." + }, + "passwordGeneratorPolicyDesc": { + "message": "Set minimum requirements for password generator configuration." + }, + "passwordGeneratorPolicyInEffect": { + "message": "One or more organization policies are affecting your generator settings." + }, + "masterPasswordPolicyInEffect": { + "message": "Згодна з адной або некалькімі палітыкамі арганізацыі неабходна, каб ваш асноўны пароль адказваў наступным патрабаванням:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum complexity score of $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum length of $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contain one or more uppercase characters" + }, + "policyInEffectLowercase": { + "message": "Contain one or more lowercase characters" + }, + "policyInEffectNumbers": { + "message": "Contain one or more numbers" + }, + "policyInEffectSpecial": { + "message": "Contain one or more of the following special characters $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Ваш новы асноўны пароль не адпавядае патрабаванням палітыкі арганізацыі." + }, + "minimumNumberOfWords": { + "message": "Minimum Number of Words" + }, + "defaultType": { + "message": "Default Type" + }, + "userPreference": { + "message": "User Preference" + }, + "vaultTimeoutAction": { + "message": "Vault Timeout Action" + }, + "vaultTimeoutActionLockDesc": { + "message": "A locked vault requires that you re-enter your master password to access it again." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "A logged out vault requires that you re-authenticate to access it again." + }, + "lock": { + "message": "Lock", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Trash", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Search Trash" + }, + "permanentlyDelete": { + "message": "Permanently Delete" + }, + "permanentlyDeleteSelected": { + "message": "Permanently Delete Selected" + }, + "permanentlyDeleteItem": { + "message": "Permanently Delete Item" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Are you sure you want to permanently delete this item?" + }, + "permanentlyDeletedItem": { + "message": "Permanently Deleted item" + }, + "permanentlyDeletedItems": { + "message": "Permanently Deleted items" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Permanently Deleted item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restore" + }, + "restoreSelected": { + "message": "Restore Selected" + }, + "restoreItem": { + "message": "Restore Item" + }, + "restoredItem": { + "message": "Restored Item" + }, + "restoredItems": { + "message": "Restored Items" + }, + "restoreItemConfirmation": { + "message": "Are you sure you want to restore this item?" + }, + "restoreItems": { + "message": "Restore items" + }, + "restoreSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Restored item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout Action Confirmation" + }, + "hidePasswords": { + "message": "Hide Passwords" + }, + "countryPostalCodeRequiredDesc": { + "message": "We require this information for calculating sales tax and financial reporting only." + }, + "includeVAT": { + "message": "Include VAT/GST Information (optional)" + }, + "taxIdNumber": { + "message": "VAT/GST Tax ID" + }, + "taxInfoUpdated": { + "message": "Tax information updated." + }, + "setMasterPassword": { + "message": "Задаць асноўны пароль" + }, + "ssoCompleteRegistration": { + "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + }, + "identifier": { + "message": "Identifier" + }, + "organizationIdentifier": { + "message": "Organization Identifier" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Log in using your organization's single sign-on portal. Please enter your organization's identifier to begin." + }, + "enterpriseSingleSignOn": { + "message": "Enterprise Single Sign-On" + }, + "ssoHandOff": { + "message": "You may now close this tab and continue in the extension." + }, + "includeAllTeamsFeatures": { + "message": "All Teams features, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO Authentication via SAML2.0 and OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Enterprise Policies" + }, + "ssoValidationFailed": { + "message": "SSO Validation Failed" + }, + "ssoIdentifierRequired": { + "message": "Organization Identifier is required." + }, + "unlinkSso": { + "message": "Unlink SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Link SSO" + }, + "singleOrg": { + "message": "Single Organization" + }, + "singleOrgDesc": { + "message": "Restrict users from being able to join any other organizations." + }, + "singleOrgBlockCreateMessage": { + "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + }, + "singleOrgPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + }, + "requireSso": { + "message": "Single Sign-On Authentication" + }, + "requireSsoPolicyDesc": { + "message": "Require users to log in with the Enterprise Single Sign-On method." + }, + "prerequisite": { + "message": "Prerequisite" + }, + "requireSsoPolicyReq": { + "message": "The Single Organization enterprise policy must be enabled before activating this policy." + }, + "requireSsoPolicyReqError": { + "message": "Single Organization policy not enabled." + }, + "requireSsoExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "sendTypeFile": { + "message": "File" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Create New Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edit Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Created Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Edited Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Deleted Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Delete Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Are you sure you want to delete this Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "What type of Send is this?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Deletion Date" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Expiration Date" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximum Access Count" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Current Access Count" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Disabled" + }, + "sendLink": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copy Send Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remove Password" + }, + "removedPassword": { + "message": "Removed Password" + }, + "removePasswordConfirmation": { + "message": "Are you sure you want to remove the password?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "All Sends" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "expired": { + "message": "Expired" + }, + "searchSends": { + "message": "Search Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "This Send is protected with a password. Please type the password below to continue.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Download File" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "There are no Sends to list.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Emergency Access" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Request Access" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approve" + }, + "reject": { + "message": "Reject" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Disable Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "Estimated tax" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Manage All Collections" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Manage Groups" + }, + "managePolicies": { + "message": "Manage Policies" + }, + "manageSso": { + "message": "Manage SSO" + }, + "manageUsers": { + "message": "Manage Users" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organization users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Learn more about", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Learn more", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "try it now", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "sign up", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "to try it today.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organization policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organization administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/bg/messages.json b/apps/web/src/locales/bg/messages.json new file mode 100644 index 0000000000..61bd5a654d --- /dev/null +++ b/apps/web/src/locales/bg/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "Трезор по уеб „$APP_NAME$“", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Вид на елемента" + }, + "name": { + "message": "Наименование" + }, + "uri": { + "message": "Адрес" + }, + "uriPosition": { + "message": "Адрес $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Нов адрес" + }, + "username": { + "message": "Потребителско име" + }, + "password": { + "message": "Парола" + }, + "newPassword": { + "message": "Нова парола" + }, + "passphrase": { + "message": "Парола-фраза" + }, + "notes": { + "message": "Бележки" + }, + "customFields": { + "message": "Допълнителни полета" + }, + "cardholderName": { + "message": "Име на притежателя на картата" + }, + "number": { + "message": "Номер" + }, + "brand": { + "message": "Вид" + }, + "expiration": { + "message": "Изтичане" + }, + "securityCode": { + "message": "Код за сигурност" + }, + "identityName": { + "message": "Име на самоличността" + }, + "company": { + "message": "Фирма" + }, + "ssn": { + "message": "Номер на осигуровката" + }, + "passportNumber": { + "message": "Номер на паспорта" + }, + "licenseNumber": { + "message": "Номер на лиценза" + }, + "email": { + "message": "Електронна поща" + }, + "phone": { + "message": "Телефон" + }, + "january": { + "message": "януари" + }, + "february": { + "message": "февруари" + }, + "march": { + "message": "март" + }, + "april": { + "message": "април" + }, + "may": { + "message": "май" + }, + "june": { + "message": "юни" + }, + "july": { + "message": "юли" + }, + "august": { + "message": "август" + }, + "september": { + "message": "септември" + }, + "october": { + "message": "октомври" + }, + "november": { + "message": "ноември" + }, + "december": { + "message": "декември" + }, + "title": { + "message": "Обръщение" + }, + "mr": { + "message": "Г-н" + }, + "mrs": { + "message": "Г-жа" + }, + "ms": { + "message": "Г-жа" + }, + "dr": { + "message": "Д-р" + }, + "expirationMonth": { + "message": "Месец на изтичане" + }, + "expirationYear": { + "message": "Година на изтичане" + }, + "authenticatorKeyTotp": { + "message": "Удостоверителен ключ (TOTP)" + }, + "folder": { + "message": "Папка" + }, + "newCustomField": { + "message": "Ново допълнително поле" + }, + "value": { + "message": "Стойност" + }, + "dragToSort": { + "message": "Подредба чрез влачене" + }, + "cfTypeText": { + "message": "Текст" + }, + "cfTypeHidden": { + "message": "Скрито" + }, + "cfTypeBoolean": { + "message": "Булево" + }, + "cfTypeLinked": { + "message": "Свързано", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Премахване" + }, + "unassigned": { + "message": "Незададено" + }, + "noneFolder": { + "message": "Няма папка", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Добавяне на папка" + }, + "editFolder": { + "message": "Редактиране на папка" + }, + "baseDomain": { + "message": "Основен домейн", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Име на домейн", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Сървър", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Точно" + }, + "startsWith": { + "message": "Започва с" + }, + "regEx": { + "message": "Регулярен израз", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Откриване на съвпадения", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Стандартно откриване на съвпадения", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Никога" + }, + "toggleVisibility": { + "message": "Превключване на видимостта" + }, + "toggleCollapse": { + "message": "Превключване на свиването", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Нова парола" + }, + "checkPassword": { + "message": "Проверка дали паролата е разкрита." + }, + "passwordExposed": { + "message": "Паролата е била разкрита поне $VALUE$ път/и в масивите с изтеклите данни. Непременно я сменете.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Паролата не е била разкрита в известните масиви с изтекли данни. Засега ползването ѝ изглежда безопасно." + }, + "save": { + "message": "Запазване" + }, + "cancel": { + "message": "Отказ" + }, + "canceled": { + "message": "Отказано" + }, + "close": { + "message": "Затваряне" + }, + "delete": { + "message": "Изтриване" + }, + "favorite": { + "message": "Любими" + }, + "unfavorite": { + "message": "Изваждане от любими" + }, + "edit": { + "message": "Редактиране" + }, + "searchCollection": { + "message": "Търсене в колекцията" + }, + "searchFolder": { + "message": "Търсене в папката" + }, + "searchFavorites": { + "message": "Търсене в любими" + }, + "searchType": { + "message": "Търсене по вид", + "description": "Search item type" + }, + "searchVault": { + "message": "Търсене в трезора" + }, + "allItems": { + "message": "Всички елементи" + }, + "favorites": { + "message": "Любими" + }, + "types": { + "message": "Видове" + }, + "typeLogin": { + "message": "Запис" + }, + "typeCard": { + "message": "Карта" + }, + "typeIdentity": { + "message": "Самоличност" + }, + "typeSecureNote": { + "message": "Защитена бележка" + }, + "typeLoginPlural": { + "message": "Записи" + }, + "typeCardPlural": { + "message": "Карти" + }, + "typeIdentityPlural": { + "message": "Самоличности" + }, + "typeSecureNotePlural": { + "message": "Защитени бележки" + }, + "folders": { + "message": "Папки" + }, + "collections": { + "message": "Колекции" + }, + "firstName": { + "message": "Собствено име" + }, + "middleName": { + "message": "Презиме" + }, + "lastName": { + "message": "Фамилно име" + }, + "fullName": { + "message": "Пълно име" + }, + "address1": { + "message": "Адрес 1" + }, + "address2": { + "message": "Адрес 2" + }, + "address3": { + "message": "Адрес 3" + }, + "cityTown": { + "message": "Населено място" + }, + "stateProvince": { + "message": "Област" + }, + "zipPostalCode": { + "message": "Пощенски код" + }, + "country": { + "message": "Държава" + }, + "shared": { + "message": "Споделено" + }, + "attachments": { + "message": "Прикачени файлове" + }, + "select": { + "message": "Избор" + }, + "addItem": { + "message": "Добавяне на елемент" + }, + "editItem": { + "message": "Редактиране на елемента" + }, + "viewItem": { + "message": "Преглед на елемента" + }, + "ex": { + "message": "напр.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Други" + }, + "share": { + "message": "Споделяне" + }, + "moveToOrganization": { + "message": "Преместване в организация" + }, + "valueCopied": { + "message": "$VALUE$ — копирано", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Копиране на стойността", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Копиране на паролата", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Копиране на потребителското име", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Копиране на но̀мера", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Копиране на кода за сигурност", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Копиране на адреса", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Моят трезор" + }, + "vault": { + "message": "Трезор" + }, + "moveSelectedToOrg": { + "message": "Преместване на избраните в организация" + }, + "deleteSelected": { + "message": "Изтриване на избраното" + }, + "moveSelected": { + "message": "Преместване на избраното" + }, + "selectAll": { + "message": "Избиране на всичко" + }, + "unselectAll": { + "message": "Без избиране" + }, + "launch": { + "message": "Пускане" + }, + "newAttachment": { + "message": "Прикачване на файл" + }, + "deletedAttachment": { + "message": "Прикаченият файл е изтрит" + }, + "deleteAttachmentConfirmation": { + "message": "Сигурни ли сте, че искате да изтриете прикачения файл?" + }, + "attachmentSaved": { + "message": "Прикаченият файл е запазен." + }, + "file": { + "message": "Файл" + }, + "selectFile": { + "message": "Избор на файл." + }, + "maxFileSize": { + "message": "Големината на файла е най-много 500 MB." + }, + "updateKey": { + "message": "Трябва да обновите шифриращия си ключ, за да използвате тази възможност." + }, + "addedItem": { + "message": "Елементът е добавен" + }, + "editedItem": { + "message": "Елементът е редактиран" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ се премести в $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Избраните записи бяха преместени в $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Изтриване на елемента" + }, + "deleteFolder": { + "message": "Изтриване на папка" + }, + "deleteAttachment": { + "message": "Изтриване на прикачения файл" + }, + "deleteItemConfirmation": { + "message": "Сигурни ли сте, че искате да изтриете елемента?" + }, + "deletedItem": { + "message": "Елементът е изтрит" + }, + "deletedItems": { + "message": "Елементите са изтрити" + }, + "movedItems": { + "message": "Елементите са преместени" + }, + "overwritePasswordConfirmation": { + "message": "Сигурни ли сте, че искате да обновите текущата парола?" + }, + "editedFolder": { + "message": "Редактирана папка" + }, + "addedFolder": { + "message": "Добавена папка" + }, + "deleteFolderConfirmation": { + "message": "Сигурни ли сте, че искате да изтриете тази папка?" + }, + "deletedFolder": { + "message": "Изтрита папка" + }, + "loggedOut": { + "message": "Бяхте отписани" + }, + "loginExpired": { + "message": "Сесията ви изтече." + }, + "logOutConfirmation": { + "message": "Сигурни ли сте, че искате да се отпишете?" + }, + "logOut": { + "message": "Отписване" + }, + "ok": { + "message": "Добре" + }, + "yes": { + "message": "Да" + }, + "no": { + "message": "Не" + }, + "loginOrCreateNewAccount": { + "message": "Впишете се или създайте нов абонамент, за да достъпите защитен трезор." + }, + "createAccount": { + "message": "Създаване на абонамент" + }, + "logIn": { + "message": "Вписване" + }, + "submit": { + "message": "Подаване" + }, + "emailAddressDesc": { + "message": "Ще се вписвате с адреса на електронната си поща." + }, + "yourName": { + "message": "Името ви" + }, + "yourNameDesc": { + "message": "Как да ви наричаме?" + }, + "masterPass": { + "message": "Главна парола" + }, + "masterPassDesc": { + "message": "Главната парола се използва за достъп до трезора ви. Запомнете я добре, защото възстановяването ѝ е абсолютно невъзможно." + }, + "masterPassHintDesc": { + "message": "Ако сте забравили главната парола, то подсказването може да ви помогне да си я припомните." + }, + "reTypeMasterPass": { + "message": "Въведете пак главната парола" + }, + "masterPassHint": { + "message": "Подсказка за главната парола (по избор)" + }, + "masterPassHintLabel": { + "message": "Подсказка за главната парола" + }, + "settings": { + "message": "Настройки" + }, + "passwordHint": { + "message": "Подсказка за паролата" + }, + "enterEmailToGetHint": { + "message": "Въведете адреса на електронната си поща, за да получите подсказка за главната парола." + }, + "getMasterPasswordHint": { + "message": "Подсказка за главната парола" + }, + "emailRequired": { + "message": "Електронната поща е задължителна." + }, + "invalidEmail": { + "message": "Недействителна електронна поща." + }, + "masterPassRequired": { + "message": "Главната парола е задължителна." + }, + "masterPassLength": { + "message": "Главната парола трябва да съдържа поне 8 знака." + }, + "masterPassDoesntMatch": { + "message": "Главната парола и потвърждението ѝ не съвпадат." + }, + "newAccountCreated": { + "message": "Абонаментът ви бе създаден. Вече можете да се впишете." + }, + "masterPassSent": { + "message": "Изпратихме ви писмо с подсказка за главната ви парола." + }, + "unexpectedError": { + "message": "Възникна неочаквана грешка." + }, + "emailAddress": { + "message": "Адрес на електронната поща" + }, + "yourVaultIsLocked": { + "message": "Трезорът е заключен — въведете главната си парола, за да продължите." + }, + "unlock": { + "message": "Отключване" + }, + "loggedInAsEmailOn": { + "message": "Вписани сте като $EMAIL$ на $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Грешна главна парола" + }, + "lockNow": { + "message": "Заключване сега" + }, + "noItemsInList": { + "message": "Няма елементи за показване." + }, + "noCollectionsInList": { + "message": "Няма колекции за показване." + }, + "noGroupsInList": { + "message": "Няма групи за показване." + }, + "noUsersInList": { + "message": "Няма потребители за показване." + }, + "noEventsInList": { + "message": "Няма събития за показване." + }, + "newOrganization": { + "message": "Нова организация" + }, + "noOrganizationsList": { + "message": "Не сте член на никоя организация. Организациите позволяват да споделяте записи с други потребители по защитен начин." + }, + "versionNumber": { + "message": "Версия $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Въведете шестцифрения код за потвърждение от приложението за удостоверяване." + }, + "enterVerificationCodeEmail": { + "message": "Въведете шестцифрения код за потвърждение, който е бил изпратен на $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Писмото за потвърждение е изпратено на $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Запомняне" + }, + "sendVerificationCodeEmailAgain": { + "message": "Повторно изпращане на писмото за потвърждение" + }, + "useAnotherTwoStepMethod": { + "message": "Използвайте друг начин на двустепенно удостоверяване" + }, + "insertYubiKey": { + "message": "Поставете устройството на YubiKey в USB порт на компютъра и натиснете бутона на устройството." + }, + "insertU2f": { + "message": "Поставете устройството за удостоверяване в USB порт на компютъра. Ако на устройството има бутон, натиснете го." + }, + "loginUnavailable": { + "message": "Записът липсва" + }, + "noTwoStepProviders": { + "message": "Абонаментът е защитен с двустепенно удостоверяване, но никой от настроените доставчици на удостоверяване не се поддържа от този браузър." + }, + "noTwoStepProviders2": { + "message": "Пробвайте с поддържан уеб браузър (като Chrome или Firefox) и други доставчици на удостоверяване, които се поддържат от браузърите (като специални програми за удостоверяване)." + }, + "twoStepOptions": { + "message": "Настройки на двустепенното удостоверяване" + }, + "recoveryCodeDesc": { + "message": "Ако сте загубили достъп до двустепенното удостоверяване, може да използвате код за възстановяване, за да изключите двустепенното удостоверяване в абонамента си." + }, + "recoveryCodeTitle": { + "message": "Код за възстановяване" + }, + "authenticatorAppTitle": { + "message": "Приложение за удостоверяване" + }, + "authenticatorAppDesc": { + "message": "Използвайте приложение за удостоверяване (като Authy или Google Authenticator) за генерирането на временни кодове за потвърждение.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "Устройство YubiKey OTP" + }, + "yubiKeyDesc": { + "message": "Използвайте устройство на YubiKey, за да влезете в абонамента си. Поддържат се моделите YubiKey 4, 4 Nano, 4C и NEO." + }, + "duoDesc": { + "message": "Удостоверяване чрез Duo Security, с ползване на приложението Duo Mobile, SMS, телефонен разговор или устройство U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Удостоверяване чрез Duo Security за организацията ви, с ползване на приложението Duo Mobile, SMS, телефонен разговор или устройство U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Използвайте всяко устройство, поддържащо FIDO U2F, за да влезете в абонамента си." + }, + "u2fTitle": { + "message": "Устройство FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Използвайте всяко устройство, поддържащо WebAuthn, за да влезете в абонамента си." + }, + "webAuthnMigrated": { + "message": "(Мигрирано от FIDO)" + }, + "emailTitle": { + "message": "Електронна поща" + }, + "emailDesc": { + "message": "Кодовете за потвърждение ще ви бъдат пратени по електронна поща." + }, + "continue": { + "message": "Продължаване" + }, + "organization": { + "message": "Организация" + }, + "organizations": { + "message": "Организации" + }, + "moveToOrgDesc": { + "message": "Изберете организацията, в която искате да преместите записа. Преместването прехвърля собствеността му към новата организация. След това няма вече директно да го притежавате." + }, + "moveManyToOrgDesc": { + "message": "Изберете организацията, в която искате да преместите избраните записи. Преместването прехвърля собствеността им към новата организация. След това няма вече директно да ги притежавате." + }, + "collectionsDesc": { + "message": "Редактиране на колекциите, с които записът е споделен. Само потребителите на организациите, с които колекцията е споделена, ще виждат записа." + }, + "deleteSelectedItemsDesc": { + "message": "За изтриване сте избрали $COUNT$ елемента/и. Сигурни ли сте, че искате да ги изтриете?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Избор на папка, в която да се преместят $COUNT$ избрани записи.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Избрали сте $COUNT$ запис(а). От тях могат да се преместят: $MOVEABLE_COUNT$, не могат да се преместят: $NONMOVEABLE_COUNT$.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Код за потвърждаване (TOTP)" + }, + "copyVerificationCode": { + "message": "Копиране на кода за потвърждаване" + }, + "warning": { + "message": "ВНИМАНИЕ" + }, + "confirmVaultExport": { + "message": "Потвърждаване на изнасянето на трезора" + }, + "exportWarningDesc": { + "message": "Данните от трезора ви ще се изнесат в незащитен формат. Не го пращайте по незащитени канали като електронна поща. Изтрийте файла незабавно след като свършите работата си с него." + }, + "encExportKeyWarningDesc": { + "message": "При изнасяне данните се шифрират с ключа ви. Ако го смените, ще трябва наново да ги изнесете, защото няма да може да дешифрирате настоящия файл." + }, + "encExportAccountWarningDesc": { + "message": "Ключовете за шифриране са уникални за всеки потребител, затова не може да внесете шифрирани данни от един потребител в регистрацията на друг." + }, + "export": { + "message": "Изнасяне" + }, + "exportVault": { + "message": "Изнасяне на трезора" + }, + "fileFormat": { + "message": "Формат на файла" + }, + "exportSuccess": { + "message": "Данните от трезора ви са изнесени." + }, + "passwordGenerator": { + "message": "Създаване на пароли" + }, + "minComplexityScore": { + "message": "Минимална сложност" + }, + "minNumbers": { + "message": "Минимален брой цифри" + }, + "minSpecial": { + "message": "Минимален брой специални знаци", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Без нееднозначни знаци" + }, + "regeneratePassword": { + "message": "Друга парола" + }, + "length": { + "message": "Дължина" + }, + "numWords": { + "message": "Брой думи" + }, + "wordSeparator": { + "message": "Разделител за думи" + }, + "capitalize": { + "message": "Главни букви", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "И цифри" + }, + "passwordHistory": { + "message": "Хронология на паролата" + }, + "noPasswordsInList": { + "message": "Няма пароли за показване." + }, + "clear": { + "message": "Изчистване", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Абонаментът е обновен" + }, + "changeEmail": { + "message": "Промяна на адреса за е-поща" + }, + "changeEmailTwoFactorWarning": { + "message": "Действието ще промени електронната поща свързана с регистрацията Ви. Електронната поща, която ползвате за двустепенно удостоверяване няма да бъде променена. Можете да я промените в настройките на двустепенното удостоверяване." + }, + "newEmail": { + "message": "Нов адрес за електронна поща" + }, + "code": { + "message": "Код" + }, + "changeEmailDesc": { + "message": "Пратили сме кода за потвърждаване на $EMAIL$. Проверете електронната си поща за писмо с този код и го въведете по-долу, за да завършите процеса на смяна на адреса на електронна поща.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Действието ще прекрати и текущата ви сесия, след което ще се наложи отново да се впишете. Активните сесии на другите устройства може да останат такива до един час." + }, + "emailChanged": { + "message": "Електронната поща е сменена" + }, + "logBackIn": { + "message": "Впишете се отново." + }, + "logBackInOthersToo": { + "message": "Впишете се отново. Ако използвате и други приложения на Битуорден, впишете се отново и в тях." + }, + "changeMasterPassword": { + "message": "Промяна на главната парола" + }, + "masterPasswordChanged": { + "message": "Главната парола е променена" + }, + "currentMasterPass": { + "message": "Текуща главна парола" + }, + "newMasterPass": { + "message": "Нова главна парола" + }, + "confirmNewMasterPass": { + "message": "Потвърждаване на новата главна парола" + }, + "encKeySettings": { + "message": "Настройки на шифриращия ключ" + }, + "kdfAlgorithm": { + "message": "Алгоритъм KDF" + }, + "kdfIterations": { + "message": "Повторения за KDF" + }, + "kdfIterationsDesc": { + "message": "По-големият брой повторения за KDF спомага за защитата на главната ви парола от атака с грубо изброяване. Препоръчваме ви стойност $VALUE$ или повече.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Задаването на прекалено голяма стойност на повторенията на KDF може да доведе до бавно вписване и отключване на трезора на Битуорден при работа от устройства с бавни процесори. Препоръчваме ви да увеличавате стойността на стъпки по $INCREMENT$ и да тествате на всичките си устройства.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Смяна на KDF" + }, + "encKeySettingsChanged": { + "message": "Настройките за шифриращия ключ са сменени" + }, + "dangerZone": { + "message": "ОПАСНО" + }, + "dangerZoneDesc": { + "message": "Внимание, тези действия са необратими!" + }, + "deauthorizeSessions": { + "message": "Прекратяване на сесии" + }, + "deauthorizeSessionsDesc": { + "message": "Ако се притеснявате, че сте влезли от друго устройство, може да прекратите влизанията от всички устройства, които сте ползвали досега. Препоръчваме ви да направите това, ако сте достъпвали трезора през споделено устройство или погрешка сте запазили паролата върху чуждо устройство. Тази стъпка изчиства и всички запомнени сесии с двустепенни идентификации." + }, + "deauthorizeSessionsWarning": { + "message": "Действието ще прекрати и текущата ви сесия, след което ще се наложи отново да се впишете. Ако сте включили двустепенна идентификация, ще се наложи да повторите и нея. Активните сесии на другите устройства може да останат такива до един час." + }, + "sessionsDeauthorized": { + "message": "Всички сесии са прекратени" + }, + "purgeVault": { + "message": "Пълно изчистване на трезора" + }, + "purgedOrganizationVault": { + "message": "Трезорът на организацията е напълно изчистен." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Ако продължите, ще изтриете всички папки и записи в трезора ви. Елементите, които са споделени и принадлежат на организации, няма да бъдат изтрити." + }, + "purgeOrgVaultDesc": { + "message": "Ако продължите, ще изтриете всички папки и записи в трезора на организацията." + }, + "purgeVaultWarning": { + "message": "Изчистването на трезора е окончателно и необратимо." + }, + "vaultPurged": { + "message": "Трезорът ви е напълно изчистен." + }, + "deleteAccount": { + "message": "Изтриване на абонамента" + }, + "deleteAccountDesc": { + "message": "Ако продължите, ще изтриете абонамента си и всички притежавани данни." + }, + "deleteAccountWarning": { + "message": "Изтриването на абонамента е окончателно и необратимо." + }, + "accountDeleted": { + "message": "Абонаментът е изтрит" + }, + "accountDeletedDesc": { + "message": "Абонаментът ви е окончателно прекратен и всички данни към него са изтрити." + }, + "myAccount": { + "message": "Абонамент" + }, + "tools": { + "message": "Инструменти" + }, + "importData": { + "message": "Внасяне на данни" + }, + "importError": { + "message": "Грешка при внасянето" + }, + "importErrorDesc": { + "message": "Има проблем с данните, които внасяте. Поправете грешките посочени по-долу и пробвайте отново." + }, + "importSuccess": { + "message": "Данните са внесени успешно в трезора ви." + }, + "importWarning": { + "message": "Внасяте данни към организацията „$ORGANIZATION$“. Данните могат да бъдат споделени с членовете ѝ. Сигурни ли сте, че искате да продължите?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Данните са в неправилен формат. Проверете файла за внасяне и пробвайте отново." + }, + "importNothingError": { + "message": "Нищо не бе внесено." + }, + "importEncKeyError": { + "message": "Грешка при дешифрирането на изнесения файл. Ключът за шифриране не отговаря на този, който е използван за изнасянето на данните." + }, + "selectFormat": { + "message": "Избор на форма̀та на файла за внасяне" + }, + "selectImportFile": { + "message": "Изберете файла за внасяне" + }, + "orCopyPasteFileContents": { + "message": "или поставете съдържанието му" + }, + "instructionsFor": { + "message": "Инструкции за $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Настройки" + }, + "optionsDesc": { + "message": "Настройки на трезора по уеб." + }, + "optionsUpdated": { + "message": "Обновени настройки" + }, + "language": { + "message": "Език" + }, + "languageDesc": { + "message": "Смяна на езика на интерфейса. Ще трябва да пуснете програмата повторно." + }, + "disableIcons": { + "message": "Изключване на иконите на сайтовете" + }, + "disableIconsDesc": { + "message": "Иконите на сайтовете са разпознаваеми изображения към записите за вход в трезора." + }, + "enableGravatars": { + "message": "Включване на граватари", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Използване на иконки за потребители от сайта „gravatar.com“." + }, + "enableFullWidth": { + "message": "Извеждане на цяла широчина", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Трезорът по уеб да заема цялата широчина на прозореца на браузъра." + }, + "default": { + "message": "Стандартно" + }, + "domainRules": { + "message": "Правила за домейни" + }, + "domainRulesDesc": { + "message": "Ако ползвате същите регистрации с много домейни, може да обявите домейните като еквиваленти. Глобалните еквиваленти са зададени от Битуорден." + }, + "globalEqDomains": { + "message": "Глобални домейни-еквиваленти" + }, + "customEqDomains": { + "message": "Потребителски домейни-еквиваленти" + }, + "exclude": { + "message": "Изваждане" + }, + "include": { + "message": "Добавяне" + }, + "customize": { + "message": "Настройки" + }, + "newCustomDomain": { + "message": "Нов домейн" + }, + "newCustomDomainDesc": { + "message": "Въведете списък с домейни, разделени със запетаи. Позволени са само основни домейни, не въвеждайте поддомейни. Напр. ползвайте „google.com“ вместо „www.google.com“. Може да ползвате и варианти като \"androidapp://package.name\", за да добавите и приложение." + }, + "customDomainX": { + "message": "Потребителски домейни $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Домейните са обновени" + }, + "twoStepLogin": { + "message": "Двустепенно удостоверяване" + }, + "twoStepLoginDesc": { + "message": "Допълнителна защита на абонамента чрез изискването на допълнително действие при вписване." + }, + "twoStepLoginOrganizationDesc": { + "message": "Може да изискате двустепенна идентификация за всички потребители в организацията ви, като настроите доставчиците на ниво организация." + }, + "twoStepLoginRecoveryWarning": { + "message": "Включването на двустепенна идентификация може завинаги да предотврати вписването ви в абонамента към Битуорден. Кодът за възстановяване ще ви позволи да достъпите абонамента дори и да имате проблем с доставчика на двустепенна идентификация (напр. ако изгубите устройството си). Дори и екипът по поддръжката към няма да ви помогне в такъв случай. Силно препоръчваме да отпечатате или запишете кодовете и да ги пазете на надеждно място." + }, + "viewRecoveryCode": { + "message": "Извеждане на кодовете за възстановяване" + }, + "providers": { + "message": "Доставчици", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Включване" + }, + "enabled": { + "message": "Включено" + }, + "premium": { + "message": "Платен", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Платен абонамент" + }, + "premiumRequired": { + "message": "Изисква се платен абонамент" + }, + "premiumRequiredDesc": { + "message": "За да се възползвате от тази възможност, трябва да ползвате платен абонамент." + }, + "youHavePremiumAccess": { + "message": "Имате платен абонамент" + }, + "alreadyPremiumFromOrg": { + "message": "Вече имате достъп до възможностите на платения абонамент — членувате в организация, която ви осигурява това." + }, + "manage": { + "message": "Управление" + }, + "disable": { + "message": "Изключване" + }, + "twoStepLoginProviderEnabled": { + "message": "Този доставчик на двустепенно удостоверяване е включен за абонамента ви." + }, + "twoStepLoginAuthDesc": { + "message": "Въведете главната си парола, за да променяте настройките за двустепенно удостоверяване." + }, + "twoStepAuthenticatorDesc": { + "message": "Следвайте тези стъпки, за да настроите двустепенно удостоверяване:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Изтегляне на приложение за двустепенно удостоверяване" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Ако ви трябва приложение за двустепенно удостоверяване, пробвайте някое от следните:" + }, + "iosDevices": { + "message": "Устройства с iOS" + }, + "androidDevices": { + "message": "Устройства с Android" + }, + "windowsDevices": { + "message": "Устройства с Windows" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Това са само препоръчаните приложения. Другите приложения за идентификация също ще работят." + }, + "twoStepAuthenticatorScanCode": { + "message": "Сканирайте този QR код с приложението си за идентификация" + }, + "key": { + "message": "Ключ" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Въведете 6-цифрения код за потвърждение от приложението" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Ако трябва да добавите и друго устройство, по-долу е QR кодът или ключът, изисквани от приложението ви за идентификация." + }, + "twoStepDisableDesc": { + "message": "Сигурни ли сте, че искате да изключите този доставчик на двустепенно удостоверяване?" + }, + "twoStepDisabled": { + "message": "Доставчикът на двустепенно удостоверяване е изключен." + }, + "twoFactorYubikeyAdd": { + "message": "Добавяне на ново устройство YubiKey към регистрацията ви" + }, + "twoFactorYubikeyPlugIn": { + "message": "Поставете устройството на YubiKey в USB порт на компютър." + }, + "twoFactorYubikeySelectKey": { + "message": "Изберете първото свободно поле за YubiKey по-долу." + }, + "twoFactorYubikeyTouchButton": { + "message": "Натиснете бутона на устройството от YubiKey." + }, + "twoFactorYubikeySaveForm": { + "message": "Запазване на формуляра." + }, + "twoFactorYubikeyWarning": { + "message": "Поради платформени ограничения устройствата на YubiKey не могат да се използват с всички приложения на Битуорден. В такъв случай ще трябва да добавите друг доставчик на двустепенно удостоверяване, за да имате достъп до абонамента си, дори когато YubiKey не работи. Поддържани платформи:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Трезорът по уеб, самостоятелното приложение, командата за командния ред както и разширенията за браузърите за всички устройства с USB порт могат да работят с устройства на YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Мобилните приложения на устройство с NFC или USB порт могат да работят с устройства на YubiKey." + }, + "yubikeyX": { + "message": "YubiKey № $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Key № $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "Устройство WebAuthn $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "Поддръжка на NFC" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Някой от ключовете поддържа NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Ако някое от устройствата на YubiKey поддържа NFC (напр. моделът YubiKey NEO), ще бъдете питани за удостоверяване всеки път при засичането на NFC." + }, + "yubikeysUpdated": { + "message": "Данните за YubiKey са обновени" + }, + "disableAllKeys": { + "message": "Изключване на всички ключове" + }, + "twoFactorDuoDesc": { + "message": "Въведете информацията за приложението на Битуорден от административния панел на Duo." + }, + "twoFactorDuoIntegrationKey": { + "message": "Ключ за интеграция" + }, + "twoFactorDuoSecretKey": { + "message": "Таен ключ" + }, + "twoFactorDuoApiHostname": { + "message": "Адрес на сървъра за API" + }, + "twoFactorEmailDesc": { + "message": "Следвайте следните стъпки, за да настроите двустепенно удостоверяване с електронна поща:" + }, + "twoFactorEmailEnterEmail": { + "message": "Въведете адреса на електронната поща, където искате да получавате кодовете за потвърждение" + }, + "twoFactorEmailEnterCode": { + "message": "Въведете 6-цифрения код за потвърждение от пощата" + }, + "sendEmail": { + "message": "Изпращане на електронно писмо" + }, + "twoFactorU2fAdd": { + "message": "Добавяне на ново устройство FIDO U2F към регистрацията ви" + }, + "removeU2fConfirmation": { + "message": "Сигурни ли сте, че искате да изтриете този ключ за сигурност?" + }, + "twoFactorWebAuthnAdd": { + "message": "Добавяне на ново устройство WebAuthn към регистрацията ви" + }, + "readKey": { + "message": "Прочитане на ключ" + }, + "keyCompromised": { + "message": "Ключът е компрометиран." + }, + "twoFactorU2fGiveName": { + "message": "Задайте име на ключа за сигурност за лесното му разпознаване." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Поставете ключа за сигурност в USB порта на компютъра и натиснете бутона „Прочитане на ключ“." + }, + "twoFactorU2fTouchButton": { + "message": "Ако ключът разполага с бутон, натиснете го." + }, + "twoFactorU2fSaveForm": { + "message": "Запазване на формуляра." + }, + "twoFactorU2fWarning": { + "message": "Поради платформени ограничения устройствата FIDO U2F не могат да се използват със всички приложения на Битуорден. В такъв случай ще трябва да добавите друг доставчик на двустепенно удостоверяване, за да имате достъп до абонамента си, дори когато FIDO U2F не работи. Поддържани платформи:" + }, + "twoFactorU2fSupportWeb": { + "message": "Трезорът по уеб както и разширенията за браузърите с поддръжка на U2F (Chrome, Opera, Vivaldi и Firefox с поддръжка на FIDO U2F)." + }, + "twoFactorU2fWaiting": { + "message": "Изчакване да натиснете бутона на устройството си за сигурност" + }, + "twoFactorU2fClickSave": { + "message": "Натиснете бутона „Запазване“ по-долу, за да включите този ключ за двустепенна идентификация." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Проблем при изчитането на ключа за сигурност. Пробвайте отново." + }, + "twoFactorWebAuthnWarning": { + "message": "Поради платформени ограничения устройствата на WebAuthn не могат да се използват с всички приложения на Битуорден. В такъв случай ще трябва да добавите друг доставчик на двустепенно удостоверяване, за да имате достъп до абонамента си, дори когато WebAuthn не работи. Поддържани платформи:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Трезорът по уеб както и разширенията за браузърите с поддръжка на WebAuthn (Chrome, Opera, Vivaldi и Firefox с поддръжка на FIDO U2F)." + }, + "twoFactorRecoveryYourCode": { + "message": "Код за възстановяване на достъпа до Битуорден при двустепенна идентификация" + }, + "twoFactorRecoveryNoCode": { + "message": "Не сте включили никой доставчик на двустепенна идентификация. След като направите това, може да проверите тук за код за възстановяване на достъпа." + }, + "printCode": { + "message": "Отпечатване на кода", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Доклади" + }, + "reportsDesc": { + "message": "Открийте и отстранете проблемите със защитата на профилите си като щракнете върху докладите по-долу." + }, + "unsecuredWebsitesReport": { + "message": "Доклад за сайтове без защита" + }, + "unsecuredWebsitesReportDesc": { + "message": "Използването на сайтове, които използват схемата без шифриране „http://“ може да е опасно. Ако сайтовете позволяват, следва да ги достъпвате през схемата „https://“, при което връзката ви е шифрирана." + }, + "unsecuredWebsitesFound": { + "message": "Открити са записи без защита" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Открити са $COUNT$ записи в трезора с адрес без защита. Трябва да смените схемата за URI-то им на „https://“, ако сайтовете го поддържат.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Всички записи в трезора са със защитени адреси." + }, + "inactive2faReport": { + "message": "Доклад за сайтовете без двустепенна защита" + }, + "inactive2faReportDesc": { + "message": "Двустепенната идентификация (2FA) е важна настройка, която силно повишава защитата на регистрациите ви. Ако сайтът поддържа това, задължително включете тази възможност." + }, + "inactive2faFound": { + "message": "Открити са записи без двустепенна идентификация" + }, + "inactive2faFoundDesc": { + "message": "В трезора ви има записи за $COUNT$ уебсайта, които е възможно да не са настроени за работа с двустепенна идентификация (според сайта twofactorauth.org). За да защитите тези регистрации, трябва да включите двустепенната идентификация.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Не са открити записи в трезора ви с липсващи настройки за двустепенна идентификация." + }, + "instructions": { + "message": "Инструкции" + }, + "exposedPasswordsReport": { + "message": "Доклад за разкрити пароли" + }, + "exposedPasswordsReportDesc": { + "message": "Разкритите пароли са публикувани като част от докладите за изтекли данни или се продават в тъмния Интернет." + }, + "exposedPasswordsFound": { + "message": "Открити са разкрити пароли" + }, + "exposedPasswordsFoundDesc": { + "message": "Открити са $COUNT$ записа в трезора ви, които са с разкрити пароли. Трябва да смените тези пароли.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Няма записи в трезора ви, които са с разкрити пароли." + }, + "checkExposedPasswords": { + "message": "Проверка за разкрити пароли" + }, + "exposedXTimes": { + "message": "Разкрити $COUNT$ път/и", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Доклад за слаби пароли" + }, + "weakPasswordsReportDesc": { + "message": "Слабите пароли лесно биват разкрити. Злоумишлени лица могат да ги отгатнат, а автоматични инструменти могат да ги налучкат. Генераторът на пароли на Битуорден може да ви помогне да създадете надеждни пароли." + }, + "weakPasswordsFound": { + "message": "Открити са слаби пароли" + }, + "weakPasswordsFoundDesc": { + "message": "В трезора ви има $COUNT$записи със слаби пароли. Сменете паролите с надеждни.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Всички записи в трезора са с надеждни пароли." + }, + "reusedPasswordsReport": { + "message": "Доклад за повтарящи се пароли" + }, + "reusedPasswordsReportDesc": { + "message": "Ако някой достъпи данните ви за вписване към дадена услуга, а вие ползвате една и съща парола навсякъде, то злоумишлени лица могат много по-лесно да пробият другите ви регистрации. За всяка регистрация следва да ползвате различна парола." + }, + "reusedPasswordsFound": { + "message": "Отрити са повтарящи се пароли" + }, + "reusedPasswordsFoundDesc": { + "message": "В трезора ви има $COUNT$ повтарящи се пароли. Задължително ги сменете с други, уникални пароли.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "В трезора ви няма записи с пароли, които се ползват и другаде." + }, + "reusedXTimes": { + "message": "Преизползвана $COUNT$ пъти", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Доклад за изтичането на данни" + }, + "breachDesc": { + "message": "Изтичането на данни е инцидент, при който злоумишлени лица получават достъп до данните ви, след което те биват публикувани. Прегледайте вида на изтеклата информация (адреси за електронна поща, пароли, номера на карти и т. н.) и предприемете надлежните действия като да си смените паролата." + }, + "breachCheckUsernameEmail": { + "message": "Проверка за изтекли данни, съдържащи потребителското ви име или адреса ви за електронна поща" + }, + "checkBreaches": { + "message": "Проверка за изтичане на данни" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ липсва във всички известни масиви с изтекли данни.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Добри новини", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ е открит в $COUNT$ от известните масиви с изтекли данни.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Някои от записите са открити в масивите с изтекли данни" + }, + "compromisedData": { + "message": "Изтекли данни" + }, + "website": { + "message": "Сайт" + }, + "affectedUsers": { + "message": "Засегнати потребители" + }, + "breachOccurred": { + "message": "Изтичане на данните" + }, + "breachReported": { + "message": "Доклад за изтичането" + }, + "reportError": { + "message": "Грешка при зареждането на доклада. Пробвайте отново" + }, + "billing": { + "message": "Заплащане" + }, + "accountCredit": { + "message": "Кредит по абонамента", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Баланс по абонамента", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Добавяне на кредит", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Сума", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Добавеният кредит се появява в абонамента ви след окончателната обработка на плащането. Някои начини за плащане са по-бавни и отнемат повече време." + }, + "makeSureEnoughCredit": { + "message": "Проверете дали към абонамента си имате достатъчно средства за тази покупка. В противен случай разликата от наличното и необходимото се изисква от основния ви метод за плащане, който сте задали." + }, + "creditAppliedDesc": { + "message": "Може да използвате кредитите към абонамента си за покупки. Кредитите се използват за покриването на издадените фактури към абонамента." + }, + "goPremium": { + "message": "Платен абонамент", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Вече ползвате платен абонамент." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Платеният абонамент идва с допълнителни преимущества." + }, + "premiumSignUpStorage": { + "message": "1 GB пространство за файлове, които се шифрират." + }, + "premiumSignUpTwoStep": { + "message": "Двустепенно удостоверяване чрез YubiKey, FIDO U2F и Duo." + }, + "premiumSignUpEmergency": { + "message": "Авариен достъп" + }, + "premiumSignUpReports": { + "message": "Проверки в списъците с публикувани пароли, проверка на регистрациите и доклади за изтекли данни, което спомага трезорът ви да е допълнително защитен." + }, + "premiumSignUpTotp": { + "message": "Генериране на временни, еднократни кодове за двустепенно удостоверяване за регистрациите в трезора." + }, + "premiumSignUpSupport": { + "message": "Приоритетна поддръжка." + }, + "premiumSignUpFuture": { + "message": "Всички бъдещи ползи! Предстои въвеждането на още!" + }, + "premiumPrice": { + "message": "И това само за $PRICE$ на година!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Добавки" + }, + "premiumAccess": { + "message": "Платен абонамент" + }, + "premiumAccessDesc": { + "message": "Членовете на организацията ви могат ще могат да се възползват от допълнителните възможности на платения абонамент срещу $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Допълнително място [GB]" + }, + "additionalStorageGbDesc": { + "message": "брой GB допълнително" + }, + "additionalStorageIntervalDesc": { + "message": "Планът ви идва с $SIZE$ място за шифрирани данни. Може да се сдобиете с още при цена $PRICE$ за 1 GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Обобщено" + }, + "total": { + "message": "Общо" + }, + "year": { + "message": "година" + }, + "month": { + "message": "месец" + }, + "monthAbbr": { + "message": "мес.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Сумата ще бъде директно изискана от метода за плащане, след което ще се повтаря всяка година. Може да се откажете по всяко време." + }, + "paymentCharged": { + "message": "Сумата ще бъде директно изискана от метода за плащане, след което ще се повтаря всеки $INTERVAL$. Може да се откажете по всяко време.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Планът ви идва с пробен период от 7 дена. Плащането няма се изиска преди това, след което ще се повтаря всеки $INTERVAL$. Може да се откажете по всяко време." + }, + "paymentInformation": { + "message": "Информация за плащането" + }, + "billingInformation": { + "message": "Информация за фактуриране" + }, + "creditCard": { + "message": "Кредитна карта" + }, + "paypalClickSubmit": { + "message": "Натиснете бутона на PayPal, за да се впишете в регистрацията ви в него. След това натиснете бутона „Подаване“ по-долу, за да продължите." + }, + "cancelSubscription": { + "message": "Прекратяване на абонамента" + }, + "subscriptionCanceled": { + "message": "Абонаментът е прекратен." + }, + "pendingCancellation": { + "message": "Предстоящо прекратяване на абонамента" + }, + "subscriptionPendingCanceled": { + "message": "Прекратяването на абонамента след края на последно платения период е обявено." + }, + "reinstateSubscription": { + "message": "Подновяване на абонамента" + }, + "reinstateConfirmation": { + "message": "Уверени ли сте, че искате да подновите абонамента и да отмените заявката за прекратяването му?" + }, + "reinstated": { + "message": "Абонаментът е подновен." + }, + "cancelConfirmation": { + "message": "Уверени ли сте, че искате да прекратите абонамента? След края на последно платения период ще загубите всички допълнителни преимущества." + }, + "canceledSubscription": { + "message": "Абонаментът е прекратен." + }, + "neverExpires": { + "message": "Никога не изтича" + }, + "status": { + "message": "Състояние" + }, + "nextCharge": { + "message": "Следваща промяна" + }, + "details": { + "message": "Детайли" + }, + "downloadLicense": { + "message": "Изтегляне на лиценз" + }, + "updateLicense": { + "message": "Обновяване на лиценз" + }, + "updatedLicense": { + "message": "Лицензът е обновен" + }, + "manageSubscription": { + "message": "Управление на абонамента" + }, + "storage": { + "message": "Съхранение на данни" + }, + "addStorage": { + "message": "Добавяне на пространство" + }, + "removeStorage": { + "message": "GB пространство за махане" + }, + "subscriptionStorage": { + "message": "Абонаментът ви предоставя общо $MAX_STORAGE$ GB място за съхранение със шифриране. В момента ползвате $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Метод за плащане" + }, + "noPaymentMethod": { + "message": "Липсва какъвто и да е метод за плащане." + }, + "addPaymentMethod": { + "message": "Добавяне на метод за плащане" + }, + "changePaymentMethod": { + "message": "Промяна на метод за плащане" + }, + "invoices": { + "message": "Фактури" + }, + "noInvoices": { + "message": "Няма фактури." + }, + "paid": { + "message": "Платено", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Дължимо", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Транзакции", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Няма транзакции." + }, + "chargeNoun": { + "message": "Зареждане", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Възстановяване", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Всички плащания ще бъдат изброени като $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB пространство за добавяне" + }, + "gbStorageRemove": { + "message": "Махане на пространство" + }, + "storageAddNote": { + "message": "Добавянето на място за съхранение ще се отрази незабавно на сумата, която плащате. Ще изискаме допълнителната сума от метода ви за плащане. Първото плащане ще е пропорционално на оставащото време от текущия платежен цикъл." + }, + "storageRemoveNote": { + "message": "Освободеното място също се отразява незабавно на плащаните суми. Надвзетата сума, пропорционално на оставащото време от текущия платежен цикъл ще ви бъде върната като кредити за следващия платежен цикъл." + }, + "adjustedStorage": { + "message": "Промяна с $AMOUNT$ GB място за съхранение.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Връзка с поддръжката на потребители" + }, + "updatedPaymentMethod": { + "message": "Обновен метод за плащане." + }, + "purchasePremium": { + "message": "Закупуване на абонамент" + }, + "licenseFile": { + "message": "Файл с лиценза" + }, + "licenseFileDesc": { + "message": "Файлът с лиценза се казва „$FILE_NAME$“ или нещо подобно", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "За да преминете към платен абонамент, трябва да качите файл с валиден лиценз." + }, + "uploadLicenseFileOrg": { + "message": "За да създадете организация в собствените сървъри, ще трябва да качите файл с валиден лиценз." + }, + "accountEmailMustBeVerified": { + "message": "Трябва да покажете, че имате достъп до адреса на електронната си поща." + }, + "newOrganizationDesc": { + "message": "Организациите позволяват да споделяте части от трезора си с други потребители, както и да управлявате потребители по звена — семейство, екип, отдел." + }, + "generalInformation": { + "message": "Обща информация" + }, + "organizationName": { + "message": "Име на организация" + }, + "accountOwnedBusiness": { + "message": "Този абонамент е на организация." + }, + "billingEmail": { + "message": "Адрес на електронната поща за плащанията" + }, + "businessName": { + "message": "Име на организация" + }, + "chooseYourPlan": { + "message": "Избор на план" + }, + "users": { + "message": "Потребители" + }, + "userSeats": { + "message": "Потребители в организацията" + }, + "additionalUserSeats": { + "message": "Допълнителни потребители в организацията" + }, + "userSeatsDesc": { + "message": "Брой потребители в организацията" + }, + "userSeatsAdditionalDesc": { + "message": "Планът идва с поддръжка на $BASE_SEATS$ потребители в организацията. Можете да добавяте допълнителни потребители на цена $SEAT_PRICE$ за потребител на месец.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Колко потребители в организацията са ви нужни? По-късно пак може да добавяте потребители, ако е нужно." + }, + "planNameFree": { + "message": "Безплатен", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "За проба или за индивидуални потребители, които ще могат да споделят с $COUNT$ на брой допълнителни потребители.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Семеен" + }, + "planDescFamilies": { + "message": "За индивидуални потребители, които ще могат да споделят със семейството и приятелите си." + }, + "planNameTeams": { + "message": "Екипен" + }, + "planDescTeams": { + "message": "За компании и други екипни организации." + }, + "planNameEnterprise": { + "message": "За големи организации" + }, + "planDescEnterprise": { + "message": "За големи компании и организации." + }, + "freeForever": { + "message": "Завинаги безплатно" + }, + "includesXUsers": { + "message": "включва $COUNT$ потребители", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Допълнителни потребители" + }, + "costPerUser": { + "message": "$COST$ на потребител", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "До максимум $COUNT$ потребители (включително и вие)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "До максимум $COUNT$ колекции", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Добавяне и споделяне с до $COUNT$ потребители", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Добавяне и споделяне с неограничен брой потребители" + }, + "createUnlimitedCollections": { + "message": "Неограничен брой колекции" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ място за съхранение на шифрирани данни", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Собствени сървъри (по избор)" + }, + "usersGetPremium": { + "message": "Потребителите получават достъп до възможностите на платения абонамент" + }, + "controlAccessWithGroups": { + "message": "Управление на потребителите по групи" + }, + "syncUsersFromDirectory": { + "message": "Синхронизиране на потребителите и групите с директорийни услуги" + }, + "trackAuditLogs": { + "message": "Одит на действията на потребителите чрез журнали" + }, + "enforce2faDuo": { + "message": "Задължително ползване на двустепенна защита с Duo" + }, + "priorityCustomerSupport": { + "message": "Поддръжка с приоритет" + }, + "xDayFreeTrial": { + "message": "$COUNT$ дни безплатен пробен период! Може да прекъснете по всяко време", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Месечно" + }, + "annually": { + "message": "Годишно" + }, + "basePrice": { + "message": "Базова цена" + }, + "organizationCreated": { + "message": "Организацията е създадена" + }, + "organizationReadyToGo": { + "message": "Новата организация е готова!" + }, + "organizationUpgraded": { + "message": "Организацията е обновена." + }, + "leave": { + "message": "Напускане" + }, + "leaveOrganizationConfirmation": { + "message": "Уверени ли сте, че искате да напуснете тази организация?" + }, + "leftOrganization": { + "message": "Напуснахте организацията." + }, + "defaultCollection": { + "message": "Стандартна колекция" + }, + "getHelp": { + "message": "Помощ" + }, + "getApps": { + "message": "Изтегляне на приложенията" + }, + "loggedInAs": { + "message": "Вписани сте като" + }, + "eventLogs": { + "message": "Журнали със събития" + }, + "people": { + "message": "Хора" + }, + "policies": { + "message": "Политики" + }, + "singleSignOn": { + "message": "Еднократна идентификация" + }, + "editPolicy": { + "message": "Редактиране на политика" + }, + "groups": { + "message": "Групи" + }, + "newGroup": { + "message": "Нова група" + }, + "addGroup": { + "message": "Добавяне на група" + }, + "editGroup": { + "message": "Редактиране на група" + }, + "deleteGroupConfirmation": { + "message": "Сигурни ли сте, че искате да изтриете тази група?" + }, + "removeUserConfirmation": { + "message": "Сигурни ли сте, че искате да изтриете този потребител?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Внимание! Този потребител има нужда от конектор за ключове, за да управлява шифроването си. Ако премахнете потребителя от организацията, ще заключите завинаги достъпа му до неговата регистрация. Това действие е необратимо. Наистина ли искате да продължите?" + }, + "externalId": { + "message": "Външен идентификатор" + }, + "externalIdDesc": { + "message": "Външните идентификатори указват връзката на този елемент с друга система, напр. директорийна услуга с потребители и групи." + }, + "accessControl": { + "message": "Управление на достъпа" + }, + "groupAccessAllItems": { + "message": "Тази група има достъп до всички записи." + }, + "groupAccessSelectedCollections": { + "message": "Тази група има достъп само до избраните колекции." + }, + "readOnly": { + "message": "Само за четене" + }, + "newCollection": { + "message": "Нова колекция" + }, + "addCollection": { + "message": "Добавяне на колекция" + }, + "editCollection": { + "message": "Редактиране на колекция" + }, + "deleteCollectionConfirmation": { + "message": "Сигурни ли сте, че искате да изтриете тази колекция?" + }, + "editUser": { + "message": "Редактиране на потребител" + }, + "inviteUser": { + "message": "Поканване на потребител" + }, + "inviteUserDesc": { + "message": "Може да поканите потребител да стане член на организацията като попълните адреса му за електронна поща, с който е регистриран в Битуорден, по-долу. В случай, че потребителят не е регистриран, той автоматично ще получи покана и да се регистрира." + }, + "inviteMultipleEmailDesc": { + "message": "Може да добавяте до $COUNT$ на брой потребители наведнъж, като подадете списък с адреси на електронна поща, разделени със запетаи.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Този потребител използва двустепенна защита за достъп." + }, + "userAccessAllItems": { + "message": "Този потребител има достъп до всички записи и може да ги редактира." + }, + "userAccessSelectedCollections": { + "message": "Този потребител има достъп само до избраната колекция." + }, + "search": { + "message": "Търсене" + }, + "invited": { + "message": "Поканен" + }, + "accepted": { + "message": "Приел" + }, + "confirmed": { + "message": "Потвърдил" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Собственик" + }, + "ownerDesc": { + "message": "Потребителят с най-големи права, който може да управлява всички настройки на организацията ви." + }, + "clientOwnerDesc": { + "message": "Този потребител трябва да бъде независим от доставчика. Ако организацията прекъсне връзката си с доставчика, този потребител ще продължи да има права върху организацията." + }, + "admin": { + "message": "Администратор" + }, + "adminDesc": { + "message": "Администраторите имат достъп до всички записи, колекции и потребители в организацията и могат да ги управляват." + }, + "user": { + "message": "Потребител" + }, + "userDesc": { + "message": "Редови потребител с достъп до определени колекции в организацията." + }, + "manager": { + "message": "Мениджър" + }, + "managerDesc": { + "message": "Мениджърите достъпват и управляват зададените им колекции в организацията." + }, + "all": { + "message": "Всички" + }, + "refresh": { + "message": "Опресняване" + }, + "timestamp": { + "message": "Времево клеймо" + }, + "event": { + "message": "Събитие" + }, + "unknown": { + "message": "Неизвестно" + }, + "loadMore": { + "message": "Още" + }, + "mobile": { + "message": "Мобилен номер", + "description": "Mobile app" + }, + "extension": { + "message": "Вътрешен номер", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Десктоп", + "description": "Desktop app" + }, + "webVault": { + "message": "Трезор по уеб" + }, + "loggedIn": { + "message": "Вписани сте." + }, + "changedPassword": { + "message": "Паролата на абонамента е сменена." + }, + "enabledUpdated2fa": { + "message": "Двустепенното удостоверяване е включено/обновено." + }, + "disabled2fa": { + "message": "Двустепенното удостоверяване е изключено." + }, + "recovered2fa": { + "message": "Абонаментът с двустепенно удостоверяване е възстановен." + }, + "failedLogin": { + "message": "Неуспешно вписване заради грешна парола." + }, + "failedLogin2fa": { + "message": "Неуспешно вписване заради неуспешно двустепенно удостоверяване." + }, + "exportedVault": { + "message": "Трезорът е изнесен." + }, + "exportedOrganizationVault": { + "message": "Трезорът на организацията е изнесен." + }, + "editedOrgSettings": { + "message": "Настройките на организацията са редактирани." + }, + "createdItemId": { + "message": "Запис № $ID$ е създаден.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Запис № $ID$ е редактиран.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Запис № $ID$ е изтрит.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Записът $ID$ беше преместен в организация.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Запис № $ID$ е разгледан.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Паролата на запис № $ID$ е прегледана.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Скрито поле от запис № $ID$ е прегледано.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Кодът за сигурност за запис № $ID$ е прегледан.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Паролата на запис № $ID$ е копирана.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Скрито поле от запис № $ID$ е копирано.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Кодът за сигурност за запис № $ID$ е копирано.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Запис № $ID$ е ползван за автоматично дописване.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Колекция № $ID$ е създадена.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Колекция № $ID$ е редактирана.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Колекция № $ID$ е изтрита.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Редактирана политика № $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Група № $ID$ е създадена.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Група № $ID$ е редактирана.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Група № $ID$ е изтрита.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Потребител № $ID$ е изтрит.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Към запис № $ID$ е прикачен файл.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Прикаченият файл към запис № $ID$ е изтрит.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Колекциите за запис № $ID$ са редактирани.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Потребител № $ID$ е поканен.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Потребител № $ID$ е потвърден.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Потребител № $ID$ е редактиран.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Групите на потребител № $ID$ са редактирани.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Самоличността $ID$ е извадено от еднократното вписване.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Организация № $ID$ е създадена.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Организация № $ID$ е добавена.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Организация № $ID$ е премахната.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Устройство" + }, + "view": { + "message": "Изглед" + }, + "invalidDateRange": { + "message": "Неправилен диапазон от дати." + }, + "errorOccurred": { + "message": "Възникна грешка." + }, + "userAccess": { + "message": "Права на потребител" + }, + "userType": { + "message": "Вид потребител" + }, + "groupAccess": { + "message": "Права на група" + }, + "groupAccessUserDesc": { + "message": "Редактирате на групите на потребителя." + }, + "invitedUsers": { + "message": "Поканени потребители." + }, + "resendInvitation": { + "message": "Изпращане на поканата наново" + }, + "resendEmail": { + "message": "Повторно изпращане на писмото" + }, + "hasBeenReinvited": { + "message": "$USER$ потребители са поканени.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Потвърждаване" + }, + "confirmUser": { + "message": "Потвърждаване на потребител" + }, + "hasBeenConfirmed": { + "message": "$USER$ потребители са потвърдени.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Потвърждаване на потребители" + }, + "usersNeedConfirmed": { + "message": "Има потребители, които са приели поканата си, но все още трябва да бъдат потвърдени. Потвърждаването е необходимо, за да получат достъп до организацията." + }, + "startDate": { + "message": "Начална дата" + }, + "endDate": { + "message": "Крайна дата" + }, + "verifyEmail": { + "message": "Потвърждаване на адреса на електронна поща" + }, + "verifyEmailDesc": { + "message": "Потвърдете адреса на електронната си поща, за да получите достъп до всички възможности." + }, + "verifyEmailFirst": { + "message": "Трябва да потвърдите адреса на електронната поща за абонамента си." + }, + "checkInboxForVerification": { + "message": "Проверете електронната си поща за писмо с хипервръзка, с която да потвърдите адреса ѝ." + }, + "emailVerified": { + "message": "Адресът на електронната ви поща е потвърден." + }, + "emailVerifiedFailed": { + "message": "Адресът на електронната ви поща не е потвърден. Пробвайте да изпратите ново писмо за потвърждение." + }, + "emailVerificationRequired": { + "message": "Изисква се потвърждение на е-пощата" + }, + "emailVerificationRequiredDesc": { + "message": "Трябва да потвърдите е-пощата си, за да можете да използвате тази функционалност." + }, + "updateBrowser": { + "message": "Обновяване на браузъра" + }, + "updateBrowserDesc": { + "message": "Ползвате неподдържан браузър. Трезорът по уеб може да не сработи правилно." + }, + "joinOrganization": { + "message": "Присъединяване към организация" + }, + "joinOrganizationDesc": { + "message": "Поканени сте да се присъедините към посочената по-горе организация. За да приемете, ще трябва да се впишете в абонамента си към Битуорден. Ако нямате такъв, ще трябва да създадете безплатен абонамент и след това да се впишете в него." + }, + "inviteAccepted": { + "message": "Поканата е приета" + }, + "inviteAcceptedDesc": { + "message": "Ще имате достъп до организацията, след като администраторът ѝ потвърди членството ви. Ще ви изпратим електронно писмо, когато това се случи." + }, + "inviteAcceptFailed": { + "message": "Поканата не може да бъде приета. Помолете администратора на организацията да ви прати нова." + }, + "inviteAcceptFailedShort": { + "message": "Поканата не може да бъде приета. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Припомняне на електронната поща" + }, + "recoverAccountTwoStepDesc": { + "message": "Ако не може да достъпите абонамента си с нормалната двустепенна идентификация, може да ползвате код за възстановяване, за да я изключите." + }, + "recoverAccountTwoStep": { + "message": "Възстановяване на абонамент с двустепенна идентификация" + }, + "twoStepRecoverDisabled": { + "message": "Двустепенната идентификация е изключена за абонамента ви." + }, + "learnMore": { + "message": "Научете повече" + }, + "deleteRecoverDesc": { + "message": "Въведете адреса на електронната си поща, за да възстановите и да изтриете абонамента си." + }, + "deleteRecoverEmailSent": { + "message": "Ако има такъв абонамент, трябва да получите писмо с последващи инструкции." + }, + "deleteRecoverConfirmDesc": { + "message": "Заявили сте, че искате да изтриете абонамента си към Битуорден. Натиснете бутона по-долу, за да потвърдите това решение." + }, + "myOrganization": { + "message": "Моята организация" + }, + "deleteOrganization": { + "message": "Изтриване на организация" + }, + "deletingOrganizationContentWarning": { + "message": "Въведете главната парола, за да потвърдите изтриването на $ORGANIZATION$ и всички свързани данни. Данните в трезора на $ORGANIZATION$ включват:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Потребителите ще продължат да съществуват и след изтриването, но вече няма да бъдат свързани с тази организация." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Изтриването на $ORGANIZATION$ е окончателно и необратимо.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Организацията е изтрита" + }, + "organizationDeletedDesc": { + "message": "Организацията и нейните данни са изтрити." + }, + "organizationUpdated": { + "message": "Организацията е обновена" + }, + "taxInformation": { + "message": "Данъчна информация" + }, + "taxInformationDesc": { + "message": "Свържете се с поддръжката, за да въведете (или смените) данъчната информация да фактурите." + }, + "billingPlan": { + "message": "План", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Смяна на плана", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Може да обновите плана си, като въведете изисканата информация по-долу. Уверете се, че имате действащ платежен метод към абонамента си.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Фактура № $NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Преглед на фактура" + }, + "downloadInvoice": { + "message": "Изтегляне на фактура" + }, + "verifyBankAccount": { + "message": "Потвърждаване на банковата сметка" + }, + "verifyBankAccountDesc": { + "message": "Наредихме две микротранзакции и трябва да получите сумите до два работни дни. Въведете сумите в страницата за плащания на организацията, за да потвърдите банковата си сметка." + }, + "verifyBankAccountInitialDesc": { + "message": "Плащането с банкова сметка е достъпно само за клиентите в Сащ. Ще трябва да потвърдите банковата си сметка. Ще наредим да ви се приведат две микротранзакции и трябва да получите сумите до два работни дни. Въведете сумите в страницата за плащания на организацията, за да потвърдите банковата си сметка." + }, + "verifyBankAccountFailureWarning": { + "message": "Ако не потвърдите номера на банкова сметка, няма да може да се нареди плащане и абонаментът ви ще бъде временно спрян." + }, + "verifiedBankAccount": { + "message": "Банковата сметка е потвърдена." + }, + "bankAccount": { + "message": "Банкова сметка" + }, + "amountX": { + "message": "Сума $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Банков код", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Номер на сметката" + }, + "accountHolderName": { + "message": "Име на притежателя на сметката" + }, + "bankAccountType": { + "message": "Вид на сметката" + }, + "bankAccountTypeCompany": { + "message": "На фирма" + }, + "bankAccountTypeIndividual": { + "message": "На физическо лице" + }, + "enterInstallationId": { + "message": "Въведете идентификатора на инсталацията" + }, + "limitSubscriptionDesc": { + "message": "Задайте ограничение на броя потребители за абонамента си. Когато то бъде достигнато, няма да можете да каните нови потребители." + }, + "maxSeatLimit": { + "message": "Максимален брой потребители (по избор)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Максимална потенциална цена за потребител" + }, + "addSeats": { + "message": "Добавяне на потребители", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Намаляване на потребители", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Промените в абонамента Ви ще предизвикат пропорционални промени в сумата, която плащате. Ако новопоканените потребители превишат ограничението на абонамента Ви, незабавно ще получите съответстващо пропорционално задължение за допълнителните потребители." + }, + "subscriptionUserSeats": { + "message": "Абонаментът ви позволява $COUNT$ на брой потребители.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Ограничаване на абонамента (по избор)" + }, + "subscriptionSeats": { + "message": "Потребители в абонамента" + }, + "subscriptionUpdated": { + "message": "Абонаментът е обновен" + }, + "additionalOptions": { + "message": "Допълнителни настройки" + }, + "additionalOptionsDesc": { + "message": "Ако имате нужда от допълнителна помощ с управлението на абонамента си, свържете се с поддръжката." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Промените в абонамента Ви ще предизвикат пропорционални промени в сумата, която плащате. Ако новопоканените потребители превишат ограничението на абонамента Ви, незабавно ще получите съответстващо пропорционално задължение за допълнителните потребители." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Промените в абонамента Ви ще предизвикат пропорционални промени в сумата, която плащате. Ако новопоканените потребители превишат ограничението на абонамента Ви, незабавно ще получите съответстващо пропорционално задължение за допълнителните потребители, докато не бъде достигнато ограничението от $MAX$ потребители.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Не можете да поканите повече от $COUNT$ потребители без да надградите плана си.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Не можете да поканите повече от $COUNT$ потребители без да надградите плана си. Свържете се с поддръжката за надграждане.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Абонаментът Ви позволява не повече от $COUNT$ потребители. Планът Ви е спонсориран и се плаща от външна организация.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Промените в абонамента Ви ще предизвикат пропорционални промени в сумата, която плащате. Не можете да поканите повече от $COUNT$ потребители, без да увеличите ограничението в абонамента си.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Брой потребители за добавяне" + }, + "seatsToRemove": { + "message": "Брой потребители за намаляване" + }, + "seatsAddNote": { + "message": "Добавянето на потребители води до увеличаване на дължимата сума. Разликата ще бъде незабавно погасена чрез текущия ви метод за плащане. Първото дължимо плащане е пропорционално на оставащия срок от текущия период на ползване." + }, + "seatsRemoveNote": { + "message": "Намаляването на потребители води до намаляване на дължимата сума. Разликата ще бъде заделена като кредит за следващото ви плащане, пропорционално на оставащия срок от текущия период на ползване." + }, + "adjustedSeats": { + "message": "Промяна с $AMOUNT$ потребители.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Ключът е обновен" + }, + "updateKeyTitle": { + "message": "Обновяване на ключа" + }, + "updateEncryptionKey": { + "message": "Обновяване на ключа за шифриране" + }, + "updateEncryptionKeyShortDesc": { + "message": "Ползвате остаряла схема за шифриране." + }, + "updateEncryptionKeyDesc": { + "message": "Вече ползваме по-дълги ключове за по-добра сигурност и повече възможности. Обновяването на ключа е бързо и лесно. Просто въведете главната си парола по-долу. В някой бъдещ момент това обновяване ще бъде задължително." + }, + "updateEncryptionKeyWarning": { + "message": "След смяната на ключа за шифриране ще трябва да се отпишете и след това да се впишете в регистрацията си във всички приложения на Битуорден, които ползвате (като мобилното приложение и разширенията за браузъри). Ако не се отпишете и впишете повторно (за да получите достъп до новия ключ), рискувате да повредите записите си. Сега ще се пробва да бъдете отписани автоматично, това обаче може да се забави." + }, + "updateEncryptionKeyExportWarning": { + "message": "Всички шифрирани вече изнесени данни ще станат безполезни." + }, + "subscription": { + "message": "Абонамент" + }, + "loading": { + "message": "Зареждане…\n" + }, + "upgrade": { + "message": "Обновяване" + }, + "upgradeOrganization": { + "message": "Обновяване на организацията" + }, + "upgradeOrganizationDesc": { + "message": "Безплатните планове нямат достъп до тази възможност. Преминете към платен план, за да се възползвате от тази и много други възможности." + }, + "createOrganizationStep1": { + "message": "Създаване на организация: стъпка № 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Преди да създадете организацията си, трябва да имате поне безплатен абонамент." + }, + "refunded": { + "message": "Парите са възстановени" + }, + "nothingSelected": { + "message": "Не сте избрали нищо." + }, + "acceptPolicies": { + "message": "Чрез тази отметка вие се съгласявате със следните:" + }, + "acceptPoliciesError": { + "message": "Условията за използване и политиката за поверителност не бяха приети." + }, + "termsOfService": { + "message": "Общи условия" + }, + "privacyPolicy": { + "message": "Политика за поверителност" + }, + "filters": { + "message": "Филтри" + }, + "vaultTimeout": { + "message": "Време за достъп" + }, + "vaultTimeoutDesc": { + "message": "Изберете колко да е времето за достъп и какво ще е действието след това." + }, + "oneMinute": { + "message": "1 минута" + }, + "fiveMinutes": { + "message": "5 минути" + }, + "fifteenMinutes": { + "message": "15 минути" + }, + "thirtyMinutes": { + "message": "30 минути" + }, + "oneHour": { + "message": "1 час" + }, + "fourHours": { + "message": "4 часа" + }, + "onRefresh": { + "message": "При презареждане на страницата" + }, + "dateUpdated": { + "message": "Обновена", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Обновена парола", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Организацията е изключена." + }, + "licenseIsExpired": { + "message": "Изтекъл лиценз." + }, + "updatedUsers": { + "message": "Обновени потребители" + }, + "selected": { + "message": "Избрано" + }, + "ownership": { + "message": "Собственост" + }, + "whoOwnsThisItem": { + "message": "Кой притежава този запис?" + }, + "strong": { + "message": "Силна", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Добра", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Слаба", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Много слаба", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Слаба главна парола" + }, + "weakMasterPasswordDesc": { + "message": "Зададената главна парола е твърде слаба. Главната парола трябва да е силна. Добре е да ползвате цяла фраза за парола, за да защитите данните в трезора на Битуорден. Уверени ли сте, че искате да ползвате слаба парола?" + }, + "rotateAccountEncKey": { + "message": "Ключът за шифриране също да се смени" + }, + "rotateEncKeyTitle": { + "message": "Смяна на ключа за шифриране" + }, + "rotateEncKeyConfirmation": { + "message": "Сигурни ли сте, че искате да смените ключа за шифрирането на абонамента?" + }, + "attachmentsNeedFix": { + "message": "Този запис съдържа стар, прикачен файл, който трябва да бъде поправен. Натиснете, за да научите повече." + }, + "attachmentFixDesc": { + "message": "Този прикачен файл е стар и трябва да бъде поправен. Натиснете, за да научите повече." + }, + "fix": { + "message": "Поправяне", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "В трезора ви има стари прикачени файлове. Те трябва да бъдат поправени, за да можете да смените ключа за шифриране на абонамента." + }, + "yourAccountsFingerprint": { + "message": "Уникална фраза, идентифицираща абонамента ви", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "За да опазите ключовете за шифриране, въведете уникалната фраза, идентифицираща абонамента ви.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Без повторно питане за уникалната фраза", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Безплатно", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "Ключ за API" + }, + "apiKeyDesc": { + "message": "Ключът позволява да се идентифицирате към публичното API на Битуорден." + }, + "apiKeyRotateDesc": { + "message": "Смяната на ключа ще направи предния ключ неизползваем. Можете да смените ключа си, ако считате, че текущият не е надежден повече." + }, + "apiKeyWarning": { + "message": "Ключът за API дава пълен достъп до организацията. Трябва да го пазите в тайна." + }, + "userApiKeyDesc": { + "message": "Ключът позволява да се идентифицирате към инструментите на командния ред на Битуорден." + }, + "userApiKeyWarning": { + "message": "Вашият API ключ е алтернативен механизъм автентикация. Той трябва да се пази в тайна." + }, + "oauth2ClientCredentials": { + "message": "Идентификация за клиент за OAuth 2.0", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Ключ за API" + }, + "rotateApiKey": { + "message": "Смяна на ключа за API" + }, + "selectOneCollection": { + "message": "Изберете поне една колекция." + }, + "couldNotChargeCardPayInvoice": { + "message": "Не можем да сменим картата ви. Разгледайте и платете по неплатените фактури по-долу." + }, + "inAppPurchase": { + "message": "Покупка в приложение" + }, + "cannotPerformInAppPurchase": { + "message": "Не може да извършите това действие, като ползвате метод за плащане за покупка в приложение." + }, + "manageSubscriptionFromStore": { + "message": "Може да управлявате абонамента си от електронния магазин, от който сте го купили." + }, + "minLength": { + "message": "Минимална дължина" + }, + "clone": { + "message": "Дублиране" + }, + "masterPassPolicyDesc": { + "message": "Задаване на минимална сила на главната парола." + }, + "twoStepLoginPolicyDesc": { + "message": "Изискване от потребителите да включат двустепенно удостоверяване за личните си абонаменти." + }, + "twoStepLoginPolicyWarning": { + "message": "Членовете на организацията без двустепенно удостоверяване за личните си абонаменти ще бъдат отстранени от организацията. Те ще бъдат уведомени за това по електронната поща." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Вие сте член на поне една организация, която изисква двустепенно удостоверяване и за личния абонамент. Ако изключите двустепенното удостоверяване, ще бъдете отстранени от тези организации." + }, + "passwordGeneratorPolicyDesc": { + "message": "Задаване на минимална сила на генератора на пароли." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Поне една политика на организация влияе на настройките на генерирането на паролите." + }, + "masterPasswordPolicyInEffect": { + "message": "Поне една политика на организация има следните изисквания към главната ви парола:" + }, + "policyInEffectMinComplexity": { + "message": "Минимална сложност от $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Минимална дължина: $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Поне една главна буква" + }, + "policyInEffectLowercase": { + "message": "Поне една малка буква" + }, + "policyInEffectNumbers": { + "message": "Поне една цифра" + }, + "policyInEffectSpecial": { + "message": "Поне един от следните специални знаци: $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Паролата ви не отговаря на политиките." + }, + "minimumNumberOfWords": { + "message": "Минимален брой думи" + }, + "defaultType": { + "message": "Стандартен вид" + }, + "userPreference": { + "message": "Потребителски настройки" + }, + "vaultTimeoutAction": { + "message": "Действие при изтичане на времето" + }, + "vaultTimeoutActionLockDesc": { + "message": "При заключване на трезора ще ви се наложи отново да въведете паролата си, за да го достъпите." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "При изход от трезора ще ви се наложи отново да се идентифицирате, за да го достъпите." + }, + "lock": { + "message": "Заключване", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Кошче", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Търсене в кошчето" + }, + "permanentlyDelete": { + "message": "Окончателно изтриване" + }, + "permanentlyDeleteSelected": { + "message": "Окончателно изтриване на избраното" + }, + "permanentlyDeleteItem": { + "message": "Окончателно изтриване на запис" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Сигурни ли сте, че искате да изтриете записа окончателно?" + }, + "permanentlyDeletedItem": { + "message": "Записът е изтрит окончателно" + }, + "permanentlyDeletedItems": { + "message": "Записите са изтрити окончателно" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "За изтриване сте избрали $COUNT$ запис/а. Сигурни ли сте, че искате да ги изтриете окончателно?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Запис № $ID$ е изтрит окончателно.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Възстановяване" + }, + "restoreSelected": { + "message": "Възстановяване на избраните" + }, + "restoreItem": { + "message": "Възстановяване на запис" + }, + "restoredItem": { + "message": "Записът е възстановен" + }, + "restoredItems": { + "message": "Записите са възстановени" + }, + "restoreItemConfirmation": { + "message": "Сигурни ли сте, че искате да възстановите записа?" + }, + "restoreItems": { + "message": "Възстановяване на записи" + }, + "restoreSelectedItemsDesc": { + "message": "За възстановяване сте избрали $COUNT$ запис/а. Сигурни ли сте, че искате да ги възстановите?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Запис № $ID$ е възстановен.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Излизането от трезора изцяло спира достъпа до него след изтичане на времето. Ще ви се наложи отново да се идентифицирате, за да го достъпите. Сигурни ли сте, че искате това действие?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Потвърждаване на действието" + }, + "hidePasswords": { + "message": "Криене на паролите" + }, + "countryPostalCodeRequiredDesc": { + "message": "Тази информация ни е необходима единствено за изчисляване на данъка при продажба, както и за финансова отчетност." + }, + "includeVAT": { + "message": "Включване на информацията за ДДС/GST (по избор)" + }, + "taxIdNumber": { + "message": "Данъчен номер за ДДС/GST" + }, + "taxInfoUpdated": { + "message": "Данъчната информация е обновена." + }, + "setMasterPassword": { + "message": "Задаване на главна парола" + }, + "ssoCompleteRegistration": { + "message": "За да завършите настройките за еднократна идентификация, трябва да зададете главна парола за трезора." + }, + "identifier": { + "message": "Идентификатор" + }, + "organizationIdentifier": { + "message": "Идентификатор на организация" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Вписване чрез портала на организацията ви за еднократна идентификация. За да продължите, въведете идентификатора на организацията." + }, + "enterpriseSingleSignOn": { + "message": "Еднократна идентификация (SSO)" + }, + "ssoHandOff": { + "message": "Вече може да затворите подпрозореца и да продължите в разширението." + }, + "includeAllTeamsFeatures": { + "message": "Всички възможности в екип плюс:" + }, + "includeSsoAuthentication": { + "message": "Еднократна идентификация чрез SAML2.0 и OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Политики на бизнеса" + }, + "ssoValidationFailed": { + "message": "Неуспешна еднократна идентификация" + }, + "ssoIdentifierRequired": { + "message": "Идентификаторът на организация е задължителен." + }, + "unlinkSso": { + "message": "Прекъсване на еднократна идентификация" + }, + "unlinkSsoConfirmation": { + "message": "Наистина ли искате да премахнете еднократното удостоверяване за тази организация?" + }, + "linkSso": { + "message": "Свързване на еднократна идентификация" + }, + "singleOrg": { + "message": "Една организация" + }, + "singleOrgDesc": { + "message": "Потребителите да не може да са членове на друга организация." + }, + "singleOrgBlockCreateMessage": { + "message": "Вашата настояща организация има политика, която не позволява да участвате в повече от една организация. Моля свържете се с администратора на организацията или се впишете с друг Bitwarden потребител." + }, + "singleOrgPolicyWarning": { + "message": "Членовете, които не са собственици или администратори и са членове на други организации ще бъдат премахнати от тази организация." + }, + "requireSso": { + "message": "Еднократна идентификация" + }, + "requireSsoPolicyDesc": { + "message": "Изискване на потребителите да ползват еднократна идентификация." + }, + "prerequisite": { + "message": "Предпоставкa" + }, + "requireSsoPolicyReq": { + "message": "За да включите тази политика, първо трябва ръчно да включите политиката за еднократна идентификация." + }, + "requireSsoPolicyReqError": { + "message": "Политиката за единствена организация не е включена." + }, + "requireSsoExemption": { + "message": "Тази политика не се прилага към собствениците и администраторите на организацията." + }, + "sendTypeFile": { + "message": "Файл" + }, + "sendTypeText": { + "message": "Текст" + }, + "createSend": { + "message": "Създаване на изпращане", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Редактиране на изпращане", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Създадено изпращане", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Редактирано изпращане", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Изтрито изпращане", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Изтриване на изпращане", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Сигурни ли сте, че искате да изтриете това изпращане?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Вид на изпратеното", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Дата на изтриване" + }, + "deletionDateDesc": { + "message": "Изпращането ще бъде окончателно изтрито на зададената дата и време.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Срок на валидност" + }, + "expirationDateDesc": { + "message": "При задаване — това изпращане ще се изключи на зададената дата и време.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Максимален брой достъпвания" + }, + "maxAccessCountDesc": { + "message": "При задаване — това изпращане ще се изключи след определен брой достъпвания.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Текущ брой на достъпванията" + }, + "sendPasswordDesc": { + "message": "Изискване на парола за достъп до това изпращане.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Скрити бележки за това изпращане.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Изключено" + }, + "sendLink": { + "message": "Изпращане на връзката", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Копиране на връзката към изпратеното", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Премахване на парола" + }, + "removedPassword": { + "message": "Паролата е премахната" + }, + "removePasswordConfirmation": { + "message": "Сигурни ли сте, че искате да премахнете паролата?" + }, + "hideEmail": { + "message": "Скриване на е-пощата ми от получателите." + }, + "disableThisSend": { + "message": "Пълно спиране на това изпращане — никой няма да има достъп.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Всички изпращания" + }, + "maxAccessCountReached": { + "message": "Достигнат е максималният брой достъпвания", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Предстои изтриване" + }, + "expired": { + "message": "Изтекъл" + }, + "searchSends": { + "message": "Търсене в изпратените", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Изпратеното е защитено с парола. За да продължите, въведете паролата по-долу,.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Ако не знаете паролата, поискайте от изпращача да ви я даде.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Стандартно изпращането е скрито. Може да промените това като натиснете бутона по-долу.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Изтеглете файл" + }, + "sendAccessUnavailable": { + "message": "Изпращането, което се опитвате да достъпите, е изтрито или вече не е налично.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Файлът за това изпращане липсва.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Няма изпращания за показване.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Авариен достъп" + }, + "emergencyAccessDesc": { + "message": "Даване и управление на извънредния достъп от страна на доверените контакти. Доверените контакти могат да заявят достъп за преглед или пълно поемане в извънредни случаи. Посетете страниците с помощта за повече информация как работи споделянето с нулева информация." + }, + "emergencyAccessOwnerWarning": { + "message": "Вие сте собственик в една или повече организации. Ако дадете достъп за поемане на регистрацията ви в извънредни случаи, поелият ще може да ползва всичките ви права като собственик." + }, + "trustedEmergencyContacts": { + "message": "Доверени извънредни контакти" + }, + "noTrustedContacts": { + "message": "Все още не сте добавили извънредни контакти. За да почнете, поканете доверено лице." + }, + "addEmergencyContact": { + "message": "Добавяне на извънредни контакти" + }, + "designatedEmergencyContacts": { + "message": "Указан като извънреден контакт" + }, + "noGrantedAccess": { + "message": "Все още на никой не сте задали извънреден контакт." + }, + "inviteEmergencyContact": { + "message": "Покана на извънреден контакт" + }, + "editEmergencyContact": { + "message": "Редактиране на извънреден контакт" + }, + "inviteEmergencyContactDesc": { + "message": "Може да поканите потребител да стане извънреден контакт като попълните адреса му за електронна поща, с който е регистриран в Битуорден, по-долу. В случай, че потребителят не е регистриран, той автоматично ще получи покана и да се регистрира." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Начало на извънреден достъп" + }, + "emergencyAccessRecoveryApproved": { + "message": "Извънредният достъп е одобрен" + }, + "viewDesc": { + "message": "Може да вижда всички записи в трезора ви." + }, + "takeover": { + "message": "Поемане" + }, + "takeoverDesc": { + "message": "Можете да изчистите регистрацията си с нова главна парола." + }, + "waitTime": { + "message": "Време за изчакване" + }, + "waitTimeDesc": { + "message": "Време преди автоматичното даване на достъп." + }, + "oneDay": { + "message": "1 ден" + }, + "days": { + "message": "$DAYS$ ден/дни", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Поканен потребител." + }, + "acceptEmergencyAccess": { + "message": "Поканени сте да бъдете извънреден контакт за потребителя по-горе. За да приемете, ще трябва да се впишете в абонамента си към Битуорден. Ако нямате такъв, ще трябва да създадете безплатен абонамент и след това да се впишете в него." + }, + "emergencyInviteAcceptFailed": { + "message": "Поканата не може да бъде приета. Помолете потребителя да ви прати нова." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Поканата не може да бъде приета. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Ще може да достъпите възможностите за извънредно поемане на регистрация след потвърждаване на самоличността ви. Ще ви пратим е-писмо, когато това стане." + }, + "requestAccess": { + "message": "Заявка за достъп" + }, + "requestAccessConfirmation": { + "message": "Сигурни ли сте, че искате да заявите извънреден достъп? Ще го получите след $WAITTIME$ дни или след като потребителят лично одобри заявката.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Заявен е извънреден достъп до трезора на $USER$. Ще ви пратим е-писмо, когато може да продължите.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Одобряване" + }, + "reject": { + "message": "Отказ" + }, + "approveAccessConfirmation": { + "message": "Сигурни ли сте, че искате да одобрите извънредния достъп? Това ще позволи на $USER$ да $ACTION$ вашия трезор.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Извънредният достъп е одобрен." + }, + "emergencyRejected": { + "message": "Извънредният достъп е отказан." + }, + "passwordResetFor": { + "message": "Паролата на потребителя $USER$ е сменена и той може вече да влезе с новата.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Индивидуално притежание" + }, + "personalOwnershipPolicyDesc": { + "message": "Изискване потребителите да запазват записите в трезора на организацията като забраните възможността за индивидуално притежание." + }, + "personalOwnershipExemption": { + "message": "Тази политика не се прилага към собствениците и администраторите на организацията." + }, + "personalOwnershipSubmitError": { + "message": "Заради някоя политика за голяма организация не може да запазвате елементи в собствения си трезор. Променете собствеността да е на организация и изберете от наличните колекции." + }, + "disableSend": { + "message": "Без изпращане" + }, + "disableSendPolicyDesc": { + "message": "Потребителите да не могат да създават ново или да изтриват съществуващо изпращане по Битуорден. Изтриването на съществуващо изпращане продължава да е възможно.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Потребителите в организацията, които имат права да управляват политиките ѝ, не са ограничени от тази политика." + }, + "sendDisabled": { + "message": "Изпращането е изключено", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Поради политика на организация, може само да изтривате съществуващи изпращания.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Настройки за изпращането", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Настройки за създаване и редактиране на изпращания.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Потребителите в организацията, които имат права да управляват политиките ѝ, не са ограничени от тази политика." + }, + "disableHideEmail": { + "message": "Потребителите да не могат да скриват адреса на е-пощата си от получателите, когато създават или редактират изпращания.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "В момента са в сила следните политики на организацията:" + }, + "sendDisableHideEmailInEffect": { + "message": "Потребителите не могат да скриват адреса на е-пощата си от получателите, когато създават или редактират изпращания.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Редактирана политика № $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Цена на плана" + }, + "estimatedTax": { + "message": "Приблизителен данък" + }, + "custom": { + "message": "По избор" + }, + "customDesc": { + "message": "По-специфичен контрол на правата на потребителите при по-сложни варианти." + }, + "permissions": { + "message": "Права" + }, + "accessEventLogs": { + "message": "Достъп до журналите" + }, + "accessImportExport": { + "message": "Достъп до в/изнасянията" + }, + "accessReports": { + "message": "Достъп до отчетите" + }, + "missingPermissions": { + "message": "Нямате нужните правомощия да извършите това действие." + }, + "manageAllCollections": { + "message": "Управление на всички колекции" + }, + "createNewCollections": { + "message": "Създаване на нови колекции" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Управление на възложените колекции" + }, + "editAssignedCollections": { + "message": "Редактиране на възложените колекции" + }, + "deleteAssignedCollections": { + "message": "Изтриване на възложените колекции" + }, + "manageGroups": { + "message": "Управление на групи" + }, + "managePolicies": { + "message": "Управление на политиките" + }, + "manageSso": { + "message": "Управление на еднократната идентификация (SSO)" + }, + "manageUsers": { + "message": "Управление на потребителите" + }, + "manageResetPassword": { + "message": "Управление на помощта при смяната на паролата" + }, + "disableRequiredError": { + "message": "За да изключите тази политика, първо трябва ръчно да изключите $POLICYNAME$.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Политика от някоя организация влияе на вариантите за собственост." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "Политика на организацията забранява да внасяте елементи в личния си трезор." + }, + "personalOwnershipCheckboxDesc": { + "message": "Изключване на индивидуалното притежание за потребителите в организацията" + }, + "textHiddenByDefault": { + "message": "При достъп до изпращането стандартно текстът да се скрива", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Описателно име за това изпращане.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Текст за изпращане." + }, + "sendFileDesc": { + "message": "Файл за изпращане." + }, + "copySendLinkOnSave": { + "message": "Копиране на връзката към изпращането при запазването му за лесно споделяне." + }, + "sendLinkLabel": { + "message": "Изпращане на връзката", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Изпращане", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "С изпращането през Битуорден може лесно и защитено да споделяте, включително и временно, информация с други потребители.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Още за", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Директно споделяне на текст и файлове с който и да е." + }, + "sendVaultCardLearnMore": { + "message": "Научете повече", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "вижте", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "как това работи", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "или", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "пробвайте още сега", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "или", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "се регистрирайте,", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "за да го пробвате още днес.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Потребителят на Битуорден — $USER_IDENTIFIER$, сподели следното с вас", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Потребителят, който е създал това изпращане, е избрал да скрие адреса на своята е-поща. Уверете се, че източникът на тази връзка е достоверен, преди да я последвате или да свалите съдържание чрез нея.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Неправилна дата на валидност." + }, + "deletionDateIsInvalid": { + "message": "Неправилна дата на изтриване." + }, + "expirationDateAndTimeRequired": { + "message": "Необходими са дата и време на валидност." + }, + "deletionDateAndTimeRequired": { + "message": "Необходима е дата на изтриване." + }, + "dateParsingError": { + "message": "Грешка при запазване на датата на валидност и изтриване." + }, + "webAuthnFallbackMsg": { + "message": "За да потвърдите двустепенното удостоверяване, натиснете бутона по-долу." + }, + "webAuthnAuthenticate": { + "message": "Идентификация WebAuthn" + }, + "webAuthnNotSupported": { + "message": "Този браузър не поддържа WebAuthn." + }, + "webAuthnSuccess": { + "message": "Успешно удостоверяване чрез WebAuthn!
Можете да затворите този раздел." + }, + "hintEqualsPassword": { + "message": "Подсказването за паролата не може да съвпада с нея." + }, + "enrollPasswordReset": { + "message": "Включване на помощта при смяната на паролата" + }, + "enrolledPasswordReset": { + "message": "Помощта при смяната на паролата е включена" + }, + "withdrawPasswordReset": { + "message": "Изключване на помощта при смяната на паролата" + }, + "enrollPasswordResetSuccess": { + "message": "Успешно включване!" + }, + "withdrawPasswordResetSuccess": { + "message": "Успешно изключване!" + }, + "eventEnrollPasswordReset": { + "message": "Потребителят $ID$ включи помощта при смяна на паролата.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Потребителят $ID$ изключи помощта при смяна на паролата.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Главната парола на потребителя $ID$ беше сменена.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Подновяване на връзката за еднократна идентификация за потребител $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ се вписа за първи път с еднократно удостоверяване", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Смяна на паролата" + }, + "resetPasswordLoggedOutWarning": { + "message": "Действието ще прекрати текущата сесия на $NAME$, след което ще се наложи той отново да се впише. Активните сесии на другите устройства може да останат такива до един час.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "този потребител" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Поне една политика на организация има следните изисквания към главната парола:" + }, + "resetPasswordSuccess": { + "message": "Успешна смяна на паролата!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Включването ще позволи на администраторите на организацията да променят главната Ви парола. Наистина ли искате да се включите?" + }, + "resetPasswordPolicy": { + "message": "Смяна на главната парола" + }, + "resetPasswordPolicyDescription": { + "message": "Позволяване на администраторите на организацията да сменят главните пароли на участващите потребители." + }, + "resetPasswordPolicyWarning": { + "message": "Потребителите в организацията ще трябва да се включат сами или да бъдат включени автоматично, преди администраторите да могат да сменят главните им пароли." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Автоматично включване" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Всички потребители ще бъдат включени автоматично в смяната на пароли след като приемат поканите си." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Потребителите, които вече са част от организацията, няма да бъдат включени в смяната на паролите. Те ще трябва да се включат сами, преди администраторите да могат да сменят главните им пароли." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Автоматично включване на новите потребители" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Тази организация включва автоматично новите си потребители в смяната на пароли. Това означава, че администраторите на организацията ще могат да променят главната Ви парола." + }, + "resetPasswordOrgKeysError": { + "message": "Празен отговор на заявката за ключовете на организацията" + }, + "resetPasswordDetailsError": { + "message": "Празен отговор на заявката за детайли относно смяната на паролата" + }, + "trashCleanupWarning": { + "message": "Записите, които са били в кошчето за повече от 30 дни, ще бъдат изтривани автоматично." + }, + "trashCleanupWarningSelfHosted": { + "message": "Записите, които са били известно време в кошчето, ще бъдат изтривани автоматично." + }, + "passwordPrompt": { + "message": "Повторно запитване за главната парола" + }, + "passwordConfirmation": { + "message": "Потвърждение на главната парола" + }, + "passwordConfirmationDesc": { + "message": "Това действие е защитено. За да продължите, въведете отново главната си парола, за да потвърдите самоличността си." + }, + "reinviteSelected": { + "message": "Изпращане на поканите наново" + }, + "noSelectedUsersApplicable": { + "message": "Това действие не може да се изпълни за никого от избраните потребители." + }, + "removeUsersWarning": { + "message": "Наистина ли искате да премахнете следните потребители? Процесът може да отнеме няколко секунди и не може да бъде прекъснат или отменен." + }, + "theme": { + "message": "Облик" + }, + "themeDesc": { + "message": "Изберете облика на трезора по уеб." + }, + "themeSystem": { + "message": "От системата" + }, + "themeDark": { + "message": "Тъмен" + }, + "themeLight": { + "message": "Светъл" + }, + "confirmSelected": { + "message": "Потвърждаване на избраните" + }, + "bulkConfirmStatus": { + "message": "Състояние на груповото действие" + }, + "bulkConfirmMessage": { + "message": "Успешно потвърдено." + }, + "bulkReinviteMessage": { + "message": "Успешно изпратени наново покани." + }, + "bulkRemovedMessage": { + "message": "Успешно премахване" + }, + "bulkFilteredMessage": { + "message": "Изключени като неподходящи за това действие." + }, + "fingerprint": { + "message": "Отпечатък" + }, + "removeUsers": { + "message": "Премахване на потребителите" + }, + "error": { + "message": "Грешка" + }, + "resetPasswordManageUsers": { + "message": "Управлението на потребителите трябва също да бъде включено с разрешението за „Управление на помощта при смяната на паролата“" + }, + "setupProvider": { + "message": "Настройка на доставчика" + }, + "setupProviderLoginDesc": { + "message": "Получихте покана да настроите нов доставчик. За да продължите, трябва да се впишете или да си направите нова регистрация в Битуорден." + }, + "setupProviderDesc": { + "message": "Попълнете информацията по-долу, за да завършите настройката на доставчика. Ако имате въпроси, свържете се с поддръжката." + }, + "providerName": { + "message": "Име на доставчика" + }, + "providerSetup": { + "message": "Доставчикът е настроен." + }, + "clients": { + "message": "Клиенти" + }, + "providerAdmin": { + "message": "Администратор на доставчика" + }, + "providerAdminDesc": { + "message": "Потребителят с най-големи права на достъп, който може да управлява всички настройки на доставчика, както и да има достъп до и да управлява клиентските организации." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Може да поканите потребител към доставчика си, като попълните адреса му за електронна поща, с който е регистриран в Битуорден, по-долу. В случай, че потребителят не е регистриран, той автоматично ще получи покана и да се регистрира." + }, + "joinProvider": { + "message": "Присъединяване към доставчика" + }, + "joinProviderDesc": { + "message": "Получихте покана да се присъедините към посочения по-горе доставчик. За да приемете, ще трябва да се впишете в абонамента си към Битуорден. Ако нямате такъв, ще трябва да създадете безплатен абонамент и след това да се впишете в него." + }, + "providerInviteAcceptFailed": { + "message": "Поканата не може да бъде приета. Помолете администратора на доставчика да ви прати нова." + }, + "providerInviteAcceptedDesc": { + "message": "Ще имате достъп до доставчика, след като администраторът му потвърди членството ви. Ще ви изпратим електронно писмо, когато това се случи." + }, + "providerUsersNeedConfirmed": { + "message": "Има потребители, които са приели поканата си, но все още трябва да бъдат потвърдени. Потвърждаването е необходимо, за да получат достъп до доставчика." + }, + "provider": { + "message": "Доставчик" + }, + "newClientOrganization": { + "message": "Нова клиентска организация" + }, + "newClientOrganizationDesc": { + "message": "Създаване на нова клиентска организация, за която ще играете ролята на доставчик. Вие ще имате достъп до тази организация и ще можете да я управлявате." + }, + "addExistingOrganization": { + "message": "Добавяне на съществуваща организация" + }, + "myProvider": { + "message": "Моят доставчик" + }, + "addOrganizationConfirmation": { + "message": "Наистина ли искате да добавите $ORGANIZATION$ като клиент на $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Организацията беше успешно добавена към доставчика" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Доставчикът е изключен." + }, + "providerUpdated": { + "message": "Доставчикът е обновен" + }, + "yourProviderIs": { + "message": "Вашият доставчик е $PROVIDER$. Той има административни и платежни права върху организацията Ви.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "Организацията $ORGANIZATION$ беше отделена от доставчика Ви.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Наистина ли искате да отделите тази организация? Тя ще продължи да съществува, но вече няма да се управлява от доставчика." + }, + "add": { + "message": "Добавяне" + }, + "updatedMasterPassword": { + "message": "Главната парола е променена" + }, + "updateMasterPassword": { + "message": "Промяна на главната парола" + }, + "updateMasterPasswordWarning": { + "message": "Вашата главна парола наскоро е била сменена от администратор в организацията Ви. За да получите достъп до трезора, трябва да промените главната си парола сега. Това означава, че ще бъдете отписан(а) от текущата си сесия и ще трябва да се впишете отново. Активните сесии на други устройства може да продължат да бъдат активни още един час." + }, + "masterPasswordInvalidWarning": { + "message": "Вашата главна парола не отговарян на изискванията в политиката на тази организацията. За да се присъедините към организацията, трябва да промените главната си парола сега. Това означава, че ще бъдете отписан(а) от текущата си сесия и ще трябва да се впишете отново. Активните сесии на други устройства може да продължат да бъдат активни още един час." + }, + "maximumVaultTimeout": { + "message": "Време за достъп" + }, + "maximumVaultTimeoutDesc": { + "message": "Настройте максимално време за достъп до трезора, което ще важи за всички потребители." + }, + "maximumVaultTimeoutLabel": { + "message": "Максимално време за достъп до трезора" + }, + "invalidMaximumVaultTimeout": { + "message": "Неправилно максимално време за достъп." + }, + "hours": { + "message": "Часа" + }, + "minutes": { + "message": "Минути" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Настройките на организацията Ви влияят върху времето за достъп до трезора Ви. Максималното разрешено време за достъп е $HOURS$ час(а) и $MINUTES$ минути", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Персонализирано време за достъп до трезора" + }, + "vaultTimeoutToLarge": { + "message": "Времето за достъп до трезора Ви превишава ограничението, определено от организацията Ви." + }, + "disablePersonalVaultExport": { + "message": "Забраняване на изнасянето на личния трезор" + }, + "disablePersonalVaultExportDesc": { + "message": "Забранява на потребителите да изнасят данните от своя личен трезор." + }, + "vaultExportDisabled": { + "message": "Изнасянето на трезора е изключено" + }, + "personalVaultExportPolicyInEffect": { + "message": "Една или повече от настройките на организацията Ви не позволяват да изнасяте личния си трезор." + }, + "selectType": { + "message": "Изберете вид еднократна идентификация" + }, + "type": { + "message": "Вид" + }, + "openIdConnectConfig": { + "message": "Настройка на OpenID Connect" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Адрес за метаданни" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "Адрес за метаданни на SAML 2.0" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Проверка на сертификатите" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Адрес на услугата за еднократна идентификация" + }, + "idpSingleLogoutServiceUrl": { + "message": "Адрес на услугата за еднократно отписване" + }, + "idpX509PublicCert": { + "message": "Публичен сертификат X509" + }, + "idpOutboundSigningAlgorithm": { + "message": "Изходящ подписващ алгоритъм" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Разрешаване на непоискан отговор при удостоверяване" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Разрешаване на изходящите заявки за отписване" + }, + "idpSignAuthenticationRequests": { + "message": "Подписване на заявките за удостоверяване" + }, + "ssoSettingsSaved": { + "message": "Настройката на еднократната идентификация е запазена." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "Семейният план на Битуорден включва" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Споделени колекции за семейни тайни" + }, + "badToken": { + "message": "Връзката е с изтекла давност. Помолете спонсора да изпрати отново предложението." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "От кое предложение за безплатен семеен план искате да се възползвате?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Безплатен семеен план" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Получател" + }, + "removeSponsorship": { + "message": "Премахване на спонсорирането" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Писмото е изпратено" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Конекторът за ключове е недостъпен. Опитайте отново по-късно." + }, + "keyConnectorUrl": { + "message": "Адрес на конектора за ключове" + }, + "sendVerificationCode": { + "message": "Изпращане на код за потвърждаване до Вашата ел. поща" + }, + "sendCode": { + "message": "Изпращане на кода" + }, + "codeSent": { + "message": "Кодът е изпратен" + }, + "verificationCode": { + "message": "Код за потвърждаване" + }, + "confirmIdentity": { + "message": "Потвърдете самоличността си, за да продължите." + }, + "verificationCodeRequired": { + "message": "Кодът за потвърждение е задължителен." + }, + "invalidVerificationCode": { + "message": "Грешен код за потвърждаване" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ използва еднократно удостоверяване със собствен сървър за ключове. Членовете на тази организация вече нямат нужда от главна парола за вписване.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Напускане на организацията" + }, + "removeMasterPassword": { + "message": "Премахване на главната парола" + }, + "removedMasterPassword": { + "message": "Главната парола е премахната." + }, + "allowSso": { + "message": "Разрешаване на еднократното удостоверяване" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Включете", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "еднократното удостоверяване", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "за да задължите всички членове да се вписват чрез еднократно удостоверяване.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "След вписване, членовете ще дешифрират данните от трезорите си чрез главната си парола." + }, + "keyConnector": { + "message": "Конектор за ключове" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Свържете вписването чрез еднократно удостоверяване със своя собствен сървър за ключове за дешифриране. Така няма да има нужда членовете да използват главната си парола, за да дешифрират данните от трезора си." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Еднократното удостоверяване е включено" + }, + "disabledSso": { + "message": "Еднократното удостоверяване е изключено" + }, + "enabledKeyConnector": { + "message": "Конекторът за ключове е включен" + }, + "disabledKeyConnector": { + "message": "Конекторът за ключове е изключен" + }, + "keyConnectorWarning": { + "message": "След като конекторът за ключове е бъде настроен, настройките на членовете за дешифриране няма да могат да бъда променени." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Приемане на предложението" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Тест" + }, + "keyConnectorTestSuccess": { + "message": "Успешно свързване! Конекторът за ключове е достъпен." + }, + "keyConnectorTestFail": { + "message": "Конекторът за ключове е недостъпен. Проверете адреса." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "БЕЗПЛАТНО чрез спонсориране" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ полета по-горе се нуждаят от вниманието Ви.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 поле по-горе се нуждае от вниманието Ви." + }, + "fieldRequiredError": { + "message": "Полето „$FIELDNAME$“ е задължително.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "задължително" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Незадължителни персонализации" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Сесията Ви изтече. Моля, върнете се назад и се опитайте да влезете отново." + }, + "exportingPersonalVaultTitle": { + "message": "Изнасяне на личния трезор" + }, + "exportingOrganizationVaultTitle": { + "message": "Изнасяне на трезора на организацията" + }, + "exportingPersonalVaultDescription": { + "message": "Ще бъдат изнесени само записите от личния трезор свързан с $EMAIL$. Записите в трезора на организацията няма да бъдат включени.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Ще бъдат изнесени само записите от трезора свързан с $ORGANIZATION$. Записите в личния трезор и тези в други организации няма да бъдат включени.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Обратно към докладите" + }, + "generator": { + "message": "Генератор" + }, + "whatWouldYouLikeToGenerate": { + "message": "Какво бихте искали да генерирате?" + }, + "passwordType": { + "message": "Тип парола" + }, + "regenerateUsername": { + "message": "Повторно генериране на потр. име" + }, + "generateUsername": { + "message": "Генериране на потр. име" + }, + "usernameType": { + "message": "Тип потребителско име" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Използвайте възможностите за под-адресиране на е-поща на своя доставчик." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Произволно" + }, + "randomWord": { + "message": "Произволна дума" + }, + "service": { + "message": "Услуга" + } +} diff --git a/apps/web/src/locales/bn/messages.json b/apps/web/src/locales/bn/messages.json new file mode 100644 index 0000000000..6b54975cf1 --- /dev/null +++ b/apps/web/src/locales/bn/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ ওয়েব ভল্ট", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "এটি কোন ধরণের বস্তু?" + }, + "name": { + "message": "নাম" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "নতুন URI" + }, + "username": { + "message": "ব্যবহারকারীর নাম" + }, + "password": { + "message": "পাসওয়ার্ড" + }, + "newPassword": { + "message": "নতুন পাসওয়ার্ড" + }, + "passphrase": { + "message": "পাসফ্রেজ" + }, + "notes": { + "message": "মন্তব্য" + }, + "customFields": { + "message": "পছন্দসই ক্ষেত্র" + }, + "cardholderName": { + "message": "কার্ডধারীর নাম" + }, + "number": { + "message": "নম্বর" + }, + "brand": { + "message": "ব্র্যান্ড" + }, + "expiration": { + "message": "মেয়াদোত্তীর্ণতা" + }, + "securityCode": { + "message": "নিরাপত্তা কোড (CVV)" + }, + "identityName": { + "message": "পরিচয়ের নাম" + }, + "company": { + "message": "কোম্পানি" + }, + "ssn": { + "message": "সামাজিক সুরক্ষা নম্বর" + }, + "passportNumber": { + "message": "পাসপোর্ট নম্বর" + }, + "licenseNumber": { + "message": "লাইসেন্স নম্বর" + }, + "email": { + "message": "ই-মেইল" + }, + "phone": { + "message": "ফোন" + }, + "january": { + "message": "জানুয়ারী" + }, + "february": { + "message": "ফেব্রুয়ারী" + }, + "march": { + "message": "মার্চ" + }, + "april": { + "message": "এপ্রিল" + }, + "may": { + "message": "মে" + }, + "june": { + "message": "জুন" + }, + "july": { + "message": "জুলাই" + }, + "august": { + "message": "আগস্ট" + }, + "september": { + "message": "সেপ্টেম্বর" + }, + "october": { + "message": "অক্টোবর" + }, + "november": { + "message": "নভেম্বর" + }, + "december": { + "message": "ডিসেম্বর" + }, + "title": { + "message": "শিরোনাম" + }, + "mr": { + "message": "জনাব" + }, + "mrs": { + "message": "জনাবা" + }, + "ms": { + "message": "জনাবা" + }, + "dr": { + "message": "ডাঃ" + }, + "expirationMonth": { + "message": "মেয়াদোত্তীর্ণ মাস" + }, + "expirationYear": { + "message": "মেয়াদোত্তীর্ণ বছর" + }, + "authenticatorKeyTotp": { + "message": "প্রমাণীকরণকারী কী (TOTP)" + }, + "folder": { + "message": "ফোল্ডার" + }, + "newCustomField": { + "message": "নতুন পছন্দসই ক্ষেত্র" + }, + "value": { + "message": "মান" + }, + "dragToSort": { + "message": "বাছাই করতে টানুন" + }, + "cfTypeText": { + "message": "পাঠ্য" + }, + "cfTypeHidden": { + "message": "লুকায়িত" + }, + "cfTypeBoolean": { + "message": "বুলিয়ান" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "সরান" + }, + "unassigned": { + "message": "Unassigned" + }, + "noneFolder": { + "message": "কোন ফোল্ডার নেই", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "ফোল্ডার জুড়ুন" + }, + "editFolder": { + "message": "ফোল্ডার সম্পাদনা" + }, + "baseDomain": { + "message": "ভিত্তি ডোমেইন", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "নিয়ন্ত্রণকর্তা", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "হুবহু" + }, + "startsWith": { + "message": "শুরু করুন" + }, + "regEx": { + "message": "নিয়মিত অভিব্যাক্তি", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "মিল সনাক্তকরণ", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "পূর্ব-নির্ধারিত মিল সনাক্তকরণ", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "কখনই না" + }, + "toggleVisibility": { + "message": "দৃশ্যমানতা টগল করুন" + }, + "toggleCollapse": { + "message": "Toggle Collapse", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "পাসওয়ার্ড তৈরি করুন" + }, + "checkPassword": { + "message": "Check if password has been exposed." + }, + "passwordExposed": { + "message": "ডেটা লঙ্ঘনে এই পাসওয়ার্ডটি $VALUE$ সময় (গুলি) উন্মুক্ত করা হয়েছে। আপনার এটি পরিবর্তন করা উচিত।", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "এই পাসওয়ার্ডটি কোনও পরিচিত তথ্য লঙ্ঘনে পাওয়া যায় নি। এটি ব্যবহার করা নিরাপদ হওয়া উচিত।" + }, + "save": { + "message": "সংরক্ষণ" + }, + "cancel": { + "message": "বাতিল" + }, + "canceled": { + "message": "বাতিলকৃত" + }, + "close": { + "message": "বন্ধ করুন" + }, + "delete": { + "message": "মুছুন" + }, + "favorite": { + "message": "প্রিয়" + }, + "unfavorite": { + "message": "অপ্রিয়" + }, + "edit": { + "message": "সম্পাদনা" + }, + "searchCollection": { + "message": "সংগ্রহ অনুসন্ধান" + }, + "searchFolder": { + "message": "ফোল্ডার অনুসন্ধান" + }, + "searchFavorites": { + "message": "Search Favorites" + }, + "searchType": { + "message": "অনুসন্ধানের ধরন", + "description": "Search item type" + }, + "searchVault": { + "message": "ভল্ট খুঁজুন" + }, + "allItems": { + "message": "সকল বস্তু" + }, + "favorites": { + "message": "প্রিয়গুলো" + }, + "types": { + "message": "প্রকার" + }, + "typeLogin": { + "message": "লগইন" + }, + "typeCard": { + "message": "কার্ড" + }, + "typeIdentity": { + "message": "পরিচয়" + }, + "typeSecureNote": { + "message": "সুরক্ষিত নোট" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "ফোল্ডারসমূহ" + }, + "collections": { + "message": "সংগ্রহ" + }, + "firstName": { + "message": "নামের প্রথম অংশ" + }, + "middleName": { + "message": "নামের মাঝের অংশ" + }, + "lastName": { + "message": "নামের শেষ অংশ" + }, + "fullName": { + "message": "Full Name" + }, + "address1": { + "message": "ঠিকানা ১" + }, + "address2": { + "message": "ঠিকানা ২" + }, + "address3": { + "message": "ঠিকানা ৩" + }, + "cityTown": { + "message": "শহর" + }, + "stateProvince": { + "message": "রাজ্য / প্রদেশ" + }, + "zipPostalCode": { + "message": "জিপ / ডাক কোড" + }, + "country": { + "message": "দেশ" + }, + "shared": { + "message": "ভাগকৃত" + }, + "attachments": { + "message": "সংযুক্তি" + }, + "select": { + "message": "নির্বাচন করুন" + }, + "addItem": { + "message": "বস্তু জুড়ুন" + }, + "editItem": { + "message": "বস্তু সম্পাদনা" + }, + "viewItem": { + "message": "বস্তু দেখুন" + }, + "ex": { + "message": "উদাহরণ", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "অন্যান্য" + }, + "share": { + "message": "ভাগ করুন" + }, + "moveToOrganization": { + "message": "Move to Organization" + }, + "valueCopied": { + "message": "$VALUE$ অনুলিপিত", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "মান অনুলিপিত করুন", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "পাসওয়ার্ড অনুলিপিত করুন", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "ব্যবহারকারীর নাম অনুলিপিত করুন", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Copy Number", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copy Security Code", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Copy URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "আমার ভল্ট" + }, + "vault": { + "message": "Vault" + }, + "moveSelectedToOrg": { + "message": "Move Selected to Organization" + }, + "deleteSelected": { + "message": "Delete Selected" + }, + "moveSelected": { + "message": "Move Selected" + }, + "selectAll": { + "message": "Select All" + }, + "unselectAll": { + "message": "Unselect All" + }, + "launch": { + "message": "Launch" + }, + "newAttachment": { + "message": "Add New Attachment" + }, + "deletedAttachment": { + "message": "Deleted attachment" + }, + "deleteAttachmentConfirmation": { + "message": "Are you sure you want to delete this attachment?" + }, + "attachmentSaved": { + "message": "The attachment has been saved." + }, + "file": { + "message": "ফাইল" + }, + "selectFile": { + "message": "একটি ফাইল নির্বাচন করুন।" + }, + "maxFileSize": { + "message": "সর্বোচ্চ ফাইলের আকার ১০০ এমবি।" + }, + "updateKey": { + "message": "You cannot use this feature until you update your encryption key." + }, + "addedItem": { + "message": "Added item" + }, + "editedItem": { + "message": "Edited item" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ moved to $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Selected items moved to $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Delete Item" + }, + "deleteFolder": { + "message": "Delete Folder" + }, + "deleteAttachment": { + "message": "Delete Attachment" + }, + "deleteItemConfirmation": { + "message": "Do you really want to send to the trash?" + }, + "deletedItem": { + "message": "Item sent to trash" + }, + "deletedItems": { + "message": "Items sent to trash" + }, + "movedItems": { + "message": "Moved items" + }, + "overwritePasswordConfirmation": { + "message": "Are you sure you want to overwrite the current password?" + }, + "editedFolder": { + "message": "Edited folder" + }, + "addedFolder": { + "message": "Added folder" + }, + "deleteFolderConfirmation": { + "message": "Are you sure you want to delete this folder?" + }, + "deletedFolder": { + "message": "Deleted folder" + }, + "loggedOut": { + "message": "Logged out" + }, + "loginExpired": { + "message": "Your login session has expired." + }, + "logOutConfirmation": { + "message": "Are you sure you want to log out?" + }, + "logOut": { + "message": "Log Out" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Yes" + }, + "no": { + "message": "No" + }, + "loginOrCreateNewAccount": { + "message": "আপনার সুরক্ষিত ভল্টে প্রবেশ করতে লগ ইন করুন অথবা একটি নতুন অ্যাকাউন্ট তৈরি করুন।" + }, + "createAccount": { + "message": "অ্যাকাউন্ট তৈরি" + }, + "logIn": { + "message": "Log In" + }, + "submit": { + "message": "Submit" + }, + "emailAddressDesc": { + "message": "You'll use your email address to log in." + }, + "yourName": { + "message": "Your Name" + }, + "yourNameDesc": { + "message": "What should we call you?" + }, + "masterPass": { + "message": "Master Password" + }, + "masterPassDesc": { + "message": "The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it." + }, + "masterPassHintDesc": { + "message": "A master password hint can help you remember your password if you forget it." + }, + "reTypeMasterPass": { + "message": "পুনরায় মূল পাসওয়ার্ডটি লিখুন" + }, + "masterPassHint": { + "message": "মূল পাসওয়ার্ড ইঙ্গিত (ঐচ্ছিক)" + }, + "masterPassHintLabel": { + "message": "মূল পাসওয়ার্ডের ইঙ্গিত" + }, + "settings": { + "message": "সেটিংস" + }, + "passwordHint": { + "message": "পাসওয়ার্ড ইঙ্গিত" + }, + "enterEmailToGetHint": { + "message": "আপনার মূল পাসওয়ার্ডের ইঙ্গিতটি পেতে আপনার অ্যাকাউন্টের ইমেল ঠিকানা প্রবেশ করুন।" + }, + "getMasterPasswordHint": { + "message": "মূল পাসওয়ার্ডের ইঙ্গিত পান" + }, + "emailRequired": { + "message": "ইমেইল ঠিকানা প্রয়োজন।" + }, + "invalidEmail": { + "message": "অকার্যকর ইমেইল ঠিকানা।" + }, + "masterPassRequired": { + "message": "মূল পাসওয়ার্ড প্রয়োজন।" + }, + "masterPassLength": { + "message": "মূল পাসওয়ার্ড কমপক্ষে ৮ অক্ষর দীর্ঘ হওয়া উচিত।" + }, + "masterPassDoesntMatch": { + "message": "মূল পাসওয়ার্ড নিশ্চিতকরণ মেলেনি।" + }, + "newAccountCreated": { + "message": "আপনার নতুন অ্যাকাউন্ট তৈরি করা হয়েছে! আপনি এখন প্রবেশ করতে পারেন।" + }, + "masterPassSent": { + "message": "আমরা আপনাকে আপনার মূল পাসওয়ার্ডের ইঙ্গিতসহ একটি ইমেল প্রেরণ করেছি।" + }, + "unexpectedError": { + "message": "একটি অপ্রত্যাশিত ত্রুটি ঘটেছে।" + }, + "emailAddress": { + "message": "ইমেইল ঠিকানা" + }, + "yourVaultIsLocked": { + "message": "আপনার ভল্ট লক করা আছে। চালিয়ে যেতে আপনার মূল পাসওয়ার্ডটি যাচাই করান।" + }, + "unlock": { + "message": "আনলক" + }, + "loggedInAsEmailOn": { + "message": "$HOSTNAME$ এ $EMAIL$ হিসাবে লগ ইনকৃত।", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "অবৈধ মূল পাসওয়ার্ড" + }, + "lockNow": { + "message": "এখনই লক করুন" + }, + "noItemsInList": { + "message": "তালিকার জন্য কোনও বস্তু নেই।" + }, + "noCollectionsInList": { + "message": "তালিকার জন্য কোনও সংগ্রহ নেই।" + }, + "noGroupsInList": { + "message": "There are no groups to list." + }, + "noUsersInList": { + "message": "There are no users to list." + }, + "noEventsInList": { + "message": "There are no events to list." + }, + "newOrganization": { + "message": "নতুন সংগঠন" + }, + "noOrganizationsList": { + "message": "আপনি কোনও সংস্থার অন্তর্ভুক্ত নন। সংগঠনগুলি আপনাকে নিরাপদে অন্য ব্যবহারকারীর সাথে বস্তুসমূহ ভাগ করে নেওয়ার অনুমতি দেয়।" + }, + "versionNumber": { + "message": "সংস্করণ $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "আপনার প্রমাণীকরণকারী অ্যাপ থেকে ৬ সংখ্যার যাচাইকরণ কোডটি প্রবেশ করুন।" + }, + "enterVerificationCodeEmail": { + "message": "$EMAIL$ এ ইমেইল করা ৬ সংখ্যার যাচাই কোডটি প্রবেশ করুন।", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "$EMAIL$ এ যাচাইকরণ ইমেইল প্রেরণ করা হয়েছে।", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "আমাকে মনে রাখবেন" + }, + "sendVerificationCodeEmailAgain": { + "message": "আবার যাচাইকরণ কোড ইমেইলে প্রেরণ করুন" + }, + "useAnotherTwoStepMethod": { + "message": "অন্য দ্বি-পদক্ষেপ প্রবেশ পদ্ধতি ব্যবহার করুন" + }, + "insertYubiKey": { + "message": "আপনার কম্পিউটারের ইউএসবি পোর্টে আপনার YubiKey ঢোকান, তারপরে তার বোতামটি স্পর্শ করুন।" + }, + "insertU2f": { + "message": "আপনার কম্পিউটারের ইউএসবি পোর্টে আপনার সুরক্ষা কী ঢোকান। এটিতে যদি একটি বোতাম থাকে তবে তা স্পর্শ করুন।" + }, + "loginUnavailable": { + "message": "লগইন অনুপলব্ধ" + }, + "noTwoStepProviders": { + "message": "এই অ্যাকাউন্টে দ্বি-পদক্ষেপ লগইন সক্ষম রয়েছে, তবে কনফিগারকৃত দ্বি-পদক্ষেপ সরবরাহকারীদের কোনওটিই এই ওয়েব ব্রাউজার দ্বারা সমর্থিত নয়।" + }, + "noTwoStepProviders2": { + "message": "দয়া করে একটি সমর্থিত ওয়েব ব্রাউজার ব্যবহার করুন (যেমন ক্রোম) এবং/অথবা অতিরিক্ত সরবরাহকারী যুক্ত করুন যা ওয়েব ব্রাউজারগুলিতে আরও ভাল সমর্থিত (যেমন একটি প্রমাণীকরণকারী অ্যাপ)।" + }, + "twoStepOptions": { + "message": "দ্বি-পদক্ষেপ লগইন বিকল্প" + }, + "recoveryCodeDesc": { + "message": "আপনার সমস্ত দ্বি-গুণক সরবরাহকারীদের অ্যাক্সেস হারিয়েছেন? আপনার অ্যাকাউন্ট থেকে সমস্ত দ্বি-গুণক সরবরাহকারীদের অক্ষম করতে আপনার পুনরুদ্ধার কোডটি ব্যবহার করুন।" + }, + "recoveryCodeTitle": { + "message": "পুনরুদ্ধার কোড" + }, + "authenticatorAppTitle": { + "message": "প্রমাণীকরণকারী অ্যাপ" + }, + "authenticatorAppDesc": { + "message": "সময় ভিত্তিক যাচাইকরণ কোড উৎপন্ন করতে একটি প্রমাণীকরণকারী অ্যাপ্লিকেশন (যেমন Authy বা Google Authenticator) ব্যবহার করুন।", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP সুরক্ষা কী" + }, + "yubiKeyDesc": { + "message": "Use a YubiKey to access your account. Works with YubiKey 4 series, 5 series, and NEO devices." + }, + "duoDesc": { + "message": "Duo Mobile app, এসএমএস, ফোন কল, বা U2F সুরক্ষা কী ব্যবহার করে Duo Security এর মাধ্যমে যাচাই করুন।", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Duo Mobile app, এসএমএস, ফোন কল, বা U2F সুরক্ষা কী ব্যবহার করে আপনার সংস্থার জন্য Duo Security এর মাধ্যমে যাচাই করুন।", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "আপনার অ্যাকাউন্ট ব্যাবহার করতে যেকোন FIDO U2F সক্ষম সুরক্ষা কী ব্যবহার করুন।" + }, + "u2fTitle": { + "message": "FIDO U2F সুরক্ষা কী" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Verification codes will be emailed to you." + }, + "continue": { + "message": "Continue" + }, + "organization": { + "message": "Organization" + }, + "organizations": { + "message": "Organizations" + }, + "moveToOrgDesc": { + "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organization that you wish to move these items to. Moving to an organization transfers ownership of the items to that organization. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "Edit the collections that this item is being shared with. Only organization users with access to these collections will be able to see this item." + }, + "deleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to delete. Are you sure you want to delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Choose a folder that you would like to move the $COUNT$ selected item(s) to.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organization, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Verification Code (TOTP)" + }, + "copyVerificationCode": { + "message": "Copy Verification Code" + }, + "warning": { + "message": "Warning" + }, + "confirmVaultExport": { + "message": "Confirm Vault Export" + }, + "exportWarningDesc": { + "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "Export Vault" + }, + "fileFormat": { + "message": "File Format" + }, + "exportSuccess": { + "message": "Your vault data has been exported." + }, + "passwordGenerator": { + "message": "পাসওয়ার্ড উৎপাদক" + }, + "minComplexityScore": { + "message": "Minimum Complexity Score" + }, + "minNumbers": { + "message": "Minimum Numbers" + }, + "minSpecial": { + "message": "Minimum Special", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Avoid Ambiguous Characters" + }, + "regeneratePassword": { + "message": "Regenerate Password" + }, + "length": { + "message": "Length" + }, + "numWords": { + "message": "Number of Words" + }, + "wordSeparator": { + "message": "Word Separator" + }, + "capitalize": { + "message": "Capitalize", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Include Number" + }, + "passwordHistory": { + "message": "Password History" + }, + "noPasswordsInList": { + "message": "There are no passwords to list." + }, + "clear": { + "message": "Clear", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Account Updated" + }, + "changeEmail": { + "message": "Change Email" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "New Email" + }, + "code": { + "message": "Code" + }, + "changeEmailDesc": { + "message": "We have emailed a verification code to $EMAIL$. Please check your email for this code and enter it below to finalize the email address change.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "emailChanged": { + "message": "Email Changed" + }, + "logBackIn": { + "message": "Please log back in." + }, + "logBackInOthersToo": { + "message": "Please log back in. If you are using other Bitwarden applications log out and back in to those as well." + }, + "changeMasterPassword": { + "message": "Change Master Password" + }, + "masterPasswordChanged": { + "message": "Master Password Changed" + }, + "currentMasterPass": { + "message": "Current Master Password" + }, + "newMasterPass": { + "message": "নতুন মূল পাসওয়ার্ড" + }, + "confirmNewMasterPass": { + "message": "নতুন মূল পাসওয়ার্ড নিশ্চিত করুন" + }, + "encKeySettings": { + "message": "Encryption Key Settings" + }, + "kdfAlgorithm": { + "message": "KDF Algorithm" + }, + "kdfIterations": { + "message": "KDF Iterations" + }, + "kdfIterationsDesc": { + "message": "Higher KDF iterations can help protect your master password from being brute forced by an attacker. We recommend a value of $VALUE$ or more.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Setting your KDF iterations too high could result in poor performance when logging into (and unlocking) Bitwarden on devices with slower CPUs. We recommend that you increase the value in increments of $INCREMENT$ and then test all of your devices.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Change KDF" + }, + "encKeySettingsChanged": { + "message": "Encryption Key Settings Changed" + }, + "dangerZone": { + "message": "Danger Zone" + }, + "dangerZoneDesc": { + "message": "Careful, these actions are not reversible!" + }, + "deauthorizeSessions": { + "message": "Deauthorize Sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Concerned your account is logged in on another device? Proceed below to deauthorize all computers or devices that you have previously used. This security step is recommended if you previously used a public computer or accidentally saved your password on a device that isn't yours. This step will also clear all previously remembered two-step login sessions." + }, + "deauthorizeSessionsWarning": { + "message": "Proceeding will also log you out of your current session, requiring you to log back in. You will also be prompted for two-step login again, if enabled. Active sessions on other devices may continue to remain active for up to one hour." + }, + "sessionsDeauthorized": { + "message": "All Sessions Deauthorized" + }, + "purgeVault": { + "message": "Purge Vault" + }, + "purgedOrganizationVault": { + "message": "Purged organization vault." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Proceed below to delete all items and folders in your vault. Items that belong to an organization that you share with will not be deleted." + }, + "purgeOrgVaultDesc": { + "message": "Proceed below to delete all items in the organization's vault." + }, + "purgeVaultWarning": { + "message": "Purging your vault is permanent. It cannot be undone." + }, + "vaultPurged": { + "message": "Your vault has been purged." + }, + "deleteAccount": { + "message": "Delete Account" + }, + "deleteAccountDesc": { + "message": "Proceed below to delete your account and all associated data." + }, + "deleteAccountWarning": { + "message": "Deleting your account is permanent. It cannot be undone." + }, + "accountDeleted": { + "message": "Account Deleted" + }, + "accountDeletedDesc": { + "message": "Your account has been closed and all associated data has been deleted." + }, + "myAccount": { + "message": "My Account" + }, + "tools": { + "message": "Tools" + }, + "importData": { + "message": "Import Data" + }, + "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." + }, + "importSuccess": { + "message": "Data has been successfully imported into your vault." + }, + "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." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "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)" + } + } + }, + "options": { + "message": "Options" + }, + "optionsDesc": { + "message": "Customize your web vault experience." + }, + "optionsUpdated": { + "message": "Options updated" + }, + "language": { + "message": "ভাষা" + }, + "languageDesc": { + "message": "Change the language used by the web vault." + }, + "disableIcons": { + "message": "ওয়েবসাইট আইকন অক্ষম করুন" + }, + "disableIconsDesc": { + "message": "ওয়েবসাইট আইকনগুলি আপনার ভল্টের প্রতিটি লগইন বস্তুর পাশে একটি পরিচয়যোগ্য চিত্র সরবরাহ করে।" + }, + "enableGravatars": { + "message": "Enable Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use avatar images loaded from gravatar.com." + }, + "enableFullWidth": { + "message": "Enable Full Width Layout", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Allow the web vault to expand the full width of the browser window." + }, + "default": { + "message": "পূর্ব-নির্ধারিত" + }, + "domainRules": { + "message": "ডোমেইন নিয়ম" + }, + "domainRulesDesc": { + "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + }, + "globalEqDomains": { + "message": "Global Equivalent Domains" + }, + "customEqDomains": { + "message": "Custom Equivalent Domains" + }, + "exclude": { + "message": "Exclude" + }, + "include": { + "message": "Include" + }, + "customize": { + "message": "Customize" + }, + "newCustomDomain": { + "message": "New Custom Domain" + }, + "newCustomDomainDesc": { + "message": "Enter a list of domains separated by commas. Only \"base\" domains are allowed. Do not enter subdomains. For example, enter \"google.com\" instead of \"www.google.com\". You can also enter \"androidapp://package.name\" to associate an android app with other website domains." + }, + "customDomainX": { + "message": "Custom Domain $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domains updated" + }, + "twoStepLogin": { + "message": "দ্বি-পদক্ষেপের লগইন" + }, + "twoStepLoginDesc": { + "message": "Secure your account by requiring an additional step when logging in." + }, + "twoStepLoginOrganizationDesc": { + "message": "Require two-step login for your organization's users by configuring providers at the organization level." + }, + "twoStepLoginRecoveryWarning": { + "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (ex. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + }, + "viewRecoveryCode": { + "message": "পুনরুদ্ধার কোড দেখুন" + }, + "providers": { + "message": "Providers", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Enable" + }, + "enabled": { + "message": "Enabled" + }, + "premium": { + "message": "প্রিমিয়াম", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "প্রিমিয়াম সদস্যতা" + }, + "premiumRequired": { + "message": "প্রিমিয়াম আবশ্যক" + }, + "premiumRequiredDesc": { + "message": "এই বৈশিষ্ট্যটি ব্যবহার করতে একটি প্রিমিয়াম সদস্যতার প্রয়োজন।" + }, + "youHavePremiumAccess": { + "message": "You have premium access" + }, + "alreadyPremiumFromOrg": { + "message": "You already have access to premium features because of an organization you are a member of." + }, + "manage": { + "message": "Manage" + }, + "disable": { + "message": "Disable" + }, + "twoStepLoginProviderEnabled": { + "message": "This two-step login provider is enabled on your account." + }, + "twoStepLoginAuthDesc": { + "message": "Enter your master password to modify two-step login settings." + }, + "twoStepAuthenticatorDesc": { + "message": "Follow these steps to set up two-step login with an authenticator app:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Download a two-step authenticator app" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Need a two-step authenticator app? Download one of the following" + }, + "iosDevices": { + "message": "iOS devices" + }, + "androidDevices": { + "message": "Android devices" + }, + "windowsDevices": { + "message": "Windows devices" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "These apps are recommended, however, other authenticator apps will also work." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scan this QR code with your authenticator app" + }, + "key": { + "message": "Key" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Enter the resulting 6 digit verification code from the app" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app." + }, + "twoStepDisableDesc": { + "message": "Are you sure you want to disable this two-step login provider?" + }, + "twoStepDisabled": { + "message": "Two-step login provider disabled." + }, + "twoFactorYubikeyAdd": { + "message": "Add a new YubiKey to your account" + }, + "twoFactorYubikeyPlugIn": { + "message": "Plug the YubiKey into your computer's USB port." + }, + "twoFactorYubikeySelectKey": { + "message": "Select the first empty YubiKey input field below." + }, + "twoFactorYubikeyTouchButton": { + "message": "Touch the YubiKey's button." + }, + "twoFactorYubikeySaveForm": { + "message": "Save the form." + }, + "twoFactorYubikeyWarning": { + "message": "Due to platform limitations, YubiKeys cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when YubiKeys cannot be used. Supported platforms:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile apps on a device with NFC capabilities or a data port that can accept your YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC Support" + }, + "twoFactorYubikeySupportsNfc": { + "message": "One of my keys supports NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "If one of your YubiKeys supports NFC (such as a YubiKey NEO), you will be prompted on mobile devices whenever NFC availability is detected." + }, + "yubikeysUpdated": { + "message": "YubiKeys updated" + }, + "disableAllKeys": { + "message": "Disable All Keys" + }, + "twoFactorDuoDesc": { + "message": "Enter the Bitwarden application information from your Duo Admin panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration Key" + }, + "twoFactorDuoSecretKey": { + "message": "Secret Key" + }, + "twoFactorDuoApiHostname": { + "message": "API Hostname" + }, + "twoFactorEmailDesc": { + "message": "Follow these steps to set up two-step login with email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enter the email that you wish to receive verification codes" + }, + "twoFactorEmailEnterCode": { + "message": "Enter the resulting 6 digit verification code from the email" + }, + "sendEmail": { + "message": "Send Email" + }, + "twoFactorU2fAdd": { + "message": "Add a FIDO U2F security key to your account" + }, + "removeU2fConfirmation": { + "message": "Are you sure you want to remove this security key?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Read Key" + }, + "keyCompromised": { + "message": "Key is compromised." + }, + "twoFactorU2fGiveName": { + "message": "Give the security key a friendly name to identify it." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Plug the security key into your computer's USB port and click the \"Read Key\" button." + }, + "twoFactorU2fTouchButton": { + "message": "If the security key has a button, touch it." + }, + "twoFactorU2fSaveForm": { + "message": "Save the form." + }, + "twoFactorU2fWarning": { + "message": "Due to platform limitations, FIDO U2F cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when FIDO U2F cannot be used. Supported platforms:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorU2fWaiting": { + "message": "Waiting for you to touch the button on your security key" + }, + "twoFactorU2fClickSave": { + "message": "Click the \"Save\" button below to enable this security key for two-step login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Your Bitwarden two-step login recovery code" + }, + "twoFactorRecoveryNoCode": { + "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + }, + "printCode": { + "message": "Print Code", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Reports" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Unsecure Websites" + }, + "unsecuredWebsitesReportDesc": { + "message": "URLs that start with http:// don’t use the best available encryption. Change the Login URIs for these accounts to https:// for safer browsing." + }, + "unsecuredWebsitesFound": { + "message": "Unsecured Websites Found" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Inactive Two-step Login" + }, + "inactive2faReportDesc": { + "message": "Two-step Login adds a layer of protection to your accounts. Turn on Two-Step Login using Bitwarden Authenticator for these accounts or use an alternative method." + }, + "inactive2faFound": { + "message": "Logins Without 2FA Found" + }, + "inactive2faFoundDesc": { + "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to 2fa.directory). To further protect these accounts, you should enable two-factor authentication.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No websites were found in your vault with a missing two-factor authentication configuration." + }, + "instructions": { + "message": "Instructions" + }, + "exposedPasswordsReport": { + "message": "Exposed Passwords" + }, + "exposedPasswordsReportDesc": { + "message": "Passwords exposed in a data breach are easy targets for attackers. Change these passwords to prevent potential break-ins." + }, + "exposedPasswordsFound": { + "message": "Exposed Passwords Found" + }, + "exposedPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No items in your vault have passwords that have been exposed in known data breaches." + }, + "checkExposedPasswords": { + "message": "Check Exposed Passwords" + }, + "exposedXTimes": { + "message": "Exposed $COUNT$ time(s)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Weak Passwords" + }, + "weakPasswordsReportDesc": { + "message": "দুর্বল পাসওয়ার্ডগুলি সহজেই হ্যাকার এবং স্বয়ংক্রিয় সরঞ্জামগুলির দ্বারা অনুমান করা যায় যা পাসওয়ার্ড ক্র্যাক করার জন্য ব্যবহৃত হয়। Bitwarden পাসওয়ার্ড উৎপাদক আপনাকে শক্তিশালী পাসওয়ার্ড তৈরি করতে সহায়তা করতে পারে।" + }, + "weakPasswordsFound": { + "message": "Weak Passwords Found" + }, + "weakPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "No items in your vault have weak passwords." + }, + "reusedPasswordsReport": { + "message": "Reused Passwords" + }, + "reusedPasswordsReportDesc": { + "message": "Reusing passwords makes it easier for attackers to break into multiple accounts. Change these passwords so that each is unique." + }, + "reusedPasswordsFound": { + "message": "Reused Passwords Found" + }, + "reusedPasswordsFoundDesc": { + "message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "No logins in your vault have passwords that are being reused." + }, + "reusedXTimes": { + "message": "Reused $COUNT$ times", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Data Breach" + }, + "breachDesc": { + "message": "Breached accounts can expose your personal information. Secure breached accounts by enabling 2FA or creating a stronger password." + }, + "breachCheckUsernameEmail": { + "message": "Check any usernames or email addresses that you use." + }, + "checkBreaches": { + "message": "Check Breaches" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ was not found in any known data breaches.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "ভাল খবর", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Breached Accounts Found" + }, + "compromisedData": { + "message": "Compromised data" + }, + "website": { + "message": "Website" + }, + "affectedUsers": { + "message": "Affected Users" + }, + "breachOccurred": { + "message": "Breach Occurred" + }, + "breachReported": { + "message": "Breach Reported" + }, + "reportError": { + "message": "An error occurred trying to load the report. Try again" + }, + "billing": { + "message": "Billing" + }, + "accountCredit": { + "message": "Account Credit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Account Balance", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Add Credit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Amount", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Added credit will appear on your account after the payment has been fully processed. Some payment methods are delayed and can take longer to process than others." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + }, + "goPremium": { + "message": "Go Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "You've upgraded to premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Upgrade your account to a premium membership and unlock some great additional features." + }, + "premiumSignUpStorage": { + "message": "ফাইল সংযুক্তির জন্য ১ জিবি এনক্রিপ্টেড স্থান।" + }, + "premiumSignUpTwoStep": { + "message": "YubiKey, FIDO U2F, ও Duo এর মতো অতিরিক্ত দ্বি-পদক্ষেপ লগইন বিকল্পগুলি।" + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "আপনার ভল্টটি সুরক্ষিত রাখতে পাসওয়ার্ড স্বাস্থ্যকরন, অ্যাকাউন্ট স্বাস্থ্য এবং ডেটা লঙ্ঘনের প্রতিবেদন।" + }, + "premiumSignUpTotp": { + "message": "আপনার ভল্টে লগইনগুলির জন্য TOTP যাচাইকরণ কোড (2FA) উৎপাদক।" + }, + "premiumSignUpSupport": { + "message": "অগ্রাধিকার গ্রাহক সমর্থন।" + }, + "premiumSignUpFuture": { + "message": "ভবিষ্যতের সমস্ত প্রিমিয়াম বৈশিষ্ট্য। আরও শীঘ্রই আসছে!" + }, + "premiumPrice": { + "message": "সমস্ত মাত্র $PRICE$ / বছরের জন্য!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Addons" + }, + "premiumAccess": { + "message": "Premium Access" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organization for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Additional Storage (GB)" + }, + "additionalStorageGbDesc": { + "message": "# of additional GB" + }, + "additionalStorageIntervalDesc": { + "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "সারাংশ" + }, + "total": { + "message": "মোট" + }, + "year": { + "message": "বছর" + }, + "month": { + "message": "মাস" + }, + "monthAbbr": { + "message": "mo.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Your payment method will be charged immediately and then on a recurring basis each year. You may cancel at any time." + }, + "paymentCharged": { + "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Your plan comes with a free 7 day trial. Your payment method will not be charged until the trial has ended. You may cancel at any time." + }, + "paymentInformation": { + "message": "Payment Information" + }, + "billingInformation": { + "message": "Billing Information" + }, + "creditCard": { + "message": "Credit Card" + }, + "paypalClickSubmit": { + "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + }, + "cancelSubscription": { + "message": "Cancel Subscription" + }, + "subscriptionCanceled": { + "message": "The subscription has been canceled." + }, + "pendingCancellation": { + "message": "Pending Cancellation" + }, + "subscriptionPendingCanceled": { + "message": "The subscription has been marked for cancellation at the end of the current billing period." + }, + "reinstateSubscription": { + "message": "Reinstate Subscription" + }, + "reinstateConfirmation": { + "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + }, + "reinstated": { + "message": "The subscription has been reinstated." + }, + "cancelConfirmation": { + "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + }, + "canceledSubscription": { + "message": "The subscription has been canceled." + }, + "neverExpires": { + "message": "Never Expires" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Next Charge" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "Download License" + }, + "updateLicense": { + "message": "Update License" + }, + "updatedLicense": { + "message": "Updated license" + }, + "manageSubscription": { + "message": "Manage Subscription" + }, + "storage": { + "message": "Storage" + }, + "addStorage": { + "message": "Add Storage" + }, + "removeStorage": { + "message": "Remove Storage" + }, + "subscriptionStorage": { + "message": "Your subscription has a total of $MAX_STORAGE$ GB of encrypted file storage. You are currently using $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Payment Method" + }, + "noPaymentMethod": { + "message": "No payment method on file." + }, + "addPaymentMethod": { + "message": "Add Payment Method" + }, + "changePaymentMethod": { + "message": "Change Payment Method" + }, + "invoices": { + "message": "Invoices" + }, + "noInvoices": { + "message": "No invoices." + }, + "paid": { + "message": "Paid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Unpaid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transactions", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "No transactions." + }, + "chargeNoun": { + "message": "Charge", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Refund", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Any charges will appear on your statement as $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB of Storage To Add" + }, + "gbStorageRemove": { + "message": "GB of Storage To Remove" + }, + "storageAddNote": { + "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "storageRemoveNote": { + "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedStorage": { + "message": "Adjusted $AMOUNT$ GB of storage.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contact Customer Support" + }, + "updatedPaymentMethod": { + "message": "Updated payment method." + }, + "purchasePremium": { + "message": "Purchase Premium" + }, + "licenseFile": { + "message": "License File" + }, + "licenseFileDesc": { + "message": "Your license file will be named something like $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "To upgrade your account to a premium membership you need to upload a valid license file." + }, + "uploadLicenseFileOrg": { + "message": "To create an on-premises hosted organization you need to upload a valid license file." + }, + "accountEmailMustBeVerified": { + "message": "Your account's email address must be verified." + }, + "newOrganizationDesc": { + "message": "Organizations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company." + }, + "generalInformation": { + "message": "General Information" + }, + "organizationName": { + "message": "Organization Name" + }, + "accountOwnedBusiness": { + "message": "This account is owned by a business." + }, + "billingEmail": { + "message": "Billing Email" + }, + "businessName": { + "message": "Business Name" + }, + "chooseYourPlan": { + "message": "Choose Your Plan" + }, + "users": { + "message": "Users" + }, + "userSeats": { + "message": "User Seats" + }, + "additionalUserSeats": { + "message": "Additional User Seats" + }, + "userSeatsDesc": { + "message": "# of user seats" + }, + "userSeatsAdditionalDesc": { + "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "How many user seats do you need? You can also add additional seats later if needed." + }, + "planNameFree": { + "message": "Free", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing or personal users to share with $COUNT$ other user.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Families" + }, + "planDescFamilies": { + "message": "For personal use, to share with family & friends." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "For businesses and other team organizations." + }, + "planNameEnterprise": { + "message": "Enterprise" + }, + "planDescEnterprise": { + "message": "For businesses and other large organizations." + }, + "freeForever": { + "message": "Free Forever" + }, + "includesXUsers": { + "message": "includes $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Additional Users" + }, + "costPerUser": { + "message": "$COST$ per user", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limited to $COUNT$ users (including you)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limited to $COUNT$ collections", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Add and share with up to $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Add and share with unlimited users" + }, + "createUnlimitedCollections": { + "message": "Create unlimited Collections" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ encrypted file storage", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "On-premise hosting (optional)" + }, + "usersGetPremium": { + "message": "Users get access to Premium Features" + }, + "controlAccessWithGroups": { + "message": "Control user access with Groups" + }, + "syncUsersFromDirectory": { + "message": "Sync your users and Groups from a directory" + }, + "trackAuditLogs": { + "message": "Track user actions with audit logs" + }, + "enforce2faDuo": { + "message": "Enforce 2FA with Duo" + }, + "priorityCustomerSupport": { + "message": "Priority customer support" + }, + "xDayFreeTrial": { + "message": "$COUNT$ day free trial, cancel anytime", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Monthly" + }, + "annually": { + "message": "Annually" + }, + "basePrice": { + "message": "Base Price" + }, + "organizationCreated": { + "message": "Organization Created" + }, + "organizationReadyToGo": { + "message": "Your new organization is ready to go!" + }, + "organizationUpgraded": { + "message": "Your organization has been upgraded." + }, + "leave": { + "message": "Leave" + }, + "leaveOrganizationConfirmation": { + "message": "Are you sure you want to leave this organization?" + }, + "leftOrganization": { + "message": "You have left the organization." + }, + "defaultCollection": { + "message": "Default Collection" + }, + "getHelp": { + "message": "Get Help" + }, + "getApps": { + "message": "Get the Apps" + }, + "loggedInAs": { + "message": "Logged in as" + }, + "eventLogs": { + "message": "Event Logs" + }, + "people": { + "message": "People" + }, + "policies": { + "message": "Policies" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Edit Policy" + }, + "groups": { + "message": "Groups" + }, + "newGroup": { + "message": "New Group" + }, + "addGroup": { + "message": "Add Group" + }, + "editGroup": { + "message": "Edit Group" + }, + "deleteGroupConfirmation": { + "message": "Are you sure you want to delete this group?" + }, + "removeUserConfirmation": { + "message": "Are you sure you want to remove this user?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "External Id" + }, + "externalIdDesc": { + "message": "The external id can be used as a reference or to link this resource to an external system such as a user directory." + }, + "accessControl": { + "message": "Access Control" + }, + "groupAccessAllItems": { + "message": "This group can access and modify all items." + }, + "groupAccessSelectedCollections": { + "message": "This group can access only the selected collections." + }, + "readOnly": { + "message": "Read Only" + }, + "newCollection": { + "message": "New Collection" + }, + "addCollection": { + "message": "Add Collection" + }, + "editCollection": { + "message": "Edit Collection" + }, + "deleteCollectionConfirmation": { + "message": "Are you sure you want to delete this collection?" + }, + "editUser": { + "message": "Edit User" + }, + "inviteUser": { + "message": "Invite User" + }, + "inviteUserDesc": { + "message": "Invite a new user to your organization by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "inviteMultipleEmailDesc": { + "message": "You can invite up to $COUNT$ users at a time by comma separating a list of email addresses.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "This user is using two-step login to protect their account." + }, + "userAccessAllItems": { + "message": "This user can access and modify all items." + }, + "userAccessSelectedCollections": { + "message": "This user can access only the selected collections." + }, + "search": { + "message": "Search" + }, + "invited": { + "message": "Invited" + }, + "accepted": { + "message": "Accepted" + }, + "confirmed": { + "message": "Confirmed" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Owner" + }, + "ownerDesc": { + "message": "The highest access user that can manage all aspects of your organization." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admins can access and manage all items, collections and users in your organization." + }, + "user": { + "message": "User" + }, + "userDesc": { + "message": "A regular user with access to assigned collections in your organization." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managers can access and manage assigned collections in your organization." + }, + "all": { + "message": "All" + }, + "refresh": { + "message": "Refresh" + }, + "timestamp": { + "message": "Timestamp" + }, + "event": { + "message": "Event" + }, + "unknown": { + "message": "অজানা" + }, + "loadMore": { + "message": "Load More" + }, + "mobile": { + "message": "Mobile", + "description": "Mobile app" + }, + "extension": { + "message": "Extension", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "ওয়েব ভল্ট" + }, + "loggedIn": { + "message": "Logged in." + }, + "changedPassword": { + "message": "Changed account password." + }, + "enabledUpdated2fa": { + "message": "Enabled/updated two-step login." + }, + "disabled2fa": { + "message": "Disabled two-step login." + }, + "recovered2fa": { + "message": "Recovered account from two-step login." + }, + "failedLogin": { + "message": "Login attempt failed with incorrect password." + }, + "failedLogin2fa": { + "message": "Login attempt failed with incorrect two-step login." + }, + "exportedVault": { + "message": "Exported vault." + }, + "exportedOrganizationVault": { + "message": "Exported organization vault." + }, + "editedOrgSettings": { + "message": "Edited organization settings." + }, + "createdItemId": { + "message": "Created item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Edited item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Sent item $ID$ to trash.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Viewed item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Viewed password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Viewed hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Viewed security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Copied password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Copied hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Copied security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Auto-filled item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Created collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Edited collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Deleted collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Edited policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Created group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Edited group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Deleted group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Removed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Created attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Deleted attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Edited collections for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Invited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Confirmed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Edited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Edited groups for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Device" + }, + "view": { + "message": "View" + }, + "invalidDateRange": { + "message": "Invalid date range." + }, + "errorOccurred": { + "message": "An error has occurred." + }, + "userAccess": { + "message": "User Access" + }, + "userType": { + "message": "User Type" + }, + "groupAccess": { + "message": "Group Access" + }, + "groupAccessUserDesc": { + "message": "Edit the groups that this user belongs to." + }, + "invitedUsers": { + "message": "Invited user(s)." + }, + "resendInvitation": { + "message": "Resend Invitation" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ has been reinvited.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirm" + }, + "confirmUser": { + "message": "Confirm User" + }, + "hasBeenConfirmed": { + "message": "$USER$ has been confirmed.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirm Users" + }, + "usersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organization until they are confirmed." + }, + "startDate": { + "message": "Start Date" + }, + "endDate": { + "message": "End Date" + }, + "verifyEmail": { + "message": "Verify Email" + }, + "verifyEmailDesc": { + "message": "Verify your account's email address to unlock access to all features." + }, + "verifyEmailFirst": { + "message": "Your account's email address first must be verified." + }, + "checkInboxForVerification": { + "message": "Check your email inbox for a verification link." + }, + "emailVerified": { + "message": "Your email has been verified." + }, + "emailVerifiedFailed": { + "message": "Unable to verify your email. Try sending a new verification email." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "Update Browser" + }, + "updateBrowserDesc": { + "message": "You are using an unsupported web browser. The web vault may not function properly." + }, + "joinOrganization": { + "message": "Join Organization" + }, + "joinOrganizationDesc": { + "message": "You've been invited to join the organization listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "inviteAccepted": { + "message": "Invitation Accepted" + }, + "inviteAcceptedDesc": { + "message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens." + }, + "inviteAcceptFailed": { + "message": "Unable to accept invitation. Ask an organization admin to send a new invitation." + }, + "inviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Remember email" + }, + "recoverAccountTwoStepDesc": { + "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + }, + "recoverAccountTwoStep": { + "message": "Recover Account Two-Step Login" + }, + "twoStepRecoverDisabled": { + "message": "Two-step login has been disabled on your account." + }, + "learnMore": { + "message": "আরও জানুন" + }, + "deleteRecoverDesc": { + "message": "Enter your email address below to recover and delete your account." + }, + "deleteRecoverEmailSent": { + "message": "If your account exists, we've sent you an email with further instructions." + }, + "deleteRecoverConfirmDesc": { + "message": "You have requested to delete your Bitwarden account. Click the button below to confirm." + }, + "myOrganization": { + "message": "আমার সংগঠন" + }, + "deleteOrganization": { + "message": "Delete Organization" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organization Deleted" + }, + "organizationDeletedDesc": { + "message": "The organization and all associated data has been deleted." + }, + "organizationUpdated": { + "message": "Organization updated" + }, + "taxInformation": { + "message": "ট্যাক্স তথ্য" + }, + "taxInformationDesc": { + "message": "For customers within the US, ZIP code is required to satisfy sales tax requirements, for other countries you may optionally provide a tax identification number (VAT/GST) and/or address to appear on your invoices." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Upgrade Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade your account to another plan by providing the information below. Please ensure that you have an active payment method added to the account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Invoice #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "View Invoice" + }, + "downloadInvoice": { + "message": "Download Invoice" + }, + "verifyBankAccount": { + "message": "Verify Bank Account" + }, + "verifyBankAccountDesc": { + "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." + }, + "verifyBankAccountInitialDesc": { + "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organization's billing page to verify the bank account." + }, + "verifyBankAccountFailureWarning": { + "message": "Failure to verify the bank account will result in a missed payment and your subscription being disabled." + }, + "verifiedBankAccount": { + "message": "Bank account has been verified." + }, + "bankAccount": { + "message": "Bank Account" + }, + "amountX": { + "message": "Amount $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Account Number" + }, + "accountHolderName": { + "message": "Account Holder Name" + }, + "bankAccountType": { + "message": "Account Type" + }, + "bankAccountTypeCompany": { + "message": "Company (Business)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Personal)" + }, + "enterInstallationId": { + "message": "Enter your installation id" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Add Seats", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remove Seats", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Your subscription allows for a total of $COUNT$ users.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seats To Add" + }, + "seatsToRemove": { + "message": "Seats To Remove" + }, + "seatsAddNote": { + "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "seatsRemoveNote": { + "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedSeats": { + "message": "Adjusted $AMOUNT$ user seats.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Key Updated" + }, + "updateKeyTitle": { + "message": "Update Key" + }, + "updateEncryptionKey": { + "message": "Update Encryption Key" + }, + "updateEncryptionKeyShortDesc": { + "message": "You are currently using an outdated encryption scheme." + }, + "updateEncryptionKeyDesc": { + "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, however, it may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "Subscription" + }, + "loading": { + "message": "লোড হচ্ছে" + }, + "upgrade": { + "message": "Upgrade" + }, + "upgradeOrganization": { + "message": "Upgrade Organization" + }, + "upgradeOrganizationDesc": { + "message": "This feature is not available for free organizations. Switch to a paid plan to unlock more features." + }, + "createOrganizationStep1": { + "message": "Create Organization: Step 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Before creating your organization, you first need to create a free personal account." + }, + "refunded": { + "message": "Refunded" + }, + "nothingSelected": { + "message": "You have not selected anything." + }, + "acceptPolicies": { + "message": "এই বাক্সটি টিক করে আপনি নিম্নলিখিতগুলিতে সম্মত হন:" + }, + "acceptPoliciesError": { + "message": "পরিষেবার শর্তাদি এবং গোপনীয়তা নীতি স্বীকার করা হয়নি।" + }, + "termsOfService": { + "message": "সেবা পাবার শর্ত" + }, + "privacyPolicy": { + "message": "গোপনীয়তা নীতি" + }, + "filters": { + "message": "ফিল্টার" + }, + "vaultTimeout": { + "message": "Vault Timeout" + }, + "vaultTimeoutDesc": { + "message": "Choose when your vault will timeout and perform the selected action." + }, + "oneMinute": { + "message": "১ মিনিট" + }, + "fiveMinutes": { + "message": "৫ মিনিট" + }, + "fifteenMinutes": { + "message": "১৫ মিনিট" + }, + "thirtyMinutes": { + "message": "৩০ মিনিট" + }, + "oneHour": { + "message": "১ ঘণ্টা" + }, + "fourHours": { + "message": "৪ ঘন্টা" + }, + "onRefresh": { + "message": "On Browser Refresh" + }, + "dateUpdated": { + "message": "হালনাগাদকৃত", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "পাসওয়ার্ড হালনাগাদকৃত", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organization is disabled." + }, + "licenseIsExpired": { + "message": "License is expired." + }, + "updatedUsers": { + "message": "Updated users" + }, + "selected": { + "message": "Selected" + }, + "ownership": { + "message": "Ownership" + }, + "whoOwnsThisItem": { + "message": "এই বস্তুটির মালিক কে?" + }, + "strong": { + "message": "শক্তিশালী", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "ভাল", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "দুর্বল", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "খুবই দুর্বল", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "দুর্বল মূল পাসওয়ার্ড" + }, + "weakMasterPasswordDesc": { + "message": "আপনার চয়নকৃত মূল পাসওয়ার্ডটি দুর্বল। আপনার Bitwarden অ্যাকাউন্টটি সঠিকভাবে সুরক্ষিত করার জন্য আপনার একটি শক্তিশালী মূল পাসওয়ার্ড (বা একটি পাসফ্রেজ) ব্যবহার করা উচিত। আপনি কি নিশ্চিত যে এই মূল পাসওয়ার্ডটি ব্যবহার করতে চান?" + }, + "rotateAccountEncKey": { + "message": "Also rotate my account's encryption key" + }, + "rotateEncKeyTitle": { + "message": "Rotate Encryption Key" + }, + "rotateEncKeyConfirmation": { + "message": "Are you sure you want to rotate your account's encryption key?" + }, + "attachmentsNeedFix": { + "message": "This item has old file attachments that need to be fixed." + }, + "attachmentFixDesc": { + "message": "This is an old file attachment the needs to be fixed. Click to learn more." + }, + "fix": { + "message": "Fix", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key." + }, + "yourAccountsFingerprint": { + "message": "Your account's fingerprint phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Never prompt to verify fingerprint phrases for invited users (Not recommended)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Free", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API Key" + }, + "apiKeyDesc": { + "message": "Your API key can be used to authenticate to the Bitwarden public API." + }, + "apiKeyRotateDesc": { + "message": "Rotating the API key will invalidate the previous key. You can rotate your API key if you believe that the current key is no longer safe to use." + }, + "apiKeyWarning": { + "message": "Your API key has full access to the organization. It should be kept secret." + }, + "userApiKeyDesc": { + "message": "Your API key can be used to authenticate in the Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 Client Credentials", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "View API Key" + }, + "rotateApiKey": { + "message": "Rotate API Key" + }, + "selectOneCollection": { + "message": "You must select at least one collection." + }, + "couldNotChargeCardPayInvoice": { + "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + }, + "inAppPurchase": { + "message": "In-app Purchase" + }, + "cannotPerformInAppPurchase": { + "message": "You cannot perform this action while using an in-app purchase payment method." + }, + "manageSubscriptionFromStore": { + "message": "You must manage your subscription from the store where your in-app purchase was made." + }, + "minLength": { + "message": "Minimum Length" + }, + "clone": { + "message": "Clone" + }, + "masterPassPolicyDesc": { + "message": "Set minimum requirements for master password strength." + }, + "twoStepLoginPolicyDesc": { + "message": "Require users to set up two-step login on their personal accounts." + }, + "twoStepLoginPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and do not have two-step login enabled for their personal account will be removed from the organization and will receive an email notifying them about the change." + }, + "twoStepLoginPolicyUserWarning": { + "message": "You are a member of an organization that requires two-step login to be enabled on your user account. If you disable all two-step login providers you will be automatically removed from these organizations." + }, + "passwordGeneratorPolicyDesc": { + "message": "পাসওয়ার্ড উৎপাদকের কনফিগারেশনের জন্য ন্যূনতম প্রয়োজনীয়তা সেট করুন।" + }, + "passwordGeneratorPolicyInEffect": { + "message": "এক বা একাধিক সংস্থার নীতিগুলি আপনার উৎপাদকের সেটিংসকে প্রভাবিত করছে।" + }, + "masterPasswordPolicyInEffect": { + "message": "One or more organization policies require your master password to meet the following requirements:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum complexity score of $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum length of $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contain one or more uppercase characters" + }, + "policyInEffectLowercase": { + "message": "এক বা একাধিক ছোট হাতের অক্ষর রয়েছে" + }, + "policyInEffectNumbers": { + "message": "এক বা একাধিক সংখ্যা রয়েছে" + }, + "policyInEffectSpecial": { + "message": "নিম্নলিখিত বিশেষ অক্ষরগুলির একটি বা একাধিক রয়েছে $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "আপনার নতুন মূল পাসওয়ার্ড নীতির প্রয়োজনীয়তা পূরণ করে না।" + }, + "minimumNumberOfWords": { + "message": "Minimum Number of Words" + }, + "defaultType": { + "message": "Default Type" + }, + "userPreference": { + "message": "User Preference" + }, + "vaultTimeoutAction": { + "message": "Vault Timeout Action" + }, + "vaultTimeoutActionLockDesc": { + "message": "A locked vault requires that you re-enter your master password to access it again." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "A logged out vault requires that you re-authenticate to access it again." + }, + "lock": { + "message": "Lock", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Trash", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Search Trash" + }, + "permanentlyDelete": { + "message": "Permanently Delete" + }, + "permanentlyDeleteSelected": { + "message": "Permanently Delete Selected" + }, + "permanentlyDeleteItem": { + "message": "Permanently Delete Item" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Are you sure you want to permanently delete this item?" + }, + "permanentlyDeletedItem": { + "message": "Permanently Deleted item" + }, + "permanentlyDeletedItems": { + "message": "Permanently Deleted items" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Permanently Deleted item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restore" + }, + "restoreSelected": { + "message": "Restore Selected" + }, + "restoreItem": { + "message": "Restore Item" + }, + "restoredItem": { + "message": "Restored Item" + }, + "restoredItems": { + "message": "Restored Items" + }, + "restoreItemConfirmation": { + "message": "Are you sure you want to restore this item?" + }, + "restoreItems": { + "message": "Restore items" + }, + "restoreSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Restored item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout Action Confirmation" + }, + "hidePasswords": { + "message": "Hide Passwords" + }, + "countryPostalCodeRequiredDesc": { + "message": "We require this information for calculating sales tax and financial reporting only." + }, + "includeVAT": { + "message": "Include VAT/GST Information (optional)" + }, + "taxIdNumber": { + "message": "VAT/GST Tax ID" + }, + "taxInfoUpdated": { + "message": "Tax information updated." + }, + "setMasterPassword": { + "message": "মূল পাসওয়ার্ড ধার্য করুন" + }, + "ssoCompleteRegistration": { + "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + }, + "identifier": { + "message": "Identifier" + }, + "organizationIdentifier": { + "message": "Organization Identifier" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Log in using your organization's single sign-on portal. Please enter your organization's identifier to begin." + }, + "enterpriseSingleSignOn": { + "message": "Enterprise Single Sign-On" + }, + "ssoHandOff": { + "message": "You may now close this tab and continue in the extension." + }, + "includeAllTeamsFeatures": { + "message": "All Teams features, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO Authentication via SAML2.0 and OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Enterprise Policies" + }, + "ssoValidationFailed": { + "message": "SSO Validation Failed" + }, + "ssoIdentifierRequired": { + "message": "Organization Identifier is required." + }, + "unlinkSso": { + "message": "Unlink SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Link SSO" + }, + "singleOrg": { + "message": "Single Organization" + }, + "singleOrgDesc": { + "message": "Restrict users from being able to join any other organizations." + }, + "singleOrgBlockCreateMessage": { + "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + }, + "singleOrgPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + }, + "requireSso": { + "message": "Single Sign-On Authentication" + }, + "requireSsoPolicyDesc": { + "message": "Require users to log in with the Enterprise Single Sign-On method." + }, + "prerequisite": { + "message": "Prerequisite" + }, + "requireSsoPolicyReq": { + "message": "The Single Organization enterprise policy must be enabled before activating this policy." + }, + "requireSsoPolicyReqError": { + "message": "Single Organization policy not enabled." + }, + "requireSsoExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "sendTypeFile": { + "message": "ফাইল" + }, + "sendTypeText": { + "message": "পাঠ্য" + }, + "createSend": { + "message": "Create New Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edit Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Created Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Edited Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Deleted Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Delete Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Are you sure you want to delete this Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "What type of Send is this?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Deletion Date" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Expiration Date" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximum Access Count" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Current Access Count" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Disabled" + }, + "sendLink": { + "message": "লিঙ্ক পাঠান", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copy Send Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remove Password" + }, + "removedPassword": { + "message": "Removed Password" + }, + "removePasswordConfirmation": { + "message": "Are you sure you want to remove the password?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "All Sends" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "expired": { + "message": "Expired" + }, + "searchSends": { + "message": "Search Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "This Send is protected with a password. Please type the password below to continue.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Download File" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "There are no Sends to list.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Emergency Access" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Request Access" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approve" + }, + "reject": { + "message": "Reject" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Disable Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "Estimated tax" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Manage All Collections" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Manage Groups" + }, + "managePolicies": { + "message": "Manage Policies" + }, + "manageSso": { + "message": "Manage SSO" + }, + "manageUsers": { + "message": "Manage Users" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organization users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Learn more about", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Learn more", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "try it now", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "sign up", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "to try it today.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organization policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organization administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/bs/messages.json b/apps/web/src/locales/bs/messages.json new file mode 100644 index 0000000000..0bf3605e4a --- /dev/null +++ b/apps/web/src/locales/bs/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Veb Trezor", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Koja je ovo vrsta stavke?" + }, + "name": { + "message": "Naziv" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Novi URI" + }, + "username": { + "message": "Korisničko ime" + }, + "password": { + "message": "Lozinka" + }, + "newPassword": { + "message": "Nova lozinka" + }, + "passphrase": { + "message": "Tajna fraza" + }, + "notes": { + "message": "Bilješke" + }, + "customFields": { + "message": "Prilagođena polja" + }, + "cardholderName": { + "message": "Ime vlasnika kartice" + }, + "number": { + "message": "Broj" + }, + "brand": { + "message": "Brend" + }, + "expiration": { + "message": "Datum isteka" + }, + "securityCode": { + "message": "Sigurnosni Kod (CVV)" + }, + "identityName": { + "message": "Ime identiteta" + }, + "company": { + "message": "Preduzeće" + }, + "ssn": { + "message": "Broj Socijalnog Osiguranja" + }, + "passportNumber": { + "message": "Broj Pasoša" + }, + "licenseNumber": { + "message": "Broj Vozačke Dozvole" + }, + "email": { + "message": "Imejl" + }, + "phone": { + "message": "Telefon" + }, + "january": { + "message": "Januar" + }, + "february": { + "message": "Februar" + }, + "march": { + "message": "Mart" + }, + "april": { + "message": "April" + }, + "may": { + "message": "Maj" + }, + "june": { + "message": "Jun" + }, + "july": { + "message": "Jul" + }, + "august": { + "message": "Avgust" + }, + "september": { + "message": "Septembar" + }, + "october": { + "message": "Oktobar" + }, + "november": { + "message": "Novembar" + }, + "december": { + "message": "Decembar" + }, + "title": { + "message": "Titula" + }, + "mr": { + "message": "g." + }, + "mrs": { + "message": "gđa." + }, + "ms": { + "message": "gđica." + }, + "dr": { + "message": "dr" + }, + "expirationMonth": { + "message": "Mjesec Isteka" + }, + "expirationYear": { + "message": "Godina Isteka" + }, + "authenticatorKeyTotp": { + "message": "Ključ Autentifikatora (TOTP)" + }, + "folder": { + "message": "Fascikla" + }, + "newCustomField": { + "message": "Novo Prilagođeno Polje" + }, + "value": { + "message": "Vrijednost" + }, + "dragToSort": { + "message": "Povuci za sortiranje" + }, + "cfTypeText": { + "message": "Tekst" + }, + "cfTypeHidden": { + "message": "Skriveno" + }, + "cfTypeBoolean": { + "message": "Boolean" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Remove" + }, + "unassigned": { + "message": "Unassigned" + }, + "noneFolder": { + "message": "No Folder", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Add Folder" + }, + "editFolder": { + "message": "Edit Folder" + }, + "baseDomain": { + "message": "Base domain", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exact" + }, + "startsWith": { + "message": "Starts with" + }, + "regEx": { + "message": "Regular expression", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Match Detection", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Default match detection", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Never" + }, + "toggleVisibility": { + "message": "Toggle Visibility" + }, + "toggleCollapse": { + "message": "Toggle Collapse", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generate Password" + }, + "checkPassword": { + "message": "Check if password has been exposed." + }, + "passwordExposed": { + "message": "This password has been exposed $VALUE$ time(s) in data breaches. You should change it.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "This password was not found in any known data breaches. It should be safe to use." + }, + "save": { + "message": "Save" + }, + "cancel": { + "message": "Cancel" + }, + "canceled": { + "message": "Canceled" + }, + "close": { + "message": "Close" + }, + "delete": { + "message": "Delete" + }, + "favorite": { + "message": "Favorite" + }, + "unfavorite": { + "message": "Unfavorite" + }, + "edit": { + "message": "Edit" + }, + "searchCollection": { + "message": "Search Collection" + }, + "searchFolder": { + "message": "Search Folder" + }, + "searchFavorites": { + "message": "Search Favorites" + }, + "searchType": { + "message": "Search Type", + "description": "Search item type" + }, + "searchVault": { + "message": "Search Vault" + }, + "allItems": { + "message": "All Items" + }, + "favorites": { + "message": "Favorites" + }, + "types": { + "message": "Types" + }, + "typeLogin": { + "message": "Login" + }, + "typeCard": { + "message": "Card" + }, + "typeIdentity": { + "message": "Identity" + }, + "typeSecureNote": { + "message": "Secure Note" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "Folders" + }, + "collections": { + "message": "Collections" + }, + "firstName": { + "message": "First Name" + }, + "middleName": { + "message": "Middle Name" + }, + "lastName": { + "message": "Prezime" + }, + "fullName": { + "message": "Ime i prezime" + }, + "address1": { + "message": "Adresa 1" + }, + "address2": { + "message": "Adresa 2" + }, + "address3": { + "message": "Adresa 3" + }, + "cityTown": { + "message": "Grad / Naselje" + }, + "stateProvince": { + "message": "Država / Okrug" + }, + "zipPostalCode": { + "message": "Zip / Poštanski Broj" + }, + "country": { + "message": "Zemlja" + }, + "shared": { + "message": "Dijeljeno" + }, + "attachments": { + "message": "Prilozi" + }, + "select": { + "message": "Odaberite" + }, + "addItem": { + "message": "Dodajte Stavku" + }, + "editItem": { + "message": "Uredite Stavku" + }, + "viewItem": { + "message": "Prikaz Stavke" + }, + "ex": { + "message": "npr.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Ostalo" + }, + "share": { + "message": "Podijelite" + }, + "moveToOrganization": { + "message": "Premjestite u Organizaciju" + }, + "valueCopied": { + "message": "$VALUE$ kopirano", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Kopirajte Vrijednost", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Kopirajte Lozinku", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Kopirajte Korisničko ime", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Kopirajte broj", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Kopirajte Sigurnosni Kod", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Kopirajte URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Moj trezor" + }, + "vault": { + "message": "Trezor" + }, + "moveSelectedToOrg": { + "message": "Premjestite Odabrano u Organizaciju" + }, + "deleteSelected": { + "message": "Obrišite Odabrano" + }, + "moveSelected": { + "message": "Premjestite Odabrano" + }, + "selectAll": { + "message": "Odaberite Sve" + }, + "unselectAll": { + "message": "Poništite odabir" + }, + "launch": { + "message": "Pokrenite" + }, + "newAttachment": { + "message": "Dodajte Novi Prilog" + }, + "deletedAttachment": { + "message": "Izbrisani prilog" + }, + "deleteAttachmentConfirmation": { + "message": "Sigurno želite izbrisati ovaj prilog?" + }, + "attachmentSaved": { + "message": "Prilog je sačuvan." + }, + "file": { + "message": "Datoteka" + }, + "selectFile": { + "message": "Odaberite datoteku." + }, + "maxFileSize": { + "message": "Maksimalna veličina datoteke je 500 MB." + }, + "updateKey": { + "message": "Ne možete koristiti ovu uslugu dok ne ažurirate Vaš enkripcioni ključ." + }, + "addedItem": { + "message": "Stavka Dodata" + }, + "editedItem": { + "message": "Stavka uređena" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ premješteno u $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Odabrane stavke premještene u $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Izbrišite Stavku" + }, + "deleteFolder": { + "message": "Izbrišite Fasciklu" + }, + "deleteAttachment": { + "message": "Izbrišite Prilog" + }, + "deleteItemConfirmation": { + "message": "Da li zaista želite da obrišete ovu stavku?" + }, + "deletedItem": { + "message": "Item sent to trash" + }, + "deletedItems": { + "message": "Items sent to trash" + }, + "movedItems": { + "message": "Moved items" + }, + "overwritePasswordConfirmation": { + "message": "Are you sure you want to overwrite the current password?" + }, + "editedFolder": { + "message": "Edited folder" + }, + "addedFolder": { + "message": "Added folder" + }, + "deleteFolderConfirmation": { + "message": "Are you sure you want to delete this folder?" + }, + "deletedFolder": { + "message": "Deleted folder" + }, + "loggedOut": { + "message": "Logged out" + }, + "loginExpired": { + "message": "Your login session has expired." + }, + "logOutConfirmation": { + "message": "Are you sure you want to log out?" + }, + "logOut": { + "message": "Log Out" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Yes" + }, + "no": { + "message": "No" + }, + "loginOrCreateNewAccount": { + "message": "Log in or create a new account to access your secure vault." + }, + "createAccount": { + "message": "Create Account" + }, + "logIn": { + "message": "Log In" + }, + "submit": { + "message": "Submit" + }, + "emailAddressDesc": { + "message": "You'll use your email address to log in." + }, + "yourName": { + "message": "Your Name" + }, + "yourNameDesc": { + "message": "What should we call you?" + }, + "masterPass": { + "message": "Master Password" + }, + "masterPassDesc": { + "message": "The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it." + }, + "masterPassHintDesc": { + "message": "A master password hint can help you remember your password if you forget it." + }, + "reTypeMasterPass": { + "message": "Re-type Master Password" + }, + "masterPassHint": { + "message": "Master Password Hint (optional)" + }, + "masterPassHintLabel": { + "message": "Master Password Hint" + }, + "settings": { + "message": "Settings" + }, + "passwordHint": { + "message": "Password Hint" + }, + "enterEmailToGetHint": { + "message": "Enter your account email address to receive your master password hint." + }, + "getMasterPasswordHint": { + "message": "Get master password hint" + }, + "emailRequired": { + "message": "Email address is required." + }, + "invalidEmail": { + "message": "Invalid email address." + }, + "masterPassRequired": { + "message": "Master password is required." + }, + "masterPassLength": { + "message": "Master password must be at least 8 characters long." + }, + "masterPassDoesntMatch": { + "message": "Master password confirmation does not match." + }, + "newAccountCreated": { + "message": "Your new account has been created! You may now log in." + }, + "masterPassSent": { + "message": "We've sent you an email with your master password hint." + }, + "unexpectedError": { + "message": "An unexpected error has occurred." + }, + "emailAddress": { + "message": "Email Address" + }, + "yourVaultIsLocked": { + "message": "Your vault is locked. Verify your master password to continue." + }, + "unlock": { + "message": "Unlock" + }, + "loggedInAsEmailOn": { + "message": "Logged in as $EMAIL$ on $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Invalid master password" + }, + "lockNow": { + "message": "Lock Now" + }, + "noItemsInList": { + "message": "There are no items to list." + }, + "noCollectionsInList": { + "message": "There are no collections to list." + }, + "noGroupsInList": { + "message": "There are no groups to list." + }, + "noUsersInList": { + "message": "There are no users to list." + }, + "noEventsInList": { + "message": "Nema događaja za prikaz." + }, + "newOrganization": { + "message": "Nova organizacija" + }, + "noOrganizationsList": { + "message": "Ne pripadaš niti jednoj organizaciji. Organizacije omogućuju sigurno dijeljenje stavki s drugim korisnicima." + }, + "versionNumber": { + "message": "Verzija $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Unesite 6-cifreni verifikacioni kod iz aplikacije za autentifikaciju." + }, + "enterVerificationCodeEmail": { + "message": "Unesite 6-cifreni verifikacioni kod poslat na imejl $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Imejl za potvrdu poslat na $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Zapamti me" + }, + "sendVerificationCodeEmailAgain": { + "message": "Ponovno slanje kontrolnog koda imejlom" + }, + "useAnotherTwoStepMethod": { + "message": "Koristiti drugi način prijave u dva koraka" + }, + "insertYubiKey": { + "message": "Povežite Vaš YubiKey preko USB porta na vašem računaru, pa pritisnite dugme na njemu." + }, + "insertU2f": { + "message": "Povežite Vaš sigurnosni ključ preko USB porta na Vaš računar. Ukoliko ima dugme, pritisnite ga." + }, + "loginUnavailable": { + "message": "Prijava nije dostupna" + }, + "noTwoStepProviders": { + "message": "Ovaj račun ima omogućenu prijavu u dva koraka, međutim ovaj web preglednik ne podržava niti jednog konfiguriranog pružatelja prijave u dva koraka." + }, + "noTwoStepProviders2": { + "message": "Molimo Vas da koristite neki od pretraživača koji su podržani (poput Chrome-a) i/ili dodajte pružaoce usluga čija podrška obuhvata više pretraživača (poput nekih aplikacija za autentifikaciju)." + }, + "twoStepOptions": { + "message": "Mogućnosti prijave u dva koraka" + }, + "recoveryCodeDesc": { + "message": "Izgubljen je pristup uređaju za dvostruku autentifikaciju? Koristite svoj kôd za oporavak za onemogućavanje svih pružatelja usluga dvostruke autentifikacije na tvojem računu." + }, + "recoveryCodeTitle": { + "message": "Recovery Code" + }, + "authenticatorAppTitle": { + "message": "Authenticator App" + }, + "authenticatorAppDesc": { + "message": "Use an authenticator app (such as Authy or Google Authenticator) to generate time-based verification codes.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP Security Key" + }, + "yubiKeyDesc": { + "message": "Use a YubiKey to access your account. Works with YubiKey 4 series, 5 series, and NEO devices." + }, + "duoDesc": { + "message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verify with Duo Security for your organization using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Use any FIDO U2F enabled security key to access your account." + }, + "u2fTitle": { + "message": "FIDO U2F Security Key" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Verification codes will be emailed to you." + }, + "continue": { + "message": "Continue" + }, + "organization": { + "message": "Organization" + }, + "organizations": { + "message": "Organizations" + }, + "moveToOrgDesc": { + "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organization that you wish to move these items to. Moving to an organization transfers ownership of the items to that organization. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "Edit the collections that this item is being shared with. Only organization users with access to these collections will be able to see this item." + }, + "deleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to delete. Are you sure you want to delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Choose a folder that you would like to move the $COUNT$ selected item(s) to.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organization, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Verification Code (TOTP)" + }, + "copyVerificationCode": { + "message": "Copy Verification Code" + }, + "warning": { + "message": "Warning" + }, + "confirmVaultExport": { + "message": "Confirm Vault Export" + }, + "exportWarningDesc": { + "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "Export Vault" + }, + "fileFormat": { + "message": "File Format" + }, + "exportSuccess": { + "message": "Your vault data has been exported." + }, + "passwordGenerator": { + "message": "Password Generator" + }, + "minComplexityScore": { + "message": "Minimum Complexity Score" + }, + "minNumbers": { + "message": "Minimum Numbers" + }, + "minSpecial": { + "message": "Minimum Special", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Avoid Ambiguous Characters" + }, + "regeneratePassword": { + "message": "Regenerate Password" + }, + "length": { + "message": "Length" + }, + "numWords": { + "message": "Number of Words" + }, + "wordSeparator": { + "message": "Word Separator" + }, + "capitalize": { + "message": "Capitalize", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Include Number" + }, + "passwordHistory": { + "message": "Password History" + }, + "noPasswordsInList": { + "message": "There are no passwords to list." + }, + "clear": { + "message": "Clear", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Account Updated" + }, + "changeEmail": { + "message": "Change Email" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "New Email" + }, + "code": { + "message": "Code" + }, + "changeEmailDesc": { + "message": "We have emailed a verification code to $EMAIL$. Please check your email for this code and enter it below to finalize the email address change.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "emailChanged": { + "message": "Email Changed" + }, + "logBackIn": { + "message": "Please log back in." + }, + "logBackInOthersToo": { + "message": "Please log back in. If you are using other Bitwarden applications log out and back in to those as well." + }, + "changeMasterPassword": { + "message": "Change Master Password" + }, + "masterPasswordChanged": { + "message": "Master Password Changed" + }, + "currentMasterPass": { + "message": "Current Master Password" + }, + "newMasterPass": { + "message": "New Master Password" + }, + "confirmNewMasterPass": { + "message": "Confirm New Master Password" + }, + "encKeySettings": { + "message": "Encryption Key Settings" + }, + "kdfAlgorithm": { + "message": "KDF Algorithm" + }, + "kdfIterations": { + "message": "KDF Iterations" + }, + "kdfIterationsDesc": { + "message": "Higher KDF iterations can help protect your master password from being brute forced by an attacker. We recommend a value of $VALUE$ or more.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Setting your KDF iterations too high could result in poor performance when logging into (and unlocking) Bitwarden on devices with slower CPUs. We recommend that you increase the value in increments of $INCREMENT$ and then test all of your devices.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Change KDF" + }, + "encKeySettingsChanged": { + "message": "Encryption Key Settings Changed" + }, + "dangerZone": { + "message": "Danger Zone" + }, + "dangerZoneDesc": { + "message": "Careful, these actions are not reversible!" + }, + "deauthorizeSessions": { + "message": "Deauthorize Sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Concerned your account is logged in on another device? Proceed below to deauthorize all computers or devices that you have previously used. This security step is recommended if you previously used a public computer or accidentally saved your password on a device that isn't yours. This step will also clear all previously remembered two-step login sessions." + }, + "deauthorizeSessionsWarning": { + "message": "Proceeding will also log you out of your current session, requiring you to log back in. You will also be prompted for two-step login again, if enabled. Active sessions on other devices may continue to remain active for up to one hour." + }, + "sessionsDeauthorized": { + "message": "All Sessions Deauthorized" + }, + "purgeVault": { + "message": "Purge Vault" + }, + "purgedOrganizationVault": { + "message": "Purged organization vault." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Proceed below to delete all items and folders in your vault. Items that belong to an organization that you share with will not be deleted." + }, + "purgeOrgVaultDesc": { + "message": "Proceed below to delete all items in the organization's vault." + }, + "purgeVaultWarning": { + "message": "Purging your vault is permanent. It cannot be undone." + }, + "vaultPurged": { + "message": "Your vault has been purged." + }, + "deleteAccount": { + "message": "Delete Account" + }, + "deleteAccountDesc": { + "message": "Proceed below to delete your account and all associated data." + }, + "deleteAccountWarning": { + "message": "Deleting your account is permanent. It cannot be undone." + }, + "accountDeleted": { + "message": "Account Deleted" + }, + "accountDeletedDesc": { + "message": "Your account has been closed and all associated data has been deleted." + }, + "myAccount": { + "message": "My Account" + }, + "tools": { + "message": "Tools" + }, + "importData": { + "message": "Import Data" + }, + "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." + }, + "importSuccess": { + "message": "Data has been successfully imported into your vault." + }, + "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." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "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)" + } + } + }, + "options": { + "message": "Options" + }, + "optionsDesc": { + "message": "Customize your web vault experience." + }, + "optionsUpdated": { + "message": "Options updated" + }, + "language": { + "message": "Language" + }, + "languageDesc": { + "message": "Change the language used by the web vault." + }, + "disableIcons": { + "message": "Disable Website Icons" + }, + "disableIconsDesc": { + "message": "Website Icons provide a recognizable image next to each login item in your vault." + }, + "enableGravatars": { + "message": "Enable Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use avatar images loaded from gravatar.com." + }, + "enableFullWidth": { + "message": "Enable Full Width Layout", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Allow the web vault to expand the full width of the browser window." + }, + "default": { + "message": "Default" + }, + "domainRules": { + "message": "Domain Rules" + }, + "domainRulesDesc": { + "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + }, + "globalEqDomains": { + "message": "Global Equivalent Domains" + }, + "customEqDomains": { + "message": "Custom Equivalent Domains" + }, + "exclude": { + "message": "Exclude" + }, + "include": { + "message": "Include" + }, + "customize": { + "message": "Customize" + }, + "newCustomDomain": { + "message": "New Custom Domain" + }, + "newCustomDomainDesc": { + "message": "Enter a list of domains separated by commas. Only \"base\" domains are allowed. Do not enter subdomains. For example, enter \"google.com\" instead of \"www.google.com\". You can also enter \"androidapp://package.name\" to associate an android app with other website domains." + }, + "customDomainX": { + "message": "Custom Domain $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domains updated" + }, + "twoStepLogin": { + "message": "Two-step Login" + }, + "twoStepLoginDesc": { + "message": "Secure your account by requiring an additional step when logging in." + }, + "twoStepLoginOrganizationDesc": { + "message": "Require two-step login for your organization's users by configuring providers at the organization level." + }, + "twoStepLoginRecoveryWarning": { + "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (ex. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + }, + "viewRecoveryCode": { + "message": "View Recovery Code" + }, + "providers": { + "message": "Providers", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Enable" + }, + "enabled": { + "message": "Enabled" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium Membership" + }, + "premiumRequired": { + "message": "Premium Required" + }, + "premiumRequiredDesc": { + "message": "A premium membership is required to use this feature." + }, + "youHavePremiumAccess": { + "message": "You have premium access" + }, + "alreadyPremiumFromOrg": { + "message": "You already have access to premium features because of an organization you are a member of." + }, + "manage": { + "message": "Manage" + }, + "disable": { + "message": "Disable" + }, + "twoStepLoginProviderEnabled": { + "message": "This two-step login provider is enabled on your account." + }, + "twoStepLoginAuthDesc": { + "message": "Enter your master password to modify two-step login settings." + }, + "twoStepAuthenticatorDesc": { + "message": "Follow these steps to set up two-step login with an authenticator app:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Download a two-step authenticator app" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Need a two-step authenticator app? Download one of the following" + }, + "iosDevices": { + "message": "iOS devices" + }, + "androidDevices": { + "message": "Android devices" + }, + "windowsDevices": { + "message": "Windows devices" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "These apps are recommended, however, other authenticator apps will also work." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scan this QR code with your authenticator app" + }, + "key": { + "message": "Key" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Enter the resulting 6 digit verification code from the app" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app." + }, + "twoStepDisableDesc": { + "message": "Are you sure you want to disable this two-step login provider?" + }, + "twoStepDisabled": { + "message": "Two-step login provider disabled." + }, + "twoFactorYubikeyAdd": { + "message": "Add a new YubiKey to your account" + }, + "twoFactorYubikeyPlugIn": { + "message": "Plug the YubiKey into your computer's USB port." + }, + "twoFactorYubikeySelectKey": { + "message": "Select the first empty YubiKey input field below." + }, + "twoFactorYubikeyTouchButton": { + "message": "Touch the YubiKey's button." + }, + "twoFactorYubikeySaveForm": { + "message": "Save the form." + }, + "twoFactorYubikeyWarning": { + "message": "Due to platform limitations, YubiKeys cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when YubiKeys cannot be used. Supported platforms:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile apps on a device with NFC capabilities or a data port that can accept your YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC Support" + }, + "twoFactorYubikeySupportsNfc": { + "message": "One of my keys supports NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "If one of your YubiKeys supports NFC (such as a YubiKey NEO), you will be prompted on mobile devices whenever NFC availability is detected." + }, + "yubikeysUpdated": { + "message": "YubiKeys updated" + }, + "disableAllKeys": { + "message": "Disable All Keys" + }, + "twoFactorDuoDesc": { + "message": "Enter the Bitwarden application information from your Duo Admin panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration Key" + }, + "twoFactorDuoSecretKey": { + "message": "Secret Key" + }, + "twoFactorDuoApiHostname": { + "message": "API Hostname" + }, + "twoFactorEmailDesc": { + "message": "Follow these steps to set up two-step login with email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enter the email that you wish to receive verification codes" + }, + "twoFactorEmailEnterCode": { + "message": "Enter the resulting 6 digit verification code from the email" + }, + "sendEmail": { + "message": "Send Email" + }, + "twoFactorU2fAdd": { + "message": "Add a FIDO U2F security key to your account" + }, + "removeU2fConfirmation": { + "message": "Are you sure you want to remove this security key?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Read Key" + }, + "keyCompromised": { + "message": "Key is compromised." + }, + "twoFactorU2fGiveName": { + "message": "Give the security key a friendly name to identify it." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Plug the security key into your computer's USB port and click the \"Read Key\" button." + }, + "twoFactorU2fTouchButton": { + "message": "If the security key has a button, touch it." + }, + "twoFactorU2fSaveForm": { + "message": "Save the form." + }, + "twoFactorU2fWarning": { + "message": "Due to platform limitations, FIDO U2F cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when FIDO U2F cannot be used. Supported platforms:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorU2fWaiting": { + "message": "Waiting for you to touch the button on your security key" + }, + "twoFactorU2fClickSave": { + "message": "Click the \"Save\" button below to enable this security key for two-step login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Your Bitwarden two-step login recovery code" + }, + "twoFactorRecoveryNoCode": { + "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + }, + "printCode": { + "message": "Print Code", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Reports" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Unsecure Websites" + }, + "unsecuredWebsitesReportDesc": { + "message": "URLs that start with http:// don’t use the best available encryption. Change the Login URIs for these accounts to https:// for safer browsing." + }, + "unsecuredWebsitesFound": { + "message": "Unsecured Websites Found" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Inactive Two-step Login" + }, + "inactive2faReportDesc": { + "message": "Two-step Login adds a layer of protection to your accounts. Turn on Two-Step Login using Bitwarden Authenticator for these accounts or use an alternative method." + }, + "inactive2faFound": { + "message": "Logins Without 2FA Found" + }, + "inactive2faFoundDesc": { + "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to 2fa.directory). To further protect these accounts, you should enable two-factor authentication.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No websites were found in your vault with a missing two-factor authentication configuration." + }, + "instructions": { + "message": "Instructions" + }, + "exposedPasswordsReport": { + "message": "Exposed Passwords" + }, + "exposedPasswordsReportDesc": { + "message": "Passwords exposed in a data breach are easy targets for attackers. Change these passwords to prevent potential break-ins." + }, + "exposedPasswordsFound": { + "message": "Exposed Passwords Found" + }, + "exposedPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No items in your vault have passwords that have been exposed in known data breaches." + }, + "checkExposedPasswords": { + "message": "Check Exposed Passwords" + }, + "exposedXTimes": { + "message": "Exposed $COUNT$ time(s)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Weak Passwords" + }, + "weakPasswordsReportDesc": { + "message": "Weak passwords can be easily guessed by attackers. Change these passwords to strong ones using the Password Generator." + }, + "weakPasswordsFound": { + "message": "Weak Passwords Found" + }, + "weakPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "No items in your vault have weak passwords." + }, + "reusedPasswordsReport": { + "message": "Reused Passwords" + }, + "reusedPasswordsReportDesc": { + "message": "Reusing passwords makes it easier for attackers to break into multiple accounts. Change these passwords so that each is unique." + }, + "reusedPasswordsFound": { + "message": "Reused Passwords Found" + }, + "reusedPasswordsFoundDesc": { + "message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "No logins in your vault have passwords that are being reused." + }, + "reusedXTimes": { + "message": "Reused $COUNT$ times", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Data Breach" + }, + "breachDesc": { + "message": "Breached accounts can expose your personal information. Secure breached accounts by enabling 2FA or creating a stronger password." + }, + "breachCheckUsernameEmail": { + "message": "Check any usernames or email addresses that you use." + }, + "checkBreaches": { + "message": "Check Breaches" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ was not found in any known data breaches.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Good News", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Breached Accounts Found" + }, + "compromisedData": { + "message": "Compromised data" + }, + "website": { + "message": "Website" + }, + "affectedUsers": { + "message": "Affected Users" + }, + "breachOccurred": { + "message": "Breach Occurred" + }, + "breachReported": { + "message": "Breach Reported" + }, + "reportError": { + "message": "An error occurred trying to load the report. Try again" + }, + "billing": { + "message": "Billing" + }, + "accountCredit": { + "message": "Account Credit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Account Balance", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Add Credit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Amount", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Added credit will appear on your account after the payment has been fully processed. Some payment methods are delayed and can take longer to process than others." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + }, + "goPremium": { + "message": "Go Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "You've upgraded to premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Upgrade your account to a premium membership and unlock some great additional features." + }, + "premiumSignUpStorage": { + "message": "1 GB encrypted storage for file attachments." + }, + "premiumSignUpTwoStep": { + "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + }, + "premiumSignUpTotp": { + "message": "TOTP verification code (2FA) generator for logins in your vault." + }, + "premiumSignUpSupport": { + "message": "Priority customer support." + }, + "premiumSignUpFuture": { + "message": "All future premium features. More coming soon!" + }, + "premiumPrice": { + "message": "All for just $PRICE$ /year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Addons" + }, + "premiumAccess": { + "message": "Premium Access" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organization for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Additional Storage (GB)" + }, + "additionalStorageGbDesc": { + "message": "# of additional GB" + }, + "additionalStorageIntervalDesc": { + "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Summary" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "year" + }, + "month": { + "message": "month" + }, + "monthAbbr": { + "message": "mo.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Your payment method will be charged immediately and then on a recurring basis each year. You may cancel at any time." + }, + "paymentCharged": { + "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Your plan comes with a free 7 day trial. Your payment method will not be charged until the trial has ended. You may cancel at any time." + }, + "paymentInformation": { + "message": "Payment Information" + }, + "billingInformation": { + "message": "Billing Information" + }, + "creditCard": { + "message": "Credit Card" + }, + "paypalClickSubmit": { + "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + }, + "cancelSubscription": { + "message": "Cancel Subscription" + }, + "subscriptionCanceled": { + "message": "The subscription has been canceled." + }, + "pendingCancellation": { + "message": "Pending Cancellation" + }, + "subscriptionPendingCanceled": { + "message": "The subscription has been marked for cancellation at the end of the current billing period." + }, + "reinstateSubscription": { + "message": "Reinstate Subscription" + }, + "reinstateConfirmation": { + "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + }, + "reinstated": { + "message": "The subscription has been reinstated." + }, + "cancelConfirmation": { + "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + }, + "canceledSubscription": { + "message": "The subscription has been canceled." + }, + "neverExpires": { + "message": "Never Expires" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Next Charge" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "Download License" + }, + "updateLicense": { + "message": "Update License" + }, + "updatedLicense": { + "message": "Updated license" + }, + "manageSubscription": { + "message": "Manage Subscription" + }, + "storage": { + "message": "Storage" + }, + "addStorage": { + "message": "Add Storage" + }, + "removeStorage": { + "message": "Remove Storage" + }, + "subscriptionStorage": { + "message": "Your subscription has a total of $MAX_STORAGE$ GB of encrypted file storage. You are currently using $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Payment Method" + }, + "noPaymentMethod": { + "message": "No payment method on file." + }, + "addPaymentMethod": { + "message": "Add Payment Method" + }, + "changePaymentMethod": { + "message": "Change Payment Method" + }, + "invoices": { + "message": "Invoices" + }, + "noInvoices": { + "message": "No invoices." + }, + "paid": { + "message": "Paid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Unpaid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transactions", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "No transactions." + }, + "chargeNoun": { + "message": "Charge", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Refund", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Any charges will appear on your statement as $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB of Storage To Add" + }, + "gbStorageRemove": { + "message": "GB of Storage To Remove" + }, + "storageAddNote": { + "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "storageRemoveNote": { + "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedStorage": { + "message": "Adjusted $AMOUNT$ GB of storage.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contact Customer Support" + }, + "updatedPaymentMethod": { + "message": "Updated payment method." + }, + "purchasePremium": { + "message": "Purchase Premium" + }, + "licenseFile": { + "message": "License File" + }, + "licenseFileDesc": { + "message": "Your license file will be named something like $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "To upgrade your account to a premium membership you need to upload a valid license file." + }, + "uploadLicenseFileOrg": { + "message": "To create an on-premises hosted organization you need to upload a valid license file." + }, + "accountEmailMustBeVerified": { + "message": "Your account's email address must be verified." + }, + "newOrganizationDesc": { + "message": "Organizations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company." + }, + "generalInformation": { + "message": "General Information" + }, + "organizationName": { + "message": "Organization Name" + }, + "accountOwnedBusiness": { + "message": "This account is owned by a business." + }, + "billingEmail": { + "message": "Billing Email" + }, + "businessName": { + "message": "Business Name" + }, + "chooseYourPlan": { + "message": "Choose Your Plan" + }, + "users": { + "message": "Users" + }, + "userSeats": { + "message": "User Seats" + }, + "additionalUserSeats": { + "message": "Additional User Seats" + }, + "userSeatsDesc": { + "message": "# of user seats" + }, + "userSeatsAdditionalDesc": { + "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "How many user seats do you need? You can also add additional seats later if needed." + }, + "planNameFree": { + "message": "Free", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing or personal users to share with $COUNT$ other user.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Families" + }, + "planDescFamilies": { + "message": "For personal use, to share with family & friends." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "For businesses and other team organizations." + }, + "planNameEnterprise": { + "message": "Enterprise" + }, + "planDescEnterprise": { + "message": "For businesses and other large organizations." + }, + "freeForever": { + "message": "Free Forever" + }, + "includesXUsers": { + "message": "includes $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Additional Users" + }, + "costPerUser": { + "message": "$COST$ per user", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limited to $COUNT$ users (including you)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limited to $COUNT$ collections", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Add and share with up to $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Add and share with unlimited users" + }, + "createUnlimitedCollections": { + "message": "Create unlimited Collections" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ encrypted file storage", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "On-premise hosting (optional)" + }, + "usersGetPremium": { + "message": "Users get access to Premium Features" + }, + "controlAccessWithGroups": { + "message": "Control user access with Groups" + }, + "syncUsersFromDirectory": { + "message": "Sync your users and Groups from a directory" + }, + "trackAuditLogs": { + "message": "Track user actions with audit logs" + }, + "enforce2faDuo": { + "message": "Enforce 2FA with Duo" + }, + "priorityCustomerSupport": { + "message": "Priority customer support" + }, + "xDayFreeTrial": { + "message": "$COUNT$ day free trial, cancel anytime", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Monthly" + }, + "annually": { + "message": "Annually" + }, + "basePrice": { + "message": "Base Price" + }, + "organizationCreated": { + "message": "Organization Created" + }, + "organizationReadyToGo": { + "message": "Your new organization is ready to go!" + }, + "organizationUpgraded": { + "message": "Your organization has been upgraded." + }, + "leave": { + "message": "Leave" + }, + "leaveOrganizationConfirmation": { + "message": "Are you sure you want to leave this organization?" + }, + "leftOrganization": { + "message": "You have left the organization." + }, + "defaultCollection": { + "message": "Default Collection" + }, + "getHelp": { + "message": "Get Help" + }, + "getApps": { + "message": "Get the Apps" + }, + "loggedInAs": { + "message": "Logged in as" + }, + "eventLogs": { + "message": "Event Logs" + }, + "people": { + "message": "People" + }, + "policies": { + "message": "Policies" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Edit Policy" + }, + "groups": { + "message": "Groups" + }, + "newGroup": { + "message": "New Group" + }, + "addGroup": { + "message": "Add Group" + }, + "editGroup": { + "message": "Edit Group" + }, + "deleteGroupConfirmation": { + "message": "Are you sure you want to delete this group?" + }, + "removeUserConfirmation": { + "message": "Are you sure you want to remove this user?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "External Id" + }, + "externalIdDesc": { + "message": "The external id can be used as a reference or to link this resource to an external system such as a user directory." + }, + "accessControl": { + "message": "Access Control" + }, + "groupAccessAllItems": { + "message": "This group can access and modify all items." + }, + "groupAccessSelectedCollections": { + "message": "This group can access only the selected collections." + }, + "readOnly": { + "message": "Read Only" + }, + "newCollection": { + "message": "New Collection" + }, + "addCollection": { + "message": "Add Collection" + }, + "editCollection": { + "message": "Edit Collection" + }, + "deleteCollectionConfirmation": { + "message": "Are you sure you want to delete this collection?" + }, + "editUser": { + "message": "Edit User" + }, + "inviteUser": { + "message": "Invite User" + }, + "inviteUserDesc": { + "message": "Invite a new user to your organization by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "inviteMultipleEmailDesc": { + "message": "You can invite up to $COUNT$ users at a time by comma separating a list of email addresses.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "This user is using two-step login to protect their account." + }, + "userAccessAllItems": { + "message": "This user can access and modify all items." + }, + "userAccessSelectedCollections": { + "message": "This user can access only the selected collections." + }, + "search": { + "message": "Search" + }, + "invited": { + "message": "Invited" + }, + "accepted": { + "message": "Accepted" + }, + "confirmed": { + "message": "Confirmed" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Owner" + }, + "ownerDesc": { + "message": "The highest access user that can manage all aspects of your organization." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admins can access and manage all items, collections and users in your organization." + }, + "user": { + "message": "User" + }, + "userDesc": { + "message": "A regular user with access to assigned collections in your organization." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managers can access and manage assigned collections in your organization." + }, + "all": { + "message": "All" + }, + "refresh": { + "message": "Refresh" + }, + "timestamp": { + "message": "Timestamp" + }, + "event": { + "message": "Event" + }, + "unknown": { + "message": "Unknown" + }, + "loadMore": { + "message": "Load More" + }, + "mobile": { + "message": "Mobile", + "description": "Mobile app" + }, + "extension": { + "message": "Extension", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Web Vault" + }, + "loggedIn": { + "message": "Logged in." + }, + "changedPassword": { + "message": "Changed account password." + }, + "enabledUpdated2fa": { + "message": "Enabled/updated two-step login." + }, + "disabled2fa": { + "message": "Disabled two-step login." + }, + "recovered2fa": { + "message": "Recovered account from two-step login." + }, + "failedLogin": { + "message": "Login attempt failed with incorrect password." + }, + "failedLogin2fa": { + "message": "Login attempt failed with incorrect two-step login." + }, + "exportedVault": { + "message": "Exported vault." + }, + "exportedOrganizationVault": { + "message": "Exported organization vault." + }, + "editedOrgSettings": { + "message": "Edited organization settings." + }, + "createdItemId": { + "message": "Created item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Edited item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Sent item $ID$ to trash.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Viewed item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Viewed password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Viewed hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Viewed security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Copied password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Copied hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Copied security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Auto-filled item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Created collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Edited collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Deleted collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Edited policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Created group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Edited group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Deleted group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Removed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Created attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Deleted attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Edited collections for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Invited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Confirmed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Edited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Edited groups for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Device" + }, + "view": { + "message": "View" + }, + "invalidDateRange": { + "message": "Invalid date range." + }, + "errorOccurred": { + "message": "An error has occurred." + }, + "userAccess": { + "message": "User Access" + }, + "userType": { + "message": "User Type" + }, + "groupAccess": { + "message": "Group Access" + }, + "groupAccessUserDesc": { + "message": "Edit the groups that this user belongs to." + }, + "invitedUsers": { + "message": "Invited user(s)." + }, + "resendInvitation": { + "message": "Resend Invitation" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ has been reinvited.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirm" + }, + "confirmUser": { + "message": "Confirm User" + }, + "hasBeenConfirmed": { + "message": "$USER$ has been confirmed.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirm Users" + }, + "usersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organization until they are confirmed." + }, + "startDate": { + "message": "Start Date" + }, + "endDate": { + "message": "End Date" + }, + "verifyEmail": { + "message": "Verify Email" + }, + "verifyEmailDesc": { + "message": "Verify your account's email address to unlock access to all features." + }, + "verifyEmailFirst": { + "message": "Your account's email address first must be verified." + }, + "checkInboxForVerification": { + "message": "Check your email inbox for a verification link." + }, + "emailVerified": { + "message": "Your email has been verified." + }, + "emailVerifiedFailed": { + "message": "Unable to verify your email. Try sending a new verification email." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "Update Browser" + }, + "updateBrowserDesc": { + "message": "You are using an unsupported web browser. The web vault may not function properly." + }, + "joinOrganization": { + "message": "Join Organization" + }, + "joinOrganizationDesc": { + "message": "You've been invited to join the organization listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "inviteAccepted": { + "message": "Invitation Accepted" + }, + "inviteAcceptedDesc": { + "message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens." + }, + "inviteAcceptFailed": { + "message": "Unable to accept invitation. Ask an organization admin to send a new invitation." + }, + "inviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Remember email" + }, + "recoverAccountTwoStepDesc": { + "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + }, + "recoverAccountTwoStep": { + "message": "Recover Account Two-Step Login" + }, + "twoStepRecoverDisabled": { + "message": "Two-step login has been disabled on your account." + }, + "learnMore": { + "message": "Learn more" + }, + "deleteRecoverDesc": { + "message": "Enter your email address below to recover and delete your account." + }, + "deleteRecoverEmailSent": { + "message": "If your account exists, we've sent you an email with further instructions." + }, + "deleteRecoverConfirmDesc": { + "message": "You have requested to delete your Bitwarden account. Click the button below to confirm." + }, + "myOrganization": { + "message": "My Organization" + }, + "deleteOrganization": { + "message": "Delete Organization" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organization Deleted" + }, + "organizationDeletedDesc": { + "message": "The organization and all associated data has been deleted." + }, + "organizationUpdated": { + "message": "Organization updated" + }, + "taxInformation": { + "message": "Tax Information" + }, + "taxInformationDesc": { + "message": "For customers within the US, ZIP code is required to satisfy sales tax requirements, for other countries you may optionally provide a tax identification number (VAT/GST) and/or address to appear on your invoices." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Upgrade Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade your account to another plan by providing the information below. Please ensure that you have an active payment method added to the account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Invoice #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "View Invoice" + }, + "downloadInvoice": { + "message": "Download Invoice" + }, + "verifyBankAccount": { + "message": "Verify Bank Account" + }, + "verifyBankAccountDesc": { + "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." + }, + "verifyBankAccountInitialDesc": { + "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organization's billing page to verify the bank account." + }, + "verifyBankAccountFailureWarning": { + "message": "Failure to verify the bank account will result in a missed payment and your subscription being disabled." + }, + "verifiedBankAccount": { + "message": "Bank account has been verified." + }, + "bankAccount": { + "message": "Bank Account" + }, + "amountX": { + "message": "Amount $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Account Number" + }, + "accountHolderName": { + "message": "Account Holder Name" + }, + "bankAccountType": { + "message": "Account Type" + }, + "bankAccountTypeCompany": { + "message": "Company (Business)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Personal)" + }, + "enterInstallationId": { + "message": "Enter your installation id" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Add Seats", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remove Seats", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Your subscription allows for a total of $COUNT$ users.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seats To Add" + }, + "seatsToRemove": { + "message": "Seats To Remove" + }, + "seatsAddNote": { + "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "seatsRemoveNote": { + "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedSeats": { + "message": "Adjusted $AMOUNT$ user seats.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Key Updated" + }, + "updateKeyTitle": { + "message": "Update Key" + }, + "updateEncryptionKey": { + "message": "Update Encryption Key" + }, + "updateEncryptionKeyShortDesc": { + "message": "You are currently using an outdated encryption scheme." + }, + "updateEncryptionKeyDesc": { + "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, however, it may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "Subscription" + }, + "loading": { + "message": "Loading" + }, + "upgrade": { + "message": "Upgrade" + }, + "upgradeOrganization": { + "message": "Upgrade Organization" + }, + "upgradeOrganizationDesc": { + "message": "This feature is not available for free organizations. Switch to a paid plan to unlock more features." + }, + "createOrganizationStep1": { + "message": "Create Organization: Step 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Before creating your organization, you first need to create a free personal account." + }, + "refunded": { + "message": "Refunded" + }, + "nothingSelected": { + "message": "You have not selected anything." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." + }, + "termsOfService": { + "message": "Terms of Service" + }, + "privacyPolicy": { + "message": "Privacy Policy" + }, + "filters": { + "message": "Filters" + }, + "vaultTimeout": { + "message": "Vault Timeout" + }, + "vaultTimeoutDesc": { + "message": "Choose when your vault will timeout and perform the selected action." + }, + "oneMinute": { + "message": "1 minute" + }, + "fiveMinutes": { + "message": "5 minutes" + }, + "fifteenMinutes": { + "message": "15 minutes" + }, + "thirtyMinutes": { + "message": "30 minutes" + }, + "oneHour": { + "message": "1 hour" + }, + "fourHours": { + "message": "4 hours" + }, + "onRefresh": { + "message": "On Browser Refresh" + }, + "dateUpdated": { + "message": "Updated", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Password Updated", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organization is disabled." + }, + "licenseIsExpired": { + "message": "License is expired." + }, + "updatedUsers": { + "message": "Updated users" + }, + "selected": { + "message": "Selected" + }, + "ownership": { + "message": "Ownership" + }, + "whoOwnsThisItem": { + "message": "Who owns this item?" + }, + "strong": { + "message": "Strong", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Good", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Weak", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Very Weak", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Weak Master Password" + }, + "weakMasterPasswordDesc": { + "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + }, + "rotateAccountEncKey": { + "message": "Also rotate my account's encryption key" + }, + "rotateEncKeyTitle": { + "message": "Rotate Encryption Key" + }, + "rotateEncKeyConfirmation": { + "message": "Are you sure you want to rotate your account's encryption key?" + }, + "attachmentsNeedFix": { + "message": "This item has old file attachments that need to be fixed." + }, + "attachmentFixDesc": { + "message": "This is an old file attachment the needs to be fixed. Click to learn more." + }, + "fix": { + "message": "Fix", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key." + }, + "yourAccountsFingerprint": { + "message": "Your account's fingerprint phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Never prompt to verify fingerprint phrases for invited users (Not recommended)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Free", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API Key" + }, + "apiKeyDesc": { + "message": "Your API key can be used to authenticate to the Bitwarden public API." + }, + "apiKeyRotateDesc": { + "message": "Rotating the API key will invalidate the previous key. You can rotate your API key if you believe that the current key is no longer safe to use." + }, + "apiKeyWarning": { + "message": "Your API key has full access to the organization. It should be kept secret." + }, + "userApiKeyDesc": { + "message": "Your API key can be used to authenticate in the Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 Client Credentials", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "View API Key" + }, + "rotateApiKey": { + "message": "Rotate API Key" + }, + "selectOneCollection": { + "message": "You must select at least one collection." + }, + "couldNotChargeCardPayInvoice": { + "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + }, + "inAppPurchase": { + "message": "In-app Purchase" + }, + "cannotPerformInAppPurchase": { + "message": "You cannot perform this action while using an in-app purchase payment method." + }, + "manageSubscriptionFromStore": { + "message": "You must manage your subscription from the store where your in-app purchase was made." + }, + "minLength": { + "message": "Minimum Length" + }, + "clone": { + "message": "Clone" + }, + "masterPassPolicyDesc": { + "message": "Set minimum requirements for master password strength." + }, + "twoStepLoginPolicyDesc": { + "message": "Require users to set up two-step login on their personal accounts." + }, + "twoStepLoginPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and do not have two-step login enabled for their personal account will be removed from the organization and will receive an email notifying them about the change." + }, + "twoStepLoginPolicyUserWarning": { + "message": "You are a member of an organization that requires two-step login to be enabled on your user account. If you disable all two-step login providers you will be automatically removed from these organizations." + }, + "passwordGeneratorPolicyDesc": { + "message": "Set minimum requirements for password generator configuration." + }, + "passwordGeneratorPolicyInEffect": { + "message": "One or more organization policies are affecting your generator settings." + }, + "masterPasswordPolicyInEffect": { + "message": "One or more organization policies require your master password to meet the following requirements:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum complexity score of $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum length of $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contain one or more uppercase characters" + }, + "policyInEffectLowercase": { + "message": "Contain one or more lowercase characters" + }, + "policyInEffectNumbers": { + "message": "Contain one or more numbers" + }, + "policyInEffectSpecial": { + "message": "Contain one or more of the following special characters $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Your new master password does not meet the policy requirements." + }, + "minimumNumberOfWords": { + "message": "Minimum Number of Words" + }, + "defaultType": { + "message": "Default Type" + }, + "userPreference": { + "message": "User Preference" + }, + "vaultTimeoutAction": { + "message": "Vault Timeout Action" + }, + "vaultTimeoutActionLockDesc": { + "message": "A locked vault requires that you re-enter your master password to access it again." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "A logged out vault requires that you re-authenticate to access it again." + }, + "lock": { + "message": "Lock", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Trash", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Search Trash" + }, + "permanentlyDelete": { + "message": "Permanently Delete" + }, + "permanentlyDeleteSelected": { + "message": "Permanently Delete Selected" + }, + "permanentlyDeleteItem": { + "message": "Permanently Delete Item" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Are you sure you want to permanently delete this item?" + }, + "permanentlyDeletedItem": { + "message": "Permanently Deleted item" + }, + "permanentlyDeletedItems": { + "message": "Permanently Deleted items" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Permanently Deleted item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restore" + }, + "restoreSelected": { + "message": "Restore Selected" + }, + "restoreItem": { + "message": "Restore Item" + }, + "restoredItem": { + "message": "Restored Item" + }, + "restoredItems": { + "message": "Restored Items" + }, + "restoreItemConfirmation": { + "message": "Are you sure you want to restore this item?" + }, + "restoreItems": { + "message": "Restore items" + }, + "restoreSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Restored item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout Action Confirmation" + }, + "hidePasswords": { + "message": "Hide Passwords" + }, + "countryPostalCodeRequiredDesc": { + "message": "We require this information for calculating sales tax and financial reporting only." + }, + "includeVAT": { + "message": "Include VAT/GST Information (optional)" + }, + "taxIdNumber": { + "message": "VAT/GST Tax ID" + }, + "taxInfoUpdated": { + "message": "Tax information updated." + }, + "setMasterPassword": { + "message": "Set Master Password" + }, + "ssoCompleteRegistration": { + "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + }, + "identifier": { + "message": "Identifier" + }, + "organizationIdentifier": { + "message": "Organization Identifier" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Log in using your organization's single sign-on portal. Please enter your organization's identifier to begin." + }, + "enterpriseSingleSignOn": { + "message": "Enterprise Single Sign-On" + }, + "ssoHandOff": { + "message": "You may now close this tab and continue in the extension." + }, + "includeAllTeamsFeatures": { + "message": "All Teams features, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO Authentication via SAML2.0 and OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Enterprise Policies" + }, + "ssoValidationFailed": { + "message": "SSO Validation Failed" + }, + "ssoIdentifierRequired": { + "message": "Organization Identifier is required." + }, + "unlinkSso": { + "message": "Unlink SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Link SSO" + }, + "singleOrg": { + "message": "Single Organization" + }, + "singleOrgDesc": { + "message": "Restrict users from being able to join any other organizations." + }, + "singleOrgBlockCreateMessage": { + "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + }, + "singleOrgPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + }, + "requireSso": { + "message": "Single Sign-On Authentication" + }, + "requireSsoPolicyDesc": { + "message": "Require users to log in with the Enterprise Single Sign-On method." + }, + "prerequisite": { + "message": "Prerequisite" + }, + "requireSsoPolicyReq": { + "message": "The Single Organization enterprise policy must be enabled before activating this policy." + }, + "requireSsoPolicyReqError": { + "message": "Single Organization policy not enabled." + }, + "requireSsoExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "sendTypeFile": { + "message": "File" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Create New Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edit Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Created Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Edited Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Deleted Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Delete Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Are you sure you want to delete this Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "What type of Send is this?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Deletion Date" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Expiration Date" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximum Access Count" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Current Access Count" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Disabled" + }, + "sendLink": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copy Send Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remove Password" + }, + "removedPassword": { + "message": "Removed Password" + }, + "removePasswordConfirmation": { + "message": "Are you sure you want to remove the password?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "All Sends" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "expired": { + "message": "Expired" + }, + "searchSends": { + "message": "Search Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "This Send is protected with a password. Please type the password below to continue.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Download File" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "There are no Sends to list.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Emergency Access" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Request Access" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approve" + }, + "reject": { + "message": "Reject" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Disable Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "Estimated tax" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Manage All Collections" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Manage Groups" + }, + "managePolicies": { + "message": "Manage Policies" + }, + "manageSso": { + "message": "Manage SSO" + }, + "manageUsers": { + "message": "Manage Users" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organization users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Learn more about", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Learn more", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "try it now", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "sign up", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "to try it today.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organization policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organization administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/ca/messages.json b/apps/web/src/locales/ca/messages.json new file mode 100644 index 0000000000..401d4585a6 --- /dev/null +++ b/apps/web/src/locales/ca/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "Caixa forta web $APP_NAME$", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Quin tipus d'element és aquest?" + }, + "name": { + "message": "Nom" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Nova URI" + }, + "username": { + "message": "Nom d'usuari" + }, + "password": { + "message": "Contrasenya" + }, + "newPassword": { + "message": "Nova contrasenya" + }, + "passphrase": { + "message": "Frase de pas" + }, + "notes": { + "message": "Notes" + }, + "customFields": { + "message": "Camps personalitzats" + }, + "cardholderName": { + "message": "Nom del titular de la targeta" + }, + "number": { + "message": "Número" + }, + "brand": { + "message": "Marca" + }, + "expiration": { + "message": "Caducitat" + }, + "securityCode": { + "message": "Codi de seguretat (CVV)" + }, + "identityName": { + "message": "Nom d'identitat" + }, + "company": { + "message": "Empresa" + }, + "ssn": { + "message": "Número de la Seguretat Social" + }, + "passportNumber": { + "message": "Número de passaport" + }, + "licenseNumber": { + "message": "Número de llicència" + }, + "email": { + "message": "Correu electrònic" + }, + "phone": { + "message": "Telèfon" + }, + "january": { + "message": "Gener" + }, + "february": { + "message": "Febrer" + }, + "march": { + "message": "Març" + }, + "april": { + "message": "Abril" + }, + "may": { + "message": "Maig" + }, + "june": { + "message": "Juny" + }, + "july": { + "message": "Juliol" + }, + "august": { + "message": "Agost" + }, + "september": { + "message": "Setembre" + }, + "october": { + "message": "Octubre" + }, + "november": { + "message": "Novembre" + }, + "december": { + "message": "Desembre" + }, + "title": { + "message": "Títol" + }, + "mr": { + "message": "Sr." + }, + "mrs": { + "message": "Sra." + }, + "ms": { + "message": "Srta." + }, + "dr": { + "message": "Dr." + }, + "expirationMonth": { + "message": "Mes de venciment" + }, + "expirationYear": { + "message": "Any de venciment" + }, + "authenticatorKeyTotp": { + "message": "Clau d'autenticació (TOTP)" + }, + "folder": { + "message": "Carpeta" + }, + "newCustomField": { + "message": "Nou camp personalitzat" + }, + "value": { + "message": "Valor" + }, + "dragToSort": { + "message": "Arrossega per ordenar" + }, + "cfTypeText": { + "message": "Text" + }, + "cfTypeHidden": { + "message": "Amagat" + }, + "cfTypeBoolean": { + "message": "Booleà" + }, + "cfTypeLinked": { + "message": "Enllaçat", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Suprimeix" + }, + "unassigned": { + "message": "Sense assignar" + }, + "noneFolder": { + "message": "Cap carpeta", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Afegeix carpeta" + }, + "editFolder": { + "message": "Edita la carpeta" + }, + "baseDomain": { + "message": "Domini base", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Nom del domini", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Amfitrió", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exacte" + }, + "startsWith": { + "message": "Comença amb" + }, + "regEx": { + "message": "Expressió regular", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Detecció de coincidències", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Detecció de coincidències per defecte", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Mai" + }, + "toggleVisibility": { + "message": "Commuta la visibilitat" + }, + "toggleCollapse": { + "message": "Redueix/Amplia", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Genera contrasenya" + }, + "checkPassword": { + "message": "Comprova si la contrasenya ha estat exposada." + }, + "passwordExposed": { + "message": "Aquesta contrasenya ha estat exposada $VALUE$ vegades en filtracions de seguretat de dades. Heu de canviar-la.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Aquesta contrasenya no s'ha trobat en cap filtració de dades coneguda. Hauries de poder utilitzar-la de manera segura." + }, + "save": { + "message": "Guarda" + }, + "cancel": { + "message": "Cancel·la" + }, + "canceled": { + "message": "Cancel·lat" + }, + "close": { + "message": "Tanca" + }, + "delete": { + "message": "Suprimeix" + }, + "favorite": { + "message": "Preferit" + }, + "unfavorite": { + "message": "Treu dels preferits" + }, + "edit": { + "message": "Edita" + }, + "searchCollection": { + "message": "Cerca en col·lecció" + }, + "searchFolder": { + "message": "Cerca en la carpeta" + }, + "searchFavorites": { + "message": "Cerca en preferits" + }, + "searchType": { + "message": "Cerca en tipus", + "description": "Search item type" + }, + "searchVault": { + "message": "Cerca en la caixa forta" + }, + "allItems": { + "message": "Tots els elements" + }, + "favorites": { + "message": "Preferits" + }, + "types": { + "message": "Tipus" + }, + "typeLogin": { + "message": "Inici de sessió" + }, + "typeCard": { + "message": "Targeta" + }, + "typeIdentity": { + "message": "Identitat" + }, + "typeSecureNote": { + "message": "Nota segura" + }, + "typeLoginPlural": { + "message": "Inicis de sessió" + }, + "typeCardPlural": { + "message": "Targetes" + }, + "typeIdentityPlural": { + "message": "Identitats" + }, + "typeSecureNotePlural": { + "message": "Notes segures" + }, + "folders": { + "message": "Carpetes" + }, + "collections": { + "message": "Col·leccions" + }, + "firstName": { + "message": "Nom" + }, + "middleName": { + "message": "Segon nom" + }, + "lastName": { + "message": "Cognoms" + }, + "fullName": { + "message": "Nom complet" + }, + "address1": { + "message": "Adreça 1" + }, + "address2": { + "message": "Adreça 2" + }, + "address3": { + "message": "Adreça 3" + }, + "cityTown": { + "message": "Localitat" + }, + "stateProvince": { + "message": "Estat / província" + }, + "zipPostalCode": { + "message": "Codi postal" + }, + "country": { + "message": "País" + }, + "shared": { + "message": "Compartit" + }, + "attachments": { + "message": "Adjunts" + }, + "select": { + "message": "Selecciona" + }, + "addItem": { + "message": "Afegeix element" + }, + "editItem": { + "message": "Edita l'element" + }, + "viewItem": { + "message": "Visualitza l'element" + }, + "ex": { + "message": "ex.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Altres" + }, + "share": { + "message": "Comparteix" + }, + "moveToOrganization": { + "message": "Desplaça a l'organització" + }, + "valueCopied": { + "message": "S'ha copiat $VALUE$", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Copia el valor", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Copia la contrasenya", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Copia el nom d'usuari", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Copia el número", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copia el codi de seguretat", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Copia URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "La meua caixa forta" + }, + "vault": { + "message": "Caixa forta" + }, + "moveSelectedToOrg": { + "message": "Desplaça la selecció a l'organització" + }, + "deleteSelected": { + "message": "Suprimeix selecció" + }, + "moveSelected": { + "message": "Desplaça selecció" + }, + "selectAll": { + "message": "Selecciona-ho tot" + }, + "unselectAll": { + "message": "Anul·la tota la selecció" + }, + "launch": { + "message": "Inicia" + }, + "newAttachment": { + "message": "Afegeix un nou adjunt" + }, + "deletedAttachment": { + "message": "Adjunt suprimit" + }, + "deleteAttachmentConfirmation": { + "message": "Esteu segur que voleu suprimir aquest adjunt?" + }, + "attachmentSaved": { + "message": "S'ha guardat el fitxer adjunt." + }, + "file": { + "message": "Fitxer" + }, + "selectFile": { + "message": "Seleccioneu un fitxer." + }, + "maxFileSize": { + "message": "La mida màxima del fitxer és de 500 MB." + }, + "updateKey": { + "message": "No podeu utilitzar aquesta funció fins que actualitzeu la vostra clau de xifratge." + }, + "addedItem": { + "message": "Element afegit" + }, + "editedItem": { + "message": "Element editat" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ desplaçat a $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Els elements seleccionats s'han desplaçat a $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Suprimeix element" + }, + "deleteFolder": { + "message": "Suprimeix carpeta" + }, + "deleteAttachment": { + "message": "Suprimeix adjunt" + }, + "deleteItemConfirmation": { + "message": "Esteu segur que voleu suprimir aquest element?" + }, + "deletedItem": { + "message": "Element enviat a la paperera" + }, + "deletedItems": { + "message": "Elements enviats a la paperera" + }, + "movedItems": { + "message": "Elements desplaçats" + }, + "overwritePasswordConfirmation": { + "message": "Esteu segur que voleu sobreescriure la contrasenya actual?" + }, + "editedFolder": { + "message": "Carpeta editada" + }, + "addedFolder": { + "message": "Carpeta afegida" + }, + "deleteFolderConfirmation": { + "message": "Esteu segur que voleu suprimir aquesta carpeta?" + }, + "deletedFolder": { + "message": "Carpeta suprimida" + }, + "loggedOut": { + "message": "Sessió tancada" + }, + "loginExpired": { + "message": "La vostra sessió ha caducat." + }, + "logOutConfirmation": { + "message": "Segur que voleu tancar la sessió?" + }, + "logOut": { + "message": "Tanca la sessió" + }, + "ok": { + "message": "D’acord" + }, + "yes": { + "message": "Sí" + }, + "no": { + "message": "No" + }, + "loginOrCreateNewAccount": { + "message": "Inicieu sessió o creeu un compte nou per accedir a la caixa forta." + }, + "createAccount": { + "message": "Crea un compte" + }, + "logIn": { + "message": "Inicia sessió" + }, + "submit": { + "message": "Envia" + }, + "emailAddressDesc": { + "message": "Utilitzareu la vostra adreça de correu electrònic per iniciar sessió." + }, + "yourName": { + "message": "El vostre nom" + }, + "yourNameDesc": { + "message": "Com vols que et diguen?" + }, + "masterPass": { + "message": "Contrasenya mestra" + }, + "masterPassDesc": { + "message": "La contrasenya mestra és la clau que utilitzeu per accedir a la vostra caixa forta. És molt important que no la oblideu. No hi ha manera de recuperar-la en cas que la oblideu." + }, + "masterPassHintDesc": { + "message": "Una pista de la contrasenya mestra pot ajudar-vos a recordar-la si la oblideu." + }, + "reTypeMasterPass": { + "message": "Torneu a escriure la contrasenya mestra" + }, + "masterPassHint": { + "message": "Pista de la contrasenya mestra (opcional)" + }, + "masterPassHintLabel": { + "message": "Pista de la contrasenya mestra" + }, + "settings": { + "message": "Configuració" + }, + "passwordHint": { + "message": "Pista de la contrasenya" + }, + "enterEmailToGetHint": { + "message": "Introduïu l'adreça electrònica del vostre compte per rebre la contrasenya mestra." + }, + "getMasterPasswordHint": { + "message": "Obteniu la pista de la contrasenya mestra" + }, + "emailRequired": { + "message": "L'adreça de correu electrònic és obligatòria." + }, + "invalidEmail": { + "message": "L’adreça electrònica no és vàlida." + }, + "masterPassRequired": { + "message": "La contrasenya és obligatòria." + }, + "masterPassLength": { + "message": "La contrasenya ha de contenir almenys 8 caràcters." + }, + "masterPassDoesntMatch": { + "message": "La confirmació de la contrasenya mestra no coincideix." + }, + "newAccountCreated": { + "message": "El vostre compte s'ha creat correctament. Ara ja podeu entrar." + }, + "masterPassSent": { + "message": "Hem enviat un correu electrònic amb la vostra contrasenya mestra." + }, + "unexpectedError": { + "message": "S'ha produït un error inesperat." + }, + "emailAddress": { + "message": "Adreça electrònica" + }, + "yourVaultIsLocked": { + "message": "La caixa forta està bloquejada. Verifiqueu la contrasenya mestra per continuar." + }, + "unlock": { + "message": "Desbloqueja" + }, + "loggedInAsEmailOn": { + "message": "Heu iniciat sessió com a $EMAIL$ en $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Contrasenya mestra no vàlida" + }, + "lockNow": { + "message": "Bloqueja ara" + }, + "noItemsInList": { + "message": "No hi ha cap element a llistar." + }, + "noCollectionsInList": { + "message": "No hi ha cap col·lecció a llistar." + }, + "noGroupsInList": { + "message": "No hi ha cap grup a llistar." + }, + "noUsersInList": { + "message": "No hi ha cap usuari a llistar." + }, + "noEventsInList": { + "message": "No hi ha cap esdeveniment a llistar." + }, + "newOrganization": { + "message": "Organització nova" + }, + "noOrganizationsList": { + "message": "No pertanyeu a cap organització. Les organitzacions permeten compartir elements amb altres usuaris de forma segura." + }, + "versionNumber": { + "message": "Versió $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Introduïu el codi de verificació de 6 dígits de l'aplicació autenticadora." + }, + "enterVerificationCodeEmail": { + "message": "Introduïu el codi de verificació de 6 dígits que s'ha enviat per correu electrònic a $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Correu electrònic de verificació enviat a $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Recorda'm" + }, + "sendVerificationCodeEmailAgain": { + "message": "Envia el codi de verificació altra vegada" + }, + "useAnotherTwoStepMethod": { + "message": "Utilitzeu un altre mètode d'inici de sessió en dues passes" + }, + "insertYubiKey": { + "message": "Introduïu el vostre YubiKey al port USB de l'ordinador i, a continuació, premeu el seu botó." + }, + "insertU2f": { + "message": "Introduïu la vostra clau de seguretat al port USB de l'ordinador. Si té un botó, premeu-lo." + }, + "loginUnavailable": { + "message": "Inici de sessió no disponible" + }, + "noTwoStepProviders": { + "message": "Aquest compte té habilitat l'inici de sessió en dues passes, però aquest navegador web no admet cap dels dos proveïdors configurats." + }, + "noTwoStepProviders2": { + "message": "Utilitzeu un navegador web compatible (com ara Chrome) o afegiu proveïdors addicionals que siguen compatibles amb tots els navegadors web (com una aplicació d'autenticació)." + }, + "twoStepOptions": { + "message": "Opcions d'inici de sessió en dues passes" + }, + "recoveryCodeDesc": { + "message": "Heu perdut l'accés a tots els vostres proveïdors de dos factors? Utilitzeu el vostre codi de recuperació per desactivar tots els proveïdors de dos factors del vostre compte." + }, + "recoveryCodeTitle": { + "message": "Codi de recuperació" + }, + "authenticatorAppTitle": { + "message": "Aplicació autenticadora" + }, + "authenticatorAppDesc": { + "message": "Utilitzeu una aplicació autenticadora (com Authy o Google Authenticator) per generar codis de verificació basats en el temps.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "Clau de seguretat OTP de YubiKey" + }, + "yubiKeyDesc": { + "message": "Utilitzeu una YubiKey per accedir al vostre compte. Funciona amb els dispositius YubiKey 4, 4 Nano, 4C i NEO." + }, + "duoDesc": { + "message": "Verifiqueu amb Duo Security mitjançant l'aplicació Duo Mobile, SMS, trucada telefònica o clau de seguretat U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verifiqueu amb Duo Security per a la vostra organització mitjançant l'aplicació Duo Mobile, SMS, trucada telefònica o clau de seguretat U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Utilitzeu qualsevol clau de seguretat habilitada per FIDO U2F per accedir al vostre compte." + }, + "u2fTitle": { + "message": "Clau de seguretat FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Utilitzeu qualsevol clau de seguretat habilitada per WebAuthn per accedir al vostre compte." + }, + "webAuthnMigrated": { + "message": "(Migrat de FIDO)" + }, + "emailTitle": { + "message": "Correu electrònic" + }, + "emailDesc": { + "message": "Els codis de verificació els rebreu per correu electrònic." + }, + "continue": { + "message": "Continua" + }, + "organization": { + "message": "Organització" + }, + "organizations": { + "message": "Organitzacions" + }, + "moveToOrgDesc": { + "message": "Trieu una organització a la qual vulgueu desplaçar aquest element. El trasllat a una organització transfereix la propietat de l'element a aquesta organització. Ja no sereu el propietari directe d'aquest element una vegada s'haja mogut." + }, + "moveManyToOrgDesc": { + "message": "Trieu una organització a la qual vulgueu desplaçar aquests elements. El trasllat a una organització transfereix la propietat dels elements a aquesta organització. Ja no sereu el propietari directe d'aquests elements una vegada s'hagen mogut." + }, + "collectionsDesc": { + "message": "Editeu les col·leccions amb les què es comparteix aquest element. Només els usuaris de l'organització que tinguen accés a aquestes col·leccions podran veure'l." + }, + "deleteSelectedItemsDesc": { + "message": "Heu seleccionat $COUNT$ elements per suprimir. Esteu segur que voleu suprimir tots aquests elements?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Trieu una carpeta a la que vulgueu desplaçar els $COUNT$ elements seleccionats.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Heu seleccionat $COUNT$ elements. $MOVEABLE_COUNT$ elements es poden desplaçar a una organització, $NONMOVEABLE_COUNT$ no.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Codi de verificació (TOTP)" + }, + "copyVerificationCode": { + "message": "Copia el codi de verificació" + }, + "warning": { + "message": "Advertiment" + }, + "confirmVaultExport": { + "message": "Confirma l'exportació de la Caixa forta" + }, + "exportWarningDesc": { + "message": "Aquesta exportació conté les dades de la vostra caixa forta en un format no xifrat. No hauríeu d'emmagatzemar o enviar el fitxer exportat a través de canals no segurs (com ara el correu electrònic). Elimineu-lo immediatament després d'haver acabat d'usar-lo." + }, + "encExportKeyWarningDesc": { + "message": "Aquesta exportació xifra les vostres dades mitjançant la vostra clau de xifratge. Si alguna vegada gireu eixa clau, hauríeu d'exportar de nou, ja que no podreu desxifrar aquest fitxer d'exportació." + }, + "encExportAccountWarningDesc": { + "message": "Les claus de xifratge són exclusives de cada compte d'usuari Bitwarden, de manera que no podeu importar una exportació xifrada a un compte diferent." + }, + "export": { + "message": "Exporta" + }, + "exportVault": { + "message": "Exporta la caixa forta" + }, + "fileFormat": { + "message": "Format de fitxer" + }, + "exportSuccess": { + "message": "S'han exportat les dades de la vostra caixa forta." + }, + "passwordGenerator": { + "message": "Generador de contrasenyes" + }, + "minComplexityScore": { + "message": "Puntuació mínima de complexitat" + }, + "minNumbers": { + "message": "Mínim de caràcters númerics" + }, + "minSpecial": { + "message": "Mínim de caràcters especials", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Eviteu caràcters ambigus" + }, + "regeneratePassword": { + "message": "Regenera contrasenya" + }, + "length": { + "message": "Longitud" + }, + "numWords": { + "message": "Nombre de paraules" + }, + "wordSeparator": { + "message": "Separador de paraules" + }, + "capitalize": { + "message": "Majúscules inicials", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Inclou número" + }, + "passwordHistory": { + "message": "Historial de les contrasenyes" + }, + "noPasswordsInList": { + "message": "No hi ha cap contrasenya a llistar." + }, + "clear": { + "message": "Esborra", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Compte actualitzat" + }, + "changeEmail": { + "message": "Canvia el correu electrònic" + }, + "changeEmailTwoFactorWarning": { + "message": "Si continueu, canviarà l'adreça de correu electrònic del vostre compte. No canviarà l'adreça de correu electrònic utilitzada per a l'autenticació de dos factors. Podeu canviar aquesta adreça de correu electrònic a la configuració d'inici de sessió en dues passes." + }, + "newEmail": { + "message": "Nou correu electrònic" + }, + "code": { + "message": "Codi" + }, + "changeEmailDesc": { + "message": "Hem enviat un codi de verificació per correu electrònic a $EMAIL$. Comproveu el codi i introduïu-lo a continuació per finalitzar el canvi d'adreça de correu electrònic.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Si es procedeix, es tancarà la vostra sessió actual i l'haureu de tornar a iniciar. Les sessions d'altres dispositius poden mantenir-se actives fins a una hora." + }, + "emailChanged": { + "message": "El correu electrònic s'ha canviat" + }, + "logBackIn": { + "message": "Torneu a iniciar sessió." + }, + "logBackInOthersToo": { + "message": "Torneu a iniciar la sessió. Si esteu utilitzant altres aplicacions Bitwarden, tanqueu-les i torneu-les a obrir també." + }, + "changeMasterPassword": { + "message": "Canvia la contrasenya mestra" + }, + "masterPasswordChanged": { + "message": "S'ha canviat la contrasenya mestra" + }, + "currentMasterPass": { + "message": "Contrasenya mestra actual" + }, + "newMasterPass": { + "message": "Contrasenya mestra nova" + }, + "confirmNewMasterPass": { + "message": "Confirma la contrasenya nova" + }, + "encKeySettings": { + "message": "Configuració de claus de xifratge" + }, + "kdfAlgorithm": { + "message": "Algorisme de KDF" + }, + "kdfIterations": { + "message": "Iteracions de KDF" + }, + "kdfIterationsDesc": { + "message": "Més quantitat d'iteracions de KDF ajuden a protegir la contrasenya mestra d'un atac per força bruta. Recomanem un valor de $VALUE$ o més.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "L'establiment de massa iteracions de KDF pot provocar un rendiment deficient en els inicis de sessió (i desbloqueig) de Bitwarden en dispositius amb CPUs lentes. Recomanem que augmenteu el valor en increments de $INCREMENT$ i, a continuació, proveu-ho en tots els vostres dispositius.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Canvia KDF" + }, + "encKeySettingsChanged": { + "message": "S'ha canviat la configuració de les claus de xifratge" + }, + "dangerZone": { + "message": "Zona perillosa" + }, + "dangerZoneDesc": { + "message": "Aneu amb compte, aquestes accions no són reversibles!" + }, + "deauthorizeSessions": { + "message": "Desautoritza sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Voleu evitar que el vostre compte s'inicie en un altre dispositiu? Seguiu aquestes passes per desautoritzar tots els ordinadors o dispositius que hàgeu utilitzat prèviament. Aquest pas de seguretat es recomana si anteriorment heu utilitzat un ordinador públic o si heu guardat la contrasenya accidentalment en un dispositiu que no és vostre. Aquest pas també esborrarà totes les sessions d'inici de sessió en dues passes recordades prèviament." + }, + "deauthorizeSessionsWarning": { + "message": "El procediment també tancarà la sessió actual, i l'heu de tornar a iniciar. També demanarà iniciar la sessió en dues passes, si està habilitada. Les sessions actives d'altres dispositius poden mantenir-se actives fins a una hora." + }, + "sessionsDeauthorized": { + "message": "Totes les sessions estan desautoritzades" + }, + "purgeVault": { + "message": "Purga la caixa forta" + }, + "purgedOrganizationVault": { + "message": "S'ha purgat la caixa forta de l'organització." + }, + "vaultAccessedByProvider": { + "message": "Caixa forta accedida pel proveïdor." + }, + "purgeVaultDesc": { + "message": "Procediu a continuació per esborrar tots els elements i carpetes de la vostra caixa forta. Els elements compartits i que pertanyen a una organització no se suprimiran." + }, + "purgeOrgVaultDesc": { + "message": "Procediu a continuació per esborrar tots els elements de la caixa forta de l'organització." + }, + "purgeVaultWarning": { + "message": "La purga de la caixa forta és permanent. No es pot desfer." + }, + "vaultPurged": { + "message": "S'ha purgat la vostra caixa forta." + }, + "deleteAccount": { + "message": "Suprimeix el compte" + }, + "deleteAccountDesc": { + "message": "Procediu a continuació per eliminar el vostre compte i totes les dades associades." + }, + "deleteAccountWarning": { + "message": "La supressió del compte és permanent. No es pot desfer." + }, + "accountDeleted": { + "message": "S'ha eliminat el compte" + }, + "accountDeletedDesc": { + "message": "El vostre compte s'ha tancat i s'han eliminat totes les dades associades." + }, + "myAccount": { + "message": "El meu compte" + }, + "tools": { + "message": "Eines" + }, + "importData": { + "message": "Importa dades" + }, + "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." + }, + "importSuccess": { + "message": "Les dades s'han importat amb èxit a la vostra caixa forta." + }, + "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." + }, + "selectFormat": { + "message": "Seleccioneu el format del fitxer d'importació" + }, + "selectImportFile": { + "message": "Seleccioneu el fitxer d'importació" + }, + "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)" + } + } + }, + "options": { + "message": "Opcions" + }, + "optionsDesc": { + "message": "Personalitzeu la vostra caixa forta web." + }, + "optionsUpdated": { + "message": "Opcions actualitzades" + }, + "language": { + "message": "Idioma" + }, + "languageDesc": { + "message": "Canvia l'idioma utilitzat per la caixa forta web." + }, + "disableIcons": { + "message": "Inhabilita les icones del lloc web" + }, + "disableIconsDesc": { + "message": "Les icones del lloc web proporcionen una imatge que es pot reconèixer al costat de cada element d'inici de sessió a la vostra caixa forta." + }, + "enableGravatars": { + "message": "Habilita Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Utilitzeu imatges d'avatar carregades de gravatar.com." + }, + "enableFullWidth": { + "message": "Habilita la disposició de l'amplada completa", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Permet que la caixa forta web s'expandisca a tot l'ample de la finestra del navegador." + }, + "default": { + "message": "Per defecte" + }, + "domainRules": { + "message": "Regles de domini" + }, + "domainRulesDesc": { + "message": "Si teniu el mateix inici de sessió en diversos dominis web diferents, podeu marcar el lloc web com a \"equivalent\". Els dominis \"globals\" són els que Bitwarden ja ha creat per a vosaltres." + }, + "globalEqDomains": { + "message": "Dominis equivalents globals" + }, + "customEqDomains": { + "message": "Dominis equivalents personalitzats" + }, + "exclude": { + "message": "Exclou" + }, + "include": { + "message": "Inclou" + }, + "customize": { + "message": "Personalitza" + }, + "newCustomDomain": { + "message": "Nou domini personalitzat" + }, + "newCustomDomainDesc": { + "message": "Introduïu una llista de dominis separats per comes. Només es permeten els dominis \"base\". No introduïu els subdominis. Per exemple, introduïu \"google.com\" en lloc de \"www.google.com\". També podeu introduir \"androidapp://package.name\" per associar una aplicació d'android amb altres dominis del lloc web." + }, + "customDomainX": { + "message": "Domini personalitzat $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Dominis actualitzats" + }, + "twoStepLogin": { + "message": "Inici de sessió en dues passes" + }, + "twoStepLoginDesc": { + "message": "Protegiu el vostre compte exigint un pas addicional en iniciar sessió." + }, + "twoStepLoginOrganizationDesc": { + "message": "Demana un inici de sessió en dues passes per als usuaris de la vostra organització mitjançant la configuració de proveïdors a nivell de l'organització." + }, + "twoStepLoginRecoveryWarning": { + "message": "Si habiliteu l'inici de sessió en dues passes, pot bloquejar-vos de manera definitiva el compte de Bitwarden. Un codi de recuperació us permet accedir al vostre compte en cas que no pugueu utilitzar el proveïdor d'inici de sessió en dues passes (p. Ex. Perdre el dispositiu). El suport de Bitwarden no podrà ajudar-vos si perdeu l'accés al vostre compte. Us recomanem que escriviu o imprimiu el codi de recuperació i el mantingueu en un lloc segur." + }, + "viewRecoveryCode": { + "message": "Mostra el codi de recuperació" + }, + "providers": { + "message": "Proveïdors", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Habilita" + }, + "enabled": { + "message": "Habilitat" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Subscripció Premium" + }, + "premiumRequired": { + "message": "Premium requerit" + }, + "premiumRequiredDesc": { + "message": "Cal una subscripció premium per utilitzar aquesta característica." + }, + "youHavePremiumAccess": { + "message": "Teniu accés premium" + }, + "alreadyPremiumFromOrg": { + "message": "Ja teniu accés a les funcions premium degut a que sou membre d'una organització." + }, + "manage": { + "message": "Administra" + }, + "disable": { + "message": "Inhabilita" + }, + "twoStepLoginProviderEnabled": { + "message": "Aquest proveïdor d'inici de sessió en dues passes està habilitat al vostre compte." + }, + "twoStepLoginAuthDesc": { + "message": "Introduïu la vostra contrasenya mestra per modificar la configuració d'inici de sessió en dues passes." + }, + "twoStepAuthenticatorDesc": { + "message": "Seguiu aquestes passes per configurar l'inici de sessió en dues passes amb una aplicació autenticadora:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Baixeu una aplicació autenticadora en dues passes" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Necessiteu una aplicació d'autenticació en dues passes? Baixeu-ne una de les següents" + }, + "iosDevices": { + "message": "Dispositius iOS" + }, + "androidDevices": { + "message": "Dispositius Android" + }, + "windowsDevices": { + "message": "Dispositius Windows" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Es recomanen aquestes aplicacions, però, altres aplicacions autenticadores també funcionaran." + }, + "twoStepAuthenticatorScanCode": { + "message": "Escanegeu aquest codi QR amb l'aplicació autenticadora" + }, + "key": { + "message": "Clau" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Introduïu el codi de verificació de 6 dígits generat a l'aplicació" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "En cas que hàgeu d'afegir-lo a un altre dispositiu, a continuació teniu el codi QR (o clau) requerit per l'aplicació autenticadora." + }, + "twoStepDisableDesc": { + "message": "Esteu segur que voleu inhabilitar aquest proveïdor d'inici de sessió en dues passes?" + }, + "twoStepDisabled": { + "message": "El proveïdor d'inici de sessió en dues passes està inhabilitat." + }, + "twoFactorYubikeyAdd": { + "message": "Afegiu una nova YubiKey al vostre compte" + }, + "twoFactorYubikeyPlugIn": { + "message": "Connecteu la YubiKey al port USB de l'ordinador." + }, + "twoFactorYubikeySelectKey": { + "message": "Seleccioneu a continuació el primer camp d'entrada buit de YubiKey." + }, + "twoFactorYubikeyTouchButton": { + "message": "Toqueu el botó de la YubiKey." + }, + "twoFactorYubikeySaveForm": { + "message": "Guardeu el formulari." + }, + "twoFactorYubikeyWarning": { + "message": "A causa de les limitacions de la plataforma, les YubiKeys no es poden utilitzar en totes les aplicacions de Bitwarden. Heu d'habilitar un altre proveïdor d'inici de sessió en dues passes per accedir al compte quan no es puguen utilitzar les YubiKeys. Plataformes compatibles:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Caixa forta web, aplicació d'escriptori, CLI i totes les extensions de navegador en un dispositiu amb un port USB que puga acceptar la vostra YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Aplicacions mòbils en un dispositiu amb NFC o un port USB que puga acceptar la vostra YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "Clau U2F $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "Clau WebAuthn $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "Suport NFC" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Una de les meues claus és compatible amb NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Si una de les vostres YubiKeys és compatible amb NFC (com ara una NEO YubiKey), se us demanarà als dispositius mòbils quan es detecte la disponibilitat de NFC." + }, + "yubikeysUpdated": { + "message": "S'han actualitzat les YubiKeys" + }, + "disableAllKeys": { + "message": "Inhabilita totes les claus" + }, + "twoFactorDuoDesc": { + "message": "Introduïu la informació de l'aplicació Bitwarden des del vostre tauler d'Administrador de Duo." + }, + "twoFactorDuoIntegrationKey": { + "message": "Clau d'integració" + }, + "twoFactorDuoSecretKey": { + "message": "Clau Secreta" + }, + "twoFactorDuoApiHostname": { + "message": "Nom de l'amfitrió d'API" + }, + "twoFactorEmailDesc": { + "message": "Seguiu aquestes passes per configurar l'inici de sessió en dues passes amb el correu electrònic:" + }, + "twoFactorEmailEnterEmail": { + "message": "Introduïu el correu electrònic amb el que voleu rebre els codis de verificació" + }, + "twoFactorEmailEnterCode": { + "message": "Introduïu el codi de verificació resultant de 6 dígits del correu electrònic" + }, + "sendEmail": { + "message": "Envia un correu electrònic" + }, + "twoFactorU2fAdd": { + "message": "Afegeix una clau de seguretat FIDO U2F al vostre compte" + }, + "removeU2fConfirmation": { + "message": "Segur que voleu suprimir aquesta clau de seguretat?" + }, + "twoFactorWebAuthnAdd": { + "message": "Afegiu una clau de seguretat de WebAuthn al vostre compte" + }, + "readKey": { + "message": "Llegeix la clau" + }, + "keyCompromised": { + "message": "La clau està compromesa." + }, + "twoFactorU2fGiveName": { + "message": "Doneu un nom amigable a la clau de seguretat per identificar-la." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Connecteu la clau de seguretat al port USB de l'ordinador i feu clic al botó \"Llegeix la clau\"." + }, + "twoFactorU2fTouchButton": { + "message": "Si la clau de seguretat té un botó, toqueu-lo." + }, + "twoFactorU2fSaveForm": { + "message": "Guardeu el formulari." + }, + "twoFactorU2fWarning": { + "message": "A causa de les limitacions de la plataforma, FIDO U2F no es pot utilitzar en totes les aplicacions de Bitwarden. Heu d'habilitar un altre proveïdor d'inici de sessió en dues passes perquè pugueu accedir al vostre compte quan FIDO U2F no es puga utilitzar. Plataformes compatibles:" + }, + "twoFactorU2fSupportWeb": { + "message": "Caixa forta web i extensions de navegador en un escriptori/portàtil amb un navegador compatible amb U2F (Chrome, Opera, Vivaldi, o Firefox amb FIDO U2F activat)." + }, + "twoFactorU2fWaiting": { + "message": "S'està esperant que toqueu el botó de la vostra clau de seguretat" + }, + "twoFactorU2fClickSave": { + "message": "Feu clic al botó \"Guarda\" que apareix a continuació per habilitar aquesta clau de seguretat per iniciar sessió en dues passes." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Hi ha hagut un problema en llegir la clau de seguretat. Torneu-ho a provar." + }, + "twoFactorWebAuthnWarning": { + "message": "A causa de les limitacions de la plataforma, WebAuthn no es pot utilitzar en totes les aplicacions Bitwarden. Heu d’habilitar un altre proveïdor d’inici de sessió en dues passas perquè pugueu accedir al vostre compte quan no es puga utilitzar WebAuthn. Plataformes compatibles:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Caixa forta web i extensions de navegador en un escriptori/portàtil amb un navegador compatible amb WebAuthn (Chrome, Opera, Vivaldi, o Firefox amb FIDO U2F activat)." + }, + "twoFactorRecoveryYourCode": { + "message": "El codi de recuperació d'inici de sessió en dues passes de Bitwarden" + }, + "twoFactorRecoveryNoCode": { + "message": "Encara no heu habilitat cap proveïdor d'inici de sessió en dues passes. Després d'activar-lo, podeu consultar ací el codi de recuperació." + }, + "printCode": { + "message": "Imprimeix el codi", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Informes" + }, + "reportsDesc": { + "message": "Identifiqueu i tanqueu els forats de seguretat dels comptes en línia fent clic en els informes següents." + }, + "unsecuredWebsitesReport": { + "message": "Informe de llocs web no segurs" + }, + "unsecuredWebsitesReportDesc": { + "message": "L'ús de llocs web no segurs amb l'esquema http:// pot ser perillós. Si el lloc web ho permet, sempre haureu d'accedir-hi mitjançant l'esquema https:// perquè la vostra connexió estiga xifrada." + }, + "unsecuredWebsitesFound": { + "message": "S'han trobat llocs web no segurs" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Hem trobat $COUNT$ elements a la vostra caixa forta amb URI no segures. Heu de canviar el seu esquema URI a https:// si el lloc web ho permet.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Cap element de la vostra caixa forta té URI no segures." + }, + "inactive2faReport": { + "message": "Informe 2FA inactiu" + }, + "inactive2faReportDesc": { + "message": "L'autenticació de dos factors (2FA) és una configuració de seguretat important que ajuda a assegurar els vostres comptes. Si el lloc web ho ofereix, sempre haureu d'activar l'autenticació de dos factors." + }, + "inactive2faFound": { + "message": "S'han trobat registres sense 2FA" + }, + "inactive2faFoundDesc": { + "message": "Hem trobat $COUNT$ llocs web a la vostra caixa forta que no es poden configurar amb l'autenticació de dos factors (d'acord amb twofactorauth.org). Per protegir encara més aquests comptes, haureu d'habilitar l'autenticació de dos factors.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No s'han trobat llocs web a la vostra caixa forta sense configuració d'autenticació de dos factors." + }, + "instructions": { + "message": "Instruccions" + }, + "exposedPasswordsReport": { + "message": "Informe de contrasenyes exposades" + }, + "exposedPasswordsReportDesc": { + "message": "Les contrasenyes exposades són claus que s'han descobert en filtracions de dades conegudes que es van fer públiques o que es van vendre a la web fosca per part d'hackers." + }, + "exposedPasswordsFound": { + "message": "S'han trobat contrasenyes exposades" + }, + "exposedPasswordsFoundDesc": { + "message": "Hem trobat $COUNT$ elements a la vostra caixa forta que tenen contrasenyes que van ser exposades a filtracions de dades conegudes. Heu de canviar-les amb una contrasenya nova.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Cap element de la vostra caixa forta conté contrasenyes que s'hagen exposat a filtracions de dades conegudes." + }, + "checkExposedPasswords": { + "message": "Comprova les contrasenyes exposades" + }, + "exposedXTimes": { + "message": "S'han exposat $COUNT$ vegades", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Informe de contrasenyes poc segures" + }, + "weakPasswordsReportDesc": { + "message": "Les contrasenyes poc segures poden ser descobertes fàcilment per pirates informàtics amb eines automatitzades que s'utilitzen per trencar contrasenyes. El generador de contrasenyes Bitwarden us pot ajudar a crear contrasenyes fortes." + }, + "weakPasswordsFound": { + "message": "S'han trobat contrasenyes poc segures" + }, + "weakPasswordsFoundDesc": { + "message": "Hem trobat $COUNT$ elements a la vostra caixa forta amb contrasenyes que no són fortes. Heu d'actualitzar-les i utilitzar contrasenyes més fortes.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Cap element de la vostra caixa forta té contrasenyes poc segures." + }, + "reusedPasswordsReport": { + "message": "Informe de contrasenyes reutilitzades" + }, + "reusedPasswordsReportDesc": { + "message": "Si un servei que utilitzeu està compromès, la reutilització de la mateixa contrasenya en altres llocs pot permetre als hackers accedir fàcilment a més comptes en línia vostres. Heu d'utilitzar una contrasenya exclusiva per a cada compte o servei." + }, + "reusedPasswordsFound": { + "message": "S'han trobat contrasenyes reutilitzades" + }, + "reusedPasswordsFoundDesc": { + "message": "Hem trobat $COUNT$ contrasenyes que s'estan reutilitzant a la vostra caixa forta. Heu de canviar-les a un valor únic.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Cap inici de sessió a la vostra caixa forta té contrasenyes que s'estiguen reutilitzant." + }, + "reusedXTimes": { + "message": "S'ha reutilitzat $COUNT$ vegades", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Filtració de dades" + }, + "breachDesc": { + "message": "Els comptes filtrats poden exposar la vostra informació personal. Assegureu els comptes filtrats activant la autenticació de dos factors (2FA) o creant contrasenyes més fortes." + }, + "breachCheckUsernameEmail": { + "message": "Comproveu qualsevol nom d'usuari o adreça electrònica que utilitzeu." + }, + "checkBreaches": { + "message": "Comprova filtracions" + }, + "breachUsernameNotFound": { + "message": "No s'ha trobat $USERNAME$ en cap filtració de dades coneguda.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Bones notícies", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "S'ha trobat $USERNAME$ en $COUNT$ diferents filtracions de dades en línia.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "S'han trobat comptes compromesos" + }, + "compromisedData": { + "message": "Dades compromeses" + }, + "website": { + "message": "Lloc web" + }, + "affectedUsers": { + "message": "Usuaris afectats" + }, + "breachOccurred": { + "message": "La filtració es va produir el" + }, + "breachReported": { + "message": "Es va informar de la filtració el" + }, + "reportError": { + "message": "S'ha produït un error en intentar carregar l'informe. Torneu-ho a provar" + }, + "billing": { + "message": "Facturació" + }, + "accountCredit": { + "message": "Compte de crèdit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Saldo del compte", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Afegeix crèdit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Quantitat", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "El crèdit afegit apareixerà al vostre compte després que el pagament haja estat totalment processat. Alguns mètodes de pagament es retardarden i poden trigar més en processar-se que altres." + }, + "makeSureEnoughCredit": { + "message": "Assegureu-vos que el compte tinga suficient crèdit disponible per a aquesta compra. Si no té suficient crèdit, el mètode de pagament predeterminat en el fitxer s'utilitzarà per la diferència. Podeu afegir crèdit al vostre compte des de la pàgina de facturació." + }, + "creditAppliedDesc": { + "message": "El crèdit del vostre compte es pot utilitzar per fer compres. Qualsevol crèdit disponible s'aplicarà automàticament a les factures generades." + }, + "goPremium": { + "message": "Fes-te Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Heu actualitzat a la versió premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Actualitzeu el vostre compte a una subscripció premium i desbloquegeu algunes característiques addicionals excel·lents." + }, + "premiumSignUpStorage": { + "message": "1 GB d'emmagatzematge xifrat per als fitxers adjunts." + }, + "premiumSignUpTwoStep": { + "message": "Opcions addicionals d'inici de sessió en dues passes com ara YubiKey, FIDO U2F i Duo." + }, + "premiumSignUpEmergency": { + "message": "Accés d’emergència" + }, + "premiumSignUpReports": { + "message": "Requisits d'higiene de la contrasenya, salut del compte i informe d'infraccions de dades per mantenir la seguretat de la vostra caixa forta." + }, + "premiumSignUpTotp": { + "message": "Generador de codi de verificació TOTP (2FA) per a inici de sessió a la vostra caixa forta." + }, + "premiumSignUpSupport": { + "message": "Prioritat d'atenció al client." + }, + "premiumSignUpFuture": { + "message": "Totes les funcions premium futures. Aviat, més!" + }, + "premiumPrice": { + "message": "Tot per només $PRICE$ /any!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Complements" + }, + "premiumAccess": { + "message": "Accés premium" + }, + "premiumAccessDesc": { + "message": "Podeu afegir accés premium a tots els membres de la vostra organització per $PRICE$/$INTERVAL$.\n \n", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Emmagatzematge suplementari (GB)" + }, + "additionalStorageGbDesc": { + "message": "# de GB addicionals" + }, + "additionalStorageIntervalDesc": { + "message": "El vostre pla inclou $SIZE$ d'emmagatzematge encriptat de fitxers. Podeu afegir un emmagatzematge addicional per a $PRICE$ per GB/$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Resum" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "any" + }, + "month": { + "message": "mes" + }, + "monthAbbr": { + "message": "mes.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "El mètode de pagament es cobrarà de manera immediata i després de forma recurrent cada any. Podeu cancel·lar-ho en qualsevol moment." + }, + "paymentCharged": { + "message": "El mètode de pagament es cobrarà immediatament i després de forma recurrent, cada $INTERVAL$. Podeu cancel·lar-ho en qualsevol moment.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "El vostre pla inclou una prova gratuïta de 7 dies. El mètode de pagament no es cobrarà fins que no s'haja acabat la prova. Podeu cancel·lar-ho en qualsevol moment." + }, + "paymentInformation": { + "message": "Informació de pagament" + }, + "billingInformation": { + "message": "Informació de facturació" + }, + "creditCard": { + "message": "Targeta de crèdit" + }, + "paypalClickSubmit": { + "message": "Feu clic al botó de PayPal per iniciar sessió al vostre compte i, a continuació, feu clic al botó Envia per continuar." + }, + "cancelSubscription": { + "message": "Cancel·la la subscripció" + }, + "subscriptionCanceled": { + "message": "S'ha cancel·lat la subscripció." + }, + "pendingCancellation": { + "message": "Pendent de cancel·lació" + }, + "subscriptionPendingCanceled": { + "message": "La subscripció s'ha marcat per cancel·lació al final del període de facturació actual." + }, + "reinstateSubscription": { + "message": "Reinicia la subscripció" + }, + "reinstateConfirmation": { + "message": "Esteu segur que voleu eliminar la sol·licitud de cancel·lació pendent i restablir la vostra subscripció?" + }, + "reinstated": { + "message": "S'ha restablert la subscripció." + }, + "cancelConfirmation": { + "message": "Esteu segur que voleu cancel·lar? Perdreu l'accés a totes les característiques d'aquesta subscripció al final d'aquest cicle de facturació." + }, + "canceledSubscription": { + "message": "S'ha cancel·lat la subscripció." + }, + "neverExpires": { + "message": "No caduca mai" + }, + "status": { + "message": "Estat" + }, + "nextCharge": { + "message": "Càrrec següent" + }, + "details": { + "message": "Detall" + }, + "downloadLicense": { + "message": "Baixa la llicència" + }, + "updateLicense": { + "message": "Actualitza la llicència" + }, + "updatedLicense": { + "message": "Llicència actualitzada" + }, + "manageSubscription": { + "message": "Administra la subscripció" + }, + "storage": { + "message": "Emmagatzematge" + }, + "addStorage": { + "message": "Afegeix emmagatzematge" + }, + "removeStorage": { + "message": "Suprimeix emmagatzematge" + }, + "subscriptionStorage": { + "message": "La vostra subscripció té un total de $MAX_STORAGE$ GB d'emmagatzematge xifrat de fitxers. Esteu utilitzant $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Mètode de pagament" + }, + "noPaymentMethod": { + "message": "No hi ha cap mètode de pagament en el fitxer." + }, + "addPaymentMethod": { + "message": "Afegir Mètode de Pagament" + }, + "changePaymentMethod": { + "message": "Canvia la forma de pagament" + }, + "invoices": { + "message": "Factures" + }, + "noInvoices": { + "message": "Cap factura." + }, + "paid": { + "message": "Pagat", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Pendent de pagament", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transaccions", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Cap transacció." + }, + "chargeNoun": { + "message": "Càrrecs", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Reemborsament", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Qualsevol càrrec apareixerà a la vostra declaració com a $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB d'emmagatzematge a afegir" + }, + "gbStorageRemove": { + "message": "GB d'emmagatzematge a suprimir" + }, + "storageAddNote": { + "message": "L'addició d'emmagatzematge generarà ajustos al total de facturació i carregarà immediatament el vostre mètode de pagament al fitxer. El primer càrrec serà prorratejat per a la resta del cicle de facturació actual." + }, + "storageRemoveNote": { + "message": "Si elimineu l'emmagatzematge, es generaran ajustos al total de facturació que es prorratejaran com a crèdits per al vostre càrrec de facturació següent." + }, + "adjustedStorage": { + "message": "S'han ajustat $AMOUNT$ GB d'emmagatzematge.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contacteu amb atenció al client" + }, + "updatedPaymentMethod": { + "message": "Mètode de pagament actualitzat." + }, + "purchasePremium": { + "message": "Compra Premium" + }, + "licenseFile": { + "message": "Fitxer de llicència" + }, + "licenseFileDesc": { + "message": "El vostre fitxer de llicència s'anomenarà $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Per actualitzar el vostre compte a una subscripció premium, cal carregar un fitxer de llicència vàlid." + }, + "uploadLicenseFileOrg": { + "message": "Per crear una organització en allotjament propi cal carregar un fitxer de llicència vàlid." + }, + "accountEmailMustBeVerified": { + "message": "L'adreça de correu electrònic del vostre compte s'ha de verificar." + }, + "newOrganizationDesc": { + "message": "Les organitzacions us permeten compartir parts de la vostra caixa forta amb altres persones i gestionar usuaris relacionats amb una entitat específica, com ara una família, un equip menut o una empresa gran." + }, + "generalInformation": { + "message": "Informació general" + }, + "organizationName": { + "message": "Nom de l'organització" + }, + "accountOwnedBusiness": { + "message": "Aquest compte és propietat d'una empresa." + }, + "billingEmail": { + "message": "Correu electrònic de facturació" + }, + "businessName": { + "message": "Nom comercial" + }, + "chooseYourPlan": { + "message": "Trieu el vostre pla" + }, + "users": { + "message": "Usuaris" + }, + "userSeats": { + "message": "Reserves d'usuari" + }, + "additionalUserSeats": { + "message": "Reserves d'usuari addicionals" + }, + "userSeatsDesc": { + "message": "# de reserves d'usuari" + }, + "userSeatsAdditionalDesc": { + "message": "El vostre pla inclou reserves d'usuari de $BASE_SEATS$. Podeu afegir usuaris addicionals per $SEAT_PRICE$ per usuari/mes.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Quantes reserves d'usuari necessiteu? També podeu afegir reserves addicionals més endavant, si és necessari." + }, + "planNameFree": { + "message": "Gratuït", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Per a usuaris de prova o personals, permet compartir amb $COUNT$ altres usuaris.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Famílies" + }, + "planDescFamilies": { + "message": "Per a ús personal, per compartir amb familiars i amics." + }, + "planNameTeams": { + "message": "Equips" + }, + "planDescTeams": { + "message": "Per a empreses i altres equips organitzats." + }, + "planNameEnterprise": { + "message": "Empresa" + }, + "planDescEnterprise": { + "message": "Per a empreses i altres grans organitzacions." + }, + "freeForever": { + "message": "Gratuït per sempre" + }, + "includesXUsers": { + "message": "inclou $COUNT$ usuaris", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Usuaris addicionals" + }, + "costPerUser": { + "message": "$COST$ per usuari", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limitat a $COUNT$ usuaris (vosaltres inclosos)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limitat a $COUNT$ col·leccions", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Afegiu i compartiu fins a $COUNT$ usuaris", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Afegiu i compartiu amb usuaris il·limitats" + }, + "createUnlimitedCollections": { + "message": "Crea col·leccions il·limitades" + }, + "gbEncryptedFileStorage": { + "message": "Emmagatzematge de fitxers xifrat de $SIZE$", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Allotjament propi (opcional)" + }, + "usersGetPremium": { + "message": "Els usuaris aconsegueixen accés a característiques de membres premium" + }, + "controlAccessWithGroups": { + "message": "Controla l'accés dels usuaris amb grups" + }, + "syncUsersFromDirectory": { + "message": "Sincronitza els usuaris i grups d'un directori" + }, + "trackAuditLogs": { + "message": "Fes el seguiment de les accions de l'usuari amb registres d'auditoria" + }, + "enforce2faDuo": { + "message": "Reforça 2FA amb Duo" + }, + "priorityCustomerSupport": { + "message": "Atenció al client prioritària" + }, + "xDayFreeTrial": { + "message": "Prova gratuïta de $COUNT$ dies, cancel·leu-la en qualsevol moment", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Mensual" + }, + "annually": { + "message": "Annual" + }, + "basePrice": { + "message": "Preu base" + }, + "organizationCreated": { + "message": "S'ha creat l'organització" + }, + "organizationReadyToGo": { + "message": "La vostra organització nova està preparada per començar!" + }, + "organizationUpgraded": { + "message": "S'ha actualitzat la vostra organització." + }, + "leave": { + "message": "Abandona" + }, + "leaveOrganizationConfirmation": { + "message": "Esteu segur que voleu abandonar aquesta organització?" + }, + "leftOrganization": { + "message": "Heu deixat l'organització." + }, + "defaultCollection": { + "message": "Col·lecció per defecte" + }, + "getHelp": { + "message": "Obteniu ajuda" + }, + "getApps": { + "message": "Aconseguiu aplicacions" + }, + "loggedInAs": { + "message": "Has iniciat sessió com" + }, + "eventLogs": { + "message": "Registre d'esdeveniments" + }, + "people": { + "message": "Persones" + }, + "policies": { + "message": "Polítiques" + }, + "singleSignOn": { + "message": "Inici de sessió únic" + }, + "editPolicy": { + "message": "Edita la política" + }, + "groups": { + "message": "Grups" + }, + "newGroup": { + "message": "Grup nou" + }, + "addGroup": { + "message": "Afegeix un grup" + }, + "editGroup": { + "message": "Edita el grup" + }, + "deleteGroupConfirmation": { + "message": "Esteu segur que voleu suprimir aquest grup?" + }, + "removeUserConfirmation": { + "message": "Esteu segur que voleu suprimir aquest usuari?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Advertència! Aquest usuari requereix un connector clau per gestionar el seu xifrat. La supressió d'aquest usuari des de la vostra organització desactivarà permanentment el seu compte. Aquesta acció no es pot desfer. Voleu continuar?" + }, + "externalId": { + "message": "Id extern" + }, + "externalIdDesc": { + "message": "L'identificador extern es pot utilitzar com a referència o enllaçar aquest recurs a un sistema extern, com ara un directori d'usuari." + }, + "accessControl": { + "message": "Control d'accés" + }, + "groupAccessAllItems": { + "message": "Aquest grup pot accedir i modificar tots els elements." + }, + "groupAccessSelectedCollections": { + "message": "Aquest grup només pot accedir a les col·leccions seleccionades." + }, + "readOnly": { + "message": "Només de lectura" + }, + "newCollection": { + "message": "Col·lecció nova" + }, + "addCollection": { + "message": "Afegeix col·lecció" + }, + "editCollection": { + "message": "Edita col·lecció" + }, + "deleteCollectionConfirmation": { + "message": "Esteu segur que voleu suprimir aquesta col·lecció?" + }, + "editUser": { + "message": "Edita usuari" + }, + "inviteUser": { + "message": "Convida usuari" + }, + "inviteUserDesc": { + "message": "Convida un nou usuari a la vostra organització introduint l'adreça electrònica del compte de Bitwarden a continuació. Si encara no tenen un compte de Bitwarden, se us demanarà que creeu un compte nou." + }, + "inviteMultipleEmailDesc": { + "message": "Podeu convidar fins a $COUNT$ usuaris alhora separant per comes les adreces de correu electrònic.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Aquest usuari fa servir l'inici de sessió en dues passes per protegir el seu compte." + }, + "userAccessAllItems": { + "message": "Aquest usuari pot accedir i modificar tots els elements." + }, + "userAccessSelectedCollections": { + "message": "Aquest usuari només pot accedir a les col·leccions seleccionades." + }, + "search": { + "message": "Cerca" + }, + "invited": { + "message": "Convidat" + }, + "accepted": { + "message": "Acceptat" + }, + "confirmed": { + "message": "Confirmat" + }, + "clientOwnerEmail": { + "message": "Correu electrònic del propietari del client" + }, + "owner": { + "message": "Propietari" + }, + "ownerDesc": { + "message": "L'usuari d'accés més elevat que pot gestionar tots els aspectes de la vostra organització." + }, + "clientOwnerDesc": { + "message": "Aquest usuari ha de ser independent del proveïdor. Si el proveïdor està desvinculat de l'organització, aquest usuari mantindrà la propietat de l'organització." + }, + "admin": { + "message": "Administrador" + }, + "adminDesc": { + "message": "Els administradors poden accedir i gestionar tots els elements, col·leccions i usuaris de la vostra organització." + }, + "user": { + "message": "Usuari" + }, + "userDesc": { + "message": "Un usuari habitual amb accés a les col·leccions assignades a la vostra organització." + }, + "manager": { + "message": "Gestor" + }, + "managerDesc": { + "message": "Els gestors poden accedir i gestionar les col·leccions assignades a la vostra organització." + }, + "all": { + "message": "Tot" + }, + "refresh": { + "message": "Actualitza" + }, + "timestamp": { + "message": "Data i hora" + }, + "event": { + "message": "Esdeveniment" + }, + "unknown": { + "message": "Desconegut" + }, + "loadMore": { + "message": "Carrega'n més" + }, + "mobile": { + "message": "Mòbil", + "description": "Mobile app" + }, + "extension": { + "message": "Extensió", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Escriptori", + "description": "Desktop app" + }, + "webVault": { + "message": "Caixa forta web" + }, + "loggedIn": { + "message": "Heu iniciat sessió." + }, + "changedPassword": { + "message": "S'ha canviat la contrasenya del compte." + }, + "enabledUpdated2fa": { + "message": "Inici de sessió en dues passes habilitat/actualitzat." + }, + "disabled2fa": { + "message": "S'ha inhabilitat l'inici de sessió en dues passes." + }, + "recovered2fa": { + "message": "S'ha recuperat el compte des de l'inici de sessió en dues passes." + }, + "failedLogin": { + "message": "S'ha produït un error d'inici de sessió amb una contrasenya incorrecta." + }, + "failedLogin2fa": { + "message": "S'ha produït un error amb un inici de sessió en dues passes incorrecte." + }, + "exportedVault": { + "message": "Caixa forta exportada." + }, + "exportedOrganizationVault": { + "message": "Caixa forta de l’organització exportada." + }, + "editedOrgSettings": { + "message": "S'ha editat la configuració de l'organització." + }, + "createdItemId": { + "message": "S'ha creat l'element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "S'ha editat l'element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Element $ID$ enviat a la paperera.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Desplaça l'element $ID$ a una organització.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "$ID$ de l'element vist.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Contrasenya visualitzada de l'article $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Camp ocult vist de l’element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Codi de seguretat vist de l’element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "S'ha copiat la contrasenya de l'element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "S'ha copiat el camp ocult de l’element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "S'ha copiat el codi de seguretat de l’element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Element $ID$ emplenat automàticament.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "S'ha creat la col·lecció $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "S'ha editat la col·lecció $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "S'ha suprimit la col·lecció $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Política $ID$ editada.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "S'ha creat el grup $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "S'ha editat el grup $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "S'ha suprimit el grup $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "S'ha suprimit l'usuari $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "S'ha creat el fitxer adjunt per l'element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "S'ha suprimit el fitxer adjunt per l'element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "S'han editat les col·leccions per a l'element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "S'ha convidat a l'usuari $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "S'ha confirmat l'usuari $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "S'ha editat l'usuari $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "S'han editat grups de l'usuari $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "SSO sense enllaçar per a l'usuari $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Organització $ID$ creada.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Organització $ID$ afegida.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Organització $ID$ suprimida.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "S'ha accedit a la caixa forta de l'organització $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Dispositiu" + }, + "view": { + "message": "Mostra" + }, + "invalidDateRange": { + "message": "Període de data no vàlid." + }, + "errorOccurred": { + "message": "S'ha produït un error." + }, + "userAccess": { + "message": "Accés d'usuari" + }, + "userType": { + "message": "Tipus d'usuari" + }, + "groupAccess": { + "message": "Accés de grup" + }, + "groupAccessUserDesc": { + "message": "Editeu els grups als quals pertany aquest usuari." + }, + "invitedUsers": { + "message": "Usuaris convidats." + }, + "resendInvitation": { + "message": "Tornar a enviar invitació" + }, + "resendEmail": { + "message": "Torna a enviar l'email" + }, + "hasBeenReinvited": { + "message": "S'ha reconvidat a $USER$.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirma" + }, + "confirmUser": { + "message": "Confirma usuari" + }, + "hasBeenConfirmed": { + "message": "S'ha confirmat a $USER$.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirma usuaris" + }, + "usersNeedConfirmed": { + "message": "Teniu usuaris que han acceptat la seua invitació, però encara cal confirmar-la. Els usuaris no tindran accés a l'organització fins que estiguen confirmats." + }, + "startDate": { + "message": "Data d'inici" + }, + "endDate": { + "message": "Data de finalització" + }, + "verifyEmail": { + "message": "Comproveu el correu electrònic" + }, + "verifyEmailDesc": { + "message": "Verifiqueu l'adreça de correu electrònic del vostre compte per desbloquejar l'accés a totes les característiques." + }, + "verifyEmailFirst": { + "message": "S'ha de verificar primer l'adreça electrònica del vostre compte." + }, + "checkInboxForVerification": { + "message": "Consulteu la safata d'entrada del correu electrònic per obtenir un enllaç de verificació." + }, + "emailVerified": { + "message": "S'ha verificat el vostre correu electrònic." + }, + "emailVerifiedFailed": { + "message": "No es pot verificar el vostre correu electrònic. Proveu d'enviar un nou correu electrònic de verificació." + }, + "emailVerificationRequired": { + "message": "Es requereix verificació per correu electrònic" + }, + "emailVerificationRequiredDesc": { + "message": "Heu de verificar el vostre correu electrònic per utilitzar aquesta característica." + }, + "updateBrowser": { + "message": "Actualitza el navegador" + }, + "updateBrowserDesc": { + "message": "Esteu utilitzant un navegador web no compatible. La caixa forta web pot no funcionar correctament." + }, + "joinOrganization": { + "message": "Uneix-te a l'organització" + }, + "joinOrganizationDesc": { + "message": "Heu estat convidat a unir-vos a l'organització llistada més amunt. Per acceptar la invitació, heu d'iniciar sessió o crear un compte nou a Bitwarden." + }, + "inviteAccepted": { + "message": "Invitació acceptada" + }, + "inviteAcceptedDesc": { + "message": "Podeu accedir a aquesta organització una vegada que un administrador confirme la vostra pertinença. Rebreu un correu electrònic quan això passe." + }, + "inviteAcceptFailed": { + "message": "No es pot acceptar la invitació. Demaneu a l'administrador d'una organització que envie una invitació nova." + }, + "inviteAcceptFailedShort": { + "message": "No es pot acceptar la invitació. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Recorda el correu electronic" + }, + "recoverAccountTwoStepDesc": { + "message": "Si no podeu accedir al vostre compte a través dels vostres mètodes d'inici de sessió de dues passes, podeu utilitzar el codi de recuperació de l'inici de sessió en dues passes per desactivar tots els proveïdors del vostre compte." + }, + "recoverAccountTwoStep": { + "message": "Recupera l'inici de sessió en dues passes del compte" + }, + "twoStepRecoverDisabled": { + "message": "S'ha inhabilitat l'inici de sessió en dues passes al vostre compte." + }, + "learnMore": { + "message": "Més informació" + }, + "deleteRecoverDesc": { + "message": "Introduïu la vostra adreça de correu electrònic a continuació per recuperar i eliminar el vostre compte." + }, + "deleteRecoverEmailSent": { + "message": "Si el vostre compte existeix, rebreu un correu electrònic amb més instruccions." + }, + "deleteRecoverConfirmDesc": { + "message": "Heu sol·licitat suprimir el compte de Bitwarden. Feu clic al botó seguüent per confirmar-ho." + }, + "myOrganization": { + "message": "La meua organització" + }, + "deleteOrganization": { + "message": "Suprimeix l'organització" + }, + "deletingOrganizationContentWarning": { + "message": "Introduïu la contrasenya mestra per confirmar la supressió de $ORGANIZATION$ i totes les dades associades. Les dades de la caixa forta a $ORGANIZATION$ inclouen:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Els comptes d'usuari romandran actius després de la supressió, però ja no estaran associats a aquesta organització." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "La supressió de $ORGANIZATION$ és permanent i irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "S'ha suprimit l'organització" + }, + "organizationDeletedDesc": { + "message": "S'ha suprimit l'organització i totes les dades associades." + }, + "organizationUpdated": { + "message": "S'ha actualitzat l'organització" + }, + "taxInformation": { + "message": "Informació fiscal" + }, + "taxInformationDesc": { + "message": "Poseu-vos en contacte amb el servei d'assistència per proporcionar-vos (o actualitzar) la informació fiscal de les vostres factures." + }, + "billingPlan": { + "message": "Pla", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Canvi de pla", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Actualitzeu el compte a un altre pla proporcionant la informació següent. Assegureu-vos que heu afegit un mètode de pagament actiu al compte.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Factura #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Visualitza factura" + }, + "downloadInvoice": { + "message": "Baixa factura" + }, + "verifyBankAccount": { + "message": "Comproveu compte" + }, + "verifyBankAccountDesc": { + "message": "Hem realitzat dos dipòsits en el vostre compte bancari (pot tardar entre 1-2 dies laborables). Introduïu aquests imports per verificar el compte bancari." + }, + "verifyBankAccountInitialDesc": { + "message": "El pagament amb un compte bancari només està disponible per als clients dels Estats Units. Se us demanarà que verifiqueu el vostre compte bancari. Realitzarem dos micro-dipòsits en els pròxims 1-2 dies laborables. Introduïu aquests imports a la pàgina de facturació de l'organització per verificar el compte bancari." + }, + "verifyBankAccountFailureWarning": { + "message": "Si no es verifica el compte bancari, es produirà un pagament perdut i la vostra subscripció s'inhabilitarà." + }, + "verifiedBankAccount": { + "message": "S'ha verificat el compte bancari." + }, + "bankAccount": { + "message": "Compte bancari" + }, + "amountX": { + "message": "L'import $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Número d'encaminament", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Número de compte" + }, + "accountHolderName": { + "message": "Titular del compte" + }, + "bankAccountType": { + "message": "Tipus de compte" + }, + "bankAccountTypeCompany": { + "message": "Empresa (negocis)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Personal)" + }, + "enterInstallationId": { + "message": "Introduïu la vostra id d'instal·lació" + }, + "limitSubscriptionDesc": { + "message": "Estableix un límit de places per a la teua subscripció. Un vegada s'arribe a aquest límit, no podreu convidar usuaris nous." + }, + "maxSeatLimit": { + "message": "Límit màxim de places (opcional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Cost potencial màxim per plaça" + }, + "addSeats": { + "message": "Afegeix reserves", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Suprimeix llocs", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Els ajustos a la vostra subscripció donaran lloc a canvis prorratejats als vostres totals de facturació. Si els nous usuaris convidats superen les vostres places de subscripció, rebreu immediatament un càrrec prorratejat pels usuaris addicionals." + }, + "subscriptionUserSeats": { + "message": "La vostra subscripció permet un total de $COUNT$ usuaris.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limita la subscripció (opcional)" + }, + "subscriptionSeats": { + "message": "Places de subscripció" + }, + "subscriptionUpdated": { + "message": "S'ha actualitzat la subscripció" + }, + "additionalOptions": { + "message": "Opcions addicionals" + }, + "additionalOptionsDesc": { + "message": "Per obtenir ajuda addicional per gestionar la vostra subscripció, poseu-vos en contacte amb el servei d'atenció al client." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Els ajustos a la vostra subscripció donaran lloc a canvis prorratejats als vostres totals de facturació. Si els nous usuaris convidats superen les vostres places de subscripció, rebreu immediatament un càrrec prorratejat pels usuaris addicionals." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Els ajustaments a la vostra subscripció es traduiran en canvis prorratejats en els vostres totals de facturació. Si els usuaris recentment convidats excedeixen les vostres places de subscripció, rebreu immediatament un càrrec previst dels usuaris addicionals fins que s'aconseguisca arribar al vostre límit de places ($MAX$).", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "No podeu convidar més de $COUNT$ usuaris sense actualitzar el vostre pla.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "No podeu convidar més de $COUNT$ usuaris sense actualitzar el vostre pla. Poseu-vos en contacte amb el servei d'assistència al client per actualitzar.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "La vostra subscripció permet un nombre total de $COUNT$ usuaris. El vostre pla està patrocinat i facturat per una organització externa.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Els ajustos a la vostra subscripció donaran lloc a canvis prorratejats als vostres totals de facturació. No podeu convidar més de $COUNT$ usuaris sense augmentar les vostres places de subscripció.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Reserves a afegir" + }, + "seatsToRemove": { + "message": "Reserves a suprimir" + }, + "seatsAddNote": { + "message": "Si afegiu reserves d'usuari, es generaran ajustos al total de facturació i carregarem el mètode de pagament immediatament al fitxer. El primer càrrec serà prorratejat per a la resta del cicle de facturació actual." + }, + "seatsRemoveNote": { + "message": "Si suprimiut reserves d'usuari, es generaran ajustos al total de facturació que es prorratejaran com a crèdits per al vostre càrrec de facturació següent." + }, + "adjustedSeats": { + "message": "Ajustades $AMOUNT$ reserves d'usuari.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Clau actualitzada" + }, + "updateKeyTitle": { + "message": "Actualitza clau" + }, + "updateEncryptionKey": { + "message": "Actualitzeu la clau de xifratge" + }, + "updateEncryptionKeyShortDesc": { + "message": "Esteu fent servir un esquema de xifrage antiquat." + }, + "updateEncryptionKeyDesc": { + "message": "Hem canviat a claus de xifratge més grans que proporcionen una millor seguretat i accés a característiques més noves. L'actualització de la vostra clau de xifratge és ràpida i senzilla. Només cal que introduïu la vostra contrasenya mestra a continuació. Aquesta actualització es convertirà en obligatòria en qualsevol moment." + }, + "updateEncryptionKeyWarning": { + "message": "Després d'actualitzar la vostra clau de xifratge, heu de tancar la sessió i tornar a entrar a totes les aplicacions de Bitwarden que esteu utilitzant actualment (com ara l'aplicació mòbil o les extensions del navegador). Si no es tanca i torna a iniciar la sessió (la qual descarrega la vostra nova clau de xifratge) pot provocar corrupció en les dades. Intentarem registrar-vos automàticament, però, es pot retardar." + }, + "updateEncryptionKeyExportWarning": { + "message": "Totes les exportacions xifrades que hàgeu desat també seran no vàlides." + }, + "subscription": { + "message": "Subscripció" + }, + "loading": { + "message": "S'està carregant" + }, + "upgrade": { + "message": "Actualitza" + }, + "upgradeOrganization": { + "message": "Actualitza l'organització" + }, + "upgradeOrganizationDesc": { + "message": "Aquesta característica no està disponible per a organitzacions gratuïtes. Canvieu a un pla de pagament per desbloquejar més característiques." + }, + "createOrganizationStep1": { + "message": "Crea l'organització: Pas 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Abans de crear l'organització, primer heu de crear un compte personal gratuït." + }, + "refunded": { + "message": "Reemborsat" + }, + "nothingSelected": { + "message": "No heu seleccionat res." + }, + "acceptPolicies": { + "message": "Si activeu aquesta casella, indiqueu que esteu d’acord amb el següent:" + }, + "acceptPoliciesError": { + "message": "No s’han reconegut les condicions del servei i la declaració de privadesa." + }, + "termsOfService": { + "message": "Condicions del servei" + }, + "privacyPolicy": { + "message": "Política de privacitat" + }, + "filters": { + "message": "Filtres" + }, + "vaultTimeout": { + "message": "Temps d'espera de la caixa forta" + }, + "vaultTimeoutDesc": { + "message": "Trieu quan es tancarà la vostra caixa forta i feu l'acció seleccionada." + }, + "oneMinute": { + "message": "1 minut" + }, + "fiveMinutes": { + "message": "5 Minuts" + }, + "fifteenMinutes": { + "message": "15 minuts" + }, + "thirtyMinutes": { + "message": "30 minuts" + }, + "oneHour": { + "message": "1 hora" + }, + "fourHours": { + "message": "4 hores" + }, + "onRefresh": { + "message": "En actualitzar el navegador" + }, + "dateUpdated": { + "message": "Actualitzat", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Contrasenya actualitzada", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "L'organització està inhabilitada." + }, + "licenseIsExpired": { + "message": "Llicència caducada." + }, + "updatedUsers": { + "message": "Actualitza usuaris" + }, + "selected": { + "message": "Seleccionat" + }, + "ownership": { + "message": "Propietat" + }, + "whoOwnsThisItem": { + "message": "Qui és propietari d'aquest element?" + }, + "strong": { + "message": "Forta", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Bona", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Poc segura", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Molt poc segura", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Contrasenya mestra poc segura" + }, + "weakMasterPasswordDesc": { + "message": "La contrasenya mestra que heu triat és poc segura. Heu d'utilitzar una contrasenya mestra segura (o una frase de pas) per protegir correctament el vostre compte de Bitwarden. Esteu segur que voleu utilitzar aquesta contrasenya mestra?" + }, + "rotateAccountEncKey": { + "message": "Rota també la clau de xifratge del meu compte" + }, + "rotateEncKeyTitle": { + "message": "Rota la clau de xifratge" + }, + "rotateEncKeyConfirmation": { + "message": "Esteu segur que voleu rotar la clau de xifratge del vostre compte?" + }, + "attachmentsNeedFix": { + "message": "Aquest element té fitxers adjunts antics que s'han de corregir." + }, + "attachmentFixDesc": { + "message": "Es tracta d'un arxiu adjunt antic que cal corregir. Feu clic per obtenir més informació." + }, + "fix": { + "message": "Corregeix", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Hi ha arxius adjunts antics a la vostra caixa forta que s'han de corregir abans de poder rotar la clau de xifratge del vostre compte." + }, + "yourAccountsFingerprint": { + "message": "Frase d'empremta digital del vostre compte", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Per assegurar la integritat de les vostres claus de xifratge, comproveu la frase de l'empremta digital de l'usuari abans de continuar.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "No sol·liciteu tornar a comprovar la frase de les empremtes dactilars (No recomanat)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Gratuït", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "Clau de l'API" + }, + "apiKeyDesc": { + "message": "La vostra clau API es pot utilitzar per autenticar-se a l'API pública de Bitwarden." + }, + "apiKeyRotateDesc": { + "message": "La rotació de la clau de l'API invalidarà la clau anterior. Podeu rotar la clau d'API si creu que la clau actual ja no és segura d'utilitzar." + }, + "apiKeyWarning": { + "message": "La clau de l'API té accés total a l'organització. S'ha de mantenir en secret." + }, + "userApiKeyDesc": { + "message": "La vostra clau API es pot utilitzar per autenticar-se al CLI de Bitwarden." + }, + "userApiKeyWarning": { + "message": "La vostra clau API és un mecanisme d'autenticació alternatiu. S’ha de mantenir en secret." + }, + "oauth2ClientCredentials": { + "message": "Credencials de client OAuth 2.0", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Mostra clau de l'API" + }, + "rotateApiKey": { + "message": "Rota la clau de l'API" + }, + "selectOneCollection": { + "message": "Heu d'escollir com a mínim una col·lecció." + }, + "couldNotChargeCardPayInvoice": { + "message": "No hem pogut carregar la vostra targeta. Consulteu i pagueu la factura pendent que es mostra a continuació." + }, + "inAppPurchase": { + "message": "Compra integrada a l'aplicació" + }, + "cannotPerformInAppPurchase": { + "message": "No podeu realitzar aquesta acció mentre feu servir un mètode de pagament de compra a l’aplicació." + }, + "manageSubscriptionFromStore": { + "message": "Heu de gestionar la vostra subscripció des de la botiga on s’ha realitzat la compra a l’aplicació." + }, + "minLength": { + "message": "Longitud mínima" + }, + "clone": { + "message": "Clona" + }, + "masterPassPolicyDesc": { + "message": "Estableix els requisits mínims per al nivell de seguretat de la contrasenya principal." + }, + "twoStepLoginPolicyDesc": { + "message": "Requereix que els usuaris configuren l’inici de sessió en dues passes als seus comptes personals." + }, + "twoStepLoginPolicyWarning": { + "message": "Els membres de l’organització que no tinguen activat l’inici de sessió en dues passes per al seu compte personal s'eliminaran de l’organització i rebran un correu electrònic que els notificarà sobre el canvi." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Eres membre d’una organització que necessita l’inici de sessió en dues passes per estar habilitat al vostre compte d’usuari. Si desactiveu tots els proveïdors d’inici de sessió en dues passes, sereu eliminats automàticament d’aquestes organitzacions." + }, + "passwordGeneratorPolicyDesc": { + "message": "Estableix els requisits mínims per a la configuració del generador de contrasenyes." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Una o més polítiques d’organització afecten la configuració del generador." + }, + "masterPasswordPolicyInEffect": { + "message": "Una o més polítiques d’organització requereixen que la vostra contrasenya principal complisca els requisits següents:" + }, + "policyInEffectMinComplexity": { + "message": "Puntuació mínima de complexitat de $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Longitud mínima de $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Conté un o més caràcters en majúscula" + }, + "policyInEffectLowercase": { + "message": "Conté un o més caràcters en minúscula" + }, + "policyInEffectNumbers": { + "message": "Conté un o més números" + }, + "policyInEffectSpecial": { + "message": "Conté un o més dels següents caràcters especials $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "La nova contrasenya principal no compleix els requisits de la política." + }, + "minimumNumberOfWords": { + "message": "Número mínim de paraules" + }, + "defaultType": { + "message": "Tipus per defecte" + }, + "userPreference": { + "message": "Preferència d'usuari" + }, + "vaultTimeoutAction": { + "message": "Acció del temps d'espera de la caixa forta" + }, + "vaultTimeoutActionLockDesc": { + "message": "Una caixa forta bloquejada requereix que torneu a introduir la contrasenya principal per accedir-ne de nou." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Una caixa forta desconnectada requereix que torneu a autentificar-vos per accedir-hi de nou." + }, + "lock": { + "message": "Bloqueja", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Paperera", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Cerca a la paperera" + }, + "permanentlyDelete": { + "message": "Suprimeix definitivament" + }, + "permanentlyDeleteSelected": { + "message": "Suprimeix definitivament la selecció" + }, + "permanentlyDeleteItem": { + "message": "Suprimeix definitivament l'element" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Esteu segur que voleu suprimir aquest element definitivament?" + }, + "permanentlyDeletedItem": { + "message": "Element suprimit definitivament" + }, + "permanentlyDeletedItems": { + "message": "Elements suprimits definitivament" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Heu seleccionat $COUNT$ elements per suprimir definitivament. Esteu segur que voleu suprimir definitivament tots aquests elements?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Element $ID$ suprimit definitivament.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restaura" + }, + "restoreSelected": { + "message": "Restaura selecció" + }, + "restoreItem": { + "message": "Restaura l'element" + }, + "restoredItem": { + "message": "Element restaurat" + }, + "restoredItems": { + "message": "Elements restaurats" + }, + "restoreItemConfirmation": { + "message": "Esteu segur que voleu restaurar aquest element?" + }, + "restoreItems": { + "message": "Restaura elements" + }, + "restoreSelectedItemsDesc": { + "message": "Heu seleccionat $COUNT$ elements per restaurar. Esteu segur que voleu restaurar tots aquests elements?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Element $ID$ restaurat.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "En tancar la sessió s'eliminarà tot l'accés a la vostra caixa forta i es requerirà una autenticació en línia després del període de temps d'espera. Esteu segur que voleu utilitzar aquesta configuració?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Confirmació de l’acció de temps d'espera de la caixa forta" + }, + "hidePasswords": { + "message": "Amaga contrasenyes" + }, + "countryPostalCodeRequiredDesc": { + "message": "Necessitem aquesta informació només per calcular l’impost de vendes i els informes financers." + }, + "includeVAT": { + "message": "Incloure informació sobre l'IVA i GST (opcional)" + }, + "taxIdNumber": { + "message": "ID de l'impost IVA/GST" + }, + "taxInfoUpdated": { + "message": "Informació fiscal actualitzada." + }, + "setMasterPassword": { + "message": "Estableix la contrasenya mestra" + }, + "ssoCompleteRegistration": { + "message": "Per completar la sessió amb SSO, configureu una contrasenya mestra per accedir i protegir la vostra caixa forta." + }, + "identifier": { + "message": "Identificador" + }, + "organizationIdentifier": { + "message": "Identificador d’organització" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Inicieu la sessió ràpidament mitjançant el portal d'inici de sessió únic de la vostra organització. Introduïu l'identificador de la vostra organització per començar." + }, + "enterpriseSingleSignOn": { + "message": "Inici de sessió únic d'empresa" + }, + "ssoHandOff": { + "message": "Ara podeu tancar aquesta pestanya i continuar a l'extensió." + }, + "includeAllTeamsFeatures": { + "message": "Característiques de tots els equips, a més de:" + }, + "includeSsoAuthentication": { + "message": "Autenticació SSO mitjançant SAML2.0 i OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Polítiques empresarials" + }, + "ssoValidationFailed": { + "message": "La validació SSO ha fallat" + }, + "ssoIdentifierRequired": { + "message": "Cal identificador d’organització." + }, + "unlinkSso": { + "message": "Desenllaça SSO" + }, + "unlinkSsoConfirmation": { + "message": "Esteu segur que voleu desenllaçar SSO per a aquesta organització?" + }, + "linkSso": { + "message": "Enllaça SSO" + }, + "singleOrg": { + "message": "Organització única" + }, + "singleOrgDesc": { + "message": "Restringeix els usuaris perquè no puguen unir-se a qualsevol altra organització." + }, + "singleOrgBlockCreateMessage": { + "message": "La vostra organització actual té una política que no us permet unir-vos a més d'una organització. Poseu-vos en contacte amb els administradors de la vostra organització o registreu-vos des d’un altre compte de Bitwarden." + }, + "singleOrgPolicyWarning": { + "message": "Els membres que no siguen propietaris ni administradors i que ja siguen membres d'una altra organització se suprimiran de la vostra organització." + }, + "requireSso": { + "message": "Autenticació d'inici de sessió únic" + }, + "requireSsoPolicyDesc": { + "message": "Sol·liciteu als usuaris que inicien la sessió amb el mètode d’inici de sessió únic de l’empresa." + }, + "prerequisite": { + "message": "Requisit previ" + }, + "requireSsoPolicyReq": { + "message": "La política empresarial d'una organització única s'ha d'activar abans d'activar aquesta política." + }, + "requireSsoPolicyReqError": { + "message": "La política d'una única organització no està habilitada." + }, + "requireSsoExemption": { + "message": "Els propietaris i administradors d’organitzacions estan exempts de fer complir aquesta política." + }, + "sendTypeFile": { + "message": "Fitxer" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Crea un nou Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edita Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send creat", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Send editat", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send suprimit", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Suprimeix el Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Esteu segur que voleu suprimir aquest Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Quin tipus de Send és aquest?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Data de supressió" + }, + "deletionDateDesc": { + "message": "L'enviament se suprimirà permanentment a la data i hora especificades.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Data de venciment" + }, + "expirationDateDesc": { + "message": "Si s'estableix, l'accés a aquest enviament caducarà en la data i hora especificades.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Recompte màxim d'accés" + }, + "maxAccessCountDesc": { + "message": "Si s’estableix, els usuaris ja no podran accedir a aquest Send una vegada s’assolisca el nombre màxim d’accessos.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Recompte d’accés actual" + }, + "sendPasswordDesc": { + "message": "Opcionalment, necessiteu una contrasenya perquè els usuaris accedisquen a aquest enviament.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Notes privades sobre aquest enviament.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Inhabilitat" + }, + "sendLink": { + "message": "Enllaç Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copia l'enllaç Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Suprimeix la contrasenya" + }, + "removedPassword": { + "message": "Contrasenya suprimida" + }, + "removePasswordConfirmation": { + "message": "Esteu segur que voleu suprimir la contrasenya?" + }, + "hideEmail": { + "message": "Amagueu la meua adreça de correu electrònic als destinataris." + }, + "disableThisSend": { + "message": "Desactiveu aquest enviament perquè ningú no hi puga accedir.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Tots els Send" + }, + "maxAccessCountReached": { + "message": "S'ha assolit el recompte màxim d'accesos", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pendent de supressió" + }, + "expired": { + "message": "Caducat" + }, + "searchSends": { + "message": "Cerca Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Aquest Send està protegit amb una contrasenya. Escriviu la contrasenya següent per continuar.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "No sabeu la contrasenya? Demaneu al remitent la contrasenya necessària per accedir a aquest Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Aquest Send està ocult per defecte. Podeu canviar la seua visibilitat mitjançant el botó següent.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Baixa el fitxer" + }, + "sendAccessUnavailable": { + "message": "L'enviament al qual intenteu accedir no existeix o ja no està disponible.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "No s'ha pogut trobar el fitxer associat a aquest Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "No hi ha cap Send a llistar.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Accés d’emergència" + }, + "emergencyAccessDesc": { + "message": "Concediu i gestioneu l'accés d'emergència per a contactes de confiança. Els contactes de confiança poden sol·licitar accés per Visualitzar o Prendre possessió del vostre compte en cas d’emergència. Visiteu la nostra pàgina d’ajuda per obtenir més informació i detalls sobre com funciona l’intercanvi de coneixement zero." + }, + "emergencyAccessOwnerWarning": { + "message": "Sou propietari d'una o més organitzacions. Si doneu accés a la presa de possessió a un contacte d’emergència, podrà utilitzar tots els vostres permisos com a propietari després." + }, + "trustedEmergencyContacts": { + "message": "Contactes d’emergència de confiança" + }, + "noTrustedContacts": { + "message": "Encara no heu afegit cap contacte d’emergència, convideu un contacte de confiança per començar." + }, + "addEmergencyContact": { + "message": "Afig un contacte d’emergència" + }, + "designatedEmergencyContacts": { + "message": "Designat com a contacte d’emergència" + }, + "noGrantedAccess": { + "message": "Encara no heu sigut designats com a contacte d'emergència per a ningú." + }, + "inviteEmergencyContact": { + "message": "Convida un contacte d’emergència" + }, + "editEmergencyContact": { + "message": "Edita un contacte d’emergència" + }, + "inviteEmergencyContactDesc": { + "message": "Per convidar un contacte d’emergència nou, introduïu l'adreça de correu electrònic del seu compte Bitwarden a continuació. Si encara no tenen compte, se'ls demanarà que en creen un." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Accés d’emergència iniciat" + }, + "emergencyAccessRecoveryApproved": { + "message": "Accés d’emergència aprovat" + }, + "viewDesc": { + "message": "Pot veure tots els elements de la vostra caixa forta." + }, + "takeover": { + "message": "Prendre el control" + }, + "takeoverDesc": { + "message": "Pot restablir el vostre compte amb una nova contrasenya mestra." + }, + "waitTime": { + "message": "Temps d'espera" + }, + "waitTimeDesc": { + "message": "Temps necessari abans de concedir l'accés automàticament." + }, + "oneDay": { + "message": "1 dia" + }, + "days": { + "message": "$DAYS$ dies", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Usuari convidat." + }, + "acceptEmergencyAccess": { + "message": "Se us ha convidat a convertir-vos en un contacte d'emergència per a l'usuari indicat anteriorment. Per acceptar la invitació, heu d’iniciar sessió o crear un compte Bitwarden nou." + }, + "emergencyInviteAcceptFailed": { + "message": "No es pot acceptar la invitació. Demaneu a l'usuari que envie una invitació nova." + }, + "emergencyInviteAcceptFailedShort": { + "message": "No es pot acceptar la invitació. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Podeu accedir a les opcions d’emergència d’aquest usuari després de confirmar la vostra identitat. Us enviarem un correu electrònic quan passe això." + }, + "requestAccess": { + "message": "Sol·liciteu accés" + }, + "requestAccessConfirmation": { + "message": "Esteu segur que voleu sol·licitar accés d'emergència? Se us proporcionarà accés després de $WAITTIME$ dies o sempre que l'usuari aprove la sol·licitud manualment.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "S'ha sol·licitat accés d'emergència per a $USER$. Us notificarem per correu electrònic quan siga possible continuar.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Aprova" + }, + "reject": { + "message": "Rebutja" + }, + "approveAccessConfirmation": { + "message": "Esteu segur que voleu aprovar l'accés d'emergència? Això permetrà a $USER$ a $ACTION$ el vostre compte.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Accés d’emergència aprovat." + }, + "emergencyRejected": { + "message": "Accés d’emergència rebutjat" + }, + "passwordResetFor": { + "message": "Restabliment de la contrasenya per a $USER$. Ara podeu iniciar la sessió amb la nova contrasenya.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Propietat personal" + }, + "personalOwnershipPolicyDesc": { + "message": "Sol·liciteu als usuaris que guarden elements de caixa forta a una organització suprimint l’opció de propietat personal." + }, + "personalOwnershipExemption": { + "message": "Els propietaris i administradors d’organitzacions estan exempts de fer complir aquesta política." + }, + "personalOwnershipSubmitError": { + "message": "A causa d'una política empresarial, no podeu guardar elements a la vostra caixa forta personal. Canvieu l'opció Propietat en organització i trieu entre les col·leccions disponibles." + }, + "disableSend": { + "message": "Desactiva Send" + }, + "disableSendPolicyDesc": { + "message": "No permeteu als usuaris crear o editar un Send Bitwarden. Es permet suprimir un Send existent.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Els usuaris de l’organització que poden gestionar les polítiques d'aquesta, estan exempts de la seua aplicació." + }, + "sendDisabled": { + "message": "Send desactivat", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "A causa d'una política empresarial, només podeu suprimir un Send existent.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Opcions de Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Establiu opcions per crear i editar Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Els usuaris de l’organització que poden gestionar les polítiques d'aquesta, estan exempts de la seua aplicació." + }, + "disableHideEmail": { + "message": "No permeteu que els usuaris amaguen la seua adreça de correu electrònic dels destinataris en crear o editar un Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Actualment estan en vigor les polítiques organitzatives següents:" + }, + "sendDisableHideEmailInEffect": { + "message": "No es permet als usuaris amagar la seua adreça de correu electrònic dels destinataris en crear o editar un Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Política modificada $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Preu del pla" + }, + "estimatedTax": { + "message": "Impost estimat" + }, + "custom": { + "message": "Personalitzat" + }, + "customDesc": { + "message": "Permet un control més granular dels permisos d'usuari per a configuracions avançades." + }, + "permissions": { + "message": "Permisos" + }, + "accessEventLogs": { + "message": "Registres d'esdeveniments dels accessos" + }, + "accessImportExport": { + "message": "Importació/exportació dels accessos" + }, + "accessReports": { + "message": "Informes d’accés" + }, + "missingPermissions": { + "message": "No teniu permisos per realitzar aquesta acció." + }, + "manageAllCollections": { + "message": "Administra totes les col·leccions" + }, + "createNewCollections": { + "message": "Crea noves col·leccions" + }, + "editAnyCollection": { + "message": "Edita alguna col·lecció" + }, + "deleteAnyCollection": { + "message": "Suprimeix alguna la col·lecció" + }, + "manageAssignedCollections": { + "message": "Administra les col·leccions assignades" + }, + "editAssignedCollections": { + "message": "Edita col·leccions asignades" + }, + "deleteAssignedCollections": { + "message": "Suprimeix col·leccions asignades" + }, + "manageGroups": { + "message": "Administra els Grups" + }, + "managePolicies": { + "message": "Administra les Polítiques" + }, + "manageSso": { + "message": "Administra SSO" + }, + "manageUsers": { + "message": "Administra usuaris" + }, + "manageResetPassword": { + "message": "Gestiona el restabliment de la contrasenya" + }, + "disableRequiredError": { + "message": "Heu de desactivar manualment la política $POLICYNAME$ abans que aquesta política es puga desactivar.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "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." + }, + "personalOwnershipCheckboxDesc": { + "message": "Desactiva la propietat personal per als usuaris de l'organització" + }, + "textHiddenByDefault": { + "message": "Quan accediu a Enviar, amaga el text per defecte", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Un nom apropiat per descriure aquest Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "El text que voleu enviar." + }, + "sendFileDesc": { + "message": "El fitxer que voleu enviar." + }, + "copySendLinkOnSave": { + "message": "Copie l'enllaç per compartir aquest Send al meu porta-retalls després de guardar-lo." + }, + "sendLinkLabel": { + "message": "Enllaç Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmet informació confidencial i temporal a altres persones de forma fàcil i segura.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Més informació sobre", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Comparteix text o fitxers directament amb qualsevol persona." + }, + "sendVaultCardLearnMore": { + "message": "Més informació", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "veure", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "com funciona", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "o", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "prova-ho ara", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "o", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "registra't", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "per provar-ho hui.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "L'usuari bitwarden $USER_IDENTIFIER$ ha compartit el següent amb vosaltres", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "L'usuari Bitwarden que ha creat aquest Send ha decidit amagar la seua adreça de correu electrònic. Heu d’assegurar-vos que confieu en la font d’aquest enllaç abans d’utilitzar o descarregar el seu contingut.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "La data de caducitat proporcionada no és vàlida." + }, + "deletionDateIsInvalid": { + "message": "La data de supressió proporcionada no és vàlida." + }, + "expirationDateAndTimeRequired": { + "message": "Requereix una data i hora de caducitat." + }, + "deletionDateAndTimeRequired": { + "message": "Requereix una data i hora de supressió." + }, + "dateParsingError": { + "message": "S'ha produït un error en guardar les dates de supressió i caducitat." + }, + "webAuthnFallbackMsg": { + "message": "Per verificar el vostre 2FA, feu clic al botó següent." + }, + "webAuthnAuthenticate": { + "message": "Autenticar WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn no és compatible amb aquest navegador." + }, + "webAuthnSuccess": { + "message": "WebAuthn s'ha verificat correctament! Podeu tancar aquesta pestanya." + }, + "hintEqualsPassword": { + "message": "El vostre suggeriment de contrasenya no pot ser el mateix que la vostra contrasenya." + }, + "enrollPasswordReset": { + "message": "Inscriviu-vos al restabliment de contrasenya" + }, + "enrolledPasswordReset": { + "message": "Inscrit al restabliment de contrasenya" + }, + "withdrawPasswordReset": { + "message": "Retireu-vos del restabliment de contrasenya" + }, + "enrollPasswordResetSuccess": { + "message": "Inscrit correctament!" + }, + "withdrawPasswordResetSuccess": { + "message": "Retirat correctament!" + }, + "eventEnrollPasswordReset": { + "message": "L'usuari $ID$ està inscrit a l'assistència per restablir la contrasenya.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "L'usuari $ID$ s'ha retirat de l'assistència per restablir la contrasenya.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Restabliment de la contrasenya mestra per a l'usuari $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Restableix l'enllaç SSO per a l'usuari $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ connectat a SSO per primera vegada", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Restableix la contrasenya" + }, + "resetPasswordLoggedOutWarning": { + "message": "En continuar, es tancarà $NAME$ de la sessió actual, cosa que requereix que torneu a iniciar la sessió. Les sessions actives en altres dispositius poden continuar estant actives fins a una hora.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "aquest usuari" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Una o més polítiques d’organització requereixen que la vostra contrasenya principal complisca els requisits següents:" + }, + "resetPasswordSuccess": { + "message": "S'ha restablert la contrasenya correctament!" + }, + "resetPasswordEnrollmentWarning": { + "message": "La inscripció permetrà als administradors de l’organització canviar la vostra contrasenya mestra. Esteu segur que voleu inscriure-vos?" + }, + "resetPasswordPolicy": { + "message": "Restabliment de la contrasenya mestra" + }, + "resetPasswordPolicyDescription": { + "message": "Permetre als administradors de l'organització restablir la contrasenya mestra dels seus usuaris." + }, + "resetPasswordPolicyWarning": { + "message": "Els usuaris de l’organització hauran de registrar-se o ser registrats abans que els administradors puguen restablir la seua contrasenya mestra." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Inscripció automàtica" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Una vegada s'accepte la invitació, tots els usuaris s'inscriuran automàticament al restabliment de la contrasenya." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Els usuaris que ja formen part de l’organització no s’inscriuran retroactivament al restabliment de la contrasenya. Hauran de registrar-se abans que els administradors puguen restablir la seua contrasenya mestra." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Inscriviu automàticament usuaris nous" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Aquesta organització té una política empresarial que us inscriurà automàticament al restabliment de la contrasenya. La inscripció permetrà als administradors de l’organització canviar la vostra contrasenya mestra." + }, + "resetPasswordOrgKeysError": { + "message": "La resposta de les claus d’organització és nul·la" + }, + "resetPasswordDetailsError": { + "message": "La resposta Restableix detalls de contrasenya és nul·la" + }, + "trashCleanupWarning": { + "message": "Els elements que porten més de 30 dies a la paperera se suprimiran automàticament." + }, + "trashCleanupWarningSelfHosted": { + "message": "Els elements que porten un temps a la paperera se suprimiran automàticament." + }, + "passwordPrompt": { + "message": "Sol·licitud de la contrasenya mestra" + }, + "passwordConfirmation": { + "message": "Confirmació de la contrasenya mestra" + }, + "passwordConfirmationDesc": { + "message": "Aquesta acció està protegida. Per continuar, torneu a introduir la contrasenya principal per verificar la vostra identitat." + }, + "reinviteSelected": { + "message": "Tornar a enviar invitacions" + }, + "noSelectedUsersApplicable": { + "message": "Aquesta acció no és aplicable a cap dels usuaris seleccionats." + }, + "removeUsersWarning": { + "message": "Esteu segur que voleu eliminar els usuaris següents? El procés pot tardar uns segons a completar-se i no es pot interrompre ni cancel·lar." + }, + "theme": { + "message": "Tema" + }, + "themeDesc": { + "message": "Trieu el tema per a la caixa forta." + }, + "themeSystem": { + "message": "Utilitza tema del sistema" + }, + "themeDark": { + "message": "Fosc" + }, + "themeLight": { + "message": "Clar" + }, + "confirmSelected": { + "message": "Confirma la selecció" + }, + "bulkConfirmStatus": { + "message": "Estat de l'acció en bloc" + }, + "bulkConfirmMessage": { + "message": "Confirmat correctament." + }, + "bulkReinviteMessage": { + "message": "Reconvidat correctament." + }, + "bulkRemovedMessage": { + "message": "Suprimit correctament" + }, + "bulkFilteredMessage": { + "message": "Exclòs, no aplicable per a aquesta acció." + }, + "fingerprint": { + "message": "Empremta digital" + }, + "removeUsers": { + "message": "Suprimeix usuaris" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "L'administració d'usuaris també ha d'estar habilitada amb el permís de l'administració de restabliment de contrasenyes" + }, + "setupProvider": { + "message": "Configuració del proveïdor" + }, + "setupProviderLoginDesc": { + "message": "T'han convidat a configurar un proveïdor nou. Per continuar, heu d'iniciar sessió o crear un nou compte de Bitwarden." + }, + "setupProviderDesc": { + "message": "Introduïu els detalls a continuació per completar la configuració del proveïdor. Poseu-vos en contacte amb el servei d'atenció al client si teniu cap pregunta." + }, + "providerName": { + "message": "Nom del proveïdor" + }, + "providerSetup": { + "message": "S'ha configurat el proveïdor." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Administrador del proveïdor" + }, + "providerAdminDesc": { + "message": "L'usuari amb el màxim accés que pot gestionar tots els aspectes del vostre proveïdor, així com accedir i gestionar organitzacions de clients." + }, + "serviceUser": { + "message": "Usuari del servei" + }, + "serviceUserDesc": { + "message": "Els usuaris del servei poden accedir i gestionar totes les organitzacions client." + }, + "providerInviteUserDesc": { + "message": "Convida un nou usuari a la vostra organització introduint l'adreça electrònica del compte de Bitwarden a continuació. Si encara no tenen un compte de Bitwarden, se us demanarà que creeu un compte nou." + }, + "joinProvider": { + "message": "Uniu-vos al proveïdor" + }, + "joinProviderDesc": { + "message": "Heu estat convidat a unir-vos al proveïdor llistat més amunt. Per acceptar la invitació, heu d'iniciar sessió o crear un compte nou a Bitwarden." + }, + "providerInviteAcceptFailed": { + "message": "No es pot acceptar la invitació. Demaneu a l'administrador d'una organització que envie una invitació nova." + }, + "providerInviteAcceptedDesc": { + "message": "Podeu accedir a aquesta organització una vegada que un administrador confirme la vostra pertinença. Rebreu un correu electrònic quan això passe." + }, + "providerUsersNeedConfirmed": { + "message": "Teniu usuaris que han acceptat la seua invitació, però encara cal confirmar-la. Els usuaris no tindran accés al proveïdor fins que estiguen confirmats." + }, + "provider": { + "message": "Proveïdor" + }, + "newClientOrganization": { + "message": "Nova organització de clients" + }, + "newClientOrganizationDesc": { + "message": "Creeu una nova organització client que s'associarà amb vosaltres com a proveïdor. Podreu accedir i gestionar aquesta organització." + }, + "addExistingOrganization": { + "message": "Afig organització existent" + }, + "myProvider": { + "message": "El meu proveïdor" + }, + "addOrganizationConfirmation": { + "message": "Esteu segur que voleu afegir $ORGANIZATION$ com a client a $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "L'organització s'ha afegit correctament al proveïdor" + }, + "accessingUsingProvider": { + "message": "Accedeix a l'organització mitjançant el proveïdor $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "S'ha inhabilitat el proveïdor." + }, + "providerUpdated": { + "message": "S'ha actualitzat el proveïdor" + }, + "yourProviderIs": { + "message": "El vostre proveïdor és $PROVIDER$. Tenen privilegis administratius i de facturació en la vostra organització.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "L'organització $ORGANIZATION$ ha estat separada del vostre proveïdor.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Esteu segur que voleu separar aquesta organització? L'organització continuarà existint, però ja no serà gestionada pel proveïdor." + }, + "add": { + "message": "Afig" + }, + "updatedMasterPassword": { + "message": "Contrasenya mestra actualitzada" + }, + "updateMasterPassword": { + "message": "Actualitza contrasenya mestra" + }, + "updateMasterPasswordWarning": { + "message": "Un administrador de l'organització ha canviat recentment la contrasenya principal. Per accedir a la caixa forta, heu d'actualitzar-la ara. Si continueu, es tancarà la sessió actual i heu de tornar a iniciar-la. És possible que les sessions obertes en altres dispositius continuen actives fins a una hora." + }, + "masterPasswordInvalidWarning": { + "message": "La vostra contrasenya mestra no compleix els requisits de la política d'aquesta organització. Per unir-te a l'organització, has d'actualitzar la teua contrasenya mestra ara. Si continueu, es tancarà la sessió de la vostra sessió actual i us demanarà que torneu a iniciar sessió. Les sessions actives en altres dispositius poden continuar romanent actives fins a una hora." + }, + "maximumVaultTimeout": { + "message": "Temps d'espera de la caixa forta" + }, + "maximumVaultTimeoutDesc": { + "message": "Configureu un temps d'espera màxima a la caixa forta per a tots els usuaris." + }, + "maximumVaultTimeoutLabel": { + "message": "Temps d'espera màxima a la caixa forta" + }, + "invalidMaximumVaultTimeout": { + "message": "Temps d'espera màxima a la caixa forta no vàlid." + }, + "hours": { + "message": "Hores" + }, + "minutes": { + "message": "Minuts" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Les polítiques de l'organització afecten el temps d'espera de la caixa forta. El temps d'espera màxim permès d'aquesta és de $HOURS$ hores i $MINUTES$ minuts", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Temps d'espera a la caixa forta personalitzat" + }, + "vaultTimeoutToLarge": { + "message": "El temps d'espera de la caixa forta supera les restriccions establertes per la vostra organització." + }, + "disablePersonalVaultExport": { + "message": "Inhabilita l'exportació de la caixa forta personal" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibeix als usuaris exportar les dades de la seua caixa forta privada." + }, + "vaultExportDisabled": { + "message": "L'exportació de la caixa forta està inhabilitada" + }, + "personalVaultExportPolicyInEffect": { + "message": "Una o més polítiques d'organització us impedeixen exportar la vostra caixa forta." + }, + "selectType": { + "message": "Selecciona el tipus d'SSO" + }, + "type": { + "message": "Tipus" + }, + "openIdConnectConfig": { + "message": "Configuració OpenID Connect" + }, + "samlSpConfig": { + "message": "Configuració del proveïdor de serveis SAML" + }, + "samlIdpConfig": { + "message": "Configuració del proveïdor d'identitats SAML" + }, + "callbackPath": { + "message": "Camí de retorn de trucada" + }, + "signedOutCallbackPath": { + "message": "Ruta de devolució de trucada tancada" + }, + "authority": { + "message": "Autoritat" + }, + "clientId": { + "message": "ID de Client" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Adreça de metadades" + }, + "oidcRedirectBehavior": { + "message": "Comportament de redirecció OIDC" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Obteniu reclamacions del punt final d'informació d'usuari" + }, + "additionalScopes": { + "message": "Àmbits personalitzats" + }, + "additionalUserIdClaimTypes": { + "message": "Tipus de reclamació d'ID d'usuaris personalitzats" + }, + "additionalEmailClaimTypes": { + "message": "Tipus de reclamació de correu electrònic" + }, + "additionalNameClaimTypes": { + "message": "Tipus de reclamació de noms personalitzats" + }, + "acrValues": { + "message": "Valors de referència de classe de context d'autenticació sol·licitats" + }, + "expectedReturnAcrValue": { + "message": "Valor esperat de la reclamació \"acr\" en resposta" + }, + "spEntityId": { + "message": "ID de l'entitat SP" + }, + "spMetadataUrl": { + "message": "URL de metadades SAML 2.0" + }, + "spAcsUrl": { + "message": "URL del Servei de Consum d'Assercions (ACS)" + }, + "spNameIdFormat": { + "message": "Format de l'ID del nom" + }, + "spOutboundSigningAlgorithm": { + "message": "Algoritme de signatura d'eixida" + }, + "spSigningBehavior": { + "message": "Comportament de signatura" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Algoritme de signatura entrant mínim" + }, + "spWantAssertionsSigned": { + "message": "Espereu les afirmacions signades" + }, + "spValidateCertificates": { + "message": "Valida certificats" + }, + "idpEntityId": { + "message": "Identificador de l'entitat" + }, + "idpBindingType": { + "message": "Tipus de vinculació" + }, + "idpSingleSignOnServiceUrl": { + "message": "URL del servei d'inici de sessió únic" + }, + "idpSingleLogoutServiceUrl": { + "message": "URL del servei de tancament de sessió únic" + }, + "idpX509PublicCert": { + "message": "Certificat públic X509" + }, + "idpOutboundSigningAlgorithm": { + "message": "Algoritme de signatura d'eixida" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Permet la resposta d'autenticació no sol·licitada" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Permet sol·licituds de tancament de sessió" + }, + "idpSignAuthenticationRequests": { + "message": "Signa sol·licituds d'autenticació" + }, + "ssoSettingsSaved": { + "message": "S'ha guardat la configuració de l'inici de sessió únic." + }, + "sponsoredFamilies": { + "message": "Famílies Bitwarden gratuït" + }, + "sponsoredFamiliesEligible": { + "message": "Tu i la teua família sou elegibles per a famílies Bitwarden gratuït. Bescanvia amb el correu electrònic personal per mantenir les dades segures fins i tot quan no esteu a la feina." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Bescanvia el teu pla gratuït de Bitwarden per a famílies hui mateix per mantenir les teues dades segures fins i tot quan no estigues a la feina." + }, + "sponsoredFamiliesInclude": { + "message": "El pla Bitwarden per a Families inclou" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Accés premium fins a 6 usuaris" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Col·leccions compartides de Secrets familiars" + }, + "badToken": { + "message": "L'enllaç ja no és vàlid. Fes que el patrocinador torne a enviar l'oferta." + }, + "reclaimedFreePlan": { + "message": "Pla gratuït recuperat" + }, + "redeem": { + "message": "Bescanvia" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Seleccioneu l'organització que voleu patrocinar" + }, + "familiesSponsoringOrgSelect": { + "message": "Quina oferta de Famílies gratuïtes t'agradaria bescanviar?" + }, + "sponsoredFamiliesEmail": { + "message": "Introduïu el vostre correu electrònic personal per bescanviar Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Si deixeu l'organització patrocinadora o us elimineu, el vostre pla Families caducarà al final del període de facturació." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accepteu l'oferta d'una organització existent o creeu una nova organització de Famílies." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Us han oferit una organització gratuïta del pla de famílies de Bitwarden. Per continuar, heu d'iniciar sessió al compte que ha rebut l'oferta." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "No es pot acceptar l'oferta. Torneu a enviar el correu electrònic de l'oferta des del vostre compte d'empresa i torneu-ho a provar." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "No es pot acceptar l'oferta. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accepta Famílies Bitwarden gratuït" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "L'oferta gratuïta de Bitwarden Famílies s'ha bescanviat correctament" + }, + "redeemed": { + "message": "Bescanviat" + }, + "redeemedAccount": { + "message": "Compte bescanviat" + }, + "revokeAccount": { + "message": "Revoca el compte $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Torna a enviar el correu electrònic de patrocini al patrocinador $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Pla Famílies Gratuït" + }, + "redeemNow": { + "message": "Bescanvia ara" + }, + "recipient": { + "message": "Destinatari" + }, + "removeSponsorship": { + "message": "Suprimeix el patrocini" + }, + "removeSponsorshipConfirmation": { + "message": "Després de suprimir un patrocini, seràs responsable d'aquesta subscripció i de les factures relacionades. Esteu segur que voleu continuar?" + }, + "sponsorshipCreated": { + "message": "S'ha creat un patrocini" + }, + "revoke": { + "message": "Revoca" + }, + "emailSent": { + "message": "Correu electrònic enviat" + }, + "revokeSponsorshipConfirmation": { + "message": "Després de suprimir aquest compte, el propietari de l'organització Families serà responsable d'aquesta subscripció i de les factures relacionades. Esteu segur que voleu continuar?" + }, + "removeSponsorshipSuccess": { + "message": "S'ha suprimit el patrocini" + }, + "ssoKeyConnectorUnavailable": { + "message": "No es pot arribar al connector de claus, torneu-ho a provar més tard." + }, + "keyConnectorUrl": { + "message": "URL del connector de claus" + }, + "sendVerificationCode": { + "message": "Envia un codi de verificació al correu electrònic" + }, + "sendCode": { + "message": "Envia codi" + }, + "codeSent": { + "message": "Codi enviat" + }, + "verificationCode": { + "message": "Codi de verificació" + }, + "confirmIdentity": { + "message": "Confirmeu la vostra identitat per continuar." + }, + "verificationCodeRequired": { + "message": "El codi de verificació és obligatori." + }, + "invalidVerificationCode": { + "message": "Codi de verificació no vàlid" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ està utilitzant SSO amb un servidor autoallotjat de claus. Ja no es requereix una contrasenya mestra d'inici de sessió per als membres d'aquesta organització.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Abandona l'organització" + }, + "removeMasterPassword": { + "message": "Suprimiu la contrasenya mestra" + }, + "removedMasterPassword": { + "message": "S'ha suprimit la contrasenya mestra." + }, + "allowSso": { + "message": "Permetre l'autenticació SSO" + }, + "allowSsoDesc": { + "message": "Una vegada configurat, es guardarà la configuració i els membres podran autenticar-se utilitzant les seues credencials de proveïdor d'identitat." + }, + "ssoPolicyHelpStart": { + "message": "Habilita la", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "Política d'autenticació SSO", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "per obligar que tots els membres inicien la sessió amb SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "Les polítiques d'autenticació SSO i d'organització única són necessàries per configurar el desxifrat del connector de claus." + }, + "memberDecryptionOption": { + "message": "Opcions de desxifrat de membres" + }, + "memberDecryptionPassDesc": { + "message": "Un vegada autenticats, els membres desxifraran les dades de la caixa forta amb les seues contrasenyes mestres." + }, + "keyConnector": { + "message": "Connector de claus" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connecteu l'inici de sessió amb SSO al vostre servidor de claus de desxifrat autoallotjat. Amb aquesta opció, els membres no hauran d'utilitzar les seues contrasenyes mestres per desxifrar les dades de la caixa forta. Poseu-vos en contacte amb l'assistència de Bitwarden per obtenir ajuda per a la configuració." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Inici de sessió amb SSO i desxifrat del connector de claus\" està habilitat. Aquesta política només s'aplicarà als propietaris i administradors." + }, + "enabledSso": { + "message": "SSO habilitat" + }, + "disabledSso": { + "message": "SSO inhabilitat" + }, + "enabledKeyConnector": { + "message": "Connector de claus habilitat" + }, + "disabledKeyConnector": { + "message": "Connector de claus inhabilitat" + }, + "keyConnectorWarning": { + "message": "Una vegada els membres comencen a utilitzarel connector de claus, la vostra organització no pot tornar al desxifrat de la contrasenya mestra. Continueu només si us sentiu còmode implementant i gestionant un servidor de claus." + }, + "migratedKeyConnector": { + "message": "S'ha migrat al connector claus" + }, + "paymentSponsored": { + "message": "Proporcioneu una forma de pagament per associar-vos amb l'organització. No us preocupeu, no us cobrarem res tret que seleccioneu característiques addicionals o el vostre patrocini caduque. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "L'oferta de patrocini ha caducat. Podeu suprimir l'organització que heu creat per evitar un càrrec al final de la vostra prova de 7 dies. En cas contrari, podeu tancar aquest missatge per mantenir l'organització i assumir la responsabilitat de la facturació." + }, + "newFamiliesOrganization": { + "message": "Nova organització de famílies" + }, + "acceptOffer": { + "message": "Accepta l'oferta" + }, + "sponsoringOrg": { + "message": "Organització patrocinadora" + }, + "keyConnectorTest": { + "message": "Prova" + }, + "keyConnectorTestSuccess": { + "message": "Correcte! S'ha arribat al connector clau." + }, + "keyConnectorTestFail": { + "message": "No es pot arribar al connector de claus. Comproveu l'URL." + }, + "sponsorshipTokenHasExpired": { + "message": "L'oferta de patrocini ha caducat." + }, + "freeWithSponsorship": { + "message": "GRATUÏT amb patrocini" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ camps de dalt necessiten la vostra atenció.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 camp de dalt necessita la vostra atenció." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ és obligatori.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "requerit" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Requerit si l'identificador d'entitat no és un URL." + }, + "openIdOptionalCustomizations": { + "message": "Personalització opcional" + }, + "openIdAuthorityRequired": { + "message": "Requerit si l'autoritat no és vàlida." + }, + "separateMultipleWithComma": { + "message": "Separa múltiples amb una coma." + }, + "sessionTimeout": { + "message": "La sessió ha expirat. Torneu arrere i proveu d'iniciar sessió de nou." + }, + "exportingPersonalVaultTitle": { + "message": "S'està exportant la caixa forta personal" + }, + "exportingOrganizationVaultTitle": { + "message": "S'està exportant la caixa forta de l’organització" + }, + "exportingPersonalVaultDescription": { + "message": "Només s'exportaran els elements personals de la caixa forta associats a $EMAIL$. Els elements de la caixa forta de l'organització no s'inclouran.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Només s'exportaran els elements personals de la caixa forta associats a $ORGANIZATION$. Els elements de la caixa forta personal no s'inclouran.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Torna als informes" + }, + "generator": { + "message": "Generador" + }, + "whatWouldYouLikeToGenerate": { + "message": "Què voleu generar?" + }, + "passwordType": { + "message": "Tipus de contrasenya" + }, + "regenerateUsername": { + "message": "Regenera el nom d'usuari" + }, + "generateUsername": { + "message": "Genera un nom d'usuari" + }, + "usernameType": { + "message": "Tipus de nom d'usuari" + }, + "plusAddressedEmail": { + "message": "Adreça amb sufix", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Aleatori" + }, + "randomWord": { + "message": "Paraula aleatòria" + }, + "service": { + "message": "Servei" + } +} diff --git a/apps/web/src/locales/cs/messages.json b/apps/web/src/locales/cs/messages.json new file mode 100644 index 0000000000..d159e9cbde --- /dev/null +++ b/apps/web/src/locales/cs/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "Webový trezor $APP_NAME$", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "O jaký typ položky se jedná?" + }, + "name": { + "message": "Název" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Nová URI" + }, + "username": { + "message": "Uživatelské jméno" + }, + "password": { + "message": "Heslo" + }, + "newPassword": { + "message": "Nové heslo" + }, + "passphrase": { + "message": "Heslová fráze" + }, + "notes": { + "message": "Poznámky" + }, + "customFields": { + "message": "Vlastní pole" + }, + "cardholderName": { + "message": "Jméno držitele karty" + }, + "number": { + "message": "Číslo" + }, + "brand": { + "message": "Značka" + }, + "expiration": { + "message": "Expirace" + }, + "securityCode": { + "message": "Bezpečnostní kód (CVV)" + }, + "identityName": { + "message": "Název identity" + }, + "company": { + "message": "Firma" + }, + "ssn": { + "message": "Číslo sociálního pojištění" + }, + "passportNumber": { + "message": "Číslo cestovního pasu" + }, + "licenseNumber": { + "message": "Číslo dokladu totožnosti" + }, + "email": { + "message": "E-mail" + }, + "phone": { + "message": "Telefon" + }, + "january": { + "message": "Leden" + }, + "february": { + "message": "Únor" + }, + "march": { + "message": "Březen" + }, + "april": { + "message": "Duben" + }, + "may": { + "message": "Květen" + }, + "june": { + "message": "Červen" + }, + "july": { + "message": "Červenec" + }, + "august": { + "message": "Srpen" + }, + "september": { + "message": "Září" + }, + "october": { + "message": "Říjen" + }, + "november": { + "message": "Listopad" + }, + "december": { + "message": "Prosinec" + }, + "title": { + "message": "Oslovení" + }, + "mr": { + "message": "Pan" + }, + "mrs": { + "message": "Paní" + }, + "ms": { + "message": "Slečna" + }, + "dr": { + "message": "MUDr" + }, + "expirationMonth": { + "message": "Měsíc expirace" + }, + "expirationYear": { + "message": "Rok expirace" + }, + "authenticatorKeyTotp": { + "message": "Autentizační klíč (TOTP)" + }, + "folder": { + "message": "Složka" + }, + "newCustomField": { + "message": "Nové vlastní pole" + }, + "value": { + "message": "Hodnota" + }, + "dragToSort": { + "message": "Přetáhnutím seřadíte" + }, + "cfTypeText": { + "message": "Text" + }, + "cfTypeHidden": { + "message": "Skryté" + }, + "cfTypeBoolean": { + "message": "Ano/Ne" + }, + "cfTypeLinked": { + "message": "Propojeno", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Smazat" + }, + "unassigned": { + "message": "Nepřiřazené" + }, + "noneFolder": { + "message": "Žádná složka", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Přidat složku" + }, + "editFolder": { + "message": "Upravit složku" + }, + "baseDomain": { + "message": "Základní doména", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Přesně" + }, + "startsWith": { + "message": "Začíná na" + }, + "regEx": { + "message": "Regulární výraz", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Zjišťování shody", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Výchozí", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Nikdy" + }, + "toggleVisibility": { + "message": "Přepnout viditelnost" + }, + "toggleCollapse": { + "message": "Přepnout sbalení", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Vygenerovat heslo" + }, + "checkPassword": { + "message": "Zkontrolujte, zda nedošlo k úniku hesla." + }, + "passwordExposed": { + "message": "K úniku tohoto hesla došlo celkem $VALUE$x. Měli byste jej změnit.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "K úniku tohoto hesla nedošlo v žádném ze známých případů. Mělo by být bezpečné používat jej i nadále." + }, + "save": { + "message": "Uložit" + }, + "cancel": { + "message": "Zrušit" + }, + "canceled": { + "message": "Zrušeno" + }, + "close": { + "message": "Zavřít" + }, + "delete": { + "message": "Smazat" + }, + "favorite": { + "message": "Oblíbené" + }, + "unfavorite": { + "message": "Odebrat z oblízených" + }, + "edit": { + "message": "Upravit" + }, + "searchCollection": { + "message": "Vyhledat v kolekci" + }, + "searchFolder": { + "message": "Vyhledat ve složce" + }, + "searchFavorites": { + "message": "Vyhledat v oblíbených" + }, + "searchType": { + "message": "Vyhledat v typu", + "description": "Search item type" + }, + "searchVault": { + "message": "Vyhledat v trezoru" + }, + "allItems": { + "message": "Všechny položky" + }, + "favorites": { + "message": "Oblíbené" + }, + "types": { + "message": "Typy" + }, + "typeLogin": { + "message": "Přihlášení" + }, + "typeCard": { + "message": "Karta" + }, + "typeIdentity": { + "message": "Identita" + }, + "typeSecureNote": { + "message": "Poznámka" + }, + "typeLoginPlural": { + "message": "Přihlašovací údaje" + }, + "typeCardPlural": { + "message": "Karty" + }, + "typeIdentityPlural": { + "message": "Identity" + }, + "typeSecureNotePlural": { + "message": "Zabezpečené poznámky" + }, + "folders": { + "message": "Složky" + }, + "collections": { + "message": "Kolekce" + }, + "firstName": { + "message": "Jméno" + }, + "middleName": { + "message": "Druhé jméno" + }, + "lastName": { + "message": "Příjmení" + }, + "fullName": { + "message": "Celé jméno" + }, + "address1": { + "message": "Adresa 1" + }, + "address2": { + "message": "Adresa 2" + }, + "address3": { + "message": "Adresa 3" + }, + "cityTown": { + "message": "Město" + }, + "stateProvince": { + "message": "Kraj / Provincie" + }, + "zipPostalCode": { + "message": "PSČ" + }, + "country": { + "message": "Stát" + }, + "shared": { + "message": "Sdílené" + }, + "attachments": { + "message": "Přílohy" + }, + "select": { + "message": "Vybrat" + }, + "addItem": { + "message": "Přidat položku" + }, + "editItem": { + "message": "Upravit položku" + }, + "viewItem": { + "message": "Zobrazit položku" + }, + "ex": { + "message": "např.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Ostatní" + }, + "share": { + "message": "Sdílet" + }, + "moveToOrganization": { + "message": "Přesunout do organizace" + }, + "valueCopied": { + "message": "$VALUE$ zkopírováno", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Zkopírovat hodnotu", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Kopírovat heslo", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Kopírovat uživatelské jméno", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Kopírovat číslo", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Kopírovat bezpečnostní kód", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Kopírovat URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Můj trezor" + }, + "vault": { + "message": "Trezor" + }, + "moveSelectedToOrg": { + "message": "Přesunout vybrané do organizace" + }, + "deleteSelected": { + "message": "Smazat vybrané" + }, + "moveSelected": { + "message": "Přesunout vybrané" + }, + "selectAll": { + "message": "Vybrat vše" + }, + "unselectAll": { + "message": "Zrušit výběr" + }, + "launch": { + "message": "Spustit" + }, + "newAttachment": { + "message": "Přidat přílohu" + }, + "deletedAttachment": { + "message": "Příloha byla smazána." + }, + "deleteAttachmentConfirmation": { + "message": "Opravdu chcete tuto přílohu smazat?" + }, + "attachmentSaved": { + "message": "Příloha byla uložena" + }, + "file": { + "message": "Soubor" + }, + "selectFile": { + "message": "Vybrat soubor." + }, + "maxFileSize": { + "message": "Maximální velikost souboru je 500 MB." + }, + "updateKey": { + "message": "Tuto funkci nemůžete použít dokud neaktualizujete svůj šifrovací klíč." + }, + "addedItem": { + "message": "Položka byla přidána" + }, + "editedItem": { + "message": "Položka byla upravena" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ přesunut do $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Vybrané položky přesunuty do $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Smazat položku" + }, + "deleteFolder": { + "message": "Smazat složku" + }, + "deleteAttachment": { + "message": "Smazat přílohu" + }, + "deleteItemConfirmation": { + "message": "Opravdu chcete položku přesunout do koše?" + }, + "deletedItem": { + "message": "Položka byla přesunuta do koše" + }, + "deletedItems": { + "message": "Položky byly přesunuty do koše" + }, + "movedItems": { + "message": "Položky byly přesunuty" + }, + "overwritePasswordConfirmation": { + "message": "Opravdu chcete přepsat aktuální heslo?" + }, + "editedFolder": { + "message": "Složka byla upravena" + }, + "addedFolder": { + "message": "Složka byla přidána" + }, + "deleteFolderConfirmation": { + "message": "Opravdu chcete tuto složku smazat?" + }, + "deletedFolder": { + "message": "Složka byla smazána." + }, + "loggedOut": { + "message": "Odhlášení" + }, + "loginExpired": { + "message": "Platnost přihlášení vypršela." + }, + "logOutConfirmation": { + "message": "Opravdu se chcete odhlásit?" + }, + "logOut": { + "message": "Odhlásit se" + }, + "ok": { + "message": "OK" + }, + "yes": { + "message": "Ano" + }, + "no": { + "message": "Ne" + }, + "loginOrCreateNewAccount": { + "message": "Pro přístup do vašeho bezpečného trezoru se přihlaste nebo si vytvořte nový účet." + }, + "createAccount": { + "message": "Vytvořit účet" + }, + "logIn": { + "message": "Přihlásit se" + }, + "submit": { + "message": "Potvrdit" + }, + "emailAddressDesc": { + "message": "Vaši e-mailovou adresu budete používat k přihlášení." + }, + "yourName": { + "message": "Vaše jméno" + }, + "yourNameDesc": { + "message": "Jak vám máme říkat?" + }, + "masterPass": { + "message": "Hlavní heslo" + }, + "masterPassDesc": { + "message": "Hlavní heslo je heslo, které používáte k přístupu do vašeho trezoru. Je velmi důležité, abyste jej nezapomněli. Neexistuje totiž žádný způsob, jak heslo obnovit v případě, že jste na něj zapomněli." + }, + "masterPassHintDesc": { + "message": "Nápověda k hlavnímu heslu vám pomůže zapamatovat si heslo, pokud ho zapomenete." + }, + "reTypeMasterPass": { + "message": "Znovu zadejte hlavní heslo" + }, + "masterPassHint": { + "message": "Nápověda k hlavnímu heslu (volitelné)" + }, + "masterPassHintLabel": { + "message": "Nápověda k hlavnímu heslu" + }, + "settings": { + "message": "Nastavení" + }, + "passwordHint": { + "message": "Nápověda k heslu" + }, + "enterEmailToGetHint": { + "message": "Zadejte e-mailovou adresu pro zaslání nápovědy k hlavnímu heslu." + }, + "getMasterPasswordHint": { + "message": "Zaslat nápovědu k hlavnímu heslu" + }, + "emailRequired": { + "message": "E-mailová adresa je povinná." + }, + "invalidEmail": { + "message": "Neplatná e-mailová adresa." + }, + "masterPassRequired": { + "message": "Hlavní heslo je povinné." + }, + "masterPassLength": { + "message": "Hlavní heslo musí obsahovat alespoň 8 znaků." + }, + "masterPassDoesntMatch": { + "message": "Potvrzení hlavního hesla se neshoduje." + }, + "newAccountCreated": { + "message": "Váš účet byl vytvořen! Můžete se přihlásit." + }, + "masterPassSent": { + "message": "Poslali jsme vám e-mail s nápovědou k hlavnímu heslu." + }, + "unexpectedError": { + "message": "Došlo k neznámé chybě" + }, + "emailAddress": { + "message": "E-mailová adresa" + }, + "yourVaultIsLocked": { + "message": "Váš trezor je uzamčen. Pro pokračování musíte zadat hlavní heslo." + }, + "unlock": { + "message": "Odemknout" + }, + "loggedInAsEmailOn": { + "message": "Přihlášen jako $EMAIL$ na $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Chybné hlavní heslo" + }, + "lockNow": { + "message": "Zamknout nyní" + }, + "noItemsInList": { + "message": "Žádné položky k zobrazení." + }, + "noCollectionsInList": { + "message": "Žádné kolekce k zobrazení." + }, + "noGroupsInList": { + "message": "Žádné skupiny k zobrazení." + }, + "noUsersInList": { + "message": "Žádní uživatelé k zobrazení." + }, + "noEventsInList": { + "message": "Žádné události k zobrazení." + }, + "newOrganization": { + "message": "Nová organizace" + }, + "noOrganizationsList": { + "message": "Nepatříte do žádné organizace. Organizace umožňují bezpečné sdílení položek s ostatními uživateli." + }, + "versionNumber": { + "message": "Verze $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Zadejte 6místný kód z ověřovací aplikace." + }, + "enterVerificationCodeEmail": { + "message": "Zadejte 6místný kód z e-mailu, který byl zaslán na $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Ověřovací e-mail byl zaslán na $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Pamatuj si mě" + }, + "sendVerificationCodeEmailAgain": { + "message": "Znovu zaslat ověřovací kód na e-mail" + }, + "useAnotherTwoStepMethod": { + "message": "Použít jinou metodu dvoufázového přihlášení" + }, + "insertYubiKey": { + "message": "Vložte YubiKey do USB portu vašeho počítače a stiskněte jeho tlačítko." + }, + "insertU2f": { + "message": "Vložte svůj bezpečnostní klíč do USB portu vašeho počítače a pokud má tlačítko, tak jej stiskněte." + }, + "loginUnavailable": { + "message": "Přihlášení není dostupné" + }, + "noTwoStepProviders": { + "message": "Tento účet má zapnuté dvoufázové ověřování, ale žádný z nastavených poskytovalů dvoufázového přihlášení není v tomto prohlížeči podporován." + }, + "noTwoStepProviders2": { + "message": "Použijte prosím podporovaný webový prohlížeč (například Chrome) a přidejte další poskytovatele, kteří lépe podporují více různých webových prohlížečích (jako například ověřovací aplikace)." + }, + "twoStepOptions": { + "message": "Možnosti dvoufázového přihlášení" + }, + "recoveryCodeDesc": { + "message": "Ztratili jste přístup ke všem nastaveným poskytovatelům dvoufázového přihlášení? Použijte obnovovací kód pro vypnutí dvoufázového přihlášení." + }, + "recoveryCodeTitle": { + "message": "Kód pro obnovení" + }, + "authenticatorAppTitle": { + "message": "Ověřovací aplikace" + }, + "authenticatorAppDesc": { + "message": "Použijte ověřovací aplikaci (jako je Authy nebo Google Authenticator) pro generování časově omezených kódů.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP bezpečnostní klíč" + }, + "yubiKeyDesc": { + "message": "Použít YubiKey pro přístup k vašemu trezoru. Podporuje YubiKey 4. série, 5. série a zařízení řady NEO." + }, + "duoDesc": { + "message": "Ověřit pomocí Duo Security prostřednictvím aplikace Duo Mobile, SMS, telefonního hovoru nebo U2F bezpečnostního kódu.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Ověřit pomocí Duo Security pro vaši organizaci prostřednictvím aplikace Duo Mobile, SMS, telefonního hovoru nebo U2F bezpečnostního kódu.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Použít jakýkoliv FIDO U2F bezpečnostní klíč pro přístup k vašemu trezoru." + }, + "u2fTitle": { + "message": "FIDO U2F bezpečnostní klíč" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Použijte jakýkoliv WebAuthn bezpečnostní klíč pro přístup k vašemu účtu." + }, + "webAuthnMigrated": { + "message": "(Migrováno z FIDO)" + }, + "emailTitle": { + "message": "E-mail" + }, + "emailDesc": { + "message": "Ověřovací kódy vám budou zaslány e-mailem." + }, + "continue": { + "message": "Pokračovat" + }, + "organization": { + "message": "Organizace" + }, + "organizations": { + "message": "Organizace" + }, + "moveToOrgDesc": { + "message": "Vyberte organizaci, do které chcete tuto položku přesunout. Přesun do organizace převede vlastnictví položky této organizaci. Po přesunutí této položky již nebudete přímým vlastníkem této položky." + }, + "moveManyToOrgDesc": { + "message": "Vyberte organizaci, do které chcete tyto položky přesunout. Přesun do organizace převede vlastnictví položek této organizaci. Po přesunutí již nebudete přímým vlastníkem těchto položek." + }, + "collectionsDesc": { + "message": "Upravit kolekce, ve kterých je tato položka sdílená. Pouze uživatelé organizace, kteří mají přístup k těmto kolekcím, budou moci tuto položku vidět." + }, + "deleteSelectedItemsDesc": { + "message": "Vybrali jste $COUNT$ položek ke smazání. Opravdu chcete tyto položky smazat?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Vyberte složku, do které chcete přesunout $COUNT$ vybraných položek.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Vybrali jste $COUNT$ položku(ek). $MOVEABLE_COUNT$ položku(ek) lze přesunout do organizace, $NONMOVEABLE_COUNT$ nelze.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Ověřovací kód (TOTP)" + }, + "copyVerificationCode": { + "message": "Zkopírovat ověřovací kód" + }, + "warning": { + "message": "Varování" + }, + "confirmVaultExport": { + "message": "Potvrdit export trezoru" + }, + "exportWarningDesc": { + "message": "Tento export obsahuje data vašeho trezoru v nezašifrovaném formátu. Soubor exportu byste neměli ukládat ani odesílat přes nezabezpečené kanály (např. e-mailem). Odstraňte jej okamžitě po jeho použití." + }, + "encExportKeyWarningDesc": { + "message": "Tento export šifruje vaše data pomocí šifrovacího klíče vašeho účtu. Pokud někdy pozměníte šifrovací klíč svého účtu, měli byste data exportovat znovu, protože tento exportovaný soubor nebudete moci dešifrovat." + }, + "encExportAccountWarningDesc": { + "message": "Šifrovací klíče účtu jsou jedinečné pro každý uživatelský účet Bitwarden, není proto možné importovat šifrovaný export do jiného účtu." + }, + "export": { + "message": "Exportovat" + }, + "exportVault": { + "message": "Exportovat přihlašovací údaje" + }, + "fileFormat": { + "message": "Formát souboru" + }, + "exportSuccess": { + "message": "Data trezoru byla exportována" + }, + "passwordGenerator": { + "message": "Generátor hesla" + }, + "minComplexityScore": { + "message": "Minimální skóre složitosti" + }, + "minNumbers": { + "message": "Minimální počet čísel" + }, + "minSpecial": { + "message": "Minimální počet speciálních znaků", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Použít nezaměnitelné znaky" + }, + "regeneratePassword": { + "message": "Vygenerovat další heslo" + }, + "length": { + "message": "Délka" + }, + "numWords": { + "message": "Počet slov" + }, + "wordSeparator": { + "message": "Oddělovač slov" + }, + "capitalize": { + "message": "Velká písmena na začátku slova", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Zahrnout číslo" + }, + "passwordHistory": { + "message": "Historie hesel" + }, + "noPasswordsInList": { + "message": "Nejsou k dispozici žádná hesla." + }, + "clear": { + "message": "Vymazat", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Účet byl aktualizován" + }, + "changeEmail": { + "message": "Změnit e-mail" + }, + "changeEmailTwoFactorWarning": { + "message": "Pokračováním se změní e-mailová adresa vašeho účtu. E-mailová adresa používaná pro dvoufázové ověření se nezmění. Tuto e-mailovou adresu můžete změnit v nastavení dvoufázového přihlášení." + }, + "newEmail": { + "message": "Nový e-mail" + }, + "code": { + "message": "Kód" + }, + "changeEmailDesc": { + "message": "Na e-mail $EMAIL$ jsme odeslali ověřovací kód. Zkontrolujte prosím svou e-mailovou schránku a pro potvrzení nové e-mailové adresy zadejte níže obdržený kód.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Pokud chcete pokračovat, budete odhlášeni z aktuální relace a bude nutné se znovu přihlásit. Aktivní relace na jiných zařízeních mohou nadále zůstat aktivní po dobu až jedné hodiny." + }, + "emailChanged": { + "message": "E-mail byl změněn" + }, + "logBackIn": { + "message": "Přihlaste se prosím znovu." + }, + "logBackInOthersToo": { + "message": "Přihlaste se prosím znovu. Používáte-li jiné Bitwarden aplikace, přihlaste se znovu i v nich." + }, + "changeMasterPassword": { + "message": "Změnit hlavní heslo" + }, + "masterPasswordChanged": { + "message": "Hlavní heslo bylo změněno" + }, + "currentMasterPass": { + "message": "Současné hlavní heslo" + }, + "newMasterPass": { + "message": "Nové hlavní heslo" + }, + "confirmNewMasterPass": { + "message": "Potvrzení nového hesla" + }, + "encKeySettings": { + "message": "Nastavení šifrovacího klíče" + }, + "kdfAlgorithm": { + "message": "KDF algoritmus" + }, + "kdfIterations": { + "message": "KDF iterace" + }, + "kdfIterationsDesc": { + "message": "Vyšší hodnota KDF iterací pomáhá chránit vaše hlavní heslo před útokem hrubou silou (brute force attack). Doporučujeme nastavit hodnotu $VALUE$ nebo vyšší.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Nastavení příliš vysoké hodnoty počtu KDF iterací může mít za následek špatný výkon při přihlašování (a odemykání) aplikace Bitwarden na zařízeních se slabým procesorem. Doporučujeme hodnotu navyšovat přírůstkově po $INCREMENT$ a vyzkoušet všechna vaše zařízení.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Změnit KDF" + }, + "encKeySettingsChanged": { + "message": "Nastavení šifrovacího klíče bylo změněno" + }, + "dangerZone": { + "message": "Nebezpečná zóna" + }, + "dangerZoneDesc": { + "message": "Opatrně. Tyto akce se nedají vrátit!" + }, + "deauthorizeSessions": { + "message": "Zrušit autorizaci relací" + }, + "deauthorizeSessionsDesc": { + "message": "Je váš účet přihlášen na jiném zařízení? Pokračujte níže ke zrušení přihlášení všech počítačů a zařízení, která jste dříve používali. Tento bezpečnostní krok je doporučen, pokud jste dříve používali veřejný počítač nebo nechtěně uložili heslo na zařízení, které není vaše. Tímto krokem se také zruší dříve zapamatovaná dvoufázová přihlášení." + }, + "deauthorizeSessionsWarning": { + "message": "Pokud chcete pokračovat, budete také odhlášeni z aktuální relace a bude nutné se znovu přihlásit. Pokud používáte dvoufázové přihlášení, bude také vyžadováno. Aktivní relace na jiných zařízeních mohou nadále zůstat aktivní po dobu až jedné hodiny." + }, + "sessionsDeauthorized": { + "message": "Všechny relace byly zrušeny" + }, + "purgeVault": { + "message": "Vymazat celý trezor" + }, + "purgedOrganizationVault": { + "message": "Trezor organizace byl vyprázdněn." + }, + "vaultAccessedByProvider": { + "message": "Trezor zpřístupněný poskytovatelem." + }, + "purgeVaultDesc": { + "message": "Chcete-li smazat všechny položky a složky ve vašem trezoru, pokračujte podle následujících pokynů. Položky sdílené s organizací nebudou smazány." + }, + "purgeOrgVaultDesc": { + "message": "Chcete-li smazat všechny položky v trezoru organizace, pokračujte podle následujících pokynů." + }, + "purgeVaultWarning": { + "message": "Vymazání trezoru je trvalé. Tuto akci nelze vrátit zpět." + }, + "vaultPurged": { + "message": "Výš trezor byl vymazán" + }, + "deleteAccount": { + "message": "Smazat účet" + }, + "deleteAccountDesc": { + "message": "Pokračujte níže ke smazání účtu a všech souvisejících dat." + }, + "deleteAccountWarning": { + "message": "Smazání účtu je trvalé. Tuto akci nelze vrátit zpět." + }, + "accountDeleted": { + "message": "Účet byl smazán." + }, + "accountDeletedDesc": { + "message": "Váš účet byl uzavřen a všechna související data byla smazána." + }, + "myAccount": { + "message": "Můj účet" + }, + "tools": { + "message": "Nástroje" + }, + "importData": { + "message": "Import dat" + }, + "importError": { + "message": "Chyba importu" + }, + "importErrorDesc": { + "message": "Vyskytl se problém s daty, které jste se pokusili importovat. Prosím, vyřešte níže uvedené chyby ve zdrojovém souboru a zkuste to znovu." + }, + "importSuccess": { + "message": "Data byla úspěšně importována" + }, + "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": "Nic nebylo 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." + }, + "selectFormat": { + "message": "Vyberte formát importovaného souboru" + }, + "selectImportFile": { + "message": "Vyberte soubor pro import" + }, + "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)" + } + } + }, + "options": { + "message": "Možnosti" + }, + "optionsDesc": { + "message": "Přizpůsobte si váš webový trezor." + }, + "optionsUpdated": { + "message": "Možnosti byly upraveny" + }, + "language": { + "message": "Jazyk" + }, + "languageDesc": { + "message": "Změňte jazyk používaný ve webovém trezoru." + }, + "disableIcons": { + "message": "Zakázat ikonky webových stránek" + }, + "disableIconsDesc": { + "message": "Ikonky webových stránek zobrazí snadno rozeznatelný obrázek vedle každé položky ve vašem trezoru." + }, + "enableGravatars": { + "message": "Povolit službu Gravatar", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Použije profilový obrázek načtený z gravatar.com." + }, + "enableFullWidth": { + "message": "Zapnout rozvržení na celou šířku stránky", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Povolit webovému trezoru roztáhnout se na celou šířku okna." + }, + "default": { + "message": "Výchozí" + }, + "domainRules": { + "message": "Doménová pravidla" + }, + "domainRulesDesc": { + "message": "Pokud máte stejné přihlašovací údaje napříč různými doménami, můžete je označit jako „ekvivalentní“. Bitwarden za vás již vytvořil seznam globálních domén." + }, + "globalEqDomains": { + "message": "Globální ekvivalentní domény" + }, + "customEqDomains": { + "message": "Vlastní ekvivalentní domény" + }, + "exclude": { + "message": "Vyřadit" + }, + "include": { + "message": "Zahrnout" + }, + "customize": { + "message": "Přizpůsobit" + }, + "newCustomDomain": { + "message": "Přidat vlastní doménu" + }, + "newCustomDomainDesc": { + "message": "Zadejte seznam domén oddělených čárkou. Povolené jsou pouze „základní“ domény. Nezadávejte subdomény. Například zadejte „bitwarden.com“, nikoliv „vault.bitwarden.com“. Můžete také zadat „androidapp://package.name“ pokud chcete přiřadit Android aplikaci k ostatním webovým doménám." + }, + "customDomainX": { + "message": "Vlastní doména $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domény byly upraveny" + }, + "twoStepLogin": { + "message": "Dvoufázové přihlášení" + }, + "twoStepLoginDesc": { + "message": "Zabezpečte svůj účet vyžadováním dodatečného kroku při přihlašování." + }, + "twoStepLoginOrganizationDesc": { + "message": "Vyžadovat dvoufázové přihlášení pro uživatele vaší organizace nastavením poskytovatelů na úrovni organizace." + }, + "twoStepLoginRecoveryWarning": { + "message": "Povolením dvoufázového přihlášení může dojít k trvalému uzamčení vašeho účtu. Obnovovací kód umožňuje přístup do vašeho účtu i v případě, pokud již nemůžete použít svůj normální způsob dvoufázového přihlášení (např. ztráta zařízení). Pokud ztratíte přístup k vašemu účtu, nebude vám schopna pomoci ani zákaznická podpora Bitwardenu. Doporučujeme si proto kód pro obnovení zapsat nebo vytisknout a uložit jej na bezpečném místě." + }, + "viewRecoveryCode": { + "message": "Zobrazit kód pro obnovení" + }, + "providers": { + "message": "Poskytovatelé", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Povolit" + }, + "enabled": { + "message": "Povoleno" + }, + "premium": { + "message": "Prémium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Prémiové členství" + }, + "premiumRequired": { + "message": "Vyžaduje prémiové členství" + }, + "premiumRequiredDesc": { + "message": "Pro použití této funkce je potřebné prémiové členství." + }, + "youHavePremiumAccess": { + "message": "Máte prémiový přístup" + }, + "alreadyPremiumFromOrg": { + "message": "Již máte přístup k prémiovým funkcím díky organizaci, které jste členem." + }, + "manage": { + "message": "Správa" + }, + "disable": { + "message": "Zakázat" + }, + "twoStepLoginProviderEnabled": { + "message": "Tento poskytovatel dvoufázového přihlášení byl povolen." + }, + "twoStepLoginAuthDesc": { + "message": "Zadejte hlavní heslo pro úpravu dvoufázového přihlášení." + }, + "twoStepAuthenticatorDesc": { + "message": "Postupujte podle následujících kroků pro nastavení pro dvoufázového přihlášení pomocí ověřovací aplikace:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Stáhněte si ověřovací aplikaci" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Potřebujete aplikaci pro dvoufázové ověření? Stáhněte si jednu z následujících" + }, + "iosDevices": { + "message": "iOS zařízení" + }, + "androidDevices": { + "message": "Android zařízení" + }, + "windowsDevices": { + "message": "Windows zařízení" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Tyto aplikace doporučujeme, nicméně další aplikace pro ověření budou fungovat také." + }, + "twoStepAuthenticatorScanCode": { + "message": "Naskenujte tento QR kód s vaší ověřovací aplikací" + }, + "key": { + "message": "Klíč" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Zadejte 6místný kód z ověřovací aplikace" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "V případě potřeby přidání do jiného zařízení, je níže zobrazen QR kód (nebo klíč) vyžadovaný ověřovací aplikací." + }, + "twoStepDisableDesc": { + "message": "Opravdu chcete zakázat tohoto poskytovatele dvoufázového přihlášení?" + }, + "twoStepDisabled": { + "message": "Poskytovatel dvoufázového přihlášení byl zakázán" + }, + "twoFactorYubikeyAdd": { + "message": "Přidání nového YubiKey k vašemu účtu" + }, + "twoFactorYubikeyPlugIn": { + "message": "Připojte YubiKey do USB portu počítače." + }, + "twoFactorYubikeySelectKey": { + "message": "Vyberte první prázdné pole YubiKey níže." + }, + "twoFactorYubikeyTouchButton": { + "message": "Dotkněte se tlačítka na YubiKey." + }, + "twoFactorYubikeySaveForm": { + "message": "Uložte formulář." + }, + "twoFactorYubikeyWarning": { + "message": "Z důvodu omezení různých platforem, nemůže být YubiKey použit ve všech aplikacích Bitwarden. Měli byste povolit jiný způsob dvoufázového přihlášení pro případy, kdy nelze YubiKey použít. Podporované platformy:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Webový trezor, aplikace, CLI a rozšíření pro prohlížeče na zařízeních s USB portem." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobilní aplikace na zařízeních s podporou NFC nebo datového portu, která mohou přijmout váš YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F klíč $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "Klíč WebAuthn $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "Podpora NFC" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Jeden z mých klíčů podporuje NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Pokud některý z vašich YubiKey podporuje NFC (např. YubiKey NEO), budete na mobilních zařízeních vyzvání k ověření pomocí NFC, pokud bude na daném zařízení tato technologie detekována." + }, + "yubikeysUpdated": { + "message": "YubiKey byly aktualizovány" + }, + "disableAllKeys": { + "message": "Zakázat všechny klíče" + }, + "twoFactorDuoDesc": { + "message": "Zadejte informace o aplikaci Bitwarden z panelu Duo Admin." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integrační klíč" + }, + "twoFactorDuoSecretKey": { + "message": "Tajný klíč" + }, + "twoFactorDuoApiHostname": { + "message": "Host API" + }, + "twoFactorEmailDesc": { + "message": "Postupujte podle následujících kroků pro nastavení dvoufázového přihlášení pomocí e-mailu:" + }, + "twoFactorEmailEnterEmail": { + "message": "Zadejte e-mail, na který si přejete dostávat ověřovací kódy" + }, + "twoFactorEmailEnterCode": { + "message": "Zadejte 6místný kód zaslaný na e-mail" + }, + "sendEmail": { + "message": "Odeslat e-mail" + }, + "twoFactorU2fAdd": { + "message": "Přidání bezpečnostního klíče FIDO U2F k vašemu účtu" + }, + "removeU2fConfirmation": { + "message": "Opravdu chcete odebrat tento bezpečnostní klíč?" + }, + "twoFactorWebAuthnAdd": { + "message": "Přidejte ke svému účtu bezpečnostní klíč WebAuthn" + }, + "readKey": { + "message": "Přečíst klíč" + }, + "keyCompromised": { + "message": "Klíč je prozrazen." + }, + "twoFactorU2fGiveName": { + "message": "Bezpečnostní klíč si pojmenujte pro jeho snadnou identifikaci." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Připojte bezpečnostní klíč do USB portu vašeho počítače a klikněte na tlačítko „Přečíst klíč“." + }, + "twoFactorU2fTouchButton": { + "message": "Pokud má bezpečnostní klíč tlačítko, zmáčkněte jej." + }, + "twoFactorU2fSaveForm": { + "message": "Uložte formulář." + }, + "twoFactorU2fWarning": { + "message": "Z důvodu omezení různých platforem, nemůže být FIDO U2F použit ve všech aplikacích Bitwarden. Měli byste povolit jiný způsob dvoufázového přihlášení pro případy, kdy nelze FIDO U2F použít. Podporované platformy:" + }, + "twoFactorU2fSupportWeb": { + "message": "Webový trezor a rozšíření pro prohlížeče s podporou U2F (Chrome, Opera, Vivaldi nebo Firefox)." + }, + "twoFactorU2fWaiting": { + "message": "Čeká se na stisknutí tlačítka na bezpečnostním klíči" + }, + "twoFactorU2fClickSave": { + "message": "Tlačítkem „Uložit“ zpřístupníte dvoufázové přihlášení pomocí tohoto bezpečnostního klíče." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Při čtení bezpečnostního klíče došlo k potížím. Zkuste to znovu." + }, + "twoFactorWebAuthnWarning": { + "message": "Z důvodu omezení platformy nelze WebAuthn použít ve všech aplikacích Bitwarden. Měli byste využít i jiného poskytovatele dvoufaktorového přihlášení, abyste měli přístup ke svému účtu, když nelze použít WebAuthn. Podporované platformy:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Webový trezor a rozšíření pro prohlížeče s podporou WebAuthn (Chrome, Opera, Vivaldi nebo Firefox)." + }, + "twoFactorRecoveryYourCode": { + "message": "Váše kód pro obnovení dvoufázového přihlášení" + }, + "twoFactorRecoveryNoCode": { + "message": "Doposud jste nepovolili žádný způsob dvoufázového přihlášení. Až některý způsob povolíte, můžete se sem vrátit pro zobrazení kódu pro obnovení." + }, + "printCode": { + "message": "Vytisknout kód", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Hlášení" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Hlášení o nezabezpečených webech" + }, + "unsecuredWebsitesReportDesc": { + "message": "Používání nezabezpečených http:// webových stránek může být nebezpečné. Pokud je to možné, přistupujte na web vždy jen přes zašifrované https:// připojení." + }, + "unsecuredWebsitesFound": { + "message": "Nalezen nezabezpečený web" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Některé položky ($COUNT$) ve vašem trezoru používají nezabezpečené URI. Schémata URI by měla být změněna na https://, pokud to web umožňuje.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Žádné položky v trezoru nemají nezabezpečené URI." + }, + "inactive2faReport": { + "message": "Hlášení o neaktivní 2FA ochraně" + }, + "inactive2faReportDesc": { + "message": "Dvoufázové přihlášení (2FA) je důležitý bezpečnostní prvek, který pomáhá zabezpečit vaše účty. Pokud jej web nabízí, měli byste dvoufázové přihlášení vždy používat." + }, + "inactive2faFound": { + "message": "Nalezena přihlášení bez 2FA" + }, + "inactive2faFoundDesc": { + "message": "Některé weby ($COUNT$) ve vašem trezoru zřejmě nejsou nakonfigurovány pro použití dvoufaktorového přihlášení (dle twofactorauth.org). Pro lepší ochranu vašich účtů byste měli dvoufaktorové přihlášení povolit.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "V trezoru nebyly nalezeny žádné weby s chybějící konfigurací dvoufaktorového přihlášení." + }, + "instructions": { + "message": "Instrukce" + }, + "exposedPasswordsReport": { + "message": "Hlášení o úniku hesel" + }, + "exposedPasswordsReportDesc": { + "message": "Uniklá hesla jsou hesla, která byla odhalena během známých úniků dat, zveřejněna nebo prodána hackery na dark webu." + }, + "exposedPasswordsFound": { + "message": "Nalezena uniklá hesla" + }, + "exposedPasswordsFoundDesc": { + "message": "V trezoru jsme našli položky ($COUNT$), jejichž hesla byla odhalena během známých úniků dat. Měli byste u nich použít nové heslo.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Žádné položky v trezoru nemají hesla, která byla odhalena během známých úniků dat." + }, + "checkExposedPasswords": { + "message": "Zkontrolovat uniklá hesla" + }, + "exposedXTimes": { + "message": "Počet úniků: $COUNT$", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Hlášení o slabých heslech" + }, + "weakPasswordsReportDesc": { + "message": "Slabá hesla mohou být snadno uhodnuta hackery či automatickými nástroji určenými pro prolomení hesel. Generátor hesel Bitwarden vám pomůže vytvořit silná hesla." + }, + "weakPasswordsFound": { + "message": "Nalezena slabá hesla" + }, + "weakPasswordsFoundDesc": { + "message": "Našli jsme $COUNT$ položek se slabým heslem. Měli byste je aktualizovat a použit silnější hesla.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Žádné položky ve vašem trezoru nemají slabá hesla." + }, + "reusedPasswordsReport": { + "message": "Hlášení o přepoužitých heslech" + }, + "reusedPasswordsReportDesc": { + "message": "Je-li vámi používaná služba kompromitována, stejné heslo použité někde jinde může hackerům umožnit snadný přístup k dalším vašim online účtům. Pro každý účet či službu byste měli vždy použít unikátní heslo." + }, + "reusedPasswordsFound": { + "message": "Nalezena přepoužitá hesla" + }, + "reusedPasswordsFoundDesc": { + "message": "Našli jsme hesla ($COUNT$), která jsou ve vašem trezoru přepoužita. Doporučujeme je změnit, aby byly unikátní.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Žádná přihlášení ve vašem trezoru nemají přepoužitá hesla." + }, + "reusedXTimes": { + "message": "Počet přepoužití: $COUNT$", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Hlášení o úniku dat" + }, + "breachDesc": { + "message": "„Únik“ je incident, při kterém se podařilo hackerům nelegální cestou získat údaje z webových stránek a následně je také zveřejnit. Zkontrolujte prosím kompromitovaná data (e-mailové adresy, hesla, kreditní karty, …) a proveďte příslušná opatření (např. změňte heslo)." + }, + "breachCheckUsernameEmail": { + "message": "Zkontrolujte všechna uživatelská jména nebo e-mailové adresy, které používáte." + }, + "checkBreaches": { + "message": "Zkontrolovat" + }, + "breachUsernameNotFound": { + "message": "Uživatelské jméno $USERNAME$ nebylo nalezeno v žádném známém úniku dat.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Dobré zprávy", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "Uživatelské jméno $USERNAME$ bylo nalezeno celkem $COUNT$x.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Došlo k úniku" + }, + "compromisedData": { + "message": "Kompromitovaná data" + }, + "website": { + "message": "Webová stránka" + }, + "affectedUsers": { + "message": "Ovlivněno uživatelů" + }, + "breachOccurred": { + "message": "Datum úniku" + }, + "breachReported": { + "message": "Datum nahlášení" + }, + "reportError": { + "message": "Při pokosu o načtení hlášení došlo k chybě. Zkuste znovu" + }, + "billing": { + "message": "Fakturace" + }, + "accountCredit": { + "message": "Kredit na účtu", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Zůstatek na účtu", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Dobít kredit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Částka", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Navýšený kredit se na vašem účtu objeví po úspěšném zpracování platby. Některé platební metody mají prodlevu a zpracování může trvat déle, než u jiných metod." + }, + "makeSureEnoughCredit": { + "message": "Ujistěte se, že je na vašem účtu dostatečný kredit pro uskutečnění tohoto nákupu. Nemáte-li na účtu dostatečný kredit, bude pro doplacení rozdílu použita vaše výchozí platební metoda. Kredit si můžete navýšit prostřednictvím stránky fakturace." + }, + "creditAppliedDesc": { + "message": "Pro nákupy bude použit kredit z vašeho účtu. Jakýkoliv dostupný kredit bude automaticky použit pro faktury vystavené pro tento účet." + }, + "goPremium": { + "message": "Přejděte na Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Povýšili jste na premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Povyšte svůj účet na prémiové členství a odemkněte další skvělé funkce." + }, + "premiumSignUpStorage": { + "message": "1 GB šifrovaného úložiště pro přílohy." + }, + "premiumSignUpTwoStep": { + "message": "Další možnosti dvoufázového přihlášení, jako je například YubiKey, FIDO U2F a Duo." + }, + "premiumSignUpEmergency": { + "message": "Nouzový přístup" + }, + "premiumSignUpReports": { + "message": "Reporty o hygieně vašich hesel, zdraví účtu a narušeních bezpečnosti." + }, + "premiumSignUpTotp": { + "message": "Generátor TOTP kódu dvoufázového přihlašování (2FA) pro přihlašovací údaje ve vašem trezoru." + }, + "premiumSignUpSupport": { + "message": "Prioritní zákaznická podpora." + }, + "premiumSignUpFuture": { + "message": "Všechny budoucí prémiové funkce. Více již brzy!" + }, + "premiumPrice": { + "message": "Vše jen za $PRICE$ ročně!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Doplňky" + }, + "premiumAccess": { + "message": "Prémiový přístup" + }, + "premiumAccessDesc": { + "message": "Můžete přidat prémiový přístup všem členům vaší organizace za $PRICE$/$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Další úložiště (GB)" + }, + "additionalStorageGbDesc": { + "message": "# dalších GB" + }, + "additionalStorageIntervalDesc": { + "message": "Vybraný plán obsahuje $SIZE$ šifrovaného úložiště. Další prostor si můžete přikoupit za $PRICE$/$INTERVAL$ za každý další 1 GB.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Souhrn" + }, + "total": { + "message": "Celkem" + }, + "year": { + "message": "rok" + }, + "month": { + "message": "měsíc" + }, + "monthAbbr": { + "message": "měs.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Částka bude stržena okamžitě a poté opakovaně každý rok. Plán můžete kdykoli zrušit." + }, + "paymentCharged": { + "message": "Částka bude stržena okamžitě a poté opakovaně každý $INTERVAL$. Předplatné můžete kdykoli zrušit.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Vybraný plán obsahuje bezplatnou 7denní zkušební dobu. Částka z vašeho účtu nebude stržena, dokud tato zkušební doba neuplyne. Stržení platby a fakturace bude následně probíhat opakovaně každý $INTERVAL$. Plán můžete kdykoli zrušit." + }, + "paymentInformation": { + "message": "Informace o platbě" + }, + "billingInformation": { + "message": "Fakturační údaje" + }, + "creditCard": { + "message": "Kreditní karta" + }, + "paypalClickSubmit": { + "message": "Pro přihlášení do vašeho PayPal účtu klikněte na tlačítko PayPal a následně na tlačítko Odeslat zobrazené níže." + }, + "cancelSubscription": { + "message": "Zrušit předplatné" + }, + "subscriptionCanceled": { + "message": "Předplatné bylo zrušeno" + }, + "pendingCancellation": { + "message": "Čeká na zrušení" + }, + "subscriptionPendingCanceled": { + "message": "Předplatné bude zrušeno na konci aktuálního fakturačního období." + }, + "reinstateSubscription": { + "message": "Obnovit předplatné" + }, + "reinstateConfirmation": { + "message": "Opravdu chcete zrušit požadavek na ukončení předplatného a obnovit původní předplatné?" + }, + "reinstated": { + "message": "Předplatné bylo obnoveno" + }, + "cancelConfirmation": { + "message": "Opravdu chcete zrušit předplatné? Na konci fakturačního období přijdete o veškeré výhody plynoucí z vybraného plánu." + }, + "canceledSubscription": { + "message": "Předplatné bylo zrušeno" + }, + "neverExpires": { + "message": "Nikdy nevyprší" + }, + "status": { + "message": "Stav" + }, + "nextCharge": { + "message": "Další platba" + }, + "details": { + "message": "Podrobnosti" + }, + "downloadLicense": { + "message": "Stáhnout licenci" + }, + "updateLicense": { + "message": "Aktualizovat licenci" + }, + "updatedLicense": { + "message": "Licence byla aktualizována" + }, + "manageSubscription": { + "message": "Správa předplatného" + }, + "storage": { + "message": "Úložiště" + }, + "addStorage": { + "message": "Přidat úložiště" + }, + "removeStorage": { + "message": "Odebrat úložiště" + }, + "subscriptionStorage": { + "message": "Vaše předplatné zahrnuje celkem $MAX_STORAGE$ GB místa v šifrovaném úložišti. Aktuálně používáte $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Způsob platby" + }, + "noPaymentMethod": { + "message": "Žádné způsoby platby." + }, + "addPaymentMethod": { + "message": "Přidat platební metodu" + }, + "changePaymentMethod": { + "message": "Změnit způsob platby" + }, + "invoices": { + "message": "Faktury" + }, + "noInvoices": { + "message": "Žádné faktury." + }, + "paid": { + "message": "Zaplaceno", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Nezaplaceno", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transakce", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Žádné transakce." + }, + "chargeNoun": { + "message": "Dobít", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Vrátit peníze", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": " Veškeré platby se na výpisu objeví jako $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB úložiště k přidání" + }, + "gbStorageRemove": { + "message": "GB úložiště k odebrání" + }, + "storageAddNote": { + "message": "Přidání úložiště bude mít za následek úpravy fakturačních součtů a okamžité dobití platební metody v souboru. První poplatek bude účtován pro zbytek aktuálního fakturačního cyklu." + }, + "storageRemoveNote": { + "message": "Odstranění úložiště bude mít za následek úpravy vašich fakturačních součtů, které budou účtovány jako kredity k vašemu dalšímu fakturačnímu poplatku." + }, + "adjustedStorage": { + "message": "Upraveno $AMOUNT$ GB úložiště.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Kontaktovat zákaznickou podporu" + }, + "updatedPaymentMethod": { + "message": "Platební metoda byla aktualizována" + }, + "purchasePremium": { + "message": "Zakoupit prémiové členství" + }, + "licenseFile": { + "message": "Soubor s licencí" + }, + "licenseFileDesc": { + "message": "Váš licenční soubor bude pojmenován podobně jako $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Pro upgrade vašeho účtu na prémiový musíte nahrát validní licenční soubor." + }, + "uploadLicenseFileOrg": { + "message": "Pro vytvoření organizace hostované na vlastní doméně, musíte nahrát platný licenční soubor." + }, + "accountEmailMustBeVerified": { + "message": "E-mailová adresa vašeho účtu musí být ověřena." + }, + "newOrganizationDesc": { + "message": "Organizace umožňují sdílení položek vašeho trezoru s ostatními uživateli a také správu uživatelů jako členů rodiny, malého týmu nebo velké organizace." + }, + "generalInformation": { + "message": "Obecné informace" + }, + "organizationName": { + "message": "Název organizace" + }, + "accountOwnedBusiness": { + "message": "Tento účet je vlastněn firmou." + }, + "billingEmail": { + "message": "E-mailová adresa pro fakturaci" + }, + "businessName": { + "message": "Název firmy" + }, + "chooseYourPlan": { + "message": "Vyberte plán" + }, + "users": { + "message": "Uživatelé" + }, + "userSeats": { + "message": "Počet uživatelů" + }, + "additionalUserSeats": { + "message": "Další uživatelé" + }, + "userSeatsDesc": { + "message": "# uživatelů" + }, + "userSeatsAdditionalDesc": { + "message": "Váš plán obsahuje $BASE_SEATS$ uživatelských míst. Další místa můžete přidat za $SEAT_PRICE$ na uživatele a měsíc.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Kolik míst pro uživatele potřebujete? Další místa můžete také přidat později." + }, + "planNameFree": { + "message": "Zdarma", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Pro testování nebo osobní použití a sdílení s $COUNT$ dalším uživatelem.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Rodiny" + }, + "planDescFamilies": { + "message": "Pro osobní použití a sdílení s rodinou či přáteli." + }, + "planNameTeams": { + "message": "Týmy" + }, + "planDescTeams": { + "message": "Pro firmy a různé týmy." + }, + "planNameEnterprise": { + "message": "Podniky" + }, + "planDescEnterprise": { + "message": "Pro firmy a velké organizace." + }, + "freeForever": { + "message": "Navždy zdarma" + }, + "includesXUsers": { + "message": "zahrnuje $COUNT$ uživatelů", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Další uživatelé" + }, + "costPerUser": { + "message": "$COST$ za uživatele", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Omezeno na $COUNT$ uživatele (včetně vás)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Omezeno na $COUNT$ kolekce", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Přidání a sdílení až s $COUNT$ uživateli", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Neomezený počet uživatelů" + }, + "createUnlimitedCollections": { + "message": "Neomezený počet kolekcí" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ šifrovaného úložiště", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Možnost hostování na vlastní doméně" + }, + "usersGetPremium": { + "message": "Uživatelé získají přístup k prémiovým funkcím" + }, + "controlAccessWithGroups": { + "message": "Kontrola uživatelských přístupů pomocí skupin" + }, + "syncUsersFromDirectory": { + "message": "Synchronizace uživatelů a skupin z adresáře" + }, + "trackAuditLogs": { + "message": "Sledování uživatelských akcí pomocí auditních logů" + }, + "enforce2faDuo": { + "message": "Vynutit 2FA s Duo" + }, + "priorityCustomerSupport": { + "message": "Přednostní zákaznická podpora" + }, + "xDayFreeTrial": { + "message": "$COUNT$denní zkušební verze, možno kdykoliv zrušit", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Měsíčně" + }, + "annually": { + "message": "Ročně" + }, + "basePrice": { + "message": "Základní cena" + }, + "organizationCreated": { + "message": "Organizace byla přidána." + }, + "organizationReadyToGo": { + "message": "Vaše nová organizace je připravena!" + }, + "organizationUpgraded": { + "message": "Vaše organizace byla povýšena." + }, + "leave": { + "message": "Opustit" + }, + "leaveOrganizationConfirmation": { + "message": "Opravdu chcete tuto organizaci opustit?" + }, + "leftOrganization": { + "message": "Organizace byla opuštěna." + }, + "defaultCollection": { + "message": "Výchozí kolekce" + }, + "getHelp": { + "message": "Nápověda" + }, + "getApps": { + "message": "Stáhnout aplikaci" + }, + "loggedInAs": { + "message": "Přihlášen jako" + }, + "eventLogs": { + "message": "Protokol událostí" + }, + "people": { + "message": "Uživatelé" + }, + "policies": { + "message": "Zásady" + }, + "singleSignOn": { + "message": "Jednotné přihlášení" + }, + "editPolicy": { + "message": "Upravit zásadu" + }, + "groups": { + "message": "Skupiny" + }, + "newGroup": { + "message": "Nová Skupina" + }, + "addGroup": { + "message": "Přidat skupinu" + }, + "editGroup": { + "message": "Upravit skupinu" + }, + "deleteGroupConfirmation": { + "message": "Opravdu chcete tuto skupinu smazat?" + }, + "removeUserConfirmation": { + "message": "Opravdu chcete tohoto uživatele smazat?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "Externí ID" + }, + "externalIdDesc": { + "message": "Externí ID může být použito jako reference nebo k propojení tohoto zdroje s externím systémem, jako je adresář uživatelů." + }, + "accessControl": { + "message": "Správa přístupů" + }, + "groupAccessAllItems": { + "message": "Tato skupina může vidět a upravovat vše." + }, + "groupAccessSelectedCollections": { + "message": "Tato skupina může vidět a upravovat pouze vybrané kolekce." + }, + "readOnly": { + "message": "Pouze pro čtení" + }, + "newCollection": { + "message": "Nová kolekce" + }, + "addCollection": { + "message": "Přidat kolekci" + }, + "editCollection": { + "message": "Upravit kolekci" + }, + "deleteCollectionConfirmation": { + "message": "Opravdu chcete tuto kolekci smazat?" + }, + "editUser": { + "message": "Upravit uživatele" + }, + "inviteUser": { + "message": "Pozvat uživatele" + }, + "inviteUserDesc": { + "message": "Pozvěte nového uživatele do vaší organizace zadáním e-mailové adresy jejich Bitwarden účtu. Pokud ještě nemají Bitwarden účet, budou vyzváni k vytvoření nového účtu." + }, + "inviteMultipleEmailDesc": { + "message": "Najednou můžete pozvat až $COUNT$ uživatelů pomocí seznamu jejich e-mailových adres, oddělených čárkami.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Tento uživatel používá pro ochranu svého účtu dvoufázové přihlášení." + }, + "userAccessAllItems": { + "message": "Tento uživatel může vidět a upravovat vše." + }, + "userAccessSelectedCollections": { + "message": "Tento uživatel může vidět a upravovat pouze vybrané kolekce." + }, + "search": { + "message": "Hledat" + }, + "invited": { + "message": "Pozváno" + }, + "accepted": { + "message": "Přijato" + }, + "confirmed": { + "message": "Potvrzeno" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Vlastník" + }, + "ownerDesc": { + "message": "Uživatel s nejvyšším přístupem, který může spravovat všechny aspekty vaší organizace." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Administrátor" + }, + "adminDesc": { + "message": "Administrátoři mohou prohlížet a spravovat všechny položky, sbírky a uživatele ve vaší organizaci." + }, + "user": { + "message": "Uživatel" + }, + "userDesc": { + "message": "Běžný uživatel s přístupem k přiřazeným kolekcím vaší organizace." + }, + "manager": { + "message": "Správce" + }, + "managerDesc": { + "message": "Správci mohou přistupovat a spravovat přiřazené kolekce ve vaší organizaci." + }, + "all": { + "message": "Vše" + }, + "refresh": { + "message": "Obnovit" + }, + "timestamp": { + "message": "Časová značka" + }, + "event": { + "message": "Událost" + }, + "unknown": { + "message": "Neznámé" + }, + "loadMore": { + "message": "Načíst více" + }, + "mobile": { + "message": "Mobil", + "description": "Mobile app" + }, + "extension": { + "message": "Rozšíření", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Počítač", + "description": "Desktop app" + }, + "webVault": { + "message": "Webový trezor" + }, + "loggedIn": { + "message": "Přihlášen." + }, + "changedPassword": { + "message": "Heslo účtu bylo změněno" + }, + "enabledUpdated2fa": { + "message": "Dvoufázové přihlášení bylo povoleno/upraveno." + }, + "disabled2fa": { + "message": "Dvoufázové přihlášení bylo zakázáno" + }, + "recovered2fa": { + "message": "Obnovit účet z dvoufázového přihlášení." + }, + "failedLogin": { + "message": "Pokus o přihlášení se nezdařil s nesprávným heslem." + }, + "failedLogin2fa": { + "message": "Pokus o přihlášení se nezdařil s nesprávným dvoufázovým přihlášením." + }, + "exportedVault": { + "message": "Trezor byl exportován." + }, + "exportedOrganizationVault": { + "message": "Trezor organizace byl exportován." + }, + "editedOrgSettings": { + "message": "Nastavení organizace upraveno." + }, + "createdItemId": { + "message": "Položka $ID$ byla přidána.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Položka $ID$ byla upravena", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Položka $ID$ byla přesunuta do koše.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Položka $ID$ přesunuta do organizace.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Položka $ID$ byla zobrazena.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Heslo pro položku $ID$ bylo zobrazeno.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Skryté pole pro položku $ID$ bylo zobrazeno.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Bezpečnostní kód pro položku $ID$ byl zobrazen.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Heslo pro položku $ID$ bylo zkopírováno.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Skryté pole pro položku $ID$ bylo zkopírováno.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Bezpečnostní kód pro položku $ID$ byl zkopírován.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Automaticky vyplněná položka $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Kolekce $ID$ byla přidána.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Kolekce $ID$ byla upravena", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Kolekce $ID$ byla smazána.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Zásada $ID$ byla upravena.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Skupina $ID$ byla přidána.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Skupina $ID$ byla upravena.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Skupina $ID$ byla smazána.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Uživatel $ID$ byl odebrán.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Příloha pro položku $ID$ byla přidána.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Příloha pro položku $ID$ byla smazána.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Kolekce položky $ID$ byly upraveny.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Uživatel $ID$ byl pozván.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Uživatel $ID$ byl potvrzen.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Uživatel $ID$ byl upraven.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Skupiny uživatele $ID$ byly upraveny.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Odpojené SSO pro uživatele $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Zařízení" + }, + "view": { + "message": "Zobrazit" + }, + "invalidDateRange": { + "message": "Neplatné časové rozmezí." + }, + "errorOccurred": { + "message": "Došlo k chybě." + }, + "userAccess": { + "message": "Oprávnění uživatele" + }, + "userType": { + "message": "Typ uživatele" + }, + "groupAccess": { + "message": "Oprávnění skupiny" + }, + "groupAccessUserDesc": { + "message": "Upravit skupiny, do kterých uživatel spadá." + }, + "invitedUsers": { + "message": "Pozvaní uživatelé." + }, + "resendInvitation": { + "message": "Znovu poslat pozvánku" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "Uživatel $USER$ byl znovu pozván.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Potvrdit" + }, + "confirmUser": { + "message": "Potvrdit uživatele" + }, + "hasBeenConfirmed": { + "message": "Uživatel $USER$ byl potvrzen.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Potvrdit uživatele" + }, + "usersNeedConfirmed": { + "message": "Někteří uživatelé přijali pozvánku, ale nejdříve musí být potvrzeni. Dokud nedojde k potvrzení, nebudou mít tito uživatelé přístup k organizaci." + }, + "startDate": { + "message": "Datum začátku" + }, + "endDate": { + "message": "Datum konce" + }, + "verifyEmail": { + "message": "Ověřit e-mail" + }, + "verifyEmailDesc": { + "message": "Ověřte e-mailovou adresu vašeho účtu pro získání přístupu ke všem funkcím." + }, + "verifyEmailFirst": { + "message": "E-mailová adresa vašeho účtu musí být ověřena." + }, + "checkInboxForVerification": { + "message": "Zkontrolujte svůj e-mail, měli byste obdržet odkaz pro ověření." + }, + "emailVerified": { + "message": "Vaše e-mailová adresa byla ověřena" + }, + "emailVerifiedFailed": { + "message": "Váš e-mail se nepodařilo ověřit. Zkuste odeslat nový ověřovací e-mail." + }, + "emailVerificationRequired": { + "message": "Je vyžadováno ověření emailu" + }, + "emailVerificationRequiredDesc": { + "message": "K použití této funkce je zapotřebí ověření vašeho e-mailu." + }, + "updateBrowser": { + "message": "Aktualizace prohlížeče" + }, + "updateBrowserDesc": { + "message": "Používáte nepodporovaný webový prohlížeč. Aplikace nemusí pracovat správně." + }, + "joinOrganization": { + "message": "Přidat se k organizaci" + }, + "joinOrganizationDesc": { + "message": "Byly jste pozváni do výše uvedené organizace. Pro přijetí pozvánky se musíte přihlásit nebo si založit nový účet." + }, + "inviteAccepted": { + "message": "Pozvánka byla přijata." + }, + "inviteAcceptedDesc": { + "message": "K této organizaci získáte přístup jakmile vám administrátor udělí členství. Až se tak stane, pošleme vám e-mail." + }, + "inviteAcceptFailed": { + "message": "Pozvánku nelze přijmout. Požádejte administrátora organizace o novou pozvánku." + }, + "inviteAcceptFailedShort": { + "message": "Pozvánku nelze přijmout. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Pamatovat si e-mail" + }, + "recoverAccountTwoStepDesc": { + "message": "Nemůžete-li přistoupit ke svému účtu pomocí běžné metody dvoufázového přihlášení, můžete použít váš kód pro obnovení dvoufázového přihlášení pro vypnutí všech dvoufázových ověření ve vašem účtu." + }, + "recoverAccountTwoStep": { + "message": "Obnovit dvoufázové přihlášení k účtu" + }, + "twoStepRecoverDisabled": { + "message": "Dvoufázové ověření na vašem účtu bylo vypnuto." + }, + "learnMore": { + "message": "Dozvědět se více" + }, + "deleteRecoverDesc": { + "message": "Zadejte svou e-mailovou adresu pro obnovení a odstranění vašeho účtu." + }, + "deleteRecoverEmailSent": { + "message": "Pokud váš účet existuje, zaslali jsme vám e-mail s dalšími pokyny." + }, + "deleteRecoverConfirmDesc": { + "message": "Vyžádali jste si odstranění vašeho Bitwarden účtu. Klepnutím na tlačítko níže akci potvrďte." + }, + "myOrganization": { + "message": "Má organizace" + }, + "deleteOrganization": { + "message": "Smazat organizaci" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organizace byla smazána." + }, + "organizationDeletedDesc": { + "message": "Organizace a veškerá související data byla smazána." + }, + "organizationUpdated": { + "message": "Organizace byla aktualizována." + }, + "taxInformation": { + "message": "Daňové údaje" + }, + "taxInformationDesc": { + "message": "Pro poskytnutí nebo aktualizaci daňových údajů pro vaše faktury kontaktujte zákaznickou podporu." + }, + "billingPlan": { + "message": "Plán", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Změnit plán", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Povyšte svůj účet na jiný plán zadáním údajů níže. Ujistěte se prosím, že máte k účtu přidaný platný způsob platby.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Faktura #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Zobrazit fakturu" + }, + "downloadInvoice": { + "message": "Stáhnout fakturu" + }, + "verifyBankAccount": { + "message": "Ověření bankovního účtu" + }, + "verifyBankAccountDesc": { + "message": "Provedli jsme dva mikro vklady na váš bankovní účet (může trvat 1 až 2 pracovní dny, než se zobrazí). Zadejte částky vkladů pro ověření vašeho bankovního účtu." + }, + "verifyBankAccountInitialDesc": { + "message": "Platba s bankovním účtem je k dispozici pouze zákazníkům ve Spojených státech. Budete vyzváni k ověření vašeho bankovního účtu. V následujících 1-2 pracovních dnech provedeme dva mikro-vklady. Zadejte tyto částky na fakturační stránce organizace pro ověření vašeho bankovního účtu." + }, + "verifyBankAccountFailureWarning": { + "message": "Neschopnost ověření vašeho bankovního účtu bude mít za následek zmeškání platby a zrušení vašeho předplatného." + }, + "verifiedBankAccount": { + "message": "Bankovní účet byl ověřen." + }, + "bankAccount": { + "message": "Bankovní účet" + }, + "amountX": { + "message": "Částka $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Směrovací číslo", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Číslo účtu" + }, + "accountHolderName": { + "message": "Jméno majitele účtu" + }, + "bankAccountType": { + "message": "Typ účtu" + }, + "bankAccountTypeCompany": { + "message": "Společnost (firma)" + }, + "bankAccountTypeIndividual": { + "message": "Individuální (osobní)" + }, + "enterInstallationId": { + "message": "Zadejte ID instalace" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Přidat uživatele", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Odstranit uživatele", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Vaše předplatné vám dává prostor pro celkem $COUNT$ uživatelů.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Další možnosti" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Uživatelé k přidání" + }, + "seatsToRemove": { + "message": "Uživatelé k odebrání" + }, + "seatsAddNote": { + "message": "Přidání uživatelských míst bude mít za následek úpravy fakturačních součtů a okamžité dobití platební metody v souboru. První poplatek bude účtován pro zbytek aktuálního fakturačního cyklu." + }, + "seatsRemoveNote": { + "message": "Odebrání uživatelských míst bude mít za následek úpravy vašich fakturačních součtů, které budou účtovány jako kredity k vašemu dalšímu fakturačnímu poplatku." + }, + "adjustedSeats": { + "message": "Upraveno $AMOUNT$ uživatelských míst.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Klíč byl upraven." + }, + "updateKeyTitle": { + "message": "Aktualizovat klíč" + }, + "updateEncryptionKey": { + "message": "Aktualizovat šifrovací klíč" + }, + "updateEncryptionKeyShortDesc": { + "message": "Používáte zastaralé šifrovací schéma." + }, + "updateEncryptionKeyDesc": { + "message": "Přešli jsme na delší šifrovací klíče, které poskytují vyšší úroveň zabezpečení a přístup k novým funkcím. Aktualizace vašeho šifrovacího klíče je rychlá a snadná. Stačí níže zadat vaše hlavní heslo. Provedení této aktualizace může být v budoucnu povinné." + }, + "updateEncryptionKeyWarning": { + "message": "Po aktualizace šifrovacího klíče dojde k odhlášení a budete se muset opětovně přihlásit do všech Bitwarden aplikací, které aktuálně používáte (např. mobilní aplikace či rozšíření pro prohlížeč). Nezdaří-li se odhlášení a opětovné přihlášení (během něhož bude stažen nový šifrovací klíč), může dojít k poškození údajů. Pokusíme se vás automaticky odhlásit, nicméně, může to chvíli trvat." + }, + "updateEncryptionKeyExportWarning": { + "message": "Jakékoliv šifrované exporty, které jste uložili, budou také neplatné." + }, + "subscription": { + "message": "Odběr" + }, + "loading": { + "message": "Načítání" + }, + "upgrade": { + "message": "Povýšit" + }, + "upgradeOrganization": { + "message": "Povýšit organizaci" + }, + "upgradeOrganizationDesc": { + "message": "Tato funkce je nedostupná pro bezplatné organizace. Přejděte na placené členství a odemkněte více funkcí." + }, + "createOrganizationStep1": { + "message": "Vytvoření organizace: Krok 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Před vytvořením organizace si musíte nejdříve vytvořit bezplatný osobní účet." + }, + "refunded": { + "message": "Platba vrácena" + }, + "nothingSelected": { + "message": "Nevybrali jste žádné položky." + }, + "acceptPolicies": { + "message": "Zaškrtnutím tohoto políčka souhlasím s následujícím:" + }, + "acceptPoliciesError": { + "message": "Podmínky služby a zásady ochrany osobních údajů nebyly uznány." + }, + "termsOfService": { + "message": "Podmínky služby" + }, + "privacyPolicy": { + "message": "Zásady ochrany osobních údajů" + }, + "filters": { + "message": "Filtry" + }, + "vaultTimeout": { + "message": "Časový limit trezoru" + }, + "vaultTimeoutDesc": { + "message": "Vyberte, kdy vyprší bezpečnostní limit trezoru. Poté bude provedena vybraná akce." + }, + "oneMinute": { + "message": "Po 1 minutě" + }, + "fiveMinutes": { + "message": "Po 5 minutách" + }, + "fifteenMinutes": { + "message": "Po 15 minutách" + }, + "thirtyMinutes": { + "message": "Po 30 minutách" + }, + "oneHour": { + "message": "Po 1 hodině" + }, + "fourHours": { + "message": "Po 4 hodinách" + }, + "onRefresh": { + "message": "Při obnově karty prohlížeče" + }, + "dateUpdated": { + "message": "Upraveno", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Heslo bylo změněno", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organizace je zakázána." + }, + "licenseIsExpired": { + "message": "Licence vypršela." + }, + "updatedUsers": { + "message": "Uživatelé byli aktualizováni" + }, + "selected": { + "message": "Vybrané" + }, + "ownership": { + "message": "Vlastnictví" + }, + "whoOwnsThisItem": { + "message": "Kdo vlastní tuto položku?" + }, + "strong": { + "message": "Silné", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Dobré", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Slabé", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Velmi slabé", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Slabé hlavní heslo" + }, + "weakMasterPasswordDesc": { + "message": "Zvolené hlavní heslo je slabé. Pro správnou ochranu účtu Bitwarden byste měli použít silné hlavní heslo (nebo heslovou frázi). Opravdu chcete toto heslo použít?" + }, + "rotateAccountEncKey": { + "message": "Změnit také šifrovací klíč k mému účtu" + }, + "rotateEncKeyTitle": { + "message": "Změnit šifrovací klíč" + }, + "rotateEncKeyConfirmation": { + "message": "Opravdu chcete změnit šifrovací klíč k vašemu účtu?" + }, + "attachmentsNeedFix": { + "message": "Tato položka obsahuje staré přílohy, které vyžadují opravu." + }, + "attachmentFixDesc": { + "message": "Tato stará příloha vyžaduje opravu. Klepnutím zobrazíte více informací." + }, + "fix": { + "message": "Opravit", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Ve vašem trezoru jsou staré přílohy vyžadující opravu před změnou šifrovacího klíče k vašemu účtu." + }, + "yourAccountsFingerprint": { + "message": "Fráze otisku prstu vašeho účtu", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Pro zajištění integrity vašich šifrovacích klíčů proveďte nejprve ověření fráze uživatelského otisku prstu.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Již se neptat na ověření fráze otisku prstu", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Zdarma", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API klíč" + }, + "apiKeyDesc": { + "message": "Váš API klíč může být použit pro ověření přístupu k veřejnému Bitwarden API." + }, + "apiKeyRotateDesc": { + "message": "Změna API klíče zruší platnost předchozího klíče. API klíč můžete změnit, pokud se domníváte, že aktuální klíč již není bezpečný." + }, + "apiKeyWarning": { + "message": "Váš API klíč má plný přístup k organizaci. Měl by být uchován v tajnosti." + }, + "userApiKeyDesc": { + "message": "Váš API klíč může být použit k ověření v Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Váš API klíč je alternativní ověřovací mechanismus, který by měl být zachován v tajnosti." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 klientské údaje", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Zobrazit API klíč" + }, + "rotateApiKey": { + "message": "Změnit API klíč" + }, + "selectOneCollection": { + "message": "Musíte vybrat alespoň jednu kolekci." + }, + "couldNotChargeCardPayInvoice": { + "message": "Nepodařilo se nám strhnout platbu z vaší karty. Prohlédněte si a zaplaťte nezaplacenou fakturu uvedenou níže." + }, + "inAppPurchase": { + "message": "Nákup v aplikaci" + }, + "cannotPerformInAppPurchase": { + "message": "Tuto akci nelze provést při použití platební metody „nákup v aplikaci“." + }, + "manageSubscriptionFromStore": { + "message": "Své předplatné musíte spravovat z obchodu, pomocí kterého byl nákup v aplikaci proveden." + }, + "minLength": { + "message": "Minimální délka" + }, + "clone": { + "message": "Duplikovat" + }, + "masterPassPolicyDesc": { + "message": "Nastavte minimální požadavky pro sílu hlavního hesla." + }, + "twoStepLoginPolicyDesc": { + "message": "Požadovat po uživatelích nastavení dvoufázového přihlášení pro jejich osobní účty." + }, + "twoStepLoginPolicyWarning": { + "message": "Členové organizace, kteří nemají povoleno dvoufázové přihlášení pro svůj osobní účet, budou odstraněni z organizace a obdrží e-mail, který je o změně informuje." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Jste členem organizace, která vyžaduje použití dvoufázové přihlášení na vašem uživatelském účtu. Pokud zakážete všechny poskytovatele dvoufázového přihlášení, budete z takovýchto organizací automaticky odebráni." + }, + "passwordGeneratorPolicyDesc": { + "message": "Nastavení minimálních požadavků složitosti hesla pro konfiguraci generátoru hesel." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Jedna nebo více zásad organizace ovlivňují nastavení generátoru." + }, + "masterPasswordPolicyInEffect": { + "message": "Jedna nebo více zásad organizace vyžaduje, aby hlavní heslo splňovalo následující požadavky:" + }, + "policyInEffectMinComplexity": { + "message": "Minimální skóre složitosti $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimální délka $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Obsahuje jedno nebo více velkých písmen" + }, + "policyInEffectLowercase": { + "message": "Obsahuje jedno nebo více malých písmen" + }, + "policyInEffectNumbers": { + "message": "Obsahuje jednu nebo více číslic" + }, + "policyInEffectSpecial": { + "message": "Obsahuje jeden nebo více následujících speciálních znaků: $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Vaše nové hlavní heslo nesplňuje požadavky zásad organizace." + }, + "minimumNumberOfWords": { + "message": "Minimální počet slov" + }, + "defaultType": { + "message": "Výchozí typ" + }, + "userPreference": { + "message": "Uživatelská volba" + }, + "vaultTimeoutAction": { + "message": "Akce při vypršení časového limitu" + }, + "vaultTimeoutActionLockDesc": { + "message": "Trezor bude uzamčen. Pro opětovný přístup k trezoru bude vyžadováno hlavní heslo." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Budete odhlášeni. Pro opětovný přístup k trezoru bude vyžadováno ověření." + }, + "lock": { + "message": "Zamknout", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Koš", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Hledat v koši" + }, + "permanentlyDelete": { + "message": "Trvale smazat" + }, + "permanentlyDeleteSelected": { + "message": "Trvale smazat vybrané" + }, + "permanentlyDeleteItem": { + "message": "Trvale smazat položku" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Opravdu chcete tuto položku trvale smazat?" + }, + "permanentlyDeletedItem": { + "message": "Položka byla trvale smazána" + }, + "permanentlyDeletedItems": { + "message": "Položky byly trvale smazány" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Vybrané položky ($COUNT$) budou trvale smazány. Opravdu chcete všechny vybrané položky trvale smazat?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Položka $ID$ byla trvale smazána.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Obnovit" + }, + "restoreSelected": { + "message": "Obnovit vybrané" + }, + "restoreItem": { + "message": "Obnovit položku" + }, + "restoredItem": { + "message": "Položka byla obnovena" + }, + "restoredItems": { + "message": "Položky byly obnoveny" + }, + "restoreItemConfirmation": { + "message": "Opravdu chcete tuto položku obnovit?" + }, + "restoreItems": { + "message": "Obnovit položky" + }, + "restoreSelectedItemsDesc": { + "message": "Vybrané položky ($COUNT$) budou obnoveny. Opravdu chcete všechny vybrané položky obnovit?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Položka $ID$ byla obnovena.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Po vypršení časového limitu dojde k odhlášení. Přístup k trezoru bude odebrán a pro opětovné přihlášení bude vyžadováno online ověření. Opravdu chcete použít toto nastavení?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Potvrzení akce při vypršení časového limitu" + }, + "hidePasswords": { + "message": "Skrýt hesla" + }, + "countryPostalCodeRequiredDesc": { + "message": "Tyto informace potřebujeme pouze pro výpočet daně a pro finanční přehledy." + }, + "includeVAT": { + "message": "Zahrnout údaje o DPH (volitelné)" + }, + "taxIdNumber": { + "message": "DIČ" + }, + "taxInfoUpdated": { + "message": "Údaje pro DPH aktualizovány." + }, + "setMasterPassword": { + "message": "Nastavit hlavní heslo" + }, + "ssoCompleteRegistration": { + "message": "Chcete-li dokončit přihlášení pomocí SSO, nastavte prosím hlavní přístupové heslo k vašemu trezoru." + }, + "identifier": { + "message": "Identifikátor" + }, + "organizationIdentifier": { + "message": "Identifikátor organizace" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Přihlaste se pomocí přihlašovacího portálu vaší organizace. Chcete-li začít, zadejte prosím identifikátor vaší organizace." + }, + "enterpriseSingleSignOn": { + "message": "Jednotné podnikové přihlášení" + }, + "ssoHandOff": { + "message": "Nyní můžete zavřít tuto kartu a pokračovat v rozšíření." + }, + "includeAllTeamsFeatures": { + "message": "Všechny funkce Týmů, navíc:" + }, + "includeSsoAuthentication": { + "message": "Podnikové přihlášení prostřednictvím SAML2.0 a OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Podnikové politiky" + }, + "ssoValidationFailed": { + "message": "Ověření pomocí SSO selhalo" + }, + "ssoIdentifierRequired": { + "message": "Je vyžadován identifikátor organizace." + }, + "unlinkSso": { + "message": "Odebrat podnikové přihlášení" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Propojit s podnikovým přihlášením" + }, + "singleOrg": { + "message": "Jedna organizace" + }, + "singleOrgDesc": { + "message": "Omezí uživatelům možnost připojit se k jiným organizacím." + }, + "singleOrgBlockCreateMessage": { + "message": "Vaše současná organizace má pravidla, která vám nedovolují připojit se k více než jedné organizaci. Obraťte se na správce organizace nebo se zaregistrujte z jiného účtu Bitwarden." + }, + "singleOrgPolicyWarning": { + "message": "Členové organizace, kteří nejsou vlastníky nebo správci, a jsou již členy jiné organizace, budou odstraněni z vaší organizace." + }, + "requireSso": { + "message": "Ověření jednotného přihlášení" + }, + "requireSsoPolicyDesc": { + "message": "Vyžaduje přihlášení uživatelů pomocí metody jednotného přihlášení." + }, + "prerequisite": { + "message": "Předpoklady" + }, + "requireSsoPolicyReq": { + "message": "Před aktivací této politiky musí být povolena politika jednotné organizace." + }, + "requireSsoPolicyReqError": { + "message": "Jednotná pravidla organizace není povolena." + }, + "requireSsoExemption": { + "message": "Majitelé a správci organizací jsou od prosazování těchto zásad osvobozeni." + }, + "sendTypeFile": { + "message": "Soubor" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Vytvořit nový Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Upravit Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send vytvořen", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Send upraven", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send smazán", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Smazat Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Jste si jisti, že chcete odstranit tento Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Jakého typu je tento Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Datum odstranění" + }, + "deletionDateDesc": { + "message": "Tento Send bude trvale smazán v určený datum a čas.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Datum expirace" + }, + "expirationDateDesc": { + "message": "Je-li nastaveno, přístup k tomuto Send vyprší v daný datum a čas.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximální počet přístupů" + }, + "maxAccessCountDesc": { + "message": "Je-li nastaveno, uživatelé již nebudou mít přístup k tomuto Send, jakmile bude dosaženo maximálního počtu přístupů.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Počet aktuálních přístupů" + }, + "sendPasswordDesc": { + "message": "Volitelně vyžadovat heslo pro přístup k tomuto Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Soukromé poznámky o tomto Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Zakázáno" + }, + "sendLink": { + "message": "Odkaz tohoto Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Zkopírovat odkaz Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Odstranit heslo" + }, + "removedPassword": { + "message": "Heslo odstraněno" + }, + "removePasswordConfirmation": { + "message": "Jste si jisti, že chcete odstranit heslo?" + }, + "hideEmail": { + "message": "Skrýt mou e-mailovou adresu před příjemci." + }, + "disableThisSend": { + "message": "Zakažte tento Send, aby k němu nikdo neměl přístup.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Všechny Sends" + }, + "maxAccessCountReached": { + "message": "Dosažen maximální počet přístupů", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Čeká na smazání" + }, + "expired": { + "message": "Vypršela platnost" + }, + "searchSends": { + "message": "Hledat Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Toto Send je chráněno heslem. Pro pokračování zadejte prosím níže heslo.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Neznáte heslo? Požádejte odesílatele o heslo potřebné pro přístup k tomuto Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Toto Send je ve výchozím nastavení skryté. Viditelnost můžete přepnout pomocí tlačítka níže.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Stáhnout soubor" + }, + "sendAccessUnavailable": { + "message": "Send, ke kterému se pokoušíte přistupovat, neexistuje nebo již není k dispozici.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Soubor přidružený tomuto Send nebyl nalezen.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Nebyly nalezeny žádné Send položky.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Nouzový přístup" + }, + "emergencyAccessDesc": { + "message": "Udělit a spravovat nouzový přístup důvěryhodným kontaktům. Důvěryhodné kontakty mohou požádat o přístup k zobrazení nebo převzetí vašeho účtu v případě nouze. Navštivte naši stránku nápovědy pro více informací a podrobností o tom, jak funguje nulové sdílení znalostí." + }, + "emergencyAccessOwnerWarning": { + "message": "Jste vlastníkem jedné nebo více organizací. Pokud dáte přístup k převzetí nouzovému kontaktu, bude moci po převzetí použít všechna vaše oprávnění jako vlastník." + }, + "trustedEmergencyContacts": { + "message": "Důvěryhodné nouzové kontakty" + }, + "noTrustedContacts": { + "message": "Zatím jste nepřidali žádné nouzové kontakty, pozvěte důvěryhodný kontakt, abyste mohli začít." + }, + "addEmergencyContact": { + "message": "Přidat nouzový kontakt" + }, + "designatedEmergencyContacts": { + "message": "Určeno jako nouzový kontakt" + }, + "noGrantedAccess": { + "message": "Zatím jste nebyl určen jako nouzový kontakt pro nikoho." + }, + "inviteEmergencyContact": { + "message": "Pozvat nouzový kontakt" + }, + "editEmergencyContact": { + "message": "Upravit nouzový kontakt" + }, + "inviteEmergencyContactDesc": { + "message": "Pozvěte nový nouzový kontakt zadáním níže uvedené e-mailové adresy účtu Bitwarden. Pokud nemají Bitwarden účet, budou vyzváni k vytvoření nového účtu." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Nouzový přístup zahájen" + }, + "emergencyAccessRecoveryApproved": { + "message": "Nouzový přístup schválen" + }, + "viewDesc": { + "message": "Může zobrazit všechny položky ve vašem trezoru." + }, + "takeover": { + "message": "Převzetí" + }, + "takeoverDesc": { + "message": "Může obnovit váš účet s novým hlavním heslem." + }, + "waitTime": { + "message": "Čas čekání" + }, + "waitTimeDesc": { + "message": "Čas potřebný před automatickým udělením přístupu." + }, + "oneDay": { + "message": "1 den" + }, + "days": { + "message": "$DAYS$ dní", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Uživatel byl pozván." + }, + "acceptEmergencyAccess": { + "message": "Byli jste pozváni, abyste se stali nouzovým kontaktem pro výše uvedené uživatele. Chcete-li přijmout pozvánku, musíte se přihlásit nebo vytvořit nový účet Bitwarden." + }, + "emergencyInviteAcceptFailed": { + "message": "Pozvánku nelze přijmout. Požádejte uživatele o zaslání nové pozvánky." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Pozvánku nelze přijmout. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Po potvrzení Vaší identity můžete pro tohoto uživatele přistupovat k nouzovým možnostem. Jakmile se tak stane, pošleme vám e-mail." + }, + "requestAccess": { + "message": "Požádat o přístup" + }, + "requestAccessConfirmation": { + "message": "Jste si jisti, že chcete požádat o nouzový přístup? Přístup vám bude poskytnut po $WAITTIME$ dnech nebo po ručním schválení žádosti.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Požádáno o nouzový přístup k $USER$. Jakmile bude možné pokračovat, budeme vás informovat e-mailem.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Schválit" + }, + "reject": { + "message": "Odmítnout" + }, + "approveAccessConfirmation": { + "message": "Jste si jisti, že chcete schválit nouzový přístup? To umožní $USER$ $ACTION$ na váš účet.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Nouzový přístup byl schválen." + }, + "emergencyRejected": { + "message": "Nouzový přístup odmítnut" + }, + "passwordResetFor": { + "message": "Heslo obnoveno pro $USER$. Nyní se můžete přihlásit pomocí nového hesla.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Osobní vlastnictví" + }, + "personalOwnershipPolicyDesc": { + "message": "Vyžaduje po uživatelích uložení položek trezoru do organizace odstraněním možnosti osobního vlastnictví." + }, + "personalOwnershipExemption": { + "message": "Majitelé a správci organizací jsou od prosazování těchto zásad osvobozeni." + }, + "personalOwnershipSubmitError": { + "message": "Vzhledem k podnikovým zásadám je zakázáno ukládat položky do vašeho osobního trezoru. Změňte možnost vlastnictví na organizaci a vyberte z dostupných kolekcí." + }, + "disableSend": { + "message": "Deaktivovat Send" + }, + "disableSendPolicyDesc": { + "message": "Nedovolit uživatelům vytvářet nebo upravovat Bitwarden Send. Smazání existujícího Send je stále povoleno.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Uživatelé organizace, kteří mohou spravovat zásady organizace, jsou osvobozeni od vynucování těchto zásad." + }, + "sendDisabled": { + "message": "Send deaktivován", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Kvůli zásadám podniku můžete odstranit pouze existující Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Nastavení Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Nastavte možnosti pro vytváření a úpravy Sendů.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Uživatelé organizace, kteří mohou spravovat zásady organizace, jsou osvobozeni od vynucování těchto zásad." + }, + "disableHideEmail": { + "message": "Nedovolte uživatelům skrýt svou e-mailovou adresu před příjemci při vytváření nebo úpravách Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "V současné době platí následující zásady organizace:" + }, + "sendDisableHideEmailInEffect": { + "message": "Uživatelé nesmí při vytváření nebo úpravách Send skrýt svou e-mailovou adresu před příjemci.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Změněné zásady $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Cena plánu" + }, + "estimatedTax": { + "message": "Odhadovaná daň" + }, + "custom": { + "message": "Vlastní" + }, + "customDesc": { + "message": "Umožňuje větší kontrolu nad uživatelských oprávnění pro pokročilé konfigurace." + }, + "permissions": { + "message": "Oprávnění" + }, + "accessEventLogs": { + "message": "Přístup k logům" + }, + "accessImportExport": { + "message": "Přístup k importu/exportu" + }, + "accessReports": { + "message": "Přístup k výkazům" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Spravovat všechny kolekce" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Upravit jakoukoliv kolekci" + }, + "deleteAnyCollection": { + "message": "Odstranit jakoukoliv kolekci" + }, + "manageAssignedCollections": { + "message": "Spravovat přiřazené kolekce" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Spravovat přiřazené kolekce" + }, + "manageGroups": { + "message": "Spravovat skupiny" + }, + "managePolicies": { + "message": "Spravovat zásady" + }, + "manageSso": { + "message": "Spravovat SSO" + }, + "manageUsers": { + "message": "Spravovat uživatele" + }, + "manageResetPassword": { + "message": "Správa obnovení hesla" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Zásady organizace ovlivňují možnosti vlastnictví." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Zakázat osobní vlastnictví pro uživatele organizace" + }, + "textHiddenByDefault": { + "message": "Při přístupu k Send, skrýt text ve výchozím nastavení", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Přátelský název pro popis tohoto Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Text, který chcete odeslat." + }, + "sendFileDesc": { + "message": "Soubor, který chcete odeslat." + }, + "copySendLinkOnSave": { + "message": "Zkopírovat odkaz tohoto Send do mé schránky při uložení." + }, + "sendLinkLabel": { + "message": "Odkaz tohoto Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send odesílá citlivé, dočasné informace ostatním snadno a bezpečně.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Zjistěte více o", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Sdílejte text či soubory s kýmkoliv." + }, + "sendVaultCardLearnMore": { + "message": "Zjistěte více", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "podívejte se", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "jak to funguje", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "nebo", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "to teď vyzkoušejte", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "nebo", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "se zaregistrujte", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "abyste to vyzkoušeli již dnes.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Uživatel Bitwarden $USER_IDENTIFIER$ s vámi sdílel následující", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Uživatel Bitwarden, který vytvořil tento Send, se rozhodl skrýt svou e-mailovou adresu. Před použitím nebo stažením jeho obsahu byste se měli ujistit, že zdroji tohoto odkazu důvěřujete.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Uvedené datum vypršení platnosti není platné." + }, + "deletionDateIsInvalid": { + "message": "Uvedené datum odstranění není platné." + }, + "expirationDateAndTimeRequired": { + "message": "Je vyžadováno datum a čas vypršení platnosti." + }, + "deletionDateAndTimeRequired": { + "message": "Je vyžadováno datum a čas odstranění." + }, + "dateParsingError": { + "message": "Došlo k chybě při ukládání dat odstranění a vypršení platnosti." + }, + "webAuthnFallbackMsg": { + "message": "Chcete-li ověřit své dvoufaktorové ověření, klikněte na tlačítko níže." + }, + "webAuthnAuthenticate": { + "message": "Ověřit WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn není v tomto prohlížeči podporován." + }, + "webAuthnSuccess": { + "message": "WebAuthn úspěšně ověřen!
Tuto kartu můžete zavřít." + }, + "hintEqualsPassword": { + "message": "Nápověda k vašemu heslu nemůže být stejná jako vaše heslo." + }, + "enrollPasswordReset": { + "message": "Zapsat do procesu obnovení hesla" + }, + "enrolledPasswordReset": { + "message": "Zapsáno do procesu obnovení hesla" + }, + "withdrawPasswordReset": { + "message": "Odstoupit z obnovení hesla" + }, + "enrollPasswordResetSuccess": { + "message": "Zapsání bylo úspěšné!" + }, + "withdrawPasswordResetSuccess": { + "message": "Odstoupení bylo úspěšné!" + }, + "eventEnrollPasswordReset": { + "message": "Uživatel $ID$ se zapsal do pomoci s obnovením hesla.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Uživatel $ID$ odstoupil z pomoci s obnovením hesla.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Hlavní heslo uživatele $ID$ obnoveno.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Obnovit heslo" + }, + "resetPasswordLoggedOutWarning": { + "message": "Pokračováním odhlásíte $NAME$ z aktuální relace, což znamená, že se budou muset znovu přihlásit. Aktivní relace na jiných zařízeních mohou zůstat aktivní až po dobu jedné hodiny.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "tento uživatel" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Jedna nebo více zásad organizace vyžaduje, aby hlavní heslo splňovalo následující požadavky:" + }, + "resetPasswordSuccess": { + "message": "Heslo bylo úspěšně obnoveno!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Registrace umožní správcům organizace změnit vaše hlavní heslo. Opravdu se chcete zaregistrovat?" + }, + "resetPasswordPolicy": { + "message": "Obnovení hlavního hesla" + }, + "resetPasswordPolicyDescription": { + "message": "Povolte správcům v organizaci resetovat hlavní heslo uživatelů organizace." + }, + "resetPasswordPolicyWarning": { + "message": "Uživatelé v organizaci se budou muset sami zaregistrovat nebo být automaticky zaregistrovaní předtím, než budou moct správcové resetovat jejich hlavní heslo." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatická registrace" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Jakmile bude jejich pozvání přijato, všichni uživatelé budou automaticky zaregistrováni do obnovení hesla." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Uživatelé, kteří jsou již v organizaci, nebudou zpětně zaregistrováni do obnovení hesla. Než budou moci správci obnovit hlavní heslo, budou se muset zaregistrovat sami." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Automaticky zaregistrovat nové uživatele" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Tato organizace má podnikové zásady, které vás automaticky zaregistrují k obnovení hesla. Registrace umožní správcům organizace změnit vaše hlavní heslo." + }, + "resetPasswordOrgKeysError": { + "message": "Odpověď klíčů organizace je prázdná" + }, + "resetPasswordDetailsError": { + "message": "Odpověď na obnovení hesla je prázdná" + }, + "trashCleanupWarning": { + "message": "Položky, které byly v koši déle než 30 dní, budou automaticky smazány." + }, + "trashCleanupWarningSelfHosted": { + "message": "Položky, které byly nějakou dobu v koši, budou automaticky smazány." + }, + "passwordPrompt": { + "message": "Zeptat se znovu na hlavní heslo" + }, + "passwordConfirmation": { + "message": "Potvrzení hlavního hesla" + }, + "passwordConfirmationDesc": { + "message": "Tato akce je chráněna. Chcete-li pokračovat, zadejte znovu vaše hlavní heslo, abychom ověřili vaší totožnost." + }, + "reinviteSelected": { + "message": "Znovu odeslat pozvánky" + }, + "noSelectedUsersApplicable": { + "message": "Tuto akci nelze použít na žádného z vybraných uživatelů." + }, + "removeUsersWarning": { + "message": "Opravdu chcete odebrat následující uživatele? Proces může trvat několik sekund a nelze jej přerušit ani zrušit." + }, + "theme": { + "message": "Motiv" + }, + "themeDesc": { + "message": "Vyberte si šablonu pro váš webový trezor." + }, + "themeSystem": { + "message": "Použít systémový motiv" + }, + "themeDark": { + "message": "Tmavý" + }, + "themeLight": { + "message": "Světlý" + }, + "confirmSelected": { + "message": "Potvrdit vybrané" + }, + "bulkConfirmStatus": { + "message": "Stav hromadné akce" + }, + "bulkConfirmMessage": { + "message": "Úspěšně potvrzeno." + }, + "bulkReinviteMessage": { + "message": "Znovu úspěšně pozváno." + }, + "bulkRemovedMessage": { + "message": "Úspěšně odstraněno" + }, + "bulkFilteredMessage": { + "message": "Vyloučené, neplatí pro tuto akci." + }, + "fingerprint": { + "message": "Otisk prstu" + }, + "removeUsers": { + "message": "Odebrat uživatele" + }, + "error": { + "message": "Chyba" + }, + "resetPasswordManageUsers": { + "message": "Správa uživatelů musí být také povolena s oprávněním spravovat obnovení hesla" + }, + "setupProvider": { + "message": "Nastavení poskytovatele" + }, + "setupProviderLoginDesc": { + "message": "Byli jste pozváni k nastavení nového poskytovatele. Chcete-li pokračovat, musíte se přihlásit nebo vytvořit nový Bitwarden účet." + }, + "setupProviderDesc": { + "message": "Pro dokončení nastavení poskytovatele, zadejte prosím níže uvedené údaje. Pokud máte nějaké dotazy, kontaktujte zákaznickou podporu." + }, + "providerName": { + "message": "Jméno poskytovatele" + }, + "providerSetup": { + "message": "Poskytovatel byl vytvořen." + }, + "clients": { + "message": "Klienti" + }, + "providerAdmin": { + "message": "Administrátor poskytovatele" + }, + "providerAdminDesc": { + "message": "Uživatel s nejvyšším oprávněním, který může spravovat všechny aspekty vašeho poskytovatele a také přístup a správu klientských organizací." + }, + "serviceUser": { + "message": "Servisní uživatel" + }, + "serviceUserDesc": { + "message": "Servisní uživatelé mohou přistupovat ke všem klientským organizacím a spravovat je." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Přidat existující organizaci" + }, + "myProvider": { + "message": "Můj poskytovatel" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Přidat" + }, + "updatedMasterPassword": { + "message": "Hlavní heslo aktualizováno" + }, + "updateMasterPassword": { + "message": "Aktualizovat hlavní heslo" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hodin" + }, + "minutes": { + "message": "Minut" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Typ" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Formát jména ID" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "ID subjektu" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/da/messages.json b/apps/web/src/locales/da/messages.json new file mode 100644 index 0000000000..4bb6a3cde9 --- /dev/null +++ b/apps/web/src/locales/da/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ web-boks", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Hvilken type element er dette?" + }, + "name": { + "message": "Navn" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Ny URI" + }, + "username": { + "message": "Brugernavn" + }, + "password": { + "message": "Adgangskode" + }, + "newPassword": { + "message": "Ny adgangskode" + }, + "passphrase": { + "message": "Adgangssætning" + }, + "notes": { + "message": "Notater" + }, + "customFields": { + "message": "Brugerdefinerede felter" + }, + "cardholderName": { + "message": "Kortindehavers navn" + }, + "number": { + "message": "Nummer" + }, + "brand": { + "message": "Type" + }, + "expiration": { + "message": "Udløb" + }, + "securityCode": { + "message": "Kortverifikationskode (CVC)" + }, + "identityName": { + "message": "Identitetsnavn" + }, + "company": { + "message": "Virksomhed" + }, + "ssn": { + "message": "CPR-nummer" + }, + "passportNumber": { + "message": "Pasnummer" + }, + "licenseNumber": { + "message": "Kørekortnummer" + }, + "email": { + "message": "E-mail" + }, + "phone": { + "message": "Telefon" + }, + "january": { + "message": "Januar" + }, + "february": { + "message": "Februar" + }, + "march": { + "message": "Marts" + }, + "april": { + "message": "April" + }, + "may": { + "message": "Maj" + }, + "june": { + "message": "Juni" + }, + "july": { + "message": "Juli" + }, + "august": { + "message": "August" + }, + "september": { + "message": "September" + }, + "october": { + "message": "Oktober" + }, + "november": { + "message": "November" + }, + "december": { + "message": "December" + }, + "title": { + "message": "Titel" + }, + "mr": { + "message": "Hr" + }, + "mrs": { + "message": "Fru" + }, + "ms": { + "message": "Frk" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Udløbsmåned" + }, + "expirationYear": { + "message": "Udløbsår" + }, + "authenticatorKeyTotp": { + "message": "Autentificeringsnøgle (TOTP)" + }, + "folder": { + "message": "Mappe" + }, + "newCustomField": { + "message": "Nyt brugerdefineret felt" + }, + "value": { + "message": "Værdi" + }, + "dragToSort": { + "message": "Træk for at sortere" + }, + "cfTypeText": { + "message": "Tekst" + }, + "cfTypeHidden": { + "message": "Skjult" + }, + "cfTypeBoolean": { + "message": "Boolsk" + }, + "cfTypeLinked": { + "message": "Linket", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Fjern" + }, + "unassigned": { + "message": "Ikke tilknyttet" + }, + "noneFolder": { + "message": "Ingen mappe", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Tilføj mappe" + }, + "editFolder": { + "message": "Redigér mappe" + }, + "baseDomain": { + "message": "Grund-domæne", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domænenavn", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Vært", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Nøjagtig" + }, + "startsWith": { + "message": "Begynder med" + }, + "regEx": { + "message": "Regulært udtryk", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Matchmetode", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Standard matchmetode", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Aldrig" + }, + "toggleVisibility": { + "message": "Slå synlighed til/fra" + }, + "toggleCollapse": { + "message": "Fold sammen/fold ud", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generér adgangskode" + }, + "checkPassword": { + "message": "Undersøg om adgangskoden er blevet afsløret." + }, + "passwordExposed": { + "message": "Denne adgangskode er blevet afsløret $VALUE$ gang(e) i datalæk. Du burde skifte den.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Denne adgangskode er ikke fundet i nogen kendte datalæk. Den burde være sikker at bruge." + }, + "save": { + "message": "Gem" + }, + "cancel": { + "message": "Annullér" + }, + "canceled": { + "message": "Annulleret" + }, + "close": { + "message": "Luk" + }, + "delete": { + "message": "Slet" + }, + "favorite": { + "message": "Favorit" + }, + "unfavorite": { + "message": "Fjern favorit" + }, + "edit": { + "message": "Redigér" + }, + "searchCollection": { + "message": "Søg i samling" + }, + "searchFolder": { + "message": "Søg i mappe" + }, + "searchFavorites": { + "message": "Søg i favoritter" + }, + "searchType": { + "message": "Søg type", + "description": "Search item type" + }, + "searchVault": { + "message": "Søg i boks" + }, + "allItems": { + "message": "Alle elementer" + }, + "favorites": { + "message": "Favoritter" + }, + "types": { + "message": "Typer" + }, + "typeLogin": { + "message": "Login" + }, + "typeCard": { + "message": "Kort" + }, + "typeIdentity": { + "message": "Identitet" + }, + "typeSecureNote": { + "message": "Sikret notat" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Kort" + }, + "typeIdentityPlural": { + "message": "Identiteter" + }, + "typeSecureNotePlural": { + "message": "Sikre notater" + }, + "folders": { + "message": "Mapper" + }, + "collections": { + "message": "Samlinger" + }, + "firstName": { + "message": "Fornavn" + }, + "middleName": { + "message": "Mellemnavn" + }, + "lastName": { + "message": "Efternavn" + }, + "fullName": { + "message": "Fulde navn" + }, + "address1": { + "message": "Adresse 1" + }, + "address2": { + "message": "Adresse 2" + }, + "address3": { + "message": "Adresse 3" + }, + "cityTown": { + "message": "By" + }, + "stateProvince": { + "message": "Region" + }, + "zipPostalCode": { + "message": "Postnummer" + }, + "country": { + "message": "Land" + }, + "shared": { + "message": "Delt" + }, + "attachments": { + "message": "Vedhæftninger" + }, + "select": { + "message": "Vælg" + }, + "addItem": { + "message": "Tilføj element" + }, + "editItem": { + "message": "Redigér element" + }, + "viewItem": { + "message": "Vis element" + }, + "ex": { + "message": "eks.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Andet" + }, + "share": { + "message": "Del" + }, + "moveToOrganization": { + "message": "Flyt til organisation" + }, + "valueCopied": { + "message": "$VALUE$ kopieret", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Kopiér værdi", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Kopiér adgangskode", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Kopiér brugernavn", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Kopiér nummer", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Kopiér kortverifikationskode", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Kopiér URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Min boks" + }, + "vault": { + "message": "Boks" + }, + "moveSelectedToOrg": { + "message": "Flyt valgte til organisation" + }, + "deleteSelected": { + "message": "Slet valgte" + }, + "moveSelected": { + "message": "Flyt valgte" + }, + "selectAll": { + "message": "Vælg alle" + }, + "unselectAll": { + "message": "Fravælg alle" + }, + "launch": { + "message": "Start" + }, + "newAttachment": { + "message": "Tilføj ny vedhæftning" + }, + "deletedAttachment": { + "message": "Vedhæftning slettet" + }, + "deleteAttachmentConfirmation": { + "message": "Er du sikker på du vil slette denne vedhæftning?" + }, + "attachmentSaved": { + "message": "Vedhæftningen er blevet gemt." + }, + "file": { + "message": "Fil" + }, + "selectFile": { + "message": "Vælg en fil." + }, + "maxFileSize": { + "message": "Maksimum filstørrelse er 500 MB." + }, + "updateKey": { + "message": "Du kan ikke bruge denne funktion, før du opdaterer din krypteringsnøgle." + }, + "addedItem": { + "message": "Tilføjede element" + }, + "editedItem": { + "message": "Redigerede element" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ flyttet til $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Valgte emner flyttet til $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Slet element" + }, + "deleteFolder": { + "message": "Slet mappe" + }, + "deleteAttachment": { + "message": "Slet vedhæftning" + }, + "deleteItemConfirmation": { + "message": "Er du sikker på, at du sende til papirkurven?" + }, + "deletedItem": { + "message": "Element sendt til papirkurven" + }, + "deletedItems": { + "message": "Elementer sendt til papirkurven" + }, + "movedItems": { + "message": "Flyttede elementer" + }, + "overwritePasswordConfirmation": { + "message": "Er du sikker på, at du vil overskrive den aktuelle adgangskode?" + }, + "editedFolder": { + "message": "Redigerede mappe" + }, + "addedFolder": { + "message": "Tilføjede mappe" + }, + "deleteFolderConfirmation": { + "message": "Er du sikker på du vil slette denne mappe?" + }, + "deletedFolder": { + "message": "Slettede mappe" + }, + "loggedOut": { + "message": "Logget ud" + }, + "loginExpired": { + "message": "Din login-session er udløbet." + }, + "logOutConfirmation": { + "message": "Er du sikker på, at du vil logge ud?" + }, + "logOut": { + "message": "Log ud" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Ja" + }, + "no": { + "message": "Nej" + }, + "loginOrCreateNewAccount": { + "message": "Log ind eller opret en ny konto for at få adgang til din sikre boks." + }, + "createAccount": { + "message": "Opret konto" + }, + "logIn": { + "message": "Log ind" + }, + "submit": { + "message": "Indsend" + }, + "emailAddressDesc": { + "message": "Du bruger din e-mailadresse til at logge ind." + }, + "yourName": { + "message": "Dit navn" + }, + "yourNameDesc": { + "message": "Hvad skal vi kalde dig?" + }, + "masterPass": { + "message": "Hovedadgangskode" + }, + "masterPassDesc": { + "message": "Hovedadgangskoden er den adgangskode, du bruger til at få adgang til din boks. Det er meget vigtigt, at du ikke glemmer din hovedadgangskode. Der er ingen måde hvorpå koden kan genoprettes, i tilfælde af at du glemmer den." + }, + "masterPassHintDesc": { + "message": "Et tip til hovedadgangskoden kan hjælpe dig med at huske din adgangskode, hvis du glemmer den." + }, + "reTypeMasterPass": { + "message": "Gentast hovedadgangskode" + }, + "masterPassHint": { + "message": "Hovedadgangskodetip (valgfri)" + }, + "masterPassHintLabel": { + "message": "Hovedadgangskodetip" + }, + "settings": { + "message": "Indstillinger" + }, + "passwordHint": { + "message": "Adgangskodetip" + }, + "enterEmailToGetHint": { + "message": "Indtast din kontos e-mailadresse for at modtage dit hovedadgangskodetip." + }, + "getMasterPasswordHint": { + "message": "Få hovedadgangskodetip" + }, + "emailRequired": { + "message": "E-mailadresse er påkrævet." + }, + "invalidEmail": { + "message": "Ugyldig e-mailadresse." + }, + "masterPassRequired": { + "message": "Hovedadgangskode er påkrævet." + }, + "masterPassLength": { + "message": "Hovedadgangskoden skal være på mindst 8 tegn." + }, + "masterPassDoesntMatch": { + "message": "De to hovedadgangskoder matcher ikke." + }, + "newAccountCreated": { + "message": "Din nye konto er oprettet! Du kan nu logge ind." + }, + "masterPassSent": { + "message": "Vi har sendt dig en e-mail med dit hovedadgangskodetip." + }, + "unexpectedError": { + "message": "Der opstod en uventet fejl." + }, + "emailAddress": { + "message": "E-mailadresse" + }, + "yourVaultIsLocked": { + "message": "Din boks er låst. Bekræft din hovedadgangskode for at fortsætte." + }, + "unlock": { + "message": "Lås op" + }, + "loggedInAsEmailOn": { + "message": "Logget ind som $EMAIL$ på $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Ugyldig hovedadgangskode" + }, + "lockNow": { + "message": "Lås nu" + }, + "noItemsInList": { + "message": "Der er ingen elementer at vise." + }, + "noCollectionsInList": { + "message": "Der er ingen samlinger at vise." + }, + "noGroupsInList": { + "message": "Der er ingen grupper at vise." + }, + "noUsersInList": { + "message": "Der er ingen brugere at vise." + }, + "noEventsInList": { + "message": "Der er ingen begivenheder at vise." + }, + "newOrganization": { + "message": "Ny organisation" + }, + "noOrganizationsList": { + "message": "Du tilhører ikke nogen organisationer. Organisationer giver dig mulighed for at dele elementer med andre brugere på en sikker måde." + }, + "versionNumber": { + "message": "Version $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Indtast den 6-cifrede verifikationskode fra din autentificeringsapp." + }, + "enterVerificationCodeEmail": { + "message": "Indtast den 6-cifrede verifikationskode, der blev sendt til $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Bekræftelsesmail sendt til $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Husk mig" + }, + "sendVerificationCodeEmailAgain": { + "message": "Send verifikationskode-email igen" + }, + "useAnotherTwoStepMethod": { + "message": "Brug en anden to-trins-loginmetode" + }, + "insertYubiKey": { + "message": "Indsæt din YubiKey i din computers USB-port, og tryk derefter på dens knap." + }, + "insertU2f": { + "message": "Indsæt din sikkerhedsnøgle i din computers USB-port. Hvis den har en knap, tryk på den." + }, + "loginUnavailable": { + "message": "Login ikke tilgængelig" + }, + "noTwoStepProviders": { + "message": "Denne konto har to-trins login aktiveret, men ingen af de konfigurerede to-trins udbydere understøttes af denne webbrowser." + }, + "noTwoStepProviders2": { + "message": "Du skal bruge en understøttet webbrowser (såsom Chrome) og/eller tilføje ekstra udbydere, der understøttes bedre på tværs af webbrowsere (f.eks. en autentificeringsapp)." + }, + "twoStepOptions": { + "message": "To-trins-login indstillinger" + }, + "recoveryCodeDesc": { + "message": "Mistet adgang til alle dine to-faktor-udbydere? Brug din genoprettelseskode til at deaktivere alle to-faktor udbydere på din konto." + }, + "recoveryCodeTitle": { + "message": "Gendannelseskode" + }, + "authenticatorAppTitle": { + "message": "Autentificerings-app" + }, + "authenticatorAppDesc": { + "message": "Brug en autentificeringsapp (f.eks. Authy eller Google Autentificering) til at generere tidsbaserede bekræftelseskoder.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP sikkerhedsnøgle" + }, + "yubiKeyDesc": { + "message": "Brug en YubiKey til at få adgang til din konto. Virker med YubiKey 4 serien, 5 serien og NEO enheder." + }, + "duoDesc": { + "message": "Bekræft med Duo Security ved hjælp af Duo Mobile app, SMS, telefonopkald eller U2F sikkerhedsnøgle.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Bekræft med Duo Security for din organisation ved hjælp af Duo Mobile app, SMS, telefonopkald eller U2F-sikkerhedsnøgle.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Brug hvilken som helst FIDO U2F-aktiveret sikkerhedsnøgle til at få adgang til din konto." + }, + "u2fTitle": { + "message": "FIDO U2F sikkerhedsnøgle" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Brug en hvilken som helst WebAuthn-aktiveret sikkerhedsnøgle til at få adgang til din konto." + }, + "webAuthnMigrated": { + "message": "(Migreret fra FIDO)" + }, + "emailTitle": { + "message": "E-mail" + }, + "emailDesc": { + "message": "Bekræftelseskoder vil blive e-mailet til dig." + }, + "continue": { + "message": "Fortsæt" + }, + "organization": { + "message": "Organisation" + }, + "organizations": { + "message": "Organisationer" + }, + "moveToOrgDesc": { + "message": "Vælg den organisation, som du vil flytte dette emne til. Flytning overfører ejerskab af emnet til organisationen, og du vil efter flytningen ikke længere være den direkte ejer af emnet." + }, + "moveManyToOrgDesc": { + "message": "Vælg en organisation, som du vil flytte disse emner til. Flytning overfører ejerskabet af emnerne til organisationen, og du vil efter flytningen ikke længere være den direkte ejer af disse emner." + }, + "collectionsDesc": { + "message": "Redigér de samlinger, som dette element deles med. Kun organisationsbrugere med adgang til disse samlinger vil kunne se dette element." + }, + "deleteSelectedItemsDesc": { + "message": "Du har valgt $COUNT$ element(er), der skal slettes. Er du sikker på, at du vil slette alle disse elementer?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Vælg en mappe, som du vil flytte de(t) $COUNT$ valgte element(er) til.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Du har valgt $COUNT$ emne(r). $MOVEABLE_COUNT$ emne(r) kan flyttes til en organisation, $NONMOVEABLE_COUNT$ kan ikke.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Bekræftelseskode (TOTP)" + }, + "copyVerificationCode": { + "message": "Kopiér bekræftelseskoden" + }, + "warning": { + "message": "Advarsel" + }, + "confirmVaultExport": { + "message": "Bekræft eksport af boks" + }, + "exportWarningDesc": { + "message": "Denne eksport indeholder dine boksdata i ukrypteret form. Du bør ikke gemme eller sende den eksporterede fil over usikre kanaler (f.eks. e-mail). Slet den straks efter at du er færdig med at bruge den." + }, + "encExportKeyWarningDesc": { + "message": "Denne eksport krypterer dine data vha. din kontos krypteringsnøgle. Roterer du på et tidspunkt denne kontokrypteringsnøgle, skal du eksportere igen, da du ikke vil kunne dekryptere denne eksportfil." + }, + "encExportAccountWarningDesc": { + "message": "Kontokrypteringsnøgler er unikke for hver Bitwarden-brugerkonto, så du kan ikke importere en krypteret eksport til en anden konto." + }, + "export": { + "message": "Eksportér" + }, + "exportVault": { + "message": "Eksportér boks" + }, + "fileFormat": { + "message": "Filformat" + }, + "exportSuccess": { + "message": "Dine boksdata er blevet eksporteret." + }, + "passwordGenerator": { + "message": "Adgangskodegenerator" + }, + "minComplexityScore": { + "message": "Minimum kompleksitetsscore" + }, + "minNumbers": { + "message": "Mindste antal cifre" + }, + "minSpecial": { + "message": "Mindste antal specialtegn", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Undgå tvetydige tegn" + }, + "regeneratePassword": { + "message": "Regenerér adgangskode" + }, + "length": { + "message": "Længde" + }, + "numWords": { + "message": "Antal ord" + }, + "wordSeparator": { + "message": "Ordseparator" + }, + "capitalize": { + "message": "Stort begyndelsesbogstav", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Inkludér ciffer" + }, + "passwordHistory": { + "message": "Adgangskodehistorik" + }, + "noPasswordsInList": { + "message": "Der er ingen adgangskoder at vise." + }, + "clear": { + "message": "Ryd", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Konto opdateret" + }, + "changeEmail": { + "message": "Skift e-mail" + }, + "changeEmailTwoFactorWarning": { + "message": "Hvis du fortsætter, ændres din kontos e-mailadresse. Det ændrer ikke den e-mailadresse, der bruges til to-faktor-godkendelse. Du kan ændre denne e-mailadresse i indstillingerne for to-trins login." + }, + "newEmail": { + "message": "Ny e-mail" + }, + "code": { + "message": "Kode" + }, + "changeEmailDesc": { + "message": "Vi har sendt en bekræftelseskode til $EMAIL$. Tjek venligst din e-mail for denne kode og indtast den nedenfor for at afslutte e-mailadresseændringen.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Ved at fortsætte vil du blive logget ud af din nuværende session, og du skal logge ind igen. Aktive sessioner på andre enheder kan fortsat forblive aktive i op til én time." + }, + "emailChanged": { + "message": "E-mail ændret" + }, + "logBackIn": { + "message": "Log venligst ind igen." + }, + "logBackInOthersToo": { + "message": "Log venligst ind igen. Hvis du bruger andre Bitwarden-applikationer, så log ud og ind igen på dem også." + }, + "changeMasterPassword": { + "message": "Skift hovedadgangskode" + }, + "masterPasswordChanged": { + "message": "Hovedadgangskode ændret" + }, + "currentMasterPass": { + "message": "Nuværende hovedadgangskode" + }, + "newMasterPass": { + "message": "Ny hovedadgangskode" + }, + "confirmNewMasterPass": { + "message": "Bekræft ny hovedadgangskode" + }, + "encKeySettings": { + "message": "Indstillinger for krypteringsnøgle" + }, + "kdfAlgorithm": { + "message": "KDF algoritme" + }, + "kdfIterations": { + "message": "KDF iterationer" + }, + "kdfIterationsDesc": { + "message": "Flere KDF iterationer kan hjælpe med at beskytte din hovedadgangskode imod brute force angreb. Vi anbefaler en værdi på $VALUE$ eller mere.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Hvis du indstiller dine KDF iterationer for højt, kan det resultere i dårlig ydeevne, når du logger ind på (og låser op for) Bitwarden på enheder med langsomme CPU'er. Vi anbefaler at du øger værdien i trin på $INCREMENT$ og derefter tester alle dine enheder.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Ændre KDF" + }, + "encKeySettingsChanged": { + "message": "Krypteringsnøgleindstillinger ændret" + }, + "dangerZone": { + "message": "Farezone" + }, + "dangerZoneDesc": { + "message": "Pas på, disse handlinger kan ikke fortrydes!" + }, + "deauthorizeSessions": { + "message": "Fjern godkendelsen fra sessioner" + }, + "deauthorizeSessionsDesc": { + "message": "Bekymret for om din konto er logget ind på en anden enhed? Fortsæt nedenfor for at fjerne godkendelsen for alle computere eller enheder, som du tidligere har brugt. Dette sikkerhedstrin anbefales, hvis du tidligere har brugt en offentlig computer eller ved et uheld har gemt dit kodeord på en enhed, der ikke er din. Dette trin fjerner også alle tidligere huskede to-trins-login sessioner." + }, + "deauthorizeSessionsWarning": { + "message": "Ved at fortsætte vil du også blive logget ud af din nuværende session, og du skal logge ind igen. Du bliver også bedt om to-trins login igen, hvis det er aktiveret. Aktive sessioner på andre enheder kan fortsat forblive aktive i op til én time." + }, + "sessionsDeauthorized": { + "message": "Godkendelsen er fjernet fra alle sessioner" + }, + "purgeVault": { + "message": "Tøm boks" + }, + "purgedOrganizationVault": { + "message": "Organisationsboks tømt." + }, + "vaultAccessedByProvider": { + "message": "Boks tilgået af udbyder." + }, + "purgeVaultDesc": { + "message": "Fortsæt nedenfor for at slette alle elementer og mapper i din boks. Elementer, der tilhører en organisation du deler med, slettes ikke." + }, + "purgeOrgVaultDesc": { + "message": "Fortsæt nedenfor for at slette alle elementer i organisationens boks." + }, + "purgeVaultWarning": { + "message": "Tømning af din boks er permanent. Det kan ikke fortrydes." + }, + "vaultPurged": { + "message": "Din boks er blevet tømt." + }, + "deleteAccount": { + "message": "Slet konto" + }, + "deleteAccountDesc": { + "message": "Fortsæt nedenfor for at slette din konto og alle tilknyttede data." + }, + "deleteAccountWarning": { + "message": "Sletning af din konto er permanent. Det kan ikke fortrydes." + }, + "accountDeleted": { + "message": "Konto slettet" + }, + "accountDeletedDesc": { + "message": "Din konto er blevet lukket, og alle tilknyttede data er blevet slettet." + }, + "myAccount": { + "message": "Min konto" + }, + "tools": { + "message": "Værktøjer" + }, + "importData": { + "message": "Importér data" + }, + "importError": { + "message": "Importfejl" + }, + "importErrorDesc": { + "message": "Der var et problem med de data, du forsøgte at importere. Ret nedenstående fejl i din kildefil, og prøv igen." + }, + "importSuccess": { + "message": "Data er blevet importeret til din boks med success." + }, + "importWarning": { + "message": "Du importerer data til $ORGANIZATION$. Dine data kan blive delt med medlemmer af denne organisation. Vil du fortsætte?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data er ikke formateret korrekt. Kontroller din importfil og prøv igen." + }, + "importNothingError": { + "message": "Intet blev importeret." + }, + "importEncKeyError": { + "message": "Fejl ved dekryptering af den eksporterede fil. Din krypteringsnøglen matcher ikke den krypteringsnøgle, som blev anvendt til dataeksporten." + }, + "selectFormat": { + "message": "Vælg formatet for importfilen" + }, + "selectImportFile": { + "message": "Vælg importfil" + }, + "orCopyPasteFileContents": { + "message": "eller kopiér/indsæt importfilens indhold" + }, + "instructionsFor": { + "message": "$NAME$ instruktioner", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Indstillinger" + }, + "optionsDesc": { + "message": "Tilpas din web-boks oplevelse." + }, + "optionsUpdated": { + "message": "Indstillinger opdateret" + }, + "language": { + "message": "Sprog" + }, + "languageDesc": { + "message": "Skift det sprog, der bruges af web-boksen." + }, + "disableIcons": { + "message": "Slå webikoner fra" + }, + "disableIconsDesc": { + "message": "Webikoner vises som et genkendeligt billede ved siden af hvert loginelement i din boks." + }, + "enableGravatars": { + "message": "Aktivér Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Brug avatar billeder hentet fra gravatar.com." + }, + "enableFullWidth": { + "message": "Aktivér layout med fuld bredde", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Lad web-boksen udfylde browservinduets fulde bredde." + }, + "default": { + "message": "Standard" + }, + "domainRules": { + "message": "Domæneregler" + }, + "domainRulesDesc": { + "message": "Hvis du har samme login på tværs af flere forskellige website-domæner, kan du markere hjemmesiden som \"ækvivalent\". \"Globale\" domæner er dem, der allerede er oprettet til dig af Bitwarden." + }, + "globalEqDomains": { + "message": "Globale ækvivalente domæner" + }, + "customEqDomains": { + "message": "Brugerdefinerede ækvivalente domæner" + }, + "exclude": { + "message": "Udeluk" + }, + "include": { + "message": "Inkluder" + }, + "customize": { + "message": "Tilpas" + }, + "newCustomDomain": { + "message": "Nyt brugerdefineret domæne" + }, + "newCustomDomainDesc": { + "message": "Indtast en liste over domæner adskilt af kommaer. Kun \"grund\"-domæner er tilladt. Indtast ikke underdomæner. F.eks. Indtast \"google.com\" i stedet for \"www.google.com\". Du kan også indtaste \"androidapp://package.name\" for at knytte en androidapp til andre website-domæner." + }, + "customDomainX": { + "message": "Brugerdefineret domæne $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domæner opdateret" + }, + "twoStepLogin": { + "message": "To-trins login" + }, + "twoStepLoginDesc": { + "message": "Gør din konto sikrere ved at kræve et ekstra trin, når du logger ind." + }, + "twoStepLoginOrganizationDesc": { + "message": "Kræv to-trins login for din organisations brugere ved at konfigurere udbydere på organisationsniveau." + }, + "twoStepLoginRecoveryWarning": { + "message": "Aktivering af to-trins login kan permanent låse dig ud af din Bitwarden-konto. En gendannelseskode giver dig mulighed for at få adgang til din konto, hvis du ikke længere kan bruge din normale to-trins login-leverandør (f.eks. hvis du mister din enhed). Bitwarden-support kan ikke hjælpe dig, hvis du mister adgangen til din konto. Vi anbefaler at du nedskriver eller udskriver genoprettelseskoden og gemmer den på et sikkert sted." + }, + "viewRecoveryCode": { + "message": "Vis gendannelseskode" + }, + "providers": { + "message": "Udbydere", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Aktivér" + }, + "enabled": { + "message": "Aktiveret" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium-medlemskab" + }, + "premiumRequired": { + "message": "Premium påkrævet" + }, + "premiumRequiredDesc": { + "message": "Premium-medlemskab kræves for at anvende denne funktion." + }, + "youHavePremiumAccess": { + "message": "Du har premium adgang" + }, + "alreadyPremiumFromOrg": { + "message": "Du har allerede adgang til premium-funktioner på grund af en organisation, du er medlem af." + }, + "manage": { + "message": "Håndtér" + }, + "disable": { + "message": "Deaktivér" + }, + "twoStepLoginProviderEnabled": { + "message": "Denne to-trins-login udbyder er aktiveret på din konto." + }, + "twoStepLoginAuthDesc": { + "message": "Indtast din hovedadgangskode for at ændre to-trin-login indstillinger." + }, + "twoStepAuthenticatorDesc": { + "message": "Følg disse trin for at konfigurere to-trins-login med en autentiseringsapp:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Download en to-trins-autentiseringsapp" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Brug for en to-trins-autentiseringsapp? Download en af følgende" + }, + "iosDevices": { + "message": "iOS-enheder" + }, + "androidDevices": { + "message": "Android-enheder" + }, + "windowsDevices": { + "message": "Windows-enheder" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Disse apps anbefales, men andre autentificeringsapps vil også fungere." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scan denne QR-kode med din autentiseringsapp" + }, + "key": { + "message": "Nøgle" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Indtast den 6-cifrede verifikationskode fra appen" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Hvis du har brug for at tilføje den til en anden enhed, er nedenstående QR-koden (eller nøglen), der kræves af din autentificeringsapp." + }, + "twoStepDisableDesc": { + "message": "Er du sikker på, at du vil deaktivere denne to-trins-login udbyder?" + }, + "twoStepDisabled": { + "message": "To-trins-login udbyder deaktiveret." + }, + "twoFactorYubikeyAdd": { + "message": "Tilføj en ny YubiKey til din konto" + }, + "twoFactorYubikeyPlugIn": { + "message": "Sæt YubiKey'en i din computers USB-port." + }, + "twoFactorYubikeySelectKey": { + "message": "Vælg det første tomme YubiKey-indtastningsfelt nedenfor." + }, + "twoFactorYubikeyTouchButton": { + "message": "Tryk på YubiKey knappen." + }, + "twoFactorYubikeySaveForm": { + "message": "Gem formularen." + }, + "twoFactorYubikeyWarning": { + "message": "På grund af platformbegrænsninger kan YubiKeys ikke bruges på alle Bitwarden-applikationer. Du bør aktivere en anden to-trins login udbyder, så du kan få adgang til din konto, når YubiKeys ikke kan benyttes. Understøttede platforme:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web-boks, desktop-program, CLI og alle browserudvidelser på en enhed med en USB-port, der kan benyttes af din YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobilapps på en enhed med NFC-understøttelse eller en data-port, der kan benyttes af din YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F nøgle $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn-nøgle $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC understøttelse" + }, + "twoFactorYubikeySupportsNfc": { + "message": "En af mine nøgler understøtter NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Hvis en af dine YubiKeys understøtter NFC (f.eks. en YubiKey NEO), bliver du bedt om denne på mobilenheder, når NFC-tilgængelighed registreres." + }, + "yubikeysUpdated": { + "message": "YubiKeys opdateret" + }, + "disableAllKeys": { + "message": "Deaktivér alle nøgler" + }, + "twoFactorDuoDesc": { + "message": "Indtast Bitwarden-programoplysningerne fra dit Duo-administrationspanel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integrationsnøgle" + }, + "twoFactorDuoSecretKey": { + "message": "Hemmelig nøgle" + }, + "twoFactorDuoApiHostname": { + "message": "API værtsnavn" + }, + "twoFactorEmailDesc": { + "message": "Følg disse trin for at konfigurere to-trins-login med e-mail:" + }, + "twoFactorEmailEnterEmail": { + "message": "Indtast den e-mail, som du ønsker skal modtage verifikationskoder" + }, + "twoFactorEmailEnterCode": { + "message": "Indtast den 6-cifrede verifikationskode fra e-mailen" + }, + "sendEmail": { + "message": "Send e-mail" + }, + "twoFactorU2fAdd": { + "message": "Tilføj en FIDO U2F sikkerhedsnøgle til din konto" + }, + "removeU2fConfirmation": { + "message": "Er du sikker på, at du vil fjerne denne sikkerhedsnøgle?" + }, + "twoFactorWebAuthnAdd": { + "message": "Føj en WebAuthn-sikkerhedsnøgle til din konto" + }, + "readKey": { + "message": "Læs nøgle" + }, + "keyCompromised": { + "message": "Nøglen er kompromitteret." + }, + "twoFactorU2fGiveName": { + "message": "Giv sikkerhedsnøglen et brugervenligt navn til at identificere den." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Sæt sikkerhedsnøglen i computerens USB-port, og klik på knappen \"Læs nøgle\"." + }, + "twoFactorU2fTouchButton": { + "message": "Hvis sikkerhedsnøglen har en knap, skal du trykke på den." + }, + "twoFactorU2fSaveForm": { + "message": "Gem formularen." + }, + "twoFactorU2fWarning": { + "message": "På grund af platformbegrænsninger kan FIDO U2F ikke bruges på alle Bitwarden-applikationer. Du bør aktivere en anden to-trins login udbyder, så du kan få adgang til din konto, når FIDO U2F ikke kan benyttes. Understøttede platforme:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web-boks og browserudvidelser på en desktop/laptop med en U2F-aktiveret browser (Chrome, Opera, Vivaldi eller Firefox med FIDO U2F aktiveret)." + }, + "twoFactorU2fWaiting": { + "message": "Venter på at du trykker på knappen på din sikkerhedsnøgle" + }, + "twoFactorU2fClickSave": { + "message": "Klik på \"Gem\" knappen nedenfor for at aktivere denne sikkerhedsnøgle til to-trins login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Der opstod et problem med at læse sikkerhedsnøglen. Prøv igen." + }, + "twoFactorWebAuthnWarning": { + "message": "På grund af platformsbegrænsninger kan WebAuthn ikke bruges på alle Bitwarden-applikationer. Du bør aktivere en anden to-trins loginudbyder, så du kan få adgang til din konto, når WebAuthn ikke kan benyttes. Understøttede platforme:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web-boks og browserudvidelser på en stationær/bærbar computer med en WebAuthn-aktiveret browser (Chrome, Opera, Vivaldi eller Firefox med FIDO U2F aktiveret)." + }, + "twoFactorRecoveryYourCode": { + "message": "Din Bitwarden to-trins-login gendannelseskode" + }, + "twoFactorRecoveryNoCode": { + "message": "Du har ikke aktiveret nogle to-trins-login-udbydere endnu. Når du har aktiveret en to-trins-login-udbyder, kan du se din gendannelseskode her." + }, + "printCode": { + "message": "Udskriv kode", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Rapporter" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Rapport over ikke-sikrede hjemmesider" + }, + "unsecuredWebsitesReportDesc": { + "message": "Brug af ikke-sikrede hjemmesider med http://-protokollen kan være farlig. Hvis hjemmesiden tillader det, skal du altid tilgå det ved hjælp af https://-protokollen, så din forbindelse er krypteret." + }, + "unsecuredWebsitesFound": { + "message": "Ikke-sikrede hjemmesider fundet" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Vi fandt $COUNT$ elementer i din boks med ikke-sikrede URI'er. Du bør ændre deres URI-protokol til https:// hvis hjemmesiden tillader det.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Ingen elementer i din boks har ikke-sikrede URI'er." + }, + "inactive2faReport": { + "message": "Rapport over inaktive 2FA" + }, + "inactive2faReportDesc": { + "message": "To-faktor autentificering (2FA) er en vigtig sikkerhedsindstilling, der hjælper med at sikre dine konti. Hvis hjemmesiden tilbyder det, skal du altid aktivere to-faktor autentificering." + }, + "inactive2faFound": { + "message": "Logins uden 2FA fundet" + }, + "inactive2faFoundDesc": { + "message": "Vi fandt $COUNT$ websted(er) i din boks, der muligvis ikke er konfigureret med to-faktor autentificering (ifølge 2fa.directory). For yderligere at beskytte disse konti bør du aktivere to-faktor autentificering.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Der blev ikke fundet nogen hjemmesider i din boks med manglende konfiguration af to-faktor autentificering." + }, + "instructions": { + "message": "Instruktioner" + }, + "exposedPasswordsReport": { + "message": "Rapport over afslørede adgangskoder" + }, + "exposedPasswordsReportDesc": { + "message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers." + }, + "exposedPasswordsFound": { + "message": "Afslørede adgangskoder fundet" + }, + "exposedPasswordsFoundDesc": { + "message": "Vi fandt $COUNT$ elementer i din boks, som har adgangskoder, der blev afsløret i kendte datalæk. Du bør ændre dem og bruge en ny adgangskode.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Ingen elementer i din boks har adgangskoder, der har været afsløret i kendte datalæk." + }, + "checkExposedPasswords": { + "message": "Tjek for afslørede adgangskoder" + }, + "exposedXTimes": { + "message": "Afsløret $COUNT$ gang(e)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Rapport over svage adgangskoder" + }, + "weakPasswordsReportDesc": { + "message": "Svage adgangskoder kan nemt gættes af hackere og automatiserede værktøjer, der bruges til at knække adgangskoder. Bitwarden adgangskodegenerator kan hjælpe dig med at oprette stærke adgangskoder." + }, + "weakPasswordsFound": { + "message": "Svage adgangskoder fundet" + }, + "weakPasswordsFoundDesc": { + "message": "Vi fandt $COUNT$ elementer i din boks med adgangskoder, der ikke er stærke. Du bør opdatere dem og bruge stærkere adgangskoder.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Ingen elementer i din boks har svage adgangskoder." + }, + "reusedPasswordsReport": { + "message": "Rapport over genbrugte adgangskoder" + }, + "reusedPasswordsReportDesc": { + "message": "Hvis en tjeneste, som du bruger, bliver kompromitteret, kan genbrug af samme adgangskode andetsteds tillade, at hackere nemt får adgang til flere af dine onlinekonti. Du bør bruge en unik adgangskode for hver konto eller tjeneste." + }, + "reusedPasswordsFound": { + "message": "Genbrugte adgangskoder fundet" + }, + "reusedPasswordsFoundDesc": { + "message": "Vi fandt $COUNT$ adgangskoder, der genbruges i din boks. Du bør ændre dem til unikke koder.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Ingen logins i din boks har adgangskoder, der genbruges." + }, + "reusedXTimes": { + "message": "Genbrugt $COUNT$ gange", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Datalæk rapport" + }, + "breachDesc": { + "message": "Et \"læk\" er en hændelse, hvor et websteds data er blevet ulovligt tilgået til af hackere og derefter offentliggjort. Gennemgå de typer af data, der blev kompromitteret (emailadresser, adgangskoder, kreditkort osv.) og træf passende foranstaltninger, som f.eks. ændring af adgangskoder." + }, + "breachCheckUsernameEmail": { + "message": "Kontroller eventuelle brugernavne eller e-mailadresser, som du bruger." + }, + "checkBreaches": { + "message": "Kontroller læk" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ blev ikke fundet i nogen kendte datalæk.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Gode nyheder", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ blev fundet i $COUNT$ online datalæk.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Lækkede konti fundet" + }, + "compromisedData": { + "message": "Kompromitterede data" + }, + "website": { + "message": "Hjemmeside" + }, + "affectedUsers": { + "message": "Berørte brugere" + }, + "breachOccurred": { + "message": "Læk forekom" + }, + "breachReported": { + "message": "Læk rapporteret" + }, + "reportError": { + "message": "Der opstod en fejl under forsøget på at indlæse rapporten. Prøv igen" + }, + "billing": { + "message": "Fakturering" + }, + "accountCredit": { + "message": "Kontoindestående", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Kontobalance", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Indbetal beløb", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Beløb", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Indbetalte beløb vil blive vist på din konto, efter at betalingen er blevet fuldstændig behandlet. Nogle betalingsmetoder er forsinket og kan tage længere tid at behandle end andre." + }, + "makeSureEnoughCredit": { + "message": "Sørg for, at din konto har tilstrækkelig indestående til rådighed for dette køb. Hvis din konto ikke har tilstrækkelig indestående til rådighed, bruges din normale betalingsmetode til at dække forskellen. Du kan indbetale til din konto på faktureringssiden." + }, + "creditAppliedDesc": { + "message": "Din kontos indestående kan bruges til at foretage køb. Ledig indestående vil automatisk blive anvendt til fakturaer for denne konto." + }, + "goPremium": { + "message": "Skift til Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Du har opgraderet til premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Opgradér din konto til et premium-medlemskab og lås op for nogle fantastiske ekstra funktioner." + }, + "premiumSignUpStorage": { + "message": "1 GB krypteret lager til vedhæftede filer." + }, + "premiumSignUpTwoStep": { + "message": "Yderligere to-trins-loginmuligheder såsom YubiKey, FIDO U2F og Duo." + }, + "premiumSignUpEmergency": { + "message": "Nødadgang" + }, + "premiumSignUpReports": { + "message": "Adgangskodehygiejne, kontosundhed og rapporter om datalæk til at holde din boks sikker." + }, + "premiumSignUpTotp": { + "message": "TOTP verifikationskode (2FA) generator til logins i din boks." + }, + "premiumSignUpSupport": { + "message": "Prioriteret kundeservice." + }, + "premiumSignUpFuture": { + "message": "Alle fremtidige premium-funktioner. Mere kommer snart!" + }, + "premiumPrice": { + "message": "Alt dette for kun $PRICE$ /år!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Tilføjelser" + }, + "premiumAccess": { + "message": "Premium adgang" + }, + "premiumAccessDesc": { + "message": "Du kan tilføje premium adgang til alle medlemmer af din organisation for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Ekstra lagerplads (GB)" + }, + "additionalStorageGbDesc": { + "message": "# af ekstra GB" + }, + "additionalStorageIntervalDesc": { + "message": "Dit abonnement indeholder $SIZE$ krypteret fillagring. Du kan tilføje ekstra lagerplads til $PRICE$ per GB / $INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Resumé" + }, + "total": { + "message": "Samlet" + }, + "year": { + "message": "år" + }, + "month": { + "message": "måned" + }, + "monthAbbr": { + "message": "md.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Din valgte betalingsmetode vil blive opkrævet straks og derefter løbende hvert år. Du kan til enhver tid opsige." + }, + "paymentCharged": { + "message": "Din valgte betalingsmetode vil blive opkrævet straks og derefter løbende hvert $INTERVAL$. Du kan til enhver tid opsige.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Dit abonnement indeholder en gratis 7-dages prøveperiode. Din betalingsmetode vil ikke blive debiteret, før prøveperioden er slut. Du kan til enhver tid annullere." + }, + "paymentInformation": { + "message": "Betalingsoplysninger" + }, + "billingInformation": { + "message": "Faktureringsoplysninger" + }, + "creditCard": { + "message": "Betalingskort" + }, + "paypalClickSubmit": { + "message": "Klik på knappen PayPal for at logge ind på din PayPal-konto, og klik derefter på knappen Indsend herunder for at fortsætte." + }, + "cancelSubscription": { + "message": "Opsig abonnement" + }, + "subscriptionCanceled": { + "message": "Dit abonnement er opsagt." + }, + "pendingCancellation": { + "message": "Afventer opsigelse" + }, + "subscriptionPendingCanceled": { + "message": "Abonnementet er markeret til opsigelse i slutningen af den aktuelle faktureringsperiode." + }, + "reinstateSubscription": { + "message": "Gentegn abonnement" + }, + "reinstateConfirmation": { + "message": "Er du sikker på, at du vil fjerne den ventende opsigelse og gentegne dit abonnement?" + }, + "reinstated": { + "message": "Abonnementet er gentegnet." + }, + "cancelConfirmation": { + "message": "Er du sikker på at du vil opsige? Du vil miste adgangen til alle abonnementsfunktionerne ved afslutningen af denne faktureringsperiode." + }, + "canceledSubscription": { + "message": "Abonnementet er blevet opsagt." + }, + "neverExpires": { + "message": "Udløber aldrig" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Næste betaling" + }, + "details": { + "message": "Detaljer" + }, + "downloadLicense": { + "message": "Download licens" + }, + "updateLicense": { + "message": "Opdatér licens" + }, + "updatedLicense": { + "message": "Opdaterede licens" + }, + "manageSubscription": { + "message": "Håndtér abonnement" + }, + "storage": { + "message": "Lager" + }, + "addStorage": { + "message": "Tilføj lagerplads" + }, + "removeStorage": { + "message": "Fjern lagerplads" + }, + "subscriptionStorage": { + "message": "Dit abonnement har i alt $MAX_STORAGE$ GB krypteret fillagring. Du bruger i øjeblikket $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Betalingsmetode" + }, + "noPaymentMethod": { + "message": "Ingen betalingsmetode valgt." + }, + "addPaymentMethod": { + "message": "Tilføj betalingsmetode" + }, + "changePaymentMethod": { + "message": "Skift betalingsmetode" + }, + "invoices": { + "message": "Fakturaer" + }, + "noInvoices": { + "message": "Ingen fakturaer." + }, + "paid": { + "message": "Betalt", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Ikke betalt", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transaktioner", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Ingen transaktioner." + }, + "chargeNoun": { + "message": "Betaling", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Tilbagebetaling", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Eventuelle omkostninger vises på din opgørelse som $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB lagerplads at tilføje" + }, + "gbStorageRemove": { + "message": "GB lagerplads at fjerne" + }, + "storageAddNote": { + "message": "Tilføjelse af lagerplads vil resultere i justeringer af dine abonnementsudgifter og straks opkræve din valgte betalingsmetode. Den første afgift vil blive forholdsmæssigt for resten af den aktuelle faktureringsperiode." + }, + "storageRemoveNote": { + "message": "Fjernelse af lagerplads resulterer i justeringer af dine abonnementsudgifter, som vil blive krediteret forholdsmæssigt ved din næste betaling." + }, + "adjustedStorage": { + "message": "Justeret $AMOUNT$ GB lagerplads.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Kontakt kundesupport" + }, + "updatedPaymentMethod": { + "message": "Betalingsmetode opdateret." + }, + "purchasePremium": { + "message": "Køb premium" + }, + "licenseFile": { + "message": "Licensfil" + }, + "licenseFileDesc": { + "message": "Din licensfil vil blive navngivet noget ligesom $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "For at opgradere din konto til et premium-medlemskab skal du uploade en gyldig licensfil." + }, + "uploadLicenseFileOrg": { + "message": "For at oprette en lokal-hosted organisation, skal du uploade en gyldig licensfil." + }, + "accountEmailMustBeVerified": { + "message": "Din kontos e-mailadresse skal verificeres." + }, + "newOrganizationDesc": { + "message": "Organisationer giver dig mulighed for at dele dele af din boks med andre såvel som at håndtere relaterede brugere i en bestemt enhed som f.eks. en familie, et lille team eller et stort firma." + }, + "generalInformation": { + "message": "Generelle oplysninger" + }, + "organizationName": { + "message": "Organisationsnavn" + }, + "accountOwnedBusiness": { + "message": "Denne konto ejes af en virksomhed." + }, + "billingEmail": { + "message": "Fakturerings-email" + }, + "businessName": { + "message": "Firmanavn" + }, + "chooseYourPlan": { + "message": "Vælg dit abonnement" + }, + "users": { + "message": "Brugere" + }, + "userSeats": { + "message": "Antal brugere" + }, + "additionalUserSeats": { + "message": "Yderligere brugere" + }, + "userSeatsDesc": { + "message": "# brugere" + }, + "userSeatsAdditionalDesc": { + "message": "Dit abonnement indeholder $BASE_SEATS$ brugere. Du kan tilføje yderligere brugere til $SEAT_PRICE$ pr. bruger / måned.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Hvor mange brugere har du brug for? Du kan også tilføje yderligere brugere senere, hvis det er nødvendigt." + }, + "planNameFree": { + "message": "Gratis", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Til test eller personlige brugere for at dele med $COUNT$ anden/andre bruger(e).", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Familier" + }, + "planDescFamilies": { + "message": "Til personlig brug, for at dele med familie og venner." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "Til virksomheder og andre organisationer med teams." + }, + "planNameEnterprise": { + "message": "Erhverv" + }, + "planDescEnterprise": { + "message": "Til virksomheder og andre store organisationer." + }, + "freeForever": { + "message": "Gratis for evigt" + }, + "includesXUsers": { + "message": "indeholder $COUNT$ brugere", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Yderligere brugere" + }, + "costPerUser": { + "message": "$COST$ pr. bruger", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Begrænset til $COUNT$ brugere (inklusive dig)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Begrænset til $COUNT$ samlinger", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Tilføj og del med op til $COUNT$ brugere", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Tilføj og del med ubegrænsede brugere" + }, + "createUnlimitedCollections": { + "message": "Opret ubegrænsede samlinger" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ krypteret filopbevaring", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Lokal-hosting (valgfri)" + }, + "usersGetPremium": { + "message": "Brugere får adgang til premium-funktioner" + }, + "controlAccessWithGroups": { + "message": "Kontroller brugeradgang med grupper" + }, + "syncUsersFromDirectory": { + "message": "Synkronisér dine brugere og grupper fra et kartotek" + }, + "trackAuditLogs": { + "message": "Spor brugerhandlinger med revisionslogfiler" + }, + "enforce2faDuo": { + "message": "Håndhæv 2FA med Duo" + }, + "priorityCustomerSupport": { + "message": "Prioriteret kundesupport" + }, + "xDayFreeTrial": { + "message": "$COUNT$ dages gratis prøveperiode, opsig når som helst", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Månedlig" + }, + "annually": { + "message": "Årlig" + }, + "basePrice": { + "message": "Grundpris" + }, + "organizationCreated": { + "message": "Organisation oprettet" + }, + "organizationReadyToGo": { + "message": "Din nye organisation er klar til brug!" + }, + "organizationUpgraded": { + "message": "Din organisation er blevet opgraderet." + }, + "leave": { + "message": "Forlad" + }, + "leaveOrganizationConfirmation": { + "message": "Er du sikker på, at du vil forlade denne organisation?" + }, + "leftOrganization": { + "message": "Du har forladt organisationen." + }, + "defaultCollection": { + "message": "Standardsamling" + }, + "getHelp": { + "message": "Få hjælp" + }, + "getApps": { + "message": "Hent apps" + }, + "loggedInAs": { + "message": "Logget ind som" + }, + "eventLogs": { + "message": "Hændelseslogfiler" + }, + "people": { + "message": "Personer" + }, + "policies": { + "message": "Politikker" + }, + "singleSignOn": { + "message": "Single Sign On" + }, + "editPolicy": { + "message": "Redigér politik" + }, + "groups": { + "message": "Grupper" + }, + "newGroup": { + "message": "Ny gruppe" + }, + "addGroup": { + "message": "Tilføj gruppe" + }, + "editGroup": { + "message": "Redigér Gruppe" + }, + "deleteGroupConfirmation": { + "message": "Er du sikker på, at du vil slette denne gruppe?" + }, + "removeUserConfirmation": { + "message": "Er du sikker på, at du vil fjerne denne bruger?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Advarsel! Denne bruger behøver Key Connector til krypteringshåndtering. Fjernes brugeren fra din organisation, deaktiveres vedkommendes konto permanent. Denne handling kan ikke fortrydes. Vil du fortsætte?" + }, + "externalId": { + "message": "Eksternt id" + }, + "externalIdDesc": { + "message": "Det eksterne id kan bruges som reference eller til at forbinde denne ressource til et eksternt system som f.eks. et brugerkartotek." + }, + "accessControl": { + "message": "Adgangskontrol" + }, + "groupAccessAllItems": { + "message": "Denne gruppe kan få adgang til og ændre alle elementer." + }, + "groupAccessSelectedCollections": { + "message": "Denne gruppe kan kun få adgang til de valgte samlinger." + }, + "readOnly": { + "message": "Læsetilladelse" + }, + "newCollection": { + "message": "Ny samling" + }, + "addCollection": { + "message": "Tilføj samling" + }, + "editCollection": { + "message": "Redigér samling" + }, + "deleteCollectionConfirmation": { + "message": "Er du sikker på, at du vil slette denne samling?" + }, + "editUser": { + "message": "Redigér bruger" + }, + "inviteUser": { + "message": "Invitér bruger" + }, + "inviteUserDesc": { + "message": "Inviter en ny bruger til din organisation ved at indtaste e-mailadressen på deres Bitwarden-konto nedenfor. Hvis de ikke allerede har en Bitwarden-konto, bliver de bedt om at oprette en ny konto." + }, + "inviteMultipleEmailDesc": { + "message": "Du kan invitere op til $COUNT$ brugere ad gangen ved at kommaseparere en liste med e-mailadresser.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Denne bruger benytter to-trins login for at beskytte kontoen." + }, + "userAccessAllItems": { + "message": "Denne bruger kan få adgang til og ændre alle elementer." + }, + "userAccessSelectedCollections": { + "message": "Denne bruger kan kun få adgang til de valgte samlinger." + }, + "search": { + "message": "Søg" + }, + "invited": { + "message": "Inviteret" + }, + "accepted": { + "message": "Accepteret" + }, + "confirmed": { + "message": "Bekræftet" + }, + "clientOwnerEmail": { + "message": "Klientejer e-mail" + }, + "owner": { + "message": "Ejer" + }, + "ownerDesc": { + "message": "Den bruger med højeste rettigheder, som kan håndtere alle aspekter af din organisation." + }, + "clientOwnerDesc": { + "message": "Denne bruger bør være uafhængig af udbyderen. Hvis udbyderen frakobles organisationen, bevarer denne bruger ejerskabet af organisationen." + }, + "admin": { + "message": "Administrator" + }, + "adminDesc": { + "message": "Administratorer kan få adgang til og håndtere alle elementer, samlinger og brugere i din organisation." + }, + "user": { + "message": "Bruger" + }, + "userDesc": { + "message": "En almindelig bruger med adgang til tildelte samlinger i din organisation." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managere kan få adgang til og håndtere tildelte samlinger i din organisation." + }, + "all": { + "message": "Alle" + }, + "refresh": { + "message": "Opdater" + }, + "timestamp": { + "message": "Tidsstempel" + }, + "event": { + "message": "Hændelse" + }, + "unknown": { + "message": "Ukendt" + }, + "loadMore": { + "message": "Indlæs mere" + }, + "mobile": { + "message": "Mobil", + "description": "Mobile app" + }, + "extension": { + "message": "Udvidelse", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Skrivebord", + "description": "Desktop app" + }, + "webVault": { + "message": "Web-boks" + }, + "loggedIn": { + "message": "Logget ind." + }, + "changedPassword": { + "message": "Ændrede konto kodeord." + }, + "enabledUpdated2fa": { + "message": "Aktiverede/opdaterede to-trins login." + }, + "disabled2fa": { + "message": "Deaktiverede to-trins-login." + }, + "recovered2fa": { + "message": "Gendannede konto fra to-trins-login." + }, + "failedLogin": { + "message": "Loginforsøg mislykkedes med forkert adgangskode." + }, + "failedLogin2fa": { + "message": "Loginforsøg mislykkedes med forkert to-trins-login." + }, + "exportedVault": { + "message": "Eksporterede boks." + }, + "exportedOrganizationVault": { + "message": "Eksporterede organisationsboks." + }, + "editedOrgSettings": { + "message": "Redigerede organisationsindstillinger." + }, + "createdItemId": { + "message": "Oprettede element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Redigerede element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Element $ID$ sendt til papirkurven.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Flyttede emnet $ID$ til en organisation.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Viste element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Viste adgangskode til element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Viste skjult felt til element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Viste sikkerhedskode til element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Kopierede adgangskode til element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Kopierede skjult felt til element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Kopierede sikkerhedskode til element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Autoudfyldte element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Oprettede samling $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Redigerede samling $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Slettede samling $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Redigerede politik $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Oprettede gruppe $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Redigerede gruppe $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Slettede gruppe $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Slettede bruger $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Oprettede vedhæftning på element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Slettede vedhæftning på element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Redigerede samlinger for element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Inviterede bruger $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Bekræftede bruger $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Redigerede bruger $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Redigerede grupper for bruger $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Af-linket SSO for bruger $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Oprettet organisation $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Tilføjet organisation $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Fjernet organisation $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Tilgået $ID$ organisationsboks.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Enhed" + }, + "view": { + "message": "Vis" + }, + "invalidDateRange": { + "message": "Ugyldigt datointerval." + }, + "errorOccurred": { + "message": "Der er opstået en fejl." + }, + "userAccess": { + "message": "Brugeradgang" + }, + "userType": { + "message": "Brugertype" + }, + "groupAccess": { + "message": "Gruppeadgang" + }, + "groupAccessUserDesc": { + "message": "Redigér de grupper, som denne bruger tilhører." + }, + "invitedUsers": { + "message": "Inviterede bruger(e)." + }, + "resendInvitation": { + "message": "Send invitation igen" + }, + "resendEmail": { + "message": "Send e-mail igen" + }, + "hasBeenReinvited": { + "message": "$USER$ er blevet inviteret igen.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Bekræft" + }, + "confirmUser": { + "message": "Bekræft bruger" + }, + "hasBeenConfirmed": { + "message": "$USER$ er blevet bekræftet.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Bekræft brugere" + }, + "usersNeedConfirmed": { + "message": "Du har brugere, der har accepteret deres invitation, men som mangler at blive bekræftet. Brugere har ikke adgang til organisationen, før de er bekræftet." + }, + "startDate": { + "message": "Startdato" + }, + "endDate": { + "message": "Slutdato" + }, + "verifyEmail": { + "message": "Bekræft e-mail" + }, + "verifyEmailDesc": { + "message": "Bekræft din e-mailadresse for at låse op for adgangen til alle funktioner." + }, + "verifyEmailFirst": { + "message": "Din kontos e-mailadresse skal først verificeres." + }, + "checkInboxForVerification": { + "message": "Tjek din e-mail indbakke for et bekræftelseslink." + }, + "emailVerified": { + "message": "Din e-mail er blevet bekræftet." + }, + "emailVerifiedFailed": { + "message": "Kan ikke bekræfte din e-mail. Prøv at sende en ny verifikations-email." + }, + "emailVerificationRequired": { + "message": "E-mailbekræftelse kræves" + }, + "emailVerificationRequiredDesc": { + "message": "Du skal bekræfte din e-mail for at bruge denne funktion." + }, + "updateBrowser": { + "message": "Opdatér browser" + }, + "updateBrowserDesc": { + "message": "Du bruger en ikke-understøttet webbrowser. Web-boksen fungerer muligvis ikke korrekt." + }, + "joinOrganization": { + "message": "Bliv medlem af organisation" + }, + "joinOrganizationDesc": { + "message": "Du er blevet inviteret til at blive medlem af organisationen anført ovenfor. For at acceptere invitationen skal du logge ind eller oprette en ny Bitwarden-konto." + }, + "inviteAccepted": { + "message": "Invitation accepteret" + }, + "inviteAcceptedDesc": { + "message": "Du kan få adgang til denne organisation, når en administrator bekræfter dit medlemskab. Vi sender dig en e-mail, når dette sker." + }, + "inviteAcceptFailed": { + "message": "Kan ikke acceptere invitationen. Bed en organisations-administrator om at sende en ny invitation." + }, + "inviteAcceptFailedShort": { + "message": "Kan ikke acceptere invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Husk e-mail" + }, + "recoverAccountTwoStepDesc": { + "message": "Hvis du ikke kan få adgang til din konto via dine normale to-trins-login metoder, kan du bruge din to-trins-login gendannelseskode til at deaktivere alle to-trins-udbydere på din konto." + }, + "recoverAccountTwoStep": { + "message": "Gendan to-trins-login på konto" + }, + "twoStepRecoverDisabled": { + "message": "To-trins-login er blevet deaktiveret på din konto." + }, + "learnMore": { + "message": "Få mere at vide" + }, + "deleteRecoverDesc": { + "message": "Indtast din e-mailadresse nedenfor for at gendanne og slette din konto." + }, + "deleteRecoverEmailSent": { + "message": "Hvis din konto findes, har vi sendt dig en e-mail med yderligere instruktioner." + }, + "deleteRecoverConfirmDesc": { + "message": "Du har bedt om at få slettet din Bitwarden-konto. Klik på knappen nedenfor for at bekræfte." + }, + "myOrganization": { + "message": "Min organisation" + }, + "deleteOrganization": { + "message": "Slet organisation" + }, + "deletingOrganizationContentWarning": { + "message": "Angiv hovedadgangskoden for at bekræfte sletning af $ORGANIZATION$ og alle tilknyttede data. Boks-data i $ORGANIZATION$ inkluderer:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Brugerkonti forbliver aktive efter sletning, men vil ikke længere være tilknyttet denne organisation." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Sletning af $ORGANIZATION$ er permanent og uigenkaldelig.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organisation slettet" + }, + "organizationDeletedDesc": { + "message": "Organisationen og alle tilknyttede data er blevet slettet." + }, + "organizationUpdated": { + "message": "Organisation opdateret" + }, + "taxInformation": { + "message": "Skatteoplysninger" + }, + "taxInformationDesc": { + "message": "For kunder i USA er postnummer påkrævet for at opfylde momskrav, for andre lande kan du eventuelt angive et skatteidentifikationsnummer (CVR/GST) og/eller en adresse, der vises på dine fakturaer." + }, + "billingPlan": { + "message": "Abonnement", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Upgradér abonnement", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Opgradér din konto til et andet abonnement, ved at angive nedenstående oplysninger. Sørg for, at du har en aktiv betalingsmetode tilføjet til kontoen.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Faktura #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Vis faktura" + }, + "downloadInvoice": { + "message": "Download faktura" + }, + "verifyBankAccount": { + "message": "Bekræft bankkonto" + }, + "verifyBankAccountDesc": { + "message": "Vi har lavet to små indskud på din bankkonto (det kan tage 1-2 hverdage at blive vist). Indtast disse beløb for at bekræfte bankkontoen." + }, + "verifyBankAccountInitialDesc": { + "message": "Betaling med en bankkonto er kun tilgængelig for kunder i USA. Du bliver bedt om at bekræfte din bankkonto. Vi vil lave to små indskud inden for de næste 1-2 hverdage. Indtast disse beløb på organisationens faktureringsside for at bekræfte bankkontoen." + }, + "verifyBankAccountFailureWarning": { + "message": "Udelades det at bekræfte bankkontoen resulterer det i en manglende betaling, og dit abonnement deaktiveres." + }, + "verifiedBankAccount": { + "message": "Bankkonto er blevet bekræftet." + }, + "bankAccount": { + "message": "Bankkonto" + }, + "amountX": { + "message": "Beløb $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routingnummer", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Kontonummer" + }, + "accountHolderName": { + "message": "Kontoindehavers navn" + }, + "bankAccountType": { + "message": "Kontotype" + }, + "bankAccountTypeCompany": { + "message": "Firma (erhverv)" + }, + "bankAccountTypeIndividual": { + "message": "Individ (personlig)" + }, + "enterInstallationId": { + "message": "Indtast dit installations-id" + }, + "limitSubscriptionDesc": { + "message": "Indstil en pladsgrænse for dit abonnement. Når denne grænse er nået, vil du ikke kunne invitere nye brugere." + }, + "maxSeatLimit": { + "message": "Maksimal pladsgrænse (valgfrit)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Maks. potentielle pladsudgift" + }, + "addSeats": { + "message": "Tilføj pladser", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Fjern pladser", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Justeringer af dit abonnement vil resultere i forholdsmæssige ændringer af dine faktureringstotaler. Hvis nyligt inviterede brugere overstiger dit abonnements pladsgrænse, vil du straks modtage en forholdsmæssig opkrævning for de ekstra brugere." + }, + "subscriptionUserSeats": { + "message": "Dit abonnement tillader i alt $COUNT$ brugere.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Begræns abonnement (valgfrit)" + }, + "subscriptionSeats": { + "message": "Abonnementspladser" + }, + "subscriptionUpdated": { + "message": "Abonnement opdateret" + }, + "additionalOptions": { + "message": "Yderligere indstillinger" + }, + "additionalOptionsDesc": { + "message": "For yderligere hjælp til håndtering af dit abonnement, kontakt venligst kundesupport." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Justeringer af dit abonnement vil resultere i forholdsmæssige ændringer af dine faktureringstotaler. Hvis nyligt inviterede brugere overstiger dine abonnementspladser, vil du straks modtage en forholdsmæssig opkrævning for de ekstra brugere." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Justeringer af dit abonnement vil resultere i forholdsmæssige ændringer af dine faktureringstotaler. Hvis nyligt inviterede brugere overskrider dine abonnementspladser, vil du straks modtage en forholdsmæssig opkrævning for de ekstra brugere, indtil din pladsgrænse på $MAX$ er nået.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Du kan ikke invitere mere end $COUNT$ brugere uden at opgradere dit abonnement.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Du kan ikke invitere mere end $COUNT$ brugere uden at opgradere dit abonnement. Kontakt venligst kundesupport for at opgradere.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Dit abonnement giver mulighed for i alt $COUNT$ brugere. Dit abonnement er sponsoreret og faktureret til en ekstern organisation.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Justeringer af dit abonnement vil resultere i forholdsmæssige ændringer af dine faktureringstotaler. Du kan ikke invitere flere end $COUNT$ brugere uden at øge dine abonnementspladser.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Pladser at tilføje" + }, + "seatsToRemove": { + "message": "Pladser at fjerne" + }, + "seatsAddNote": { + "message": "Tilføjelse af brugerpladser vil resultere i justeringer af dine abonnementsudgifter og straks opkræve din valgte betalingsmetode. Den første afgift vil blive forholdsmæssig for resten af den aktuelle faktureringsperiode." + }, + "seatsRemoveNote": { + "message": "Fjernelse af brugerpladser resulterer i justeringer af dine abonnementsudgifter, som vil blive krediteret forholdsmæssigt ved din næste betaling." + }, + "adjustedSeats": { + "message": "Justerede $AMOUNT$ brugerpladser.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Nøgle opdateret" + }, + "updateKeyTitle": { + "message": "Opdatér nøgle" + }, + "updateEncryptionKey": { + "message": "Opdatér Krypteringsnøgle" + }, + "updateEncryptionKeyShortDesc": { + "message": "Du bruger i øjeblikket en forældet krypteringsmetode." + }, + "updateEncryptionKeyDesc": { + "message": "Vi har skiftet til større krypteringsnøgler, der giver bedre sikkerhed og adgang til nyere funktioner. Opdatering af din krypteringsnøgle er hurtig og nem. Indtast bare din hovedadgangskode nedenfor. Denne opdatering bliver obligatorisk på et senere tidspunkt." + }, + "updateEncryptionKeyWarning": { + "message": "Efter opdatering af din krypteringsnøgle skal du logge ud og ind igen i alle Bitwarden-programmer, du bruger i øjeblikket (f.eks. mobilapp eller browserudvidelser). Hvis du ikke logger ud og ind (som downloader din nye krypteringsnøgle), kan det resultere i data korruption. Vi vil forsøge at logge dig ud automatisk, men det kan blive forsinket." + }, + "updateEncryptionKeyExportWarning": { + "message": "Enhver krypteret eksport du har gemt, vil også blive utilgængelig." + }, + "subscription": { + "message": "Abonnement" + }, + "loading": { + "message": "Indlæser" + }, + "upgrade": { + "message": "Opgrader" + }, + "upgradeOrganization": { + "message": "Opgradér organisation" + }, + "upgradeOrganizationDesc": { + "message": "Denne funktion er ikke tilgængelig for gratis organisationer. Skift til et betalt abonnement for at låse op for flere funktioner." + }, + "createOrganizationStep1": { + "message": "Opret organisation: Trin 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Før du opretter din organisation, skal du først oprette en gratis personlig konto." + }, + "refunded": { + "message": "Refunderet" + }, + "nothingSelected": { + "message": "Du har ikke valgt noget." + }, + "acceptPolicies": { + "message": "Ved at markere dette felt accepterer du følgende:" + }, + "acceptPoliciesError": { + "message": "Servicevilkår og fortrolighedspolitik er ikke blevet bekræftet." + }, + "termsOfService": { + "message": "Servicevilkår" + }, + "privacyPolicy": { + "message": "Privatlivspolitik" + }, + "filters": { + "message": "Filtre" + }, + "vaultTimeout": { + "message": "Boks timeout" + }, + "vaultTimeoutDesc": { + "message": "Vælg timeout for din boks, hvorefter den vil udføre den valgte handling." + }, + "oneMinute": { + "message": "1 minut" + }, + "fiveMinutes": { + "message": "5 minutter" + }, + "fifteenMinutes": { + "message": "15 minutter" + }, + "thirtyMinutes": { + "message": "30 minutter" + }, + "oneHour": { + "message": "1 time" + }, + "fourHours": { + "message": "4 timer" + }, + "onRefresh": { + "message": "Ved genstart af browseren" + }, + "dateUpdated": { + "message": "Opdateret", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Adgangskode opdateret", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organisationen er deaktiveret." + }, + "licenseIsExpired": { + "message": "Licensen er udløbet." + }, + "updatedUsers": { + "message": "Opdaterede brugere" + }, + "selected": { + "message": "Valgt" + }, + "ownership": { + "message": "Ejerskab" + }, + "whoOwnsThisItem": { + "message": "Hvem ejer dette element?" + }, + "strong": { + "message": "Stærk", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "God", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Svag", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Meget svag", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Svag hovedadgangskode" + }, + "weakMasterPasswordDesc": { + "message": "Hovedadgangskoden du har valgt er svag. Du skal bruge en stærk hovedadgangskode (eller en adgangssætning) for at beskytte din Bitwarden-konto korrekt. Er du sikker på, at du vil bruge denne hovedadgangskode?" + }, + "rotateAccountEncKey": { + "message": "Rotér også min kontos krypteringsnøgle" + }, + "rotateEncKeyTitle": { + "message": "Rotér krypteringsnøgle" + }, + "rotateEncKeyConfirmation": { + "message": "Er du sikker på, at du vil rotere din kontos krypteringsnøgle?" + }, + "attachmentsNeedFix": { + "message": "Dette element har gamle filvedhæftninger, der skal repareres." + }, + "attachmentFixDesc": { + "message": "Dette er en gammel filvedhæftning, der skal repareres. Klik for at lære mere." + }, + "fix": { + "message": "Reparér", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Der er gamle filvedhæftninger i din boks, der skal repareres, før du kan rotere din kontos krypteringsnøgle." + }, + "yourAccountsFingerprint": { + "message": "Din kontos fingeraftrykssætning", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "For at sikre integriteten af dine krypteringsnøgler, bedes du bekræfte brugerens fingeraftrykssætning, inden du fortsætter.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Bed aldrig om at bekræfte fingeraftrykssætninger for inviterede brugere (anbefales ikke)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Gratis", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API-nøgle" + }, + "apiKeyDesc": { + "message": "Din API-nøgle kan bruges til godkendelse mod det offentlige Bitwarden-API." + }, + "apiKeyRotateDesc": { + "message": "Hvis du roterer API-nøglen, bliver den forrige nøgle ugyldig. Du kan rotere din API-nøgle, hvis du mener at den nuværende nøgle ikke længere er sikker at bruge." + }, + "apiKeyWarning": { + "message": "Din API-nøgle har fuld adgang til organisationen. Den skal holdes hemmelig." + }, + "userApiKeyDesc": { + "message": "Din API-nøgle kan bruges til godkendelse i Bitwarden-CLI." + }, + "userApiKeyWarning": { + "message": "Din API-nøgle er en alternativ godkendelsesmekanisme. Den bør holdes hemmelig." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 legitimationsoplysninger", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Vis API-nøgle" + }, + "rotateApiKey": { + "message": "Rotér API-nøgle" + }, + "selectOneCollection": { + "message": "Du skal vælge minimum én samling." + }, + "couldNotChargeCardPayInvoice": { + "message": "Vi kunne ikke trække på dit kort. Se og betal den ubetalte faktura, der er anført nedenfor." + }, + "inAppPurchase": { + "message": "Køb i appen" + }, + "cannotPerformInAppPurchase": { + "message": "Du kan ikke udføre denne handling, når du bruger en 'køb i appen'-betalingsmetode." + }, + "manageSubscriptionFromStore": { + "message": "Du skal administrere dit abonnement fra den butik, hvor dit køb i appen blev foretaget." + }, + "minLength": { + "message": "Minimumslængde" + }, + "clone": { + "message": "Klon" + }, + "masterPassPolicyDesc": { + "message": "Angiv minimumskrav til styrken af hovedadgangskoden." + }, + "twoStepLoginPolicyDesc": { + "message": "Kræv at brugerne konfigurerer to-trins-login på deres personlige konti." + }, + "twoStepLoginPolicyWarning": { + "message": "Organisationsmedlemmer, der ikke er ejere eller administratorer og ikke har to-trins login aktiveret på deres personlige konto, fjernes fra organisationen og modtager en e-mail med besked om ændringen." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Du er medlem af en organisation, der kræver at to-trins login er aktiveret på din brugerkonto. Hvis du deaktiverer alle to-trins login-udbydere, fjernes du automatisk fra disse organisationer." + }, + "passwordGeneratorPolicyDesc": { + "message": "Angiv minimumskrav til konfiguration af adgangskodegenerator." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Én eller flere organisationspolitikker påvirker dine generatorindstillinger." + }, + "masterPasswordPolicyInEffect": { + "message": "Én eller flere organisationspolitikker kræver din hovedadgangskode opfylder følgende krav:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum kompleksitetsscore på $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimumslængde på $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Indeholder ét eller flere store bogstaver" + }, + "policyInEffectLowercase": { + "message": "Indeholder ét eller flere små bogstaver" + }, + "policyInEffectNumbers": { + "message": "Indeholder ét eller flere tal" + }, + "policyInEffectSpecial": { + "message": "Indeholder ét eller flere af følgende specialtegn $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Din nye hovedadgangskode opfylder ikke politikkravene." + }, + "minimumNumberOfWords": { + "message": "Minimum antal ord" + }, + "defaultType": { + "message": "Standard type" + }, + "userPreference": { + "message": "Brugerindstilling" + }, + "vaultTimeoutAction": { + "message": "Boks timeout-handling" + }, + "vaultTimeoutActionLockDesc": { + "message": "En låst boks kræver at du gentaster din hovedadgangskode for at tilgå den igen." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "En boks der er logget ud kræver, at du godkender igen for at få adgang til den." + }, + "lock": { + "message": "Lås", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Papirkurv", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Søg i papirkurven" + }, + "permanentlyDelete": { + "message": "Slette permanent" + }, + "permanentlyDeleteSelected": { + "message": "Slet valgte elementer permanent" + }, + "permanentlyDeleteItem": { + "message": "Slet element permanent" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Er du sikker på, at du vil slette dette element permanent?" + }, + "permanentlyDeletedItem": { + "message": "Element slettet permanent" + }, + "permanentlyDeletedItems": { + "message": "Elementer slettet permanent" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Du har valgt $COUNT$ element(er), der skal slettes permanent. Er du sikker på, at du vil slette alle disse elementer permanent?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Element $ID$ slettet permanent.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Gendan" + }, + "restoreSelected": { + "message": "Gendan valgte" + }, + "restoreItem": { + "message": "Gendan element" + }, + "restoredItem": { + "message": "Element gendannet" + }, + "restoredItems": { + "message": "Elementer gendannet" + }, + "restoreItemConfirmation": { + "message": "Er du sikker på, at du vil gendanne dette element?" + }, + "restoreItems": { + "message": "Gendan elementer" + }, + "restoreSelectedItemsDesc": { + "message": "Du har valgt $COUNT$ element(er), der skal gendannes. Er du sikker på, at du vil gendanne alle disse elementer?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Element $ID$ gendannet.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Ved at logge ud fjernes al adgang til din boks og kræver online-godkendelse efter timeout-perioden. Er du sikker på, at du vil bruge denne indstilling?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Bekræft timeout-handling" + }, + "hidePasswords": { + "message": "Skjul adgangskoder" + }, + "countryPostalCodeRequiredDesc": { + "message": "Vi benytter udelukkende disse oplysninger til beregning af moms og finansiel rapportering." + }, + "includeVAT": { + "message": "Inkludér momsoplysninger (valgfrit)" + }, + "taxIdNumber": { + "message": "Momsregistreringsnummer" + }, + "taxInfoUpdated": { + "message": "Skatteoplysninger opdateret." + }, + "setMasterPassword": { + "message": "Indstil hovedadgangskode" + }, + "ssoCompleteRegistration": { + "message": "For at fuldføre indlogning vha. SSO skal en hovedadgangskode opsættes for at tilgå og beskytte din boks." + }, + "identifier": { + "message": "Identifikator" + }, + "organizationIdentifier": { + "message": "Organisationsidentifikator" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Log ind vha. din organisations single sign-on portal. Angiv din organisations identifikator for at begynde." + }, + "enterpriseSingleSignOn": { + "message": "Virksomheds Single Sign On" + }, + "ssoHandOff": { + "message": "Du kan nu lukke denne fane og fortsætte i udvidelsen." + }, + "includeAllTeamsFeatures": { + "message": "Alle teamfunktioner, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO godkendelse via SAML2.0 og OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Virksomhedspolitikker" + }, + "ssoValidationFailed": { + "message": "SSO validering mislykkedes" + }, + "ssoIdentifierRequired": { + "message": "Organisationsidentifikator er påkrævet." + }, + "unlinkSso": { + "message": "Fjern SSO tilknytning" + }, + "unlinkSsoConfirmation": { + "message": "Er du sikker på, at du vil fjerne SSO-tilknytningen for denne organisation?" + }, + "linkSso": { + "message": "Tilknyt SSO" + }, + "singleOrg": { + "message": "Enkel organisation" + }, + "singleOrgDesc": { + "message": "Begræns brugere fra at kunne deltage i andre organisationer." + }, + "singleOrgBlockCreateMessage": { + "message": "Din nuværende organisation har en politik, der ikke tillader dig at deltage i mere end en organisation. Kontakt din organisations administratorer, eller tilmeld dig fra en anden Bitwarden-konto." + }, + "singleOrgPolicyWarning": { + "message": "Organisationsmedlemmer, der ikke er ejere eller administratorer og allerede er medlem af en anden organisation, fjernes fra din organisation." + }, + "requireSso": { + "message": "Single Sign-On autentificering" + }, + "requireSsoPolicyDesc": { + "message": "Kræv at brugerne logger ind med Virksomheds Single Sign-On-metoden." + }, + "prerequisite": { + "message": "Forudsætning" + }, + "requireSsoPolicyReq": { + "message": "Enkel organisations virksomhedspolitikken skal aktiveres, før denne politik aktiveres." + }, + "requireSsoPolicyReqError": { + "message": "Enkelt organisationspolitik er ikke aktiveret." + }, + "requireSsoExemption": { + "message": "Organisationsejere og administratorer er undtaget fra denne politik." + }, + "sendTypeFile": { + "message": "Fil" + }, + "sendTypeText": { + "message": "Tekst" + }, + "createSend": { + "message": "Opret ny Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Redigér Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send oprettet", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Send opdateret", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send slettet", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Slet Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Er du sikker på, at du vil slette denne Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Hvilken type Send er denne?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Sletningsdato" + }, + "deletionDateDesc": { + "message": "Send slettes permanent på den angivne dato og tidspunkt.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Udløbsdato" + }, + "expirationDateDesc": { + "message": "Hvis opsat, udløber adgangen til denne Send på den angivne dato og tidspunkt.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maksimal antal tilgange" + }, + "maxAccessCountDesc": { + "message": "Hvis opsat, vil brugere ikke længere kunne tilgå denne Send, når det maksimale adgangsantal er nået.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Aktuelt antal tilgange" + }, + "sendPasswordDesc": { + "message": "Valgfrit brugeradgangskodekrav for tilgang til denne Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Fortrolige notater om denne Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Deaktiveret" + }, + "sendLink": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Kopiér Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Fjern adgangskode" + }, + "removedPassword": { + "message": "Adgangskode fjernet" + }, + "removePasswordConfirmation": { + "message": "Er du sikker på, at du vil fjerne adgangskoden?" + }, + "hideEmail": { + "message": "Skjul min e-mailadresse for modtagere." + }, + "disableThisSend": { + "message": "Deaktivér denne Send så ingen kan tilgå den.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Alle Send" + }, + "maxAccessCountReached": { + "message": "Maks. adgangsantal nået", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Afventer sletning" + }, + "expired": { + "message": "Udløbet" + }, + "searchSends": { + "message": "Søg Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Denne Send er beskyttet med en adgangskode. Indtast adgangskoden nedenfor for at fortsætte.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Kender du ikke adgangskoden? Bed afsenderen om den nødvendige adgangskode for at få adgang til denne Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Denne Send er som standard skjult. Du kan skifte synlighed ved hjælp af knappen nedenfor.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Download fil" + }, + "sendAccessUnavailable": { + "message": "Den Send, du forsøger at tilgå, findes ikke eller er ikke længere tilgængelig.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Filen, der er knyttet til denne Send, blev ikke fundet.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Der er ingen Send at vise.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Nødadgang" + }, + "emergencyAccessDesc": { + "message": "Tildel og håndtér nødadgang for betroede kontakter. Betroede kontakter kan anmode om adgang til enten at se eller overtage din konto i nødstilfælde. Besøg vores hjælpeside for mere information og detaljer om, hvordan nul-videndeling fungerer." + }, + "emergencyAccessOwnerWarning": { + "message": "Du er ejer af en eller flere organisationer. Hvis du tildeler overtagelsesadgang til en nødkontakt, kan de bruge alle dine tilladelser som ejer efter en overtagelse." + }, + "trustedEmergencyContacts": { + "message": "Betroede nødkontakter" + }, + "noTrustedContacts": { + "message": "Du har endnu ikke tilføjet nødkontakter. Invitér en betroet kontakt for at komme i gang." + }, + "addEmergencyContact": { + "message": "Tilføj nødkontakt" + }, + "designatedEmergencyContacts": { + "message": "Udpeget som nødkontakt" + }, + "noGrantedAccess": { + "message": "Du er endnu ikke blevet udpeget som en nødkontakt for nogen." + }, + "inviteEmergencyContact": { + "message": "Invitér nødkontakt" + }, + "editEmergencyContact": { + "message": "Redigér nødkontakt" + }, + "inviteEmergencyContactDesc": { + "message": "Invitér en ny nødkontakt ved at angive e-mailadressen på vedkommendes Bitwarden-konto nedenfor. Har vedkommende ikke allerede en Bitwarden-konto, anmoders vedkommende om at oprette én." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Nødadgang igangsat" + }, + "emergencyAccessRecoveryApproved": { + "message": "Nødadgang godkendt" + }, + "viewDesc": { + "message": "Kan se alle elementer i din egen boks." + }, + "takeover": { + "message": "Overtagelse" + }, + "takeoverDesc": { + "message": "Kan nulstille din konto med en ny hovedadgangskode." + }, + "waitTime": { + "message": "Ventetid" + }, + "waitTimeDesc": { + "message": "Tid krævet inden automatisk adgangstildeling." + }, + "oneDay": { + "message": "1 dag" + }, + "days": { + "message": "$DAYS$ dage", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Inviteret bruger." + }, + "acceptEmergencyAccess": { + "message": "Du er inviteret som nødadgangskontakt for ovenfor anførte bruger. For at acceptere invitationen, så log først ind eller opret en ny Bitwarden-konto." + }, + "emergencyInviteAcceptFailed": { + "message": "Kan ikke acceptere invitation. Bed brugeren sende en ny invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Kan ikke acceptere invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Du kan tilgå nødindstillingerne for denne bruger, når din identitet er bekræftet. En e-mail sendes til dig, når det sker." + }, + "requestAccess": { + "message": "Anmod om adgang" + }, + "requestAccessConfirmation": { + "message": "Er du sikker på, at du vil anmode om nødadgang? Du vil opnå adgang efter $WAITTIME$ dag(e) eller når brugeren godkender anmodningen.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Nødadgang udbedt for $USER$. Du får besked via e-mail, når det er muligt at fortsætte.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Godkend" + }, + "reject": { + "message": "Afvis" + }, + "approveAccessConfirmation": { + "message": "Er du sikker på, at du vil godkende nødadgang? Dette vil tillade $USER$ at $ACTION$ din konto.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Nødadgang godkendt." + }, + "emergencyRejected": { + "message": "Nødadgang afvist" + }, + "passwordResetFor": { + "message": "Adgangskode nulstillet for $USER$. Du kan nu logge ind med den nye adgangskode.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personligt ejerskab" + }, + "personalOwnershipPolicyDesc": { + "message": "Kræv at brugere gemmer boks-elementer til en organisation ved at fjerne den personlige ejerskabsmulighed." + }, + "personalOwnershipExemption": { + "message": "Organisationsejere og administratorer er undtaget fra denne politik." + }, + "personalOwnershipSubmitError": { + "message": "Grundet en virksomhedspolitik kan du ikke gemme emner i din personlige boks. Skift ejerskabsindstillingen til en organisation, og vælg fra de tilgængelige samlinger." + }, + "disableSend": { + "message": "Deaktivér Send" + }, + "disableSendPolicyDesc": { + "message": "Tillad ikke brugere at oprette eller redigere en Bitwarden Send. Sletning af en eksisterende Send er stadig tilladt.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organisationsbrugere, der kan håndtere organisationens politikker, er undtaget fra denne politiks håndhævelse." + }, + "sendDisabled": { + "message": "Send deaktiveret", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Du kan grundet en virksomhedspolitik kun slette en eksisterende Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send-valgmuligheder", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Angiv valg for oprettelse og redigering af Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organisationsbrugere, som kan håndtere organisationens politikker, er undtaget fra denne politiks håndhævelse." + }, + "disableHideEmail": { + "message": "Tillad ikke brugere at skjule deres e-mailadresse for modtagere når en Send oprettes eller redigeres.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Følgende organisationspolitikker er i øjeblikket gældende:" + }, + "sendDisableHideEmailInEffect": { + "message": "Brugere har ikke lov til at skjule deres e-mailadresser for modtagere når en Send oprettes eller redigeres.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Redigerede politik $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Abonnementspris" + }, + "estimatedTax": { + "message": "Anslået moms" + }, + "custom": { + "message": "Tilpasset" + }, + "customDesc": { + "message": "Tillader mere granulær kontrol af brugertilladelser for avancerede opsætninger." + }, + "permissions": { + "message": "Tilladelser" + }, + "accessEventLogs": { + "message": "Tilgå begivenhedslogger" + }, + "accessImportExport": { + "message": "Tilgå import/eksport" + }, + "accessReports": { + "message": "Tilgå rapporter" + }, + "missingPermissions": { + "message": "Du mangler de nødvendige tilladelser til at udføre denne handling." + }, + "manageAllCollections": { + "message": "Håndtér alle samlinger" + }, + "createNewCollections": { + "message": "Opret nye samlinger" + }, + "editAnyCollection": { + "message": "Redigér en samling" + }, + "deleteAnyCollection": { + "message": "Slet en samling" + }, + "manageAssignedCollections": { + "message": "Håndtér tildelte samlinger" + }, + "editAssignedCollections": { + "message": "Redigér tildelte samlinger" + }, + "deleteAssignedCollections": { + "message": "Slet tildelte samlinger" + }, + "manageGroups": { + "message": "Håndtér grupper" + }, + "managePolicies": { + "message": "Håndtér politikker" + }, + "manageSso": { + "message": "Håndtér SSO" + }, + "manageUsers": { + "message": "Håndtér brugere" + }, + "manageResetPassword": { + "message": "Håndtér nulstilling af adgangskode" + }, + "disableRequiredError": { + "message": "Du skal manuelt deaktivere $POLICYNAME$-politikken, før denne politik kan deaktiveres.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "En organisationspolitik påvirker dine ejerskabsmuligheder." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "En organisationspolitik har deaktiveret import af emner til din personlige boks." + }, + "personalOwnershipCheckboxDesc": { + "message": "Deaktivér personligt ejerskab for organisationsbrugere" + }, + "textHiddenByDefault": { + "message": "Når Send tilgås, skjul som standard teksten", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Et venligt navn til at beskrive denne Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Den tekst, du vil sende." + }, + "sendFileDesc": { + "message": "Den fil, du vil sende." + }, + "copySendLinkOnSave": { + "message": "Kopier linket for at dele denne Send til min udklipsholder ved gem." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send overfører nemt og sikkert følsomme, midlertidige oplysninger til andre.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Få mere at vide om", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Del tekst eller filer direkte med nogen." + }, + "sendVaultCardLearnMore": { + "message": "Få mere at vide", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "se", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "hvordan det fungerer", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "eller", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "prøv det nu", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "eller", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "tilmeld dig", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "for at prøve det i dag.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden bruger $USER_IDENTIFIER$ delte følgende med dig", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Bitwarden-brugeren, der oprettede denne Send, har valgt at skjule sin e-mailadresse. Du bør sikre dig, at du stoler på kilden til dette link, inden du bruger eller downloader dets indhold.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Den angivne udløbsdato er ugyldig." + }, + "deletionDateIsInvalid": { + "message": "Den angivne sletningsdato er ugyldig." + }, + "expirationDateAndTimeRequired": { + "message": "Der kræves en udløbsdato og -tid." + }, + "deletionDateAndTimeRequired": { + "message": "En sletningsdato og -tid er påkrævet." + }, + "dateParsingError": { + "message": "Der opstod en fejl under forsøget på at gemme dine sletnings- og udløbsdatoer." + }, + "webAuthnFallbackMsg": { + "message": "Klik på knappen nedenfor for at bekræfte din 2FA." + }, + "webAuthnAuthenticate": { + "message": "Godkend WebAuthn" + }, + "webAuthnNotSupported": { + "message": "Denne browser understøtter ikke WebAuthn." + }, + "webAuthnSuccess": { + "message": "WebAuthn bekræftet Du kan lukke denne fane." + }, + "hintEqualsPassword": { + "message": "Dit kodeordstip må ikke være identisk med din adgangskode." + }, + "enrollPasswordReset": { + "message": "Tilmeld til Adgangskodenulstilling" + }, + "enrolledPasswordReset": { + "message": "Tilmeldt Adgangskodenulstilling" + }, + "withdrawPasswordReset": { + "message": "Afmeld fra Adgangskodenulstilling" + }, + "enrollPasswordResetSuccess": { + "message": "Tilmelding lykkedes!" + }, + "withdrawPasswordResetSuccess": { + "message": "Afmelding lykkedes!" + }, + "eventEnrollPasswordReset": { + "message": "Bruger $ID$ tilmeldt hjælp til nulstilling af adgangskode.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Bruger $ID$ afmeldt hjælp til nulstilling af adgangskode.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Hovedadgangskode nulstillet for bruger $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Nulstil SSO-link for bruger $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ loggede ind med SSO for første gang", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Nulstil adgangskode" + }, + "resetPasswordLoggedOutWarning": { + "message": "Ved at fortsætte logges $NAME$ ud af sin nuværende session, hvilket kræver, at vedkommende logger ind igen. Aktive sessioner på andre enheder forbliver muligvis aktive i op til en time.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "denne bruger" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Én eller flere organisationspolitikker kræver, at hovedadgangskoden opfylder følgende krav:" + }, + "resetPasswordSuccess": { + "message": "Adgangskode nulstillet!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Indrullering vil tillade organisationsadministratorer at ændre din hovedadgangskode. Er du sikker på, at du vil indrullere dig?" + }, + "resetPasswordPolicy": { + "message": "Nulstil hovedadgangskode" + }, + "resetPasswordPolicyDescription": { + "message": "Tillad administratorer i organisationen at nulstille organisationsbrugeres hovedadgangskode." + }, + "resetPasswordPolicyWarning": { + "message": "Brugere i organisationen skal selvindrullere eller være auto-indrulleret, før administratorer kan nulstille deres hovedadgangskode." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Auto-indrullering" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Alle brugere vil automatisk blive tilmeldt adgangskodenulstilling, når deres invitation er accepteret og vil ikke have lov til at afmelde sig." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Brugere, som allerede er i organisationen, opsættes ikke med tilbagevirkende kraft til adgangskodenulstilling. De skal selvindrullere, før administratorer kan nulstille deres hovedadgangskode." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Kræv at nye brugere automatisk indrulleres" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Denne organisation har en virksomhedspolitik, der auto-opsætter dig til adgangskodenulstilling. Opsætningen giver organisationsadministratorer mulighed for at ændre din hovedadgangskode." + }, + "resetPasswordOrgKeysError": { + "message": "Organisationsnøgler svar er null" + }, + "resetPasswordDetailsError": { + "message": "Nulstil adgangskode detaljer svar er null" + }, + "trashCleanupWarning": { + "message": "Elementer, som har været i papirkurven i mere end 30 dage, slettes automatisk." + }, + "trashCleanupWarningSelfHosted": { + "message": "Elementer, som har været i papirkurven i et stykke tid, slettes automatisk." + }, + "passwordPrompt": { + "message": "Genanmodning om hovedadgangskode" + }, + "passwordConfirmation": { + "message": "Bekræftelse af hovedadgangskode" + }, + "passwordConfirmationDesc": { + "message": "Denne handling er beskyttet. For at fortsætte, angiv din hovedadgangskode igen for at bekræfte din identitet." + }, + "reinviteSelected": { + "message": "Gensend invitationer" + }, + "noSelectedUsersApplicable": { + "message": "Denne handling er ikke anvendelig for nogen af de valgte brugere." + }, + "removeUsersWarning": { + "message": "Er du sikker på, at du vil fjerne følgende brugere? Processen kan tage et par sekunder at fuldføre og kan ikke afbrydes eller annulleres." + }, + "theme": { + "message": "Tema" + }, + "themeDesc": { + "message": "Vælg et tema til din webboks." + }, + "themeSystem": { + "message": "Benyt systemtema" + }, + "themeDark": { + "message": "Mørkt" + }, + "themeLight": { + "message": "Lyst" + }, + "confirmSelected": { + "message": "Bekræft valgte" + }, + "bulkConfirmStatus": { + "message": "Status for massehandling" + }, + "bulkConfirmMessage": { + "message": "Bekræftet med succes." + }, + "bulkReinviteMessage": { + "message": "Geninviteret med succes." + }, + "bulkRemovedMessage": { + "message": "Fjernet med succes" + }, + "bulkFilteredMessage": { + "message": "Udelukket, ikke anvendeligt til denne handling." + }, + "fingerprint": { + "message": "Fingeraftryk" + }, + "removeUsers": { + "message": "Fjern brugere" + }, + "error": { + "message": "Fejl" + }, + "resetPasswordManageUsers": { + "message": "Administrér brugere skal også være aktiveret med tilladelsen Håndtér adgangskodenulstilling" + }, + "setupProvider": { + "message": "Udbyderopsætning" + }, + "setupProviderLoginDesc": { + "message": "Du er blevet inviteret til at oprette en ny udbyder. For at fortsætte skal du logge ind eller oprette en ny Bitwarden-konto." + }, + "setupProviderDesc": { + "message": "Angiv venligst nedenstående oplysninger for at fuldføre udbyderopsætningen. Kontakt kundesupport, hvis du har spørgsmål." + }, + "providerName": { + "message": "Udbydernavn" + }, + "providerSetup": { + "message": "Udbyderen er nu opsat." + }, + "clients": { + "message": "Klienter" + }, + "providerAdmin": { + "message": "Udbyder admin" + }, + "providerAdminDesc": { + "message": "Brugeren med den højeste adgang, der kan håndtere alle aspekter af din udbyder samt tilgå og håndtere klientorganisationer." + }, + "serviceUser": { + "message": "Servicebruger" + }, + "serviceUserDesc": { + "message": "Servicebrugere kan få adgang til samt administrere alle klientorganisationer." + }, + "providerInviteUserDesc": { + "message": "Invitér en ny bruger til din udbyder ved at angive deres Bitwarden-konto e-mailadresse nedenfor. Hvis de ikke allerede har en Bitwarden-konto, bliver de bedt om at oprette en ny konto." + }, + "joinProvider": { + "message": "Tilmeld dig udbyder" + }, + "joinProviderDesc": { + "message": "Du er blevet inviteret til at tilmelde dig udbyderen ovenfor. For at acceptere invitationen skal du logge ind eller oprette en ny Bitwarden-konto." + }, + "providerInviteAcceptFailed": { + "message": "Kan ikke acceptere invitationen. Bed en udbyder-admin om at sende en ny invitation." + }, + "providerInviteAcceptedDesc": { + "message": "Du kan få adgang til denne udbyder, når en administrator bekræfter dit medlemskab. Vi sender dig en e-mail, når det sker." + }, + "providerUsersNeedConfirmed": { + "message": "Du har brugere, der har accepteret deres invitation, men som stadig skal bekræftes. Brugere vil ikke have adgang til udbyderen, før de er bekræftet." + }, + "provider": { + "message": "Udbyder" + }, + "newClientOrganization": { + "message": "Ny klientorganisation" + }, + "newClientOrganizationDesc": { + "message": "Opret en ny klientorganisation, der vil blive knyttet til dig som udbyder. Du vil kunne tilgå og håndtere denne organisation." + }, + "addExistingOrganization": { + "message": "Tilføj eksisterende organisation" + }, + "myProvider": { + "message": "Min udbyder" + }, + "addOrganizationConfirmation": { + "message": "Er du sikker på, at du vil tilføje $ORGANIZATION$ som klient til $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organisation blev tilføjet udbyderen" + }, + "accessingUsingProvider": { + "message": "Tilgår organisation ved hjælp af udbyderen $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Udbyder er deaktiveret." + }, + "providerUpdated": { + "message": "Udbyder opdateret" + }, + "yourProviderIs": { + "message": "Din udbyder er $PROVIDER$. De har administrative- og faktureringsrettigheder for din organisation.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "Organisationen $ORGANIZATION$ er blevet frigjort fra din udbyder.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Er du sikker på, at du vil frigøre denne organisation? Organisationen vil fortsætte med at eksistere, men vil ikke længere blive håndteret af udbyderen." + }, + "add": { + "message": "Tilføj" + }, + "updatedMasterPassword": { + "message": "Hovedadgangskode opdateret" + }, + "updateMasterPassword": { + "message": "Opdatér hovedadgangskode" + }, + "updateMasterPasswordWarning": { + "message": "Dit hovedadgangskode blev for nylig ændret af en administrator i din organisation. For at få adgang til boksen skal du opdatere din hovedadgangskode nu. Hvis du fortsætter, logges du ud af din nuværende session, hvilket kræver, at du logger ind igen. Aktive sessioner på andre enheder kan fortsætte med at være aktive i op til én time." + }, + "masterPasswordInvalidWarning": { + "message": "Din hovedadgangskode opfylder ikke organisationspolitikken. For at blive medlem af organisationen skal du opdatere din hovedadgangskode først. Hvis du fortsætter, logges du ud af din aktuelle session, hvilket kræver, at du logger ind igen. Aktive sessioner på andre enheder kan fortsat være aktive i op til én time." + }, + "maximumVaultTimeout": { + "message": "Boks-timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Opsæt en maksimal boks-timeout for alle brugere." + }, + "maximumVaultTimeoutLabel": { + "message": "Maksimal boks-timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Ugyldig maksimal boks-timeout." + }, + "hours": { + "message": "Timer" + }, + "minutes": { + "message": "Minutter" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Din organisations politikker påvirker din boks-timeout. Maksimalt tilladt boks-timeout er $HOURS$ time(r) og $MINUTES$ minut(ter)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Tilpasset boks-timeout" + }, + "vaultTimeoutToLarge": { + "message": "Din boks-timeout overskrider den begrænsning, der er fastsat af din organisation." + }, + "disablePersonalVaultExport": { + "message": "Deaktivér eksport af personlig boks" + }, + "disablePersonalVaultExportDesc": { + "message": "Forbyder brugere at eksportere deres private boksdata." + }, + "vaultExportDisabled": { + "message": "Bokseksport deaktiveret" + }, + "personalVaultExportPolicyInEffect": { + "message": "En eller flere organisationspolitikker forhindrer dig i at eksportere din personlige boks." + }, + "selectType": { + "message": "Vælg SSO-type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID-forbindelsesopsætning" + }, + "samlSpConfig": { + "message": "SAML-tjenesteudbyderopsætning" + }, + "samlIdpConfig": { + "message": "SAML-identitetsudbyderopsætning" + }, + "callbackPath": { + "message": "Callback-sti" + }, + "signedOutCallbackPath": { + "message": "Udlogget Callback-sti" + }, + "authority": { + "message": "Myndighed" + }, + "clientId": { + "message": "Klient-ID" + }, + "clientSecret": { + "message": "Klienthemmelighed" + }, + "metadataAddress": { + "message": "Metadataadresse" + }, + "oidcRedirectBehavior": { + "message": "OIDC-omdirigeringsadfærd" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Hent claims fra endpoint for brugeroplysninger" + }, + "additionalScopes": { + "message": "Brugerdefinerede omfang" + }, + "additionalUserIdClaimTypes": { + "message": "Tilpassede bruger-id claim-typer" + }, + "additionalEmailClaimTypes": { + "message": "E-mail claim-typer" + }, + "additionalNameClaimTypes": { + "message": "Tilpassede navne-claimtyper" + }, + "acrValues": { + "message": "Anmodet godkendelseskontekst klassereferenceværdier" + }, + "expectedReturnAcrValue": { + "message": "Forventet \"acr\"-claimværdi i svar" + }, + "spEntityId": { + "message": "SP Enheds-ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata-URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Navne-ID format" + }, + "spOutboundSigningAlgorithm": { + "message": "Udgående signeringsalgoritme" + }, + "spSigningBehavior": { + "message": "Signeringsadfærd" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum indgående signeringsalgoritme" + }, + "spWantAssertionsSigned": { + "message": "Forvent signerede assertions" + }, + "spValidateCertificates": { + "message": "Validér certifikater" + }, + "idpEntityId": { + "message": "Enheds-ID" + }, + "idpBindingType": { + "message": "Bindingstype" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign-On tjeneste URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out-tjeneste URL" + }, + "idpX509PublicCert": { + "message": "X509 offentligt certifikat" + }, + "idpOutboundSigningAlgorithm": { + "message": "Udgående signeringsalgoritme" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Tillad uopfordret godkendelsessvar" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Tillad udgående logout-anmodninger" + }, + "idpSignAuthenticationRequests": { + "message": "Signér godkendelsesanmodninger" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On opsætning blev gemt." + }, + "sponsoredFamilies": { + "message": "Gratis Bitwarden Familier" + }, + "sponsoredFamiliesEligible": { + "message": "Du og din familie er berettiget til gratis Bitwarden Familier. Indløs med din personlige e-mail for at holde dine data sikre, selv når du ikke er på arbejde." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Indløs dit gratis Bitwarden til Familier-abonnement i dag for at sikre dine data, selv når du ikke er på arbejde." + }, + "sponsoredFamiliesInclude": { + "message": "Bitwarden til Familier-abonnementet omfatter" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium-adgang for op til 6 brugere" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Delte samlinger til Familiehemmeligheder" + }, + "badToken": { + "message": "Linket er ikke længere gyldigt. Bed sponsoren sende et nyt tilbud." + }, + "reclaimedFreePlan": { + "message": "Konvertér til gratis abonnement" + }, + "redeem": { + "message": "Indløs" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Vælg den organisation, du gerne vil have sponsoreret" + }, + "familiesSponsoringOrgSelect": { + "message": "Hvilket gratis Familier-tilbud vil du gerne indløse?" + }, + "sponsoredFamiliesEmail": { + "message": "Angiv din personlige e-mail for at indløse Bitwarden Familier" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Forlader eller fjernes du fra sponsororganisationen, udløber dit Familier-abonnement ved faktureringsperiodens udløb." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Acceptér tilbud for en eksisterende organisation, eller opret en ny Familier-organisation." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Du er blevet tilbudt en gratis Bitwarden Familier-abonnement organisation. For at fortsætte skal du logge ind på den konto, der modtog tilbuddet." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Tilbuddet kan ikke accepteres. Gensend venligst tilbudsmailen fra din virksomhedskonto, og forsøg igen." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Kan ikke acceptere tilbud. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Acceptér gratis Bitwarden Familier" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Gratis Bitwarden Familier-tilbud er blevet indløst" + }, + "redeemed": { + "message": "Indløst" + }, + "redeemedAccount": { + "message": "Indløst konto" + }, + "revokeAccount": { + "message": "Ophæv kontoen $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Gensend sponsorat-e-mail til $NAME$ sponsorat", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Gratis Familier-abonnement" + }, + "redeemNow": { + "message": "Indløs nu" + }, + "recipient": { + "message": "Modtager" + }, + "removeSponsorship": { + "message": "Fjern sponsorat" + }, + "removeSponsorshipConfirmation": { + "message": "Efter at have fjernet et sponsorat, vil du være ansvarlig for dette abonnement og relaterede fakturaer. Er du sikker på, at du vil fortsætte?" + }, + "sponsorshipCreated": { + "message": "Sponsorat oprettet" + }, + "revoke": { + "message": "Tilbagekald" + }, + "emailSent": { + "message": "E-mail sendt" + }, + "revokeSponsorshipConfirmation": { + "message": "Efter at have fjernet denne konto, vil Familier-organisationens ejer være ansvarlig for dette abonnement og relaterede fakturaer. Er du sikker på, at du vil fortsætte?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsoratet fjernet" + }, + "ssoKeyConnectorUnavailable": { + "message": "Kan ikke kontakte Key Connector, forsøg igen senere." + }, + "keyConnectorUrl": { + "message": "Key Connector-URL" + }, + "sendVerificationCode": { + "message": "Send en bekræftelseskode til din e-mail" + }, + "sendCode": { + "message": "Send kode" + }, + "codeSent": { + "message": "Kode sendt" + }, + "verificationCode": { + "message": "Bekræftelseskode" + }, + "confirmIdentity": { + "message": "Bekræft din identitet for at fortsætte." + }, + "verificationCodeRequired": { + "message": "Bekræftelseskode er påkrævet." + }, + "invalidVerificationCode": { + "message": "Ugyldig bekræftelseskode" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ bruger SSO med en selv-hostet nøgleserver. En hovedadgangskode er ikke længere påkrævet for at logge ind for medlemmer af denne organisation.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Forlad organisation" + }, + "removeMasterPassword": { + "message": "Fjern hovedadgangskode" + }, + "removedMasterPassword": { + "message": "Hovedadgangskode fjernet." + }, + "allowSso": { + "message": "Tillad SSO-godkendelse" + }, + "allowSsoDesc": { + "message": "Når den er indstillet, vil din konfiguration blive gemt, og medlemmer vil være i stand til at autentificere ved hjælp af deres identitetsudbyder-akkreditiver." + }, + "ssoPolicyHelpStart": { + "message": "Aktivér", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO-godkendelsespolitik", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "for at kræve, at alle medlemmer logger ind med SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO-godkendelse og Enkel organisation-politikker er påkrævet for at konfigurere Key Connector-dekryptering." + }, + "memberDecryptionOption": { + "message": "Medlemsdekrypteringsindstillinger" + }, + "memberDecryptionPassDesc": { + "message": "Når godkendt, dekrypterer medlemmer boks-data ved hjælp af deres hovedadgangskode." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Forbind Login med SSO til din selv-hostede dekrypteringsnøgleserver. Ved at bruge denne mulighed behøver medlemmer ikke at bruge deres hovedadgangskoder til at dekryptere boksdata. Kontakt Bitwarden support for at få hjælp til opsætning." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login med SSO og Key Connector-dekryptering\" er aktiveret. Denne politik omfatter kun ejere og Admins." + }, + "enabledSso": { + "message": "SSO aktiveret" + }, + "disabledSso": { + "message": "SSO deaktiveret" + }, + "enabledKeyConnector": { + "message": "Key Connector aktiveret" + }, + "disabledKeyConnector": { + "message": "Key Connector deaktiveret" + }, + "keyConnectorWarning": { + "message": "Når medlemmer begynder at bruge Key Connector, kan din organisation ikke vende tilbage til hovedadgangskode-dekryptering. Fortsæt kun, hvis du er fortrolig med at implementere og administrere en nøgleserver." + }, + "migratedKeyConnector": { + "message": "Migreret til Key Connector" + }, + "paymentSponsored": { + "message": "Angiv en betalingsmetode der skal tilknyttes organisationen. Bare rolig, vi vil ikke opkræve dig noget, medmindre du vælger yderligere funktioner, eller dit sponsorat udløber." + }, + "orgCreatedSponsorshipInvalid": { + "message": "Sponsortilbuddet er udløbet. Du kan slette den organisation, du har oprettet, for at undgå en opkrævning ved udløbet af din 7-dages prøveperiode. Ellers kan du lukke denne prompt for at beholde organisationen og påtage dig faktureringsansvaret." + }, + "newFamiliesOrganization": { + "message": "Ny Familier-organisation" + }, + "acceptOffer": { + "message": "Acceptér tilbud" + }, + "sponsoringOrg": { + "message": "Sponsorerende organisation" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Succes! Key Connector nået." + }, + "keyConnectorTestFail": { + "message": "Key Connector kan ikke nås. Tjek URL'en." + }, + "sponsorshipTokenHasExpired": { + "message": "Sponsortilbuddet er udløbet." + }, + "freeWithSponsorship": { + "message": "GRATIS med sponsorat" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ felter ovenfor kræver din opmærksomhed.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 felt ovenfor kræver din opmærksomhed." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ er påkrævet.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "krævet" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Krævet, hvis enheds-id ikke er en URL." + }, + "openIdOptionalCustomizations": { + "message": "Valgfrie tilpasninger" + }, + "openIdAuthorityRequired": { + "message": "Påkrævet, hvis autoriteten ikke er gyldig." + }, + "separateMultipleWithComma": { + "message": "Adskil flere med et komma." + }, + "sessionTimeout": { + "message": "Din session er udløbet. Gå tilbage og prøv at logge ind igen." + }, + "exportingPersonalVaultTitle": { + "message": "Eksporterer personlig boks" + }, + "exportingOrganizationVaultTitle": { + "message": "Eksporterer organisationsboks" + }, + "exportingPersonalVaultDescription": { + "message": "Kun de personlige bokselementer tilknyttet $EMAIL$ eksporteres. Organisationsbokseelementer medtages ikke.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Kun organisationsboksen tilknyttet $ORGANIZATION$ eksporteres. Personlige bokseelementer, samt elementer fra andre organisationer, medtages ikke.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "Hvad vil du generere?" + }, + "passwordType": { + "message": "Adgangskodetype" + }, + "regenerateUsername": { + "message": "Regenerér brugernavn" + }, + "generateUsername": { + "message": "Generér brugernavn" + }, + "usernameType": { + "message": "Brugernavnstype" + }, + "plusAddressedEmail": { + "message": "Plus adresseret e-mail", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Brug e-mailudbyderens underadresseringsmuligheder." + }, + "catchallEmail": { + "message": "Fang-alle e-mail" + }, + "catchallEmailDesc": { + "message": "Brug den for domænet opsatte Fang-alle indbakke." + }, + "random": { + "message": "Tilfældig" + }, + "randomWord": { + "message": "Tilfældigt ord" + }, + "service": { + "message": "Tjeneste" + } +} diff --git a/apps/web/src/locales/de/messages.json b/apps/web/src/locales/de/messages.json new file mode 100644 index 0000000000..1a8c8b4ca8 --- /dev/null +++ b/apps/web/src/locales/de/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Web-Tresor", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Um welche Art von Eintrag handelt es sich hierbei?" + }, + "name": { + "message": "Name" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Neue URL" + }, + "username": { + "message": "Benutzername" + }, + "password": { + "message": "Passwort" + }, + "newPassword": { + "message": "Neues Passwort" + }, + "passphrase": { + "message": "Passphrase" + }, + "notes": { + "message": "Notizen" + }, + "customFields": { + "message": "Benutzerdefinierte Felder" + }, + "cardholderName": { + "message": "Name des Karteninhabers" + }, + "number": { + "message": "Nummer" + }, + "brand": { + "message": "Marke" + }, + "expiration": { + "message": "Ablaufdatum" + }, + "securityCode": { + "message": "Kartenprüfnummer (CVV)" + }, + "identityName": { + "message": "Identitätsname" + }, + "company": { + "message": "Firma" + }, + "ssn": { + "message": "Sozialversicherungsnummer" + }, + "passportNumber": { + "message": "Reisepassnummer" + }, + "licenseNumber": { + "message": "Lizenznummer" + }, + "email": { + "message": "E-Mail" + }, + "phone": { + "message": "Telefon" + }, + "january": { + "message": "Januar" + }, + "february": { + "message": "Februar" + }, + "march": { + "message": "März" + }, + "april": { + "message": "April" + }, + "may": { + "message": "Mai" + }, + "june": { + "message": "Juni" + }, + "july": { + "message": "Juli" + }, + "august": { + "message": "August" + }, + "september": { + "message": "September" + }, + "october": { + "message": "Oktober" + }, + "november": { + "message": "November" + }, + "december": { + "message": "Dezember" + }, + "title": { + "message": "Titel" + }, + "mr": { + "message": "Herr" + }, + "mrs": { + "message": "Frau" + }, + "ms": { + "message": "Fr." + }, + "dr": { + "message": "Dr." + }, + "expirationMonth": { + "message": "Ablaufmonat" + }, + "expirationYear": { + "message": "Ablaufjahr" + }, + "authenticatorKeyTotp": { + "message": "Authentifizierungsschlüssel (TOTP)" + }, + "folder": { + "message": "Ordner" + }, + "newCustomField": { + "message": "Neues benutzerdefiniertes Feld" + }, + "value": { + "message": "Wert" + }, + "dragToSort": { + "message": "Zum Sortieren ziehen" + }, + "cfTypeText": { + "message": "Text" + }, + "cfTypeHidden": { + "message": "Versteckt" + }, + "cfTypeBoolean": { + "message": "Boolescher Wert" + }, + "cfTypeLinked": { + "message": "Verknüpft", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Entfernen" + }, + "unassigned": { + "message": "Nicht zugeordnet" + }, + "noneFolder": { + "message": "Kein Ordner", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Ordner hinzufügen" + }, + "editFolder": { + "message": "Ordner bearbeiten" + }, + "baseDomain": { + "message": "Basisdomäne", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain-Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Genau" + }, + "startsWith": { + "message": "Beginnt mit" + }, + "regEx": { + "message": "Regulärer Ausdruck", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Übereinstimmungserkennung", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Standard Übereinstimmungserkennung", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Niemals" + }, + "toggleVisibility": { + "message": "Sichtbarkeit umschalten" + }, + "toggleCollapse": { + "message": "Sammlung ein- / ausklappen", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Passwort generieren" + }, + "checkPassword": { + "message": "Überprüfen ob ihr Kennwort kompromittiert ist." + }, + "passwordExposed": { + "message": "Dieses Kennwort wurde $VALUE$ -mal in öffentlichen Passwortdatenbanken gefunden. Sie sollten es ändern.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Dieses Kennwort wurde in keinen bekannten Datendiebstählen gefunden. Es sollte sicher sein." + }, + "save": { + "message": "Speichern" + }, + "cancel": { + "message": "Abbrechen" + }, + "canceled": { + "message": "Abgebrochen" + }, + "close": { + "message": "Schließen" + }, + "delete": { + "message": "Löschen" + }, + "favorite": { + "message": "Favorit" + }, + "unfavorite": { + "message": "Aus Favoriten entfernen" + }, + "edit": { + "message": "Bearbeiten" + }, + "searchCollection": { + "message": "Sammlung durchsuchen" + }, + "searchFolder": { + "message": "Ordner durchsuchen" + }, + "searchFavorites": { + "message": "Favoriten durchsuchen" + }, + "searchType": { + "message": "Suchmodus", + "description": "Search item type" + }, + "searchVault": { + "message": "Tresor durchsuchen" + }, + "allItems": { + "message": "Alle Einträge" + }, + "favorites": { + "message": "Favoriten" + }, + "types": { + "message": "Typen" + }, + "typeLogin": { + "message": "Anmeldung" + }, + "typeCard": { + "message": "Karte" + }, + "typeIdentity": { + "message": "Identität" + }, + "typeSecureNote": { + "message": "Sichere Notiz" + }, + "typeLoginPlural": { + "message": "Zugangsdaten" + }, + "typeCardPlural": { + "message": "Karten" + }, + "typeIdentityPlural": { + "message": "Identitäten" + }, + "typeSecureNotePlural": { + "message": "Sichere Notizen" + }, + "folders": { + "message": "Ordner" + }, + "collections": { + "message": "Sammlungen" + }, + "firstName": { + "message": "Vorname" + }, + "middleName": { + "message": "Zweitname" + }, + "lastName": { + "message": "Nachname" + }, + "fullName": { + "message": "Vollständiger Name" + }, + "address1": { + "message": "Adresse 1" + }, + "address2": { + "message": "Adresse 2" + }, + "address3": { + "message": "Adresse 3" + }, + "cityTown": { + "message": "Stadt" + }, + "stateProvince": { + "message": "Bundesland" + }, + "zipPostalCode": { + "message": "Postleitzahl" + }, + "country": { + "message": "Land" + }, + "shared": { + "message": "Geteilt" + }, + "attachments": { + "message": "Anhänge" + }, + "select": { + "message": "Auswählen" + }, + "addItem": { + "message": "Eintrag hinzufügen" + }, + "editItem": { + "message": "Eintrag bearbeiten" + }, + "viewItem": { + "message": "Eintrag anzeigen" + }, + "ex": { + "message": "Bsp.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Sonstiges" + }, + "share": { + "message": "Teilen" + }, + "moveToOrganization": { + "message": "In Organisation verschieben" + }, + "valueCopied": { + "message": "$VALUE$ kopiert", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Wert kopieren", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Passwort kopieren", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Benutzernamen kopieren", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Nummer kopieren", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Sicherheitscode kopieren", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "URI kopieren", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Mein Tresor" + }, + "vault": { + "message": "Tresor" + }, + "moveSelectedToOrg": { + "message": "Auswahl zur Organisation verschieben" + }, + "deleteSelected": { + "message": "Auswahl löschen" + }, + "moveSelected": { + "message": "Auswahl verschieben" + }, + "selectAll": { + "message": "Alle auswählen" + }, + "unselectAll": { + "message": "Alle abwählen" + }, + "launch": { + "message": "Starten" + }, + "newAttachment": { + "message": "Neuen Anhang hinzufügen" + }, + "deletedAttachment": { + "message": "Gelöschter Anhang" + }, + "deleteAttachmentConfirmation": { + "message": "Möchten Sie diesen Anhang wirklich löschen?" + }, + "attachmentSaved": { + "message": "Der Anhang wurde gespeichert." + }, + "file": { + "message": "Datei" + }, + "selectFile": { + "message": "Wähle eine Datei." + }, + "maxFileSize": { + "message": "Die maximale Dateigröße beträgt 500 MB." + }, + "updateKey": { + "message": "Sie können diese Funktion nicht nutzen, bevor Sie Ihren Verschlüsselungscode aktualisiert haben." + }, + "addedItem": { + "message": "Eintrag hinzugefügt" + }, + "editedItem": { + "message": "Eintrag bearbeitet" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ verschoben nach $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Ausgewählte Einträge nach $ORGNAME$ verschoben", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Eintrag löschen" + }, + "deleteFolder": { + "message": "Ordner löschen" + }, + "deleteAttachment": { + "message": "Anhang löschen" + }, + "deleteItemConfirmation": { + "message": "Soll dieser Eintrag wirklich gelöscht werden?" + }, + "deletedItem": { + "message": "Element gelöscht" + }, + "deletedItems": { + "message": "Elemente gelöscht" + }, + "movedItems": { + "message": "Verschobene Einträge" + }, + "overwritePasswordConfirmation": { + "message": "Sind Sie sicher, dass Sie das aktuelle Passwort überschreiben möchten?" + }, + "editedFolder": { + "message": "Ordner bearbeitet" + }, + "addedFolder": { + "message": "Ordner hinzugefügt" + }, + "deleteFolderConfirmation": { + "message": "Soll dieser Ordner wirklich gelöscht werden?" + }, + "deletedFolder": { + "message": "Ordner gelöscht" + }, + "loggedOut": { + "message": "Ausgeloggt" + }, + "loginExpired": { + "message": "Ihre Anmeldungsitzung ist abgelaufen." + }, + "logOutConfirmation": { + "message": "Wollen Sie sich wirklich abmelden?" + }, + "logOut": { + "message": "Abmelden" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Ja" + }, + "no": { + "message": "Nein" + }, + "loginOrCreateNewAccount": { + "message": "Sie müssen sich anmelden oder ein neues Konto erstellen, um auf den Tresor zugreifen zu können." + }, + "createAccount": { + "message": "Konto erstellen" + }, + "logIn": { + "message": "Anmelden" + }, + "submit": { + "message": "Absenden" + }, + "emailAddressDesc": { + "message": "Verwenden Sie Ihre E-Mail-Adresse zur Anmeldung." + }, + "yourName": { + "message": "Ihr Name" + }, + "yourNameDesc": { + "message": "Wie sollen wir Sie nennen?" + }, + "masterPass": { + "message": "Master-Passwort" + }, + "masterPassDesc": { + "message": "Das Master-Passwort wird verwendet, um den Tresor zu öffnen. Es ist sehr wichtig, dass Sie das Passwort nicht vergessen, da es keine Möglichkeit gibt es zurückzusetzen." + }, + "masterPassHintDesc": { + "message": "Ein Master-Passwort-Hinweis kann Ihnen helfen, sich an das Passwort zu erinnern, wenn Sie es vergessen haben sollten." + }, + "reTypeMasterPass": { + "message": "Master-Passwort wiederholen" + }, + "masterPassHint": { + "message": "Master-Passwort-Hinweis (optional)" + }, + "masterPassHintLabel": { + "message": "Master-Passwort-Hinweis" + }, + "settings": { + "message": "Einstellungen" + }, + "passwordHint": { + "message": "Passwort-Hinweis" + }, + "enterEmailToGetHint": { + "message": "Geben Sie die E-Mail Adresse Ihres Kontos ein, um einen Hinweis auf ihr Master-Passwort zu erhalten." + }, + "getMasterPasswordHint": { + "message": "Hinweis zum Master-Passwort erhalten" + }, + "emailRequired": { + "message": "Die E-Mail Adresse wird benötigt." + }, + "invalidEmail": { + "message": "Ungültige E-Mail Adresse." + }, + "masterPassRequired": { + "message": "Das Master-Passwort ist erforderlich." + }, + "masterPassLength": { + "message": "Das Master-Passwort muss mindestens 8 Zeichen lang sein." + }, + "masterPassDoesntMatch": { + "message": "Master-Passwort-Bestätigung stimmt nicht überein." + }, + "newAccountCreated": { + "message": "Ihr neues Konto wurde erstellt! Sie können sich jetzt anmelden." + }, + "masterPassSent": { + "message": "Wir haben Ihnen eine E-Mail mit dem Master-Passwort-Hinweis zu gesendet." + }, + "unexpectedError": { + "message": "Ein unerwarteter Fehler ist aufgetreten." + }, + "emailAddress": { + "message": "E-Mail-Adresse" + }, + "yourVaultIsLocked": { + "message": "Ihr Tresor ist gesperrt. Überprüfen Sie Ihr Master-Passwort um fortzufahren." + }, + "unlock": { + "message": "Entsperren" + }, + "loggedInAsEmailOn": { + "message": "Angemeldet als $EMAIL$ auf $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Ungültiges Master-Passwort" + }, + "lockNow": { + "message": "Jetzt sperren" + }, + "noItemsInList": { + "message": "Keine Einträge vorhanden." + }, + "noCollectionsInList": { + "message": "Keine Sammlungen vorhanden." + }, + "noGroupsInList": { + "message": "Keine Gruppen vorhanden." + }, + "noUsersInList": { + "message": "Keine Benutzer vorhanden." + }, + "noEventsInList": { + "message": "Keine Ereignisse vorhanden." + }, + "newOrganization": { + "message": "Neue Organisation" + }, + "noOrganizationsList": { + "message": "Sie gehören keiner Organisation an. Organisationen erlauben es Ihnen Passwörter sicher mit anderen zu teilen." + }, + "versionNumber": { + "message": "Version $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Geben Sie den 6-stelligen Verifizierungscode aus Ihrer Authentifizierungs-App ein." + }, + "enterVerificationCodeEmail": { + "message": "Geben Sie den 6-stelligen Verifizierungscode der an $EMAIL$ gesendet wurde an.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Bestätigungsmail wurde an $EMAIL$ gesendet.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Angemeldet bleiben" + }, + "sendVerificationCodeEmailAgain": { + "message": "E-Mail mit Bestätigungscode erneut versenden" + }, + "useAnotherTwoStepMethod": { + "message": "Verwenden sie eine andere Zwei-Faktor-Anmelde-Methode" + }, + "insertYubiKey": { + "message": "Stecken Sie Ihren YubiKey in einen USB-Port Ihres Computers und berühren Sie dessen Knopf." + }, + "insertU2f": { + "message": "Stecken Sie Ihren Sicherheitsschlüssel in einen USB-Port des Computers. Falls dieser einen Knopf hat, drücken Sie ihn." + }, + "loginUnavailable": { + "message": "Anmeldung nicht verfügbar" + }, + "noTwoStepProviders": { + "message": "Dieses Konto hat eine aktive Zwei-Faktor-Authentifizierung, allerdings wird keiner der konfigurierten Zwei-Faktor-Anbieter von diesem Browser unterstützt." + }, + "noTwoStepProviders2": { + "message": "Bitte benutzen Sie einen unterstützten Browser (z. B. Chrome) und / oder fügen Sie zusätzliche Anbieter hinzu, die von mehr Browsern unterstützt werden (z. B. eine Authentifizierungs-App)." + }, + "twoStepOptions": { + "message": "Optionen für Zwei-Faktor-Authentifizierung" + }, + "recoveryCodeDesc": { + "message": "Zugang zu allen Zwei-Faktor-Anbietern verloren? Benutzen Sie Ihren Wiederherstellungscode, um alle Zwei-Faktor-Anbieter in Ihrem Konto zu deaktivieren." + }, + "recoveryCodeTitle": { + "message": "Wiederherstellungscode" + }, + "authenticatorAppTitle": { + "message": "Authentifizierungs-App" + }, + "authenticatorAppDesc": { + "message": "Verwenden Sie eine Authentifizierungs-App (wie zum Beispiel Authy oder Google Authenticator), um zeitbasierte Verifizierungscodes zu generieren.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP Sicherheitsschlüssel" + }, + "yubiKeyDesc": { + "message": "Verwende einen YubiKey um auf dein Konto zuzugreifen. Funtioniert mit YubiKey 4, Nano 4, 4C und NEO Geräten." + }, + "duoDesc": { + "message": "Verifizieren Sie mit Duo Security, indem Sie die Duo Mobile App, SMS, Anrufe oder U2F Sicherheitsschlüssel benutzen.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Nutzen Sie Duo Security um sich mit der Duo Mobile App, SMS, per Anruf oder U2F Sicherheitsschlüssel Ihrer Organisation gegenüber zu verifizieren.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Benutzen Sie einen FIDO U2F-kompatiblen Sicherheitsschlüssel um auf Ihr Konto zuzugreifen." + }, + "u2fTitle": { + "message": "FIDO U2F Sicherheitsschlüssel" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Benutzen Sie einen kompatiblen WebAuthn Sicherheitsschlüssel, um auf Ihr Konto zuzugreifen." + }, + "webAuthnMigrated": { + "message": "(Von FIDO migriert)" + }, + "emailTitle": { + "message": "E-Mail" + }, + "emailDesc": { + "message": "Bestätigungscodes werden Ihnen per E-Mail zugesandt." + }, + "continue": { + "message": "Fortsetzen" + }, + "organization": { + "message": "Organisation" + }, + "organizations": { + "message": "Organisationen" + }, + "moveToOrgDesc": { + "message": "Wähle eine Organisation aus, in die du diesen Eintrag verschieben möchtest. Das Verschieben in eine Organisation überträgt das Eigentum an diese Organisation. Du bist nicht mehr der direkte Besitzer dieses Eintrags, sobald er verschoben wurde." + }, + "moveManyToOrgDesc": { + "message": "Wähle eine Organisation aus, in die du diese Einträge verschieben möchtest. Das Verschieben in eine Organisation überträgt das Eigentum der Einträge an diese Organisation. Du bist nicht mehr der direkte Besitzer dieser Einträge, sobald sie verschoben wurden." + }, + "collectionsDesc": { + "message": "Bearbeiten Sie die Sammlungen, mit denen dieser Eintrag geteilt wird. Nur Organisationsmitglieder mit Zugriff auf diese Sammlungen werden diesen Eintrag sehen können." + }, + "deleteSelectedItemsDesc": { + "message": "Sie haben $COUNT$ Eintrag/Einträge zum Löschen ausgewählt. Sind Sie sicher, dass alle diese Einträge gelöscht werden sollen?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Wählen Sie einen Ordner aus, in den Sie $COUNT$ ausgewählte(s) Objekt(e) verschieben möchten.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Du hast $COUNT$ Element(e) ausgewählt. $MOVEABLE_COUNT$ Element(e) können in eine Organisation verschoben werden, $NONMOVEABLE_COUNT$ nicht.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Verifizierungscode (TOTP)" + }, + "copyVerificationCode": { + "message": "Kopiere Verifizierungscode" + }, + "warning": { + "message": "Warnung" + }, + "confirmVaultExport": { + "message": "Tresor-Export bestätigen" + }, + "exportWarningDesc": { + "message": "Dieser Export enthält Ihre Tresor-Daten in einem unverschlüsseltem Format. Sie sollten die Datei daher nicht über unsichere Kanäle (z.B. E-Mail) versenden oder speichern. Löschen Sie die Datei sofort nach ihrer Verwendung." + }, + "encExportKeyWarningDesc": { + "message": "Dieser Export verschlüsselt Ihre Daten mit dem Verschlüsselungscode Ihres Kontos. Falls Sie Ihren Verschlüsselungscode erneuern, sollten Sie den Export erneut durchführen, da Sie die zuvor erstellte Datei ansonsten nicht mehr entschlüsseln können." + }, + "encExportAccountWarningDesc": { + "message": "Die Verschlüsselungscodes eines Kontos sind für jedes Bitwarden Benutzerkonto einzigartig, deshalb können Sie keinen verschlüsselten Export in ein anderes Konto importieren." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "Tresor exportieren" + }, + "fileFormat": { + "message": "Dateiformat" + }, + "exportSuccess": { + "message": "Ihre Daten wurden exportiert." + }, + "passwordGenerator": { + "message": "Passwortgenerator" + }, + "minComplexityScore": { + "message": "Kleinste Komplexitätsstufe" + }, + "minNumbers": { + "message": "Mindestanzahl Ziffern" + }, + "minSpecial": { + "message": "Mindestanzahl Sonderzeichen", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Mehrdeutige Zeichen vermeiden" + }, + "regeneratePassword": { + "message": "Passwort neu generieren" + }, + "length": { + "message": "Länge" + }, + "numWords": { + "message": "Anzahl der Wörter" + }, + "wordSeparator": { + "message": "Worttrennzeichen" + }, + "capitalize": { + "message": "Großschreiben", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Ziffer hinzufügen" + }, + "passwordHistory": { + "message": "Passwortverlauf" + }, + "noPasswordsInList": { + "message": "Keine Passwörter vorhanden." + }, + "clear": { + "message": "Löschen", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Konto aktualisiert" + }, + "changeEmail": { + "message": "E-Mail-Adresse ändern" + }, + "changeEmailTwoFactorWarning": { + "message": "Wenn du fortfährst, wird die E-Mail-Adresse deines Kontos geändert. Die E-Mail-Adresse für die Zwei-Faktor-Authentifizierung wird nicht geändert. Du kannst diese E-Mail-Adresse in den Zwei-Faktor Anmeldeeinstellungen ändern." + }, + "newEmail": { + "message": "Neue E-Mail-Adresse" + }, + "code": { + "message": "Code" + }, + "changeEmailDesc": { + "message": "Wir haben Ihnen einen Bestätigungscode an $EMAIL$ gesendet. Bitte prüfen Sie Ihre E-Mails und geben Sie den Code zur Bestätigung der E-Mail-Änderung unten ein.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Wenn Sie fortfahren, werden Sie aus Ihrer aktuellen Sitzung ausgeloggt. Aktive Sitzungen auf anderen Geräten können bis zu einer Stunde weiterhin verwendet werden." + }, + "emailChanged": { + "message": "E-Mail-Adresse geändert" + }, + "logBackIn": { + "message": "Bitte melden Sie sich erneut an." + }, + "logBackInOthersToo": { + "message": "Bitte melden Sie sich wieder an. Wenn Sie andere Bitwarden-Anwendungen verwenden, melden Sie sich auch dort ab und wieder neu an." + }, + "changeMasterPassword": { + "message": "Master-Passwort ändern" + }, + "masterPasswordChanged": { + "message": "Master-Passwort geändert" + }, + "currentMasterPass": { + "message": "Aktuelles Master-Passwort" + }, + "newMasterPass": { + "message": "Neues Master-Passwort" + }, + "confirmNewMasterPass": { + "message": "Neues Master-Passwort bestätigen" + }, + "encKeySettings": { + "message": "Verschlüsselungscode-Einstellungen" + }, + "kdfAlgorithm": { + "message": "KDF-Algorithmus" + }, + "kdfIterations": { + "message": "KDF-Iterationen" + }, + "kdfIterationsDesc": { + "message": "Eine höhere Anzahl von KDF-Iterationen hilft dabei, dein Master-Passwort besser vor Brute-Force-Angriffen zu schützen. Wir empfehlen einen Wert von $VALUE$ oder mehr.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Wenn du die Anzahl der KDF-Iterationen zu hoch setzt, kann es sein, dass das Einloggen in Bitwarden (und Entsperren) auf langsameren Geräten länger dauert. Wir empfehlen, dass du den Wert um $INCREMENT$ Schrittweise anhebest und es auf allen Geräten testest.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "KDF ändern" + }, + "encKeySettingsChanged": { + "message": "Verschlüsselungscode-Einstellungen wurden geändert" + }, + "dangerZone": { + "message": "Gefahrenzone" + }, + "dangerZoneDesc": { + "message": "Vorsicht, diese Aktionen sind nicht umkehrbar!" + }, + "deauthorizeSessions": { + "message": "Sitzungen abmelden" + }, + "deauthorizeSessionsDesc": { + "message": "Könnte es sein, dass Sie noch auf einem anderen Gerät angemeldet sind? Gehen Sie dazu wie folgt vor, um sich auf allen bisher benutzten Geräten abzumelden. Dieser Schritt wird empfohlen, wenn Sie sich auf einem öffentlichen Computer angemeldet haben, oder Ihr Passwort versehentlich auf einem fremden Gerät gespeichert haben. Dieser Schritt löscht außerdem alle zuvor gespeicherten Sitzungen mit Zwei-Faktor-Anmeldung." + }, + "deauthorizeSessionsWarning": { + "message": "Sollten Sie sich von allen Geräten abmelden, werden Sie auch vom jetzigen Gerät abgemeldet und müssen sich erneut anmelden. Sollten Sie die Zwei-Faktor-Anmeldung aktiviert haben, müssen Sie diese ebenfalls erneut auf diesem Gerät bestätigen. Es kann bis zu eine Stunde dauern, bis Sie auf allen Geräten abgemeldet sind." + }, + "sessionsDeauthorized": { + "message": "Alle Sitzungen wurden abgemeldet" + }, + "purgeVault": { + "message": "Tresor leeren" + }, + "purgedOrganizationVault": { + "message": "Gelöschter Organisations-Tresor." + }, + "vaultAccessedByProvider": { + "message": "Vom Anbieter zugegriffener Tresor." + }, + "purgeVaultDesc": { + "message": "Gehen Sie wie folgt vor, um alle Einträge und Ordner in Ihrem Tresor zu löschen. Einträge, die zu einer Organisation gehören, die Sie mit anderen teilen, werden nicht gelöscht." + }, + "purgeOrgVaultDesc": { + "message": "Fahren Sie fort, um alle Inhalte dieses Tresors zu löschen." + }, + "purgeVaultWarning": { + "message": "Die Leerung des Tresor ist permanent. Sie kann nicht rückgängig gemacht werden." + }, + "vaultPurged": { + "message": "Ihr Tresor wurde geleert." + }, + "deleteAccount": { + "message": "Konto löschen" + }, + "deleteAccountDesc": { + "message": "Gehen Sie wie folgt vor, um Ihr Konto und alle zugehörigen Daten zu löschen." + }, + "deleteAccountWarning": { + "message": "Die Kontolöschung ist permanent. Sie kann nicht rückgängig gemacht werden." + }, + "accountDeleted": { + "message": "Konto gelöscht" + }, + "accountDeletedDesc": { + "message": "Ihr Konto und alle zugehörigen Daten wurden gelöscht." + }, + "myAccount": { + "message": "Mein Konto" + }, + "tools": { + "message": "Werkzeuge" + }, + "importData": { + "message": "Daten importieren" + }, + "importError": { + "message": "Importfehler" + }, + "importErrorDesc": { + "message": "Es gab ein Problem mit den Daten, die Sie importieren wollten. Bitte beheben Sie die unten aufgeführten Fehler in Ihrer Quelldatei und versuchen Sie es erneut." + }, + "importSuccess": { + "message": "Daten wurden erfolgreich in Ihren Tresor importiert." + }, + "importWarning": { + "message": "Sie importieren Daten nach $ORGANIZATION$. Ihre Daten können mit Mitgliedern dieser Organisation geteilt werden. Möchten Sie 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üsselungscode stimmt nicht mit dem beim Export verwendeten Verschlüsselungscode überein." + }, + "selectFormat": { + "message": "Wählen Sie das Format Ihrer Import-Datei" + }, + "selectImportFile": { + "message": "Wählen Sie die Import-Datei" + }, + "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)" + } + } + }, + "options": { + "message": "Optionen" + }, + "optionsDesc": { + "message": "Passen Sie den Web-Tresor Ihren Bedürfnissen an." + }, + "optionsUpdated": { + "message": "Optionen aktualisiert" + }, + "language": { + "message": "Sprache" + }, + "languageDesc": { + "message": "Ändern Sie die Sprache für den Web-Tresor." + }, + "disableIcons": { + "message": "Website-Icons deaktivieren" + }, + "disableIconsDesc": { + "message": "Website-Icons zeigen ein wiedererkennbares Bild neben jedem Eintrag in Ihrem Tresor." + }, + "enableGravatars": { + "message": "Aktiviere Gravatare", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Nutze Profilbilder von gravatar.com." + }, + "enableFullWidth": { + "message": "Darstellung in voller Breite aktivieren", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Dem Web-Tresor erlauben, die volle Breite des Browserfensters zu benutzen." + }, + "default": { + "message": "Standard" + }, + "domainRules": { + "message": "Domain-Regeln" + }, + "domainRulesDesc": { + "message": "Wenn Sie die gleiche Anmeldung über mehrere verschiedene Webseitendomänen hinweg haben, können Sie die Webseite als \"gleichwertig\" markieren. \"Globale\" Domänen wurden bereits von Bitwarden für Sie angelegt." + }, + "globalEqDomains": { + "message": "Globale gleichwertige Domains" + }, + "customEqDomains": { + "message": "Benutzerdefinierte gleichwertige Domains" + }, + "exclude": { + "message": "Ausschließen" + }, + "include": { + "message": "Einschließen" + }, + "customize": { + "message": "Anpassen" + }, + "newCustomDomain": { + "message": "Neue benutzerdefinierte Domäne" + }, + "newCustomDomainDesc": { + "message": "Geben Sie eine mit Komma getrennte Liste von Domänen ein. Nur \"Basis\"-Domänen sind erlaubt. Geben Sie keine Sub-Domänen an. Geben Sie beispielsweise \"google.de\" anstelle von \"www.google.de\" an. Sie können auch \"androidapp://package.name\" eingeben, um Webseiten-Domänen einer Android-App zuzuordnen." + }, + "customDomainX": { + "message": "$INDEX$ benutzerdefinierte Domänen", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domänen aktualisiert" + }, + "twoStepLogin": { + "message": "Zwei-Faktor-Authentifizierung" + }, + "twoStepLoginDesc": { + "message": "Sichern Sie Ihr Konto mit Zwei-Faktor-Authentifizierung." + }, + "twoStepLoginOrganizationDesc": { + "message": "Zwei-Faktor-Authentifizierung für die Benutzer Ihrer Organisation verlangen, indem Sie Anbieter auf Organisationsebene konfigurieren." + }, + "twoStepLoginRecoveryWarning": { + "message": "Durch die Aktivierung der Zwei-Faktor-Authentifizierung könnten Sie sich dauerhaft aus Ihrem Bitwarden-Konto aussperren. Ein Wiederherstellungscode ermöglicht es Ihnen, auf Ihr Konto zuzugreifen, falls Sie Ihren normalen Zwei-Faktor-Anbieter nicht mehr verwenden können (z.B. wenn Sie Ihr Gerät verlieren). Der Bitwarden-Support kann Ihnen nicht helfen, wenn Sie den Zugang zu Ihrem Konto verlieren. Wir empfehlen Ihnen, den Wiederherstellungscode aufzuschreiben oder auszudrucken und an einem sicheren Ort aufzubewahren." + }, + "viewRecoveryCode": { + "message": "Wiederherstellungscode anzeigen" + }, + "providers": { + "message": "Anbieter", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Aktivieren" + }, + "enabled": { + "message": "Aktiviert" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium-Mitgliedschaft" + }, + "premiumRequired": { + "message": "Premium-Mitgliedschaft benötigt" + }, + "premiumRequiredDesc": { + "message": "Für diese Funktion ist eine Premium-Mitgliedschaft notwendig." + }, + "youHavePremiumAccess": { + "message": "Sie haben Zugriff auf Premium-Funktionen" + }, + "alreadyPremiumFromOrg": { + "message": "Sie haben bereits Zugriff auf Premiumfunktionen, weil Sie Mitglied einer Organisation sind." + }, + "manage": { + "message": "Verwalten" + }, + "disable": { + "message": "Deaktivieren" + }, + "twoStepLoginProviderEnabled": { + "message": "Dieser Zwei-Faktor-Authentifizierungsanbieter ist für Ihr Konto aktiviert." + }, + "twoStepLoginAuthDesc": { + "message": "Geben Sie Ihr Master-Passwort ein, um die Zwei-Faktor-Anmeldeeinstellungen zu ändern." + }, + "twoStepAuthenticatorDesc": { + "message": "Führen Sie diese Schritte aus, um eine Zwei-Faktor-Anmeldung mit einer Authentifizierungs-App einzurichten:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Laden Sie sich eine Zwei-Faktor-Authentifizierungs-App herunter" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Brauchen Sie eine Zwei-Faktor-Authentifizierungs-App? Laden Sie eine der folgenden Apps herunter" + }, + "iosDevices": { + "message": "iOS-Gerät" + }, + "androidDevices": { + "message": "Android-Gerät" + }, + "windowsDevices": { + "message": "Windows-Gerät" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Diese Apps sind Empfehlungen. Andere Authentifizierungs-Apps funktionieren allerdings auch." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scannen Sie diesen QR-Code mit Ihrer Authentifizierungs-App" + }, + "key": { + "message": "Schlüssel" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Geben Sie den 6-stelligen Bestätigungs-Code aus der App ein" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Falls Sie es zu einem anderen Gerät hinzufügen müssen, finden Sie unten den QR-Code (oder Schlüssel), der von Ihrer Authentifizierungs-App benötigt wird." + }, + "twoStepDisableDesc": { + "message": "Sind Sie sicher, dass Sie diesen Zwei-Faktor-Authentifizierungsanbieter deaktivieren möchten?" + }, + "twoStepDisabled": { + "message": "Zwei-Faktor-Authentifizierungsanbieter deaktiviert." + }, + "twoFactorYubikeyAdd": { + "message": "Einen neuen YubiKey zu Ihrem Konto hinzufügen" + }, + "twoFactorYubikeyPlugIn": { + "message": "Stecken Sie den YubiKey in den USB-Anschluss Ihres Computers." + }, + "twoFactorYubikeySelectKey": { + "message": "Selektieren Sie unten das erste YubiKey-Eingabefeld." + }, + "twoFactorYubikeyTouchButton": { + "message": "Drücken Sie die Taste des YubiKeys." + }, + "twoFactorYubikeySaveForm": { + "message": "Speichern des Formulars" + }, + "twoFactorYubikeyWarning": { + "message": "Aufgrund von Plattformbeschränkungen können YubiKeys nicht in allen Bitwarden-Anwendungen verwendet werden. Sie sollten einen anderen Zwei-Faktor-Authentifizierungsanbieter aktivieren, damit Sie auf Ihr Konto zugreifen können, wenn YubiKeys nicht verwendet werden können. Unterstützte Plattformen:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web-Tresor, Desktop-Anwendung, CLI und alle Browser-Erweiterungen auf einem Gerät mit USB-Anschluss, das Ihren YubiKey erkennen kann." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile Apps auf einem NFC-fähigen Gerät oder einem USB-Port, der Ihren YubiKey erkennen kann." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Schlüssel $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Schlüssel $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC-Unterstützung" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Einer meiner Schlüssel unterstützt NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Wenn eines Ihrer YubiKeys NFC (z. B. ein YubiKey NEO) unterstützt, werden Sie auf mobilen Geräten dazu aufgefordert, wenn NFC Verfügbarkeit erkannt wird." + }, + "yubikeysUpdated": { + "message": "YubiKeys aktualisiert" + }, + "disableAllKeys": { + "message": "Alle Schlüssel deaktivieren" + }, + "twoFactorDuoDesc": { + "message": "Geben Sie die Bitwarden-Anwendungsinformationen aus Ihrem Duo Admin-Panel ein." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integrationsschlüssel" + }, + "twoFactorDuoSecretKey": { + "message": "Geheimer Schlüssel" + }, + "twoFactorDuoApiHostname": { + "message": "API-Hostname" + }, + "twoFactorEmailDesc": { + "message": "Folgen Sie diesen Schritten, um eine Zwei-Faktor-Anmeldung per E-Mail einzurichten:" + }, + "twoFactorEmailEnterEmail": { + "message": "Geben Sie die E-Mail ein, unter der Sie Verifizierungscodes erhalten möchten" + }, + "twoFactorEmailEnterCode": { + "message": "Geben Sie den 6-stelligen Bestätigungs-Code aus der E-Mail ein" + }, + "sendEmail": { + "message": "E-Mail senden" + }, + "twoFactorU2fAdd": { + "message": "Fügen Sie Ihrem Konto einen FIDO U2F-Sicherheitsschlüssel hinzu" + }, + "removeU2fConfirmation": { + "message": "Sind Sie sich sicher, dass Sie diesen Sicherheitsschlüssel entfernen möchten?" + }, + "twoFactorWebAuthnAdd": { + "message": "Einen WebAuthn Sicherheitsschlüssel zu Ihrem Konto hinzufügen" + }, + "readKey": { + "message": "Schlüssel erfassen" + }, + "keyCompromised": { + "message": "Dieser Schlüssel ist bloßgestellt." + }, + "twoFactorU2fGiveName": { + "message": "Geben Sie dem Sicherheitsschlüssel einen eigenen Namen, um ihn zu erkennen." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Stecken Sie den Sicherheitsschlüssel in den USB-Port Ihres Computers und drücken Sie den \"Schlüssel erfassen\" Knopf." + }, + "twoFactorU2fTouchButton": { + "message": "Wenn der Sicherheitsschlüssel eine Taste hat, drücken Sie die." + }, + "twoFactorU2fSaveForm": { + "message": "Formular speichern." + }, + "twoFactorU2fWarning": { + "message": "Aufgrund von Plattformbeschränkungen kann FIDO U2F nicht mit allen Bitwarden-Anwendungen verwendet werden. Sie sollten einen anderen Zwei-Faktor-Authentifizierungsanbieter aktivieren, damit Sie auf Ihr Konto zugreifen können, wenn FIDO U2F nicht verwendet werden kann. Unterstützte Plattformen sind:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web-Tresor und Browser-Erweiterungen auf einem Desktop/Laptop mit einem U2F fähigen Browser (Chrome, Opera, Vivaldi oder Firefox mit FIDO U2F aktiviert)." + }, + "twoFactorU2fWaiting": { + "message": "Es wird darauf gewartet, dass Sie die Taste Ihres Sicherheitsschlüssels betätigen" + }, + "twoFactorU2fClickSave": { + "message": "Drücken Sie \"Speichern\", um den Sicherheitsschlüssel für die Zwei-Faktor Authentifizierung zu aktivieren." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Es gab ein Problem beim lesen des Sicherheitsschlüssels, bitte erneut versuchen." + }, + "twoFactorWebAuthnWarning": { + "message": "Aufgrund von Plattformbeschränkungen kann WebAuthn nicht in allen Bitwarden-Anwendungen verwendet werden. Sie sollten einen anderen Zwei-Faktor-Authentifizierungsanbieter aktivieren, damit Sie auf Ihr Konto zugreifen können, wenn WebAuthn nicht verwendet werden kann. Unterstützte Plattformen:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web-Tresor und Browser-Erweiterungen auf einem Desktop/Laptop mit einem WebAuthn-fähigen Browser (Chrome, Opera, Vivaldi oder Firefox mit aktiviertem FIDO U2F)." + }, + "twoFactorRecoveryYourCode": { + "message": "Ihr Wiederherstellungsschlüssel für die Zwei-Faktor-Anmeldung in Bitwarden" + }, + "twoFactorRecoveryNoCode": { + "message": "Sie haben noch keine Variante der Zwei-Faktor-Anmeldung aktiviert. Nachdem Sie eine Zwei-Faktor-Anmeldung aktiviert haben, finden Sie hier Ihren Wiederherstellungs-Code." + }, + "printCode": { + "message": "Code drucken", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Berichte" + }, + "reportsDesc": { + "message": "Identifiziere und schließe Sicherheitslücken in deinen Online-Konten, indem du auf die Berichte unten klickst." + }, + "unsecuredWebsitesReport": { + "message": "Bericht über ungesicherte Websites" + }, + "unsecuredWebsitesReportDesc": { + "message": "Die Verwendung ungesicherter Webseiten mit dem http:// Präfix kann gefährlich sein. Wenn die Webseite es erlaubt, sollten Sie immer über das https:// Präfix darauf zugreifen, damit Ihre Verbindung verschlüsselt ist." + }, + "unsecuredWebsitesFound": { + "message": "Ungesicherte Webseiten gefunden" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Wir haben $COUNT$ Elemente in Ihrem Tresor mit ungesicherten URIs gefunden. Sie sollten ihr URI-Präfix auf https:// ändern, wenn die Webseite dies zulässt.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Es gibt keine Einträge in Ihrem Tresor, die unsichere URIs benutzen." + }, + "inactive2faReport": { + "message": "Bericht über inaktive 2FA" + }, + "inactive2faReportDesc": { + "message": "Die Zwei-Faktor-Authentifizierung (2FA) ist eine wichtige Sicherheitseinstellung, die Ihnen bei der Absicherung Ihrer Konten hilft. Wenn eine Webseite 2FA anbietet, sollten Sie es immer aktivieren." + }, + "inactive2faFound": { + "message": "Anmeldungen ohne 2FA gefunden" + }, + "inactive2faFoundDesc": { + "message": "Wir haben $COUNT$ Webseite(n) in Ihrem Tresor gefunden, die eine Zwei-Faktor Authentifizierung anbieten (laut 2fa.directory), aber bei denen diese Funktion möglicherweise nicht aktiviert ist. Um diese Accounts abzusichern, sollten Sie die Zwei-Faktor Authentifizierung aktivieren.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Es wurden keine Webseiten in Ihrem Tresor gefunden, bei denen eine Konfiguration der Zwei-Faktor Authentifizierung fehlt." + }, + "instructions": { + "message": "Anleitung" + }, + "exposedPasswordsReport": { + "message": "Bericht über kompromittierte Passwörter" + }, + "exposedPasswordsReportDesc": { + "message": "Kompromittierte Passwörter sind Passwörter, die in bekannten Datendiebstählen entdeckt und veröffentlicht wurden oder von Hackern im Dark Web verkauft wurden." + }, + "exposedPasswordsFound": { + "message": "Es wurden kompromittierte Passwörter gefunden" + }, + "exposedPasswordsFoundDesc": { + "message": "Wir haben $COUNT$ Einträge in Ihrem Tresor gefunden, die in bekannten Passwortdiebstahl Datenbanken veröffentlicht wurden. Sie sollten diese Passwörter so schnell wie möglich ändern.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Es scheint in Ihrem Tresor keine Passwörter zu geben, die in Passwortdiebstahl Datenbanken veröffentlicht wurden." + }, + "checkExposedPasswords": { + "message": "Auf kompromittierte Passwörter prüfen" + }, + "exposedXTimes": { + "message": "$COUNT$ mal kompromittiert", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Bericht über schwache Passwörter" + }, + "weakPasswordsReportDesc": { + "message": "Schwache Passwörter können von Angreifern und automatisierten Prozessen, die Passwörter knacken, leicht erraten werden. Der Passwortgenerator von Bitwarden kann Ihnen helfen, starke und sichere Passwörter zu generieren." + }, + "weakPasswordsFound": { + "message": "Schwache Passwörter gefunden" + }, + "weakPasswordsFoundDesc": { + "message": "Wir haben $COUNT$ Einträge mit schwachen Passwörtern in Ihrem Tresor gefunden. Sie sollten diese aktualisieren und ein sicheres Passwort verwenden.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Keine Einträge in Ihrem Tresor haben schwache Passwörter." + }, + "reusedPasswordsReport": { + "message": "Bericht über wiederverwendete Passwörter" + }, + "reusedPasswordsReportDesc": { + "message": "Wenn Sie Passwörter für mehrere Dienste gleichzeitig benutzen und einer dieser Dienste kompromittiert wird, ist es für Angreifer deutlich einfacher Zugriff zu den anderen Konten zu erlangen. Aus diesem Grund sollten Sie für jeden Dienst ein einzigartiges Passwort verwenden." + }, + "reusedPasswordsFound": { + "message": "Wiederverwendete Passwörter gefunden" + }, + "reusedPasswordsFoundDesc": { + "message": "Wir haben $COUNT$ Passwörter in Ihrem Tresor gefunden, die mehrfach benutzt wurden. Sie sollten diese ändern und jedes Passwort nur ein einziges Mal benutzen.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "In Ihrem Tresor wurden keine Einträge mit wiederverwendeten Passwörtern gefunden." + }, + "reusedXTimes": { + "message": "Bereits $COUNT$ mal verwendet", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Datendiebstahl-Bericht" + }, + "breachDesc": { + "message": "Ein Datendiebstahl ist ein Vorfall, bei dem sich Hacker illegal Zugriff auf Daten von einer Website verschafft haben und diese im Anschluss veröffentlicht wurden. Prüfen Sie die Art der Daten, welche kompromittiert wurden (E-Mail-Adressen, Kennwörter, Kreditkarteninformationen) und leiten Sie entsprechende Handlungen ein, wie z.B. das Ändern von Kennwörtern." + }, + "breachCheckUsernameEmail": { + "message": "Prüfen Sie alle Benutzernamen und E-Mail-Adressen, die Sie verwenden." + }, + "checkBreaches": { + "message": "Auf Datendiebstähle prüfen" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ wurde in keinem der bekannten Datendiebstahlvorfällen gefunden.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Gute Nachrichten", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ wurde in $COUNT$ Datendiebstahlvorfällen gefunden.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Betroffene Konten wurden gefunden" + }, + "compromisedData": { + "message": "Kompromittierte Daten" + }, + "website": { + "message": "Webseite" + }, + "affectedUsers": { + "message": "Betroffene Nutzer" + }, + "breachOccurred": { + "message": "Ein Datendiebstahl ist aufgetreten" + }, + "breachReported": { + "message": "Ein Datendiebstahl wurde gemeldet" + }, + "reportError": { + "message": "Ein Fehler ist aufgetreten, während der Bericht geladen wurde. Versuchen Sie es erneut" + }, + "billing": { + "message": "Rechnung" + }, + "accountCredit": { + "message": "Kontoguthaben", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Kontostand", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Guthaben hinzufügen", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Anzahl", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Aufgeladenes Guthaben wird auf Ihrem Konto verbucht, nachdem die Zahlung vollständig bearbeitet wurde. Einige Zahlungsarten brauchen mehr Zeit zum Bearbeiten als andere." + }, + "makeSureEnoughCredit": { + "message": "Bitte stellen Sie sicher, dass Ihr Konto über genügend Guthaben für diesen Kauf verfügt. Wenn Ihr Konto nicht über genügend Guthaben verfügt, wird Ihre hinterlegte Standard-Zahlungsart für den Ausgleich des Restbetrages verwendet. Über die Rechnungsseite können Sie Ihr Konto aufladen." + }, + "creditAppliedDesc": { + "message": "Das Guthaben Ihres Kontos kann für Einkäufe verwendet werden. Das verfügbare Guthaben wird automatisch auf die für dieses Konto erstellten Rechnungen angerechnet." + }, + "goPremium": { + "message": "Zu Premium wechseln", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Sie haben ein Premium-Abo aktiviert." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Machen Sie ein Upgrade Ihres Kontos auf eine Premium-Mitgliedschaft, um zusätzliche, großartige Funktionen freizuschalten." + }, + "premiumSignUpStorage": { + "message": "1 GB verschlüsselter Speicherplatz für Datei-Anhänge." + }, + "premiumSignUpTwoStep": { + "message": "Zusätzliche Zwei-Faktor-Authentifizierungsmöglichkeiten wie z.B. YubiKey, FIDO U2F und Duo." + }, + "premiumSignUpEmergency": { + "message": "Notfallzugriff" + }, + "premiumSignUpReports": { + "message": "Berichte über Passwort-Hygiene, Kontostatus und Datendiebstähle, um Ihren Tresor sicher zu halten." + }, + "premiumSignUpTotp": { + "message": "TOTP Verifizierungscode-Generator (2FA) für Konten in Ihrem Tresor." + }, + "premiumSignUpSupport": { + "message": "Vorrangiger Kundenservice." + }, + "premiumSignUpFuture": { + "message": "Alle zukünftigen Premium-Funktionen. Mehr in Kürze!" + }, + "premiumPrice": { + "message": "Alles für nur $PRICE$ pro Jahr!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Erweiterungen" + }, + "premiumAccess": { + "message": "Zugriff für Premium" + }, + "premiumAccessDesc": { + "message": "Sie können allen Mitgliedern Ihrer Organisation zum Preis von $PRICE$ pro $INTERVAL$ einen Premium-Zugang ermöglichen.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Zusätzlicher Speicher (GB)" + }, + "additionalStorageGbDesc": { + "message": "# zusätzliche GB" + }, + "additionalStorageIntervalDesc": { + "message": "Ihr Abo beinhaltet $SIZE$ verschlüsselten Datenspeicher. Sie können zusätzlichen Speicher für $PRICE$ pro GB im $INTERVAL$ hinzufügen.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Zusammenfassung" + }, + "total": { + "message": "Gesamt" + }, + "year": { + "message": "Jahr" + }, + "month": { + "message": "Monat" + }, + "monthAbbr": { + "message": "Mo.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Ihre Zahlungsmethode wird sofort und jährlich wiederkehrend belastet. Sie können jederzeit kündigen." + }, + "paymentCharged": { + "message": "Ihre Zahlungsmethode wird sofort belastet und darauf folgend einmal pro $INTERVAL$. Sie können jederzeit kündigen.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Ihr Abo startet mit einer kostenlosen Probezeit von 7 Tagen. Ihre Karte wird nicht belastet, bis die Probezeit abgelaufen ist. Die Rechnung kommt wiederkehrend jeden/jedes $INTERVAL$. Sie können jederzeit kündigen." + }, + "paymentInformation": { + "message": "Zahlungsinformationen" + }, + "billingInformation": { + "message": "Informationen zur Abrechnung" + }, + "creditCard": { + "message": "Kreditkarte" + }, + "paypalClickSubmit": { + "message": "Klicken Sie auf die Schaltfläche PayPal, um sich bei Ihrem PayPal-Konto anzumelden und anschließend auf die Schaltfläche Senden, um fortzufahren." + }, + "cancelSubscription": { + "message": "Abo kündigen" + }, + "subscriptionCanceled": { + "message": "Das Abo wurde gekündigt." + }, + "pendingCancellation": { + "message": "Ausstehende Kündigung" + }, + "subscriptionPendingCanceled": { + "message": "Das Abo wurde zum Ende des aktuellen Abrechnungszeitraums zur Kündigung vorgemerkt." + }, + "reinstateSubscription": { + "message": "Abo wiederherstellen" + }, + "reinstateConfirmation": { + "message": "Sind Sie sicher, dass Sie den ausstehenden Kündigungsantrag löschen und das Abo wieder aufnehmen möchten?" + }, + "reinstated": { + "message": "Das Abo wurde wieder aufgenommen." + }, + "cancelConfirmation": { + "message": "Sind Sie sicher, dass Sie kündigen wollen? Am Ende dieses Abrechnungszyklus verlieren Sie den Zugriff auf alle Funktionen dieses Abos." + }, + "canceledSubscription": { + "message": "Das Abo wurde gekündigt." + }, + "neverExpires": { + "message": "Läuft nie ab" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Nächste Abbuchung" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "Lizenz herunterladen" + }, + "updateLicense": { + "message": "Lizenz aktualisieren" + }, + "updatedLicense": { + "message": "Aktualisierte Lizenz" + }, + "manageSubscription": { + "message": "Abo verwalten" + }, + "storage": { + "message": "Speicher" + }, + "addStorage": { + "message": "Speicherplatz erweitern" + }, + "removeStorage": { + "message": "Speicherplatz verringern" + }, + "subscriptionStorage": { + "message": "Ihr Abo hat insgesamt $MAX_STORAGE$ GB verschlüsselten Speicherplatz. Sie benutzen derzeit $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Zahlungsart" + }, + "noPaymentMethod": { + "message": "Keine Zahlungsmethode hinterlegt." + }, + "addPaymentMethod": { + "message": "Zahlungsmethode hinzufügen" + }, + "changePaymentMethod": { + "message": "Zahlungsmethode ändern" + }, + "invoices": { + "message": "Rechnungen" + }, + "noInvoices": { + "message": "Keine Rechnungen." + }, + "paid": { + "message": "Bezahlt", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Unbezahlt", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Zahlungsvorgänge", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Keine Zahlungsvorgänge." + }, + "chargeNoun": { + "message": "Gebühr", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Rückerstattung", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Alle Gebühren werden auf Ihrem Kontoauszug als $STATEMENT_NAME$ angezeigt.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB an Speicherplatz hinzufügen" + }, + "gbStorageRemove": { + "message": "GB an Speicherplatz entfernen" + }, + "storageAddNote": { + "message": "Das Hinzufügen von Speicherplatz führt zu einer Anpassung Ihrer Rechnungssummen und belastet Ihre Zahlungsmethode sofort. Die erste Gebühr wird für den Rest des aktuellen Abrechnungszyklus anteilig berechnet." + }, + "storageRemoveNote": { + "message": "Das Entfernen des Speichers führt zu einer Anpassung Ihrer Rechnungssumme, die als Gutschrift auf Ihre nächste Rechnungssumme angerechnet wird." + }, + "adjustedStorage": { + "message": "$AMOUNT$ GB Speicherplatz angepasst.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Kundenservice kontaktieren" + }, + "updatedPaymentMethod": { + "message": "Zahlungsart aktualisiert." + }, + "purchasePremium": { + "message": "Premium-Mitgliedschaft erwerben" + }, + "licenseFile": { + "message": "Lizenzdatei" + }, + "licenseFileDesc": { + "message": "Ihre Lizenzdatei wird so ähnlich wie $FILE_NAME$ heißen", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Um Ihr Konto zu einer Premium-Mitgliedschaft hochzustufen, müssen Sie eine gültige Lizenzdatei hochladen." + }, + "uploadLicenseFileOrg": { + "message": "Um eine vor Ort gehostete Organisation zu erstellen, müssen Sie eine gültige Lizenzdatei hochladen." + }, + "accountEmailMustBeVerified": { + "message": "Die E-Mail-Adresse Ihres Kontos muss bestätigt werden." + }, + "newOrganizationDesc": { + "message": "Organisationen ermöglichen es Ihnen, Teile Ihres Tresors mit anderen zu teilen und verwandte Benutzer für eine bestimmte Gruppe wie eine Familie, ein kleines Team oder ein großes Unternehmen zu verwalten." + }, + "generalInformation": { + "message": "Allgemeine Informationen" + }, + "organizationName": { + "message": "Name der Organisation" + }, + "accountOwnedBusiness": { + "message": "Dieses Konto gehört einem Unternehmen." + }, + "billingEmail": { + "message": "E-Mail für Rechnung" + }, + "businessName": { + "message": "Firmenname" + }, + "chooseYourPlan": { + "message": "Wählen Sie Ihr Abo" + }, + "users": { + "message": "Benutzer" + }, + "userSeats": { + "message": "Benutzerplätze" + }, + "additionalUserSeats": { + "message": "Weitere Benutzerplätze" + }, + "userSeatsDesc": { + "message": "Anzahl der Benutzerplätze" + }, + "userSeatsAdditionalDesc": { + "message": "Ihr Abo beinhaltet $BASE_SEATS$ Benutzerplätze. Sie können weitere Benutzer für $SEAT_PRICE$ pro Benutzer/Monat hinzufügen.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Wie viele Benutzerplätze benötigen Sie? Bei Bedarf können Sie auch nachträglich weitere Plätze zu einem späteren Zeitpunkt hinzufügen." + }, + "planNameFree": { + "message": "Kostenlos", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Für Test- oder Privatanwender, die mit $COUNT$ anderen Benutzern teilen möchten.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Familien" + }, + "planDescFamilies": { + "message": "Für den persönlichen Gebrauch, zum Teilen mit Familie und Freunden." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "Für Unternehmen und andere Teamorganisationen." + }, + "planNameEnterprise": { + "message": "Unternehmen" + }, + "planDescEnterprise": { + "message": "Für Unternehmen und andere große Organisationen." + }, + "freeForever": { + "message": "Dauerhaft kostenlos" + }, + "includesXUsers": { + "message": "beinhaltet $COUNT$ Benutzer", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Zusätzliche Benutzer" + }, + "costPerUser": { + "message": "$COST$ pro Benutzer", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limitiert auf $COUNT$ Benutzer (Sie eingeschlossen)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limitiert auf $COUNT$ Sammlungen", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Hinzufügen und Teilen mit bis zu $COUNT$ Benutzern", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Hinzufügen und Teilen mit einer unbegrenzten Anzahl von Benutzern" + }, + "createUnlimitedCollections": { + "message": "Erstelle eine unbegrenzte Anzahl von Sammlungen" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ verschlüsselter Datenspeicher", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Hosting auf eigenem Server (optional)" + }, + "usersGetPremium": { + "message": "Mitglieder erhalten Zugriff auf Premium-Funktionen" + }, + "controlAccessWithGroups": { + "message": "Zugriffskontrolle durch Gruppen" + }, + "syncUsersFromDirectory": { + "message": "Synchronisieren Sie Ihre Benutzer und Gruppen aus einem Verzeichnis" + }, + "trackAuditLogs": { + "message": "Nachverfolgung von Benutzeraktivitäten mittels Auditprotokollen" + }, + "enforce2faDuo": { + "message": "Zwei-Faktor mit Duo erzwingen" + }, + "priorityCustomerSupport": { + "message": "Vorrangiger Kundenservice" + }, + "xDayFreeTrial": { + "message": "$COUNT$ Tage kostenlose Testversion, jederzeit kündbar", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Monatlich" + }, + "annually": { + "message": "Jährlich" + }, + "basePrice": { + "message": "Grundpreis" + }, + "organizationCreated": { + "message": "Organisation erstellt" + }, + "organizationReadyToGo": { + "message": "Ihre neue Organisation ist einsatzbereit!" + }, + "organizationUpgraded": { + "message": "Ihr Organisations-Tarif wurde aktualisiert." + }, + "leave": { + "message": "Verlassen" + }, + "leaveOrganizationConfirmation": { + "message": "Sind Sie sicher, dass Sie diese Organisation verlassen möchten?" + }, + "leftOrganization": { + "message": "Sie haben die Organisation verlassen." + }, + "defaultCollection": { + "message": "Standardsammlung" + }, + "getHelp": { + "message": "Hilfe erhalten" + }, + "getApps": { + "message": "Die Apps erhalten" + }, + "loggedInAs": { + "message": "angemeldet als" + }, + "eventLogs": { + "message": "Ereignisprotokolle" + }, + "people": { + "message": "Leute" + }, + "policies": { + "message": "Richtlinien" + }, + "singleSignOn": { + "message": "Single Sign-on" + }, + "editPolicy": { + "message": "Richtlinie bearbeiten" + }, + "groups": { + "message": "Gruppen" + }, + "newGroup": { + "message": "Neue Gruppe" + }, + "addGroup": { + "message": "Gruppe hinzufügen" + }, + "editGroup": { + "message": "Gruppe bearbeiten" + }, + "deleteGroupConfirmation": { + "message": "Sind Sie sich sicher, dass Sie diese Gruppe löschen wollen?" + }, + "removeUserConfirmation": { + "message": "Sind Sie sich sicher, dass Sie diesen Benutzer löschen wollen?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warnung! Dieser Benutzer benötigt Key Connector, um seine Verschlüsselung zu verwalten. Das Entfernen dieses Benutzers aus deiner Organisation wird sein Konto dauerhaft deaktivieren. Diese Aktion kann nicht rückgängig gemacht werden. Möchtest du fortfahren?" + }, + "externalId": { + "message": "Externe ID" + }, + "externalIdDesc": { + "message": "Die externe ID kann als Referenz oder zur Verbindung zu einem externen System, wie einem Benutzerverzeichnis, verwendet werden." + }, + "accessControl": { + "message": "Zugangskontrolle" + }, + "groupAccessAllItems": { + "message": "Diese Gruppe kann auf alle Einträge zugreifen und diese ändern." + }, + "groupAccessSelectedCollections": { + "message": "Diese Gruppe kann nur auf die ausgewählten Sammlungen zugreifen." + }, + "readOnly": { + "message": "Nur Lesen" + }, + "newCollection": { + "message": "Neue Sammlung" + }, + "addCollection": { + "message": "Der Sammlung hinzufügen" + }, + "editCollection": { + "message": "Sammlung bearbeiten" + }, + "deleteCollectionConfirmation": { + "message": "Möchten Sie diese Sammlung wirklich löschen?" + }, + "editUser": { + "message": "Benutzer bearbeiten" + }, + "inviteUser": { + "message": "Benutzer einladen" + }, + "inviteUserDesc": { + "message": "Lade einen neuen Benutzer zu deinem Anbieter ein, indem du die E-Mail-Adresse seines Bitwarden-Kontos unten einträgst. Falls dieser noch kein Bitwarden-Konto besitzt, wird er/sie zur Erstellung eines neuen Kontos aufgefordert." + }, + "inviteMultipleEmailDesc": { + "message": "Sie können bis zu $COUNT$ Benutzer auf einmal einladen, indem Sie eine Liste von E-Mail-Adressen mit je einem Komma trennen.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Dieser Benutzer hat seinen Account mit einer 2-Faktor-Anmeldung geschützt." + }, + "userAccessAllItems": { + "message": "Der Benutzer kann alle Einträge einsehen und verändern." + }, + "userAccessSelectedCollections": { + "message": "Der Benutzer kann nur auf ausgewählte Sammlungen zugreifen." + }, + "search": { + "message": "Suche" + }, + "invited": { + "message": "Eingeladen" + }, + "accepted": { + "message": "Akzeptiert" + }, + "confirmed": { + "message": "Bestätigt" + }, + "clientOwnerEmail": { + "message": "Kunden-E-Mail" + }, + "owner": { + "message": "Besitzer" + }, + "ownerDesc": { + "message": "Der Benutzer mit dem höchsten Berechtigungsgrad, der alle Aspekte Ihrer Organisation verwalten kann." + }, + "clientOwnerDesc": { + "message": "Dieser Benutzer sollte unabhängig vom Anbieter sein. Wenn der Anbieter von der Organisation getrennt wird, behält dieser Benutzer das Eigentum an der Organisation." + }, + "admin": { + "message": "Administrator" + }, + "adminDesc": { + "message": "Administratoren können auf alle Einträge, Sammlungen und Benutzer in der Organisation zugreifen und diese verwalten." + }, + "user": { + "message": "Benutzer" + }, + "userDesc": { + "message": "Ein normaler Benutzer mit Zugriff auf die ihm zugewiesenen Sammlungen der Organisation." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Manager können auf die für sie zugewiesene Sammlungen in der Organisation zugreifen und diese verwalten." + }, + "all": { + "message": "Alle" + }, + "refresh": { + "message": "Aktualisieren" + }, + "timestamp": { + "message": "Zeitstempel" + }, + "event": { + "message": "Ereignis" + }, + "unknown": { + "message": "Unbekannt" + }, + "loadMore": { + "message": "Weitere laden" + }, + "mobile": { + "message": "Mobil", + "description": "Mobile app" + }, + "extension": { + "message": "Erweiterung", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Web-Tresor" + }, + "loggedIn": { + "message": "Eingeloggt." + }, + "changedPassword": { + "message": "Benutzerpasswort geändert." + }, + "enabledUpdated2fa": { + "message": "Zwei-Faktor-Anmeldung aktiviert/aktualisiert." + }, + "disabled2fa": { + "message": "Zwei-Faktor-Anmeldung deaktiviert." + }, + "recovered2fa": { + "message": "Konto aus der Zwei-Faktor-Anmeldung wiederhergestellt." + }, + "failedLogin": { + "message": "Anmeldeversuch mit falschem Passwort fehlgeschlagen." + }, + "failedLogin2fa": { + "message": "Anmeldeversuch mit falscher Zwei-Faktor-Anmeldung fehlgeschlagen." + }, + "exportedVault": { + "message": "Tresor exportiert." + }, + "exportedOrganizationVault": { + "message": "Tresor der Organisation exportiert." + }, + "editedOrgSettings": { + "message": "Organisationseinstellungen bearbeitet." + }, + "createdItemId": { + "message": "Eintrag $ID$ erstellt.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Eintrag $ID$ bearbeitet.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Eintrag $ID$ in Papierkorb verschoben.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Eintrag $ID$ wurde in eine Organisation verschoben.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Eintrag $ID$ angesehen.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Passwort für Eintrag $ID$ angesehen.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Verstecktes Feld für Eintrag $ID$ angesehen.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Sicherheitscode für Eintrag $ID$ angesehen.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Passwort für Eintrag $ID$ kopiert.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Verstecktes Feld für Eintrag $ID$ kopiert.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Sicherheitscode für Eintrag $ID$ kopiert.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Eintrag $ID$ automatisch ausgefüllt.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Sammlung $ID$ erstellt.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Sammlung $ID$ bearbeitet.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Sammlung $ID$ gelöscht.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Richtlinie \"$ID$\" bearbeitet.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Gruppe $ID$ erstellt.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Gruppe $ID$ bearbeitet.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Gruppe $ID$ gelöscht.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Benutzer $ID$ entfernt.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Anhang zum Eintrag $ID$ erstellt.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Anhang zum Eintrag $ID$ gelöscht.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Sammlungen des Eintrags $ID$ bearbeitet.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Benutzer $ID$ eingeladen.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Benutzer $ID$ bestätigt.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Benutzer $ID$ bearbeitet.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Gruppen für den Benutzer $ID$ bearbeitet.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "SSO-Verknüpfung für Benutzer $ID$ aufgehoben.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Organisation $ID$ erstellt.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Organisation $ID$ hinzugefügt.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Organisation $ID$ entfernt.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Auf den $ID$ Organisations-Tresor zugegriffen.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Gerät" + }, + "view": { + "message": "Anzeigen" + }, + "invalidDateRange": { + "message": "Ungültiger Datenbereich." + }, + "errorOccurred": { + "message": "Ein Fehler ist aufgetreten." + }, + "userAccess": { + "message": "Benutzerzugriff" + }, + "userType": { + "message": "Benutzertyp" + }, + "groupAccess": { + "message": "Gruppenzugang" + }, + "groupAccessUserDesc": { + "message": "Die Gruppen bearbeiten, zu denen dieser Benutzer gehört." + }, + "invitedUsers": { + "message": "Benutzer eingeladen." + }, + "resendInvitation": { + "message": "Einladung erneut versenden" + }, + "resendEmail": { + "message": "E-Mail erneut senden" + }, + "hasBeenReinvited": { + "message": "$USER$ wurde erneut eingeladen.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Bestätigen" + }, + "confirmUser": { + "message": "Benutzer bestätigen" + }, + "hasBeenConfirmed": { + "message": "$USER$ wurde bestätigt.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Benutzer bestätigen" + }, + "usersNeedConfirmed": { + "message": "Sie haben Nutzer, die ihre Einladung angenommen haben, aber noch bestätigt werden müssen. Benutzer haben erst Zugriff auf die Organisation, wenn sie bestätigt wurden." + }, + "startDate": { + "message": "Startdatum" + }, + "endDate": { + "message": "Endatum" + }, + "verifyEmail": { + "message": "E-Mail-Adresse bestätigen" + }, + "verifyEmailDesc": { + "message": "Bestätigen Sie die E-Mail-Adresse Ihres Kontos, um den Zugriff auf alle Funktionen freizuschalten." + }, + "verifyEmailFirst": { + "message": "Die E-Mail-Adresse Ihres Kontos muss zuerst bestätigt werden." + }, + "checkInboxForVerification": { + "message": "Sehen Sie in Ihrem E-Mail-Posteingang nach, ob Sie Ihren Bestätigungscode erhalten haben" + }, + "emailVerified": { + "message": "Ihre E-Mail-Adresse wurde verifiziert" + }, + "emailVerifiedFailed": { + "message": "Ihre E-Mail kann nicht verifiziert werden. Versuchen Sie eine neue Bestätigungs-E-Mail zu senden." + }, + "emailVerificationRequired": { + "message": "E-Mail-Verifizierung erforderlich" + }, + "emailVerificationRequiredDesc": { + "message": "Sie müssen Ihre E-Mail verifizieren, um diese Funktion nutzen zu können." + }, + "updateBrowser": { + "message": "Browser aktualisieren" + }, + "updateBrowserDesc": { + "message": "Sie benutzen einen nicht unterstützten Webbrowser. Der Web-Tresor funktioniert möglicherweise nicht richtig." + }, + "joinOrganization": { + "message": "Organisation beitreten" + }, + "joinOrganizationDesc": { + "message": "Du wurdest eingeladen, dem oben genannten Anbieter beizutreten. Um die Einladung anzunehmen, musst du ein Bitwarden-Konto erstellen, oder dich mit deinem bestehenden Bitwarden-Konto anmelden." + }, + "inviteAccepted": { + "message": "Einladung angenommen" + }, + "inviteAcceptedDesc": { + "message": "Sie können der Organisation beitreten, sobald ein Administrator Ihre Mitgliedschaft bestätigt hat. Wir werden Sie dann per E-Mail benachrichtigen." + }, + "inviteAcceptFailed": { + "message": "Einladung konnte nicht akzeptiert werden. Zum Erhalten einer neuen Einladung, setzen Sie sich mit einem Administrator der Organisation in Verbindung." + }, + "inviteAcceptFailedShort": { + "message": "Die Einladung kann nicht angenommen werden. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "E-Mail-Adresse merken" + }, + "recoverAccountTwoStepDesc": { + "message": "Falls Sie nicht mit Ihren normalen Zwei-Faktor-Anmeldemethoden auf Ihren Account zugreifen können, nutzen Sie Ihren Zwei-Faktor-Wiederherstellungscode, um alle Zwei-Faktor-Anbieter für Ihr Konto zu deaktivieren." + }, + "recoverAccountTwoStep": { + "message": "Zwei-Faktor-Authentifizierung wiederherstellen" + }, + "twoStepRecoverDisabled": { + "message": "Zwei-Faktor-Authentifizierung wurde für Ihren Account deaktiviert." + }, + "learnMore": { + "message": "Erfahre mehr" + }, + "deleteRecoverDesc": { + "message": "Geben Sie hier Ihre E-Mail-Adresse ein, um Ihr Konto wiederherzustellen und zu löschen." + }, + "deleteRecoverEmailSent": { + "message": "Wir haben Ihnen eine E-Mail mit weiteren Anweisungen gesendet, sofern Ihr Konto existiert." + }, + "deleteRecoverConfirmDesc": { + "message": "Sie haben die Löschung Ihres Bitwarden-Kontos angefragt. Klicken Sie diesen Button, um die Löschung zu bestätigen." + }, + "myOrganization": { + "message": "Meine Organisation" + }, + "deleteOrganization": { + "message": "Organisation löschen" + }, + "deletingOrganizationContentWarning": { + "message": "Gebe das Master-Passwort ein, um das Löschen von $ORGANIZATION$ und allen zugehörigen Daten zu bestätigen. Die Tresordaten in $ORGANIZATION$ beinhalten:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Die Benutzerkonten bleiben nach dem Löschen aktiv, sind aber nicht mehr mit dieser Organisation verknüpft." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Das Löschen von $ORGANIZATION$ ist dauerhaft und unwiderruflich.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Die Organisation wurde gelöscht" + }, + "organizationDeletedDesc": { + "message": "Die Organisation und alle ihre zugehörigen Daten wurden gelöscht." + }, + "organizationUpdated": { + "message": "Organisation aktualisiert" + }, + "taxInformation": { + "message": "Informationen zur Steuer" + }, + "taxInformationDesc": { + "message": "Für Kunden innerhalb der USA ist die Postleitzahl erforderlich, um die Umsatzsteuer-Anforderungen zu erfüllen, für andere Länder können Sie optional eine Steuernummer (VAT/GST) und/oder eine Adresse angeben, die auf Ihren Rechnungen erscheint." + }, + "billingPlan": { + "message": "Abo", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Abo ändern", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Ändern sie ihr Konto zu einem anderen Tarif, indem Sie folgende Informationen bereitstellen. Bitte stellen Sie sicher, dass Sie eine aktive Zahlungsmethode zu ihren Konto hinzugefügt haben.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Rechnung #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Rechnung anzeigen" + }, + "downloadInvoice": { + "message": "Rechnung herunterladen" + }, + "verifyBankAccount": { + "message": "Bankkonto verifizieren" + }, + "verifyBankAccountDesc": { + "message": "Wir haben zwei Mikro-Transaktionen auf Ihr Bankkonto getätigt (es kann 1-2 Werktage dauern bis diese sichtbar werden). Geben Sie diese Daten ein um Ihr Bankkonto zu verifizieren." + }, + "verifyBankAccountInitialDesc": { + "message": "Zahlungen über ein Bankkonto ist nur für Benutzer in den Vereinigten Staaten verfügbar. Hierfür müssen Sie Ihr Bankkonto verifizieren. Wir werden dann innerhalb der nächsten 1-2 Werktage zwei Mikro-Transaktionen durchführen. Geben Sie im Anschluss die Höhe der Beträge auf der Organisationsseite ein, um Ihr Bankkonto zu verifizieren." + }, + "verifyBankAccountFailureWarning": { + "message": "Ein Fehlschlag bei der Verifizierung des Bankkontos wird zu einer versäumten Zahlung führen und Ihr Abo wird deaktiviert." + }, + "verifiedBankAccount": { + "message": "Ihr Bankkonto wurde verifiziert." + }, + "bankAccount": { + "message": "Bankkonto" + }, + "amountX": { + "message": "Betrag $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Bankleitzahl", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Kontonummer" + }, + "accountHolderName": { + "message": "Name des Kontoinhabers" + }, + "bankAccountType": { + "message": "Kontoart" + }, + "bankAccountTypeCompany": { + "message": "Firma" + }, + "bankAccountTypeIndividual": { + "message": "Person" + }, + "enterInstallationId": { + "message": "Geben Sie Ihre Installations-ID ein" + }, + "limitSubscriptionDesc": { + "message": "Lege ein Benutzerplätze-Limit für dein Abo fest. Sobald dieses Limit erreicht ist, kannst du keine neuen Benutzer mehr einladen." + }, + "maxSeatLimit": { + "message": "Maximales Benutzerplätze-Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Maximal mögliche Benutzerplatz-Kosten" + }, + "addSeats": { + "message": "Benutzerplätze hinzufügen", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Benutzerplätze entfernen", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Anpassungen an deinem Abo führen zu anteiligen Änderungen an deiner Rechnungssumme. Wenn neu eingeladene Benutzer deine Abo-Benutzerplätze überschreiten, wird dir sofort eine anteilige Gebühr für die zusätzlichen Benutzer berechnet." + }, + "subscriptionUserSeats": { + "message": "Ihr Abo erlaubt insgesamt $COUNT$ Benutzer.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Abo begrenzen (optional)" + }, + "subscriptionSeats": { + "message": "Abo-Benutzerplätze" + }, + "subscriptionUpdated": { + "message": "Abo aktualisiert" + }, + "additionalOptions": { + "message": "Weitere Optionen" + }, + "additionalOptionsDesc": { + "message": "Für weitere Hilfe bei der Verwaltung deines Abos, wende dich bitte an den Kundenservice." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Anpassungen an deinem Abo führen zu anteiligen Änderungen an deiner Rechnungssumme. Wenn neu eingeladene Benutzer deine Abo-Benutzerplätze überschreiten, wird dir sofort eine anteilige Gebühr für die zusätzlichen Benutzer berechnet." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Anpassungen an deinem Abo führen zu anteiligen Änderungen an deiner Rechnungssumme. Wenn neu eingeladene Benutzer deine Abo-Benutzerplätze überschreiten, wird dir sofort eine anteilige Gebühr für die zusätzlichen Benutzer berechnet, bis dein Benutzerlimit von $MAX$ erreicht ist.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Du kannst nicht mehr als $COUNT$ Benutzer einladen ohne dein Abo hochzustufen.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Du kannst nicht mehr als $COUNT$ Benutzer einladen ohne dein Abo hochzustufen. Bitte kontaktiere dafür den Kundenservice.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Dein Abo erlaubt insgesamt $COUNT$ Benutzer. Dein Abo wird gefördert und von einer externen Organisation bezahlt.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Anpassungen an deinem Abo führen zu anteiligen Änderungen an deiner Rechnungssumme. Du kannst nicht mehr als $COUNT$ Benutzer einladen ohne deine Abo-Benutzerplätze zu erhöhen.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Hinzufügen von Benutzerplätzen" + }, + "seatsToRemove": { + "message": "Entfernen von Benutzerplätzen" + }, + "seatsAddNote": { + "message": "Das Hinzufügen von Benutzerplätzen führt zu einer Anpassung Ihrer Rechnungssummen und belastet Ihre Zahlungsmethode sofort. Die erste Gebühr wird für den Rest des aktuellen Abrechnungszyklus anteilig berechnet." + }, + "seatsRemoveNote": { + "message": "Das Entfernen von Benutzerplätzen führt zu einer Anpassung Ihrer Rechnungssumme, die als Gutschrift auf Ihre nächste Rechnung angerechnet wird." + }, + "adjustedSeats": { + "message": "$AMOUNT$ Benutzerplätze eingestellt.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Schlüssel aktualisiert" + }, + "updateKeyTitle": { + "message": "Schlüssel aktualisieren" + }, + "updateEncryptionKey": { + "message": "Verschlüsselungscode aktualisieren" + }, + "updateEncryptionKeyShortDesc": { + "message": "Sie verwenden derzeit ein veraltetes Verschlüsselungsschema." + }, + "updateEncryptionKeyDesc": { + "message": "Wir sind auf größere Verschlüsselungscodes umgestiegen, welche bessere Sicherheit und Zugang zu neuen Features bieten. Das Update Ihres Verschlüsselungscodes ist schnell und einfach. Geben Sie einfach hier Ihr Master-Passwort ein. Das Update wird irgendwann verpflichtend." + }, + "updateEncryptionKeyWarning": { + "message": "Nach der Aktualisierung Ihres Verschlüsselungscodes, müssen Sie sich bei allen Bitwarden-Anwendungen, welche Sie momentan benutzen, erneut anmelden (wie z. B. die mobile App oder die Browser-Erweiterungen). Fehler bei Ab- und Anmeldung (welche Ihren neuen Verschlüsselungscode bezieht) könnte zu einer Beschädigung der Daten führen. Wir werden versuchen Sie automatisch auszuloggen, was jedoch verzögert geschehen kann." + }, + "updateEncryptionKeyExportWarning": { + "message": "Alle verschlüsselten Exporte, die Sie gespeichert haben, werden ebenfalls ungültig." + }, + "subscription": { + "message": "Abo" + }, + "loading": { + "message": "Wird geladen" + }, + "upgrade": { + "message": "Upgrade" + }, + "upgradeOrganization": { + "message": "Organisation hochstufen" + }, + "upgradeOrganizationDesc": { + "message": "Diese Funktion ist für kostenlose Organisationen nicht verfügbar. Wechseln Sie zu einem kostenpflichtigen Abo, um weitere Funktionen freizuschalten." + }, + "createOrganizationStep1": { + "message": "Organisation erstellen: Schritt 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Bevor Sie eine Organisation erstellen können, müssen Sie zuerst ein eigenes kostenloses Konto erstellen." + }, + "refunded": { + "message": "Erstattet" + }, + "nothingSelected": { + "message": "Sie haben keine Auswahl getroffen." + }, + "acceptPolicies": { + "message": "Durch Anwählen dieses Kästchens erklären Sie sich mit folgendem einverstanden:" + }, + "acceptPoliciesError": { + "message": "Die Nutzungsbedingungen und Datenschutzerklärung wurden nicht akzeptiert." + }, + "termsOfService": { + "message": "Allgemeine Geschäftsbedingungen" + }, + "privacyPolicy": { + "message": "Datenschutzerklärung" + }, + "filters": { + "message": "Filter" + }, + "vaultTimeout": { + "message": "Tresor-Timeout" + }, + "vaultTimeoutDesc": { + "message": "Legen Sie einen Timeout für den Tresor und die auszuführende Aktion fest." + }, + "oneMinute": { + "message": "1 Minute" + }, + "fiveMinutes": { + "message": "5 Minuten" + }, + "fifteenMinutes": { + "message": "15 Minuten" + }, + "thirtyMinutes": { + "message": "30 Minuten" + }, + "oneHour": { + "message": "1 Stunde" + }, + "fourHours": { + "message": "4 Stunden" + }, + "onRefresh": { + "message": "Bei Browser-Aktualisierung" + }, + "dateUpdated": { + "message": "Aktualisiert", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Passwort aktualisiert", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organisation ist deaktiviert." + }, + "licenseIsExpired": { + "message": "Lizenz ist abgelaufen." + }, + "updatedUsers": { + "message": "Aktualisierte Benutzer" + }, + "selected": { + "message": "Ausgewählt" + }, + "ownership": { + "message": "Besitzer" + }, + "whoOwnsThisItem": { + "message": "Wem gehört dieser Eintrag?" + }, + "strong": { + "message": "Stark", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Gut", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Schwach", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Sehr schwach", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Schwaches Master-Passwort" + }, + "weakMasterPasswordDesc": { + "message": "Das Master-Passwort, welches Sie gewählt haben, ist schwach. Sie sollten ein starkes Master-Passwort auswählen, um Ihr Bitwarden-Konto ausreichend zu schützen. Sind Sie sicher, dass Sie dieses Master-Passwort verwenden wollen?" + }, + "rotateAccountEncKey": { + "message": "Auch den Verschlüsselungscode meines Kontos aktualisieren" + }, + "rotateEncKeyTitle": { + "message": "Verschlüsselungscode aktualisieren" + }, + "rotateEncKeyConfirmation": { + "message": "Sind Sie sich sicher, dass Sie ihren Verschlüsselungscode aktualisieren möchten?" + }, + "attachmentsNeedFix": { + "message": "Dieser Eintrag hat Anhänge, die repariert werden müssen." + }, + "attachmentFixDesc": { + "message": "Diese Dateianlage muss aufgrund ihres Alters aktualisiert werden. Klicken Sie hier, um mehr zu erfahren." + }, + "fix": { + "message": "Reparieren", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Es gibt alte Dateianhänge in ihrem Tresor, die repariert werden müssen, bevor Sie Ihren Verschlüsselungscode aktualisieren können." + }, + "yourAccountsFingerprint": { + "message": "Prüfschlüssel für Ihren Account", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Um die Sicherheit ihres Verschlüsselungscodes zu gewähren, bestätigen Sie bitte den Prüfschlüssel des Benutzers.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Nicht erneut nach dem Prüfschlüssel fragen", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Kostenlos", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API-Schlüssel" + }, + "apiKeyDesc": { + "message": "Dein API-Schlüssel kann zur Authentifizierung für die öffentlichen Bitwarden-API benutzt werden." + }, + "apiKeyRotateDesc": { + "message": "Mit der Erneuerung des API-Schlüssels wird der bisherige Schlüssel ungültig. Sie können Ihren API-Schlüssel erneuern, wenn die sichere Verwendung Ihres aktuellen Schlüssel nicht mehr gewährleistet ist." + }, + "apiKeyWarning": { + "message": "Ihr API-Schlüssel hat vollen Zugriff auf die Organisation. Er sollte geheim gehalten werden." + }, + "userApiKeyDesc": { + "message": "Ihr API-Schlüssel kann zur Authentifizierung im Bitwarden CLI verwendet werden." + }, + "userApiKeyWarning": { + "message": "Ihr API-Schlüssel ist ein alternativer Authentifizierungsmechanismus. Er sollte geheim gehalten werden." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 Client Anmeldeinformationen", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "API-Schlüssel anzeigen" + }, + "rotateApiKey": { + "message": "API-Schlüssel erneuern" + }, + "selectOneCollection": { + "message": "Sie müssen mindestens eine Sammlung auswählen." + }, + "couldNotChargeCardPayInvoice": { + "message": "Wir sind nicht in der Lage Ihre Kreditkarte zu belasten. Bitte bezahlen Sie den unten aufgelisteten noch nicht beglichenen Rechnungsbetrag." + }, + "inAppPurchase": { + "message": "In-App-Kauf" + }, + "cannotPerformInAppPurchase": { + "message": "Sie können diese Aktion nicht durchführen, wenn sie eine In-App-Kauf Zahlungsart nutzen." + }, + "manageSubscriptionFromStore": { + "message": "Sie müssen Ihr Abonnement im entsprechenden App Store verwalten, über dem Ihr In-App-Kauf getätigt wurde." + }, + "minLength": { + "message": "Mindestlänge" + }, + "clone": { + "message": "Duplizieren" + }, + "masterPassPolicyDesc": { + "message": "Mindestanforderungen für die Stärke des Master-Passworts festlegen." + }, + "twoStepLoginPolicyDesc": { + "message": "Benutzer müssen eine zweistufige Anmeldung für ihre persönlichen Konten einrichten." + }, + "twoStepLoginPolicyWarning": { + "message": "Organisationsmitglieder, die keine zweistufige Anmeldung für ihr persönliches Konto aktiviert haben, werden aus der Organisation entfernt und erhalten eine E-Mail, die sie über die Änderung benachrichtigt." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Sie sind Mitglied einer Organisation, die eine Zwei-Faktor-Authentifizierung für Ihr Benutzerkonto verlangt. Wenn Sie alle Zwei-Faktor-Authentifizierungsanbieter deaktivieren, werden Sie automatisch aus diesen Organisationen entfernt." + }, + "passwordGeneratorPolicyDesc": { + "message": "Mindestanforderungen für die Passwortgenerator-Konfiguration festlegen." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Eine oder mehrere Organisationsrichtlinien beeinflussen Ihre Generator-Einstellungen." + }, + "masterPasswordPolicyInEffect": { + "message": "Eine oder mehrere Organisationsrichtlinien erfordern, dass Ihr Master-Passwort die folgenden Anforderungen erfüllt:" + }, + "policyInEffectMinComplexity": { + "message": "Kleinste Komplexitätsstufe von $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Mindestlänge von $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Enthält einen oder mehrere Großbuchstaben" + }, + "policyInEffectLowercase": { + "message": "Enthält einen oder mehrere Kleinbuchstaben" + }, + "policyInEffectNumbers": { + "message": "Enthält eine oder mehrere Zahlen" + }, + "policyInEffectSpecial": { + "message": "Enthält eines oder mehrere der folgenden Sonderzeichen $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Ihr neues Master-Passwort entspricht nicht den Anforderungen der Richtlinie." + }, + "minimumNumberOfWords": { + "message": "Mindestzahl an Wörtern" + }, + "defaultType": { + "message": "Standardtyp" + }, + "userPreference": { + "message": "Benutzereinstellung" + }, + "vaultTimeoutAction": { + "message": "Aktion bei Tresor-Timeout" + }, + "vaultTimeoutActionLockDesc": { + "message": "Ein gesperrter Tresor erfordert die Eingabe des Master-Passworts, um erneut darauf zugreifen zu können." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Ein ausgeloggter Tresor erfordert eine Neu-Authentifizierung, um erneut darauf zugreifen zu können." + }, + "lock": { + "message": "Sperren", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Papierkorb", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Papierkorb durchsuchen" + }, + "permanentlyDelete": { + "message": "Dauerhaft löschen" + }, + "permanentlyDeleteSelected": { + "message": "Auswahl dauerhaft löschen" + }, + "permanentlyDeleteItem": { + "message": "Eintrag dauerhaft löschen" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Soll dieser Eintrag wirklich gelöscht werden?" + }, + "permanentlyDeletedItem": { + "message": "Eintrag dauerhaft gelöscht" + }, + "permanentlyDeletedItems": { + "message": "Dauerhaft gelöschte Einträge" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Sie haben $COUNT$ Eintrag/Einträge zum unwiderruflichen Löschen ausgewählt. Sind Sie sicher, dass Sie diese(n) Eintrag/Einträge dauerhaft löschen möchten?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Eintrag $ID$ dauerhaft gelöscht.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Wiederherstellen" + }, + "restoreSelected": { + "message": "Auswahl wiederherstellen" + }, + "restoreItem": { + "message": "Eintrag wiederherstellen" + }, + "restoredItem": { + "message": "Wiederhergestellter Eintrag" + }, + "restoredItems": { + "message": "Wiederhergestellte Einträge" + }, + "restoreItemConfirmation": { + "message": "Soll dieser Eintrag wirklich wiederhergestellt werden?" + }, + "restoreItems": { + "message": "Einträge wiederherstellen" + }, + "restoreSelectedItemsDesc": { + "message": "Sie haben $COUNT$ Eintrag/Einträge zum Wiederherstellen ausgewählt. Sind Sie sicher, dass Sie diese(n) Eintrag/Einträge dauerhaft löschen möchten?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Eintrag $ID$ wiederhergestellt.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Nach dem Ausloggen verlieren Sie jeglichen Zugriff auf Ihren Tresor und es ist nach Ablauf der Timeout-Zeit eine Online-Authentifizierung erforderlich. Sind Sie sicher, dass Sie diese Einstellung nutzen möchten?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Bestätigung der Timeout-Aktion" + }, + "hidePasswords": { + "message": "Passwörter verstecken" + }, + "countryPostalCodeRequiredDesc": { + "message": "Wir benötigen diese Informationen nur zur Berechnung der Umsatzsteuer und Finanzberichterstattung." + }, + "includeVAT": { + "message": "MwSt./GST-Informationen einschließen (optional)" + }, + "taxIdNumber": { + "message": "Umsatzsteuernummer" + }, + "taxInfoUpdated": { + "message": "Steuerinformationen aktualisiert." + }, + "setMasterPassword": { + "message": "Masterpasswort festlegen" + }, + "ssoCompleteRegistration": { + "message": "Bitte legen Sie ein Masterpasswort für den Schutz Ihres Tresors fest, um die Anmeldung über SSO abzuschließen." + }, + "identifier": { + "message": "Kennung" + }, + "organizationIdentifier": { + "message": "Organisationskennung" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Über den Single Sign-on Ihrer Organisation anmelden. Bitte geben Sie Ihre Organisationskennung an, um zu beginnen." + }, + "enterpriseSingleSignOn": { + "message": "Enterprise Single Sign-On" + }, + "ssoHandOff": { + "message": "Sie können diesen Tab nun schließen und in der Erweiterung fortfahren." + }, + "includeAllTeamsFeatures": { + "message": "Alle Teams Funktionen, zusätzlich:" + }, + "includeSsoAuthentication": { + "message": "SSO Authentifikation über SAML2.0 und OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Unternehmensrichtlinien" + }, + "ssoValidationFailed": { + "message": "SSO Validierung fehlgeschlagen" + }, + "ssoIdentifierRequired": { + "message": "Unternehmenskennung ist erforderlich." + }, + "unlinkSso": { + "message": "SSO Verknüpfung aufheben" + }, + "unlinkSsoConfirmation": { + "message": "Bist du sicher, dass du SSO für diese Organisation aufheben möchtest?" + }, + "linkSso": { + "message": "SSO verknüpfen" + }, + "singleOrg": { + "message": "Einzelne Organisation" + }, + "singleOrgDesc": { + "message": "Benutzern verbieten, anderen Organisationen beizutreten." + }, + "singleOrgBlockCreateMessage": { + "message": "Ihre aktuelle Organisation hat eine Richtlinie, die es Ihnen nicht erlaubt, mehr als einer Organisation beizutreten. Bitte kontaktieren Sie die Administratoren Ihrer Organisation oder melden Sie sich mit einem anderen Bitwarden-Konto an." + }, + "singleOrgPolicyWarning": { + "message": "Organisationsmitglieder, die nicht Eigentümer oder Administratoren sind und bereits Mitglied einer anderen Organisation sind, werden aus Ihrer Organisation entfernt." + }, + "requireSso": { + "message": "Single Sign-On Authentifizierung" + }, + "requireSsoPolicyDesc": { + "message": "Benutzer müssen sich per Enterprise Single Sign-On anmelden." + }, + "prerequisite": { + "message": "Voraussetzung" + }, + "requireSsoPolicyReq": { + "message": "Die Unternehmensrichtlinie für eine einzelne Organisation muss aktiviert sein, bevor diese Richtlinie aktiviert werden kann." + }, + "requireSsoPolicyReqError": { + "message": "Richtlinie für eine einzelne Organisation nicht aktiviert." + }, + "requireSsoExemption": { + "message": "Organisationseigentümer und Administratoren sind von der Durchsetzung dieser Richtlinie ausgenommen." + }, + "sendTypeFile": { + "message": "Datei" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Neues Send erstellen", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Send bearbeiten", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send erstellt", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Send bearbeitet", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send gelöscht", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Send löschen", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Bist du sicher, dass du dieses Send löschen möchtest?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Welche Art von Send ist das?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Löschdatum" + }, + "deletionDateDesc": { + "message": "Das Send wird am angegebenen Datum zur angegebenen Uhrzeit dauerhaft gelöscht.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Ablaufdatum" + }, + "expirationDateDesc": { + "message": "Falls aktiviert, verfällt der Zugriff auf dieses Send am angegebenen Datum zur angegebenen Uhrzeit.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximale Zugriffsanzahl" + }, + "maxAccessCountDesc": { + "message": "Falls aktiviert, können Benutzer nicht mehr auf dieses Send zugreifen, sobald die maximale Zugriffsanzahl erreicht ist.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Aktuelle Zugriffsanzahl" + }, + "sendPasswordDesc": { + "message": "Optional ein Passwort verlangen, damit Benutzer auf dieses Send zugreifen können.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private Notizen zu diesem Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Deaktiviert" + }, + "sendLink": { + "message": "Send Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Send Link kopieren", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Passwort entfernen" + }, + "removedPassword": { + "message": "Passwort entfernt" + }, + "removePasswordConfirmation": { + "message": "Sind Sie sicher, dass Sie das Passwort entfernen möchten?" + }, + "hideEmail": { + "message": "Meine E-Mail-Adresse vor den Empfängern ausblenden." + }, + "disableThisSend": { + "message": "Dieses Send deaktivieren, damit niemand darauf zugreifen kann.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Alle Sends" + }, + "maxAccessCountReached": { + "message": "Maximale Zugriffsanzahl erreicht", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Ausstehende Löschung" + }, + "expired": { + "message": "Abgelaufen" + }, + "searchSends": { + "message": "Sends suchen", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Dieses Send ist mit einem Passwort geschützt. Bitte geben Sie unten das Passwort ein, um fortzufahren.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Kennen Sie das Passwort nicht? Fragen Sie den Absender nach dem benötigten Passwort, um auf dieses Send zuzugreifen.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Dieses Send ist standardmäßig ausgeblendet. Sie können die Sichtbarkeit mit dem Button unten umschalten.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Datei herunterladen" + }, + "sendAccessUnavailable": { + "message": "Das Send, auf das Sie zugreifen möchten, existiert nicht oder ist nicht mehr verfügbar.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Die mit diesem Send verbundene Datei konnte nicht gefunden werden.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Keine Sends zu finden.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Notfallzugriff" + }, + "emergencyAccessDesc": { + "message": "Gewähren und verwalten Sie einen Notfallzugriff für vertrauenswürdige Kontakte. Vertrauenswürdige Kontakte können im Notfall Zugriff verlangen, um Ihr Konto entweder einzusehen oder es zu übernehmen. Besuchen Sie unsere Hilfeseite für weitere Informationen und Details, wie der Austausch über Zero-Knowledge funktioniert." + }, + "emergencyAccessOwnerWarning": { + "message": "Sie sind Eigentümer einer oder mehrerer Organisationen. Wenn Sie einem Notfallkontakt Übernahmezugang gewähren, kann dieser nach einer Übernahme alle Ihre Berechtigungen als Eigentümer nutzen." + }, + "trustedEmergencyContacts": { + "message": "Vertrauenswürdige Notfallkontakte" + }, + "noTrustedContacts": { + "message": "Sie haben noch keine Notfallkontakte hinzugefügt, laden Sie einen vertrauenswürdigen Kontakt ein, um zu beginnen." + }, + "addEmergencyContact": { + "message": "Notfallkontakt hinzufügen" + }, + "designatedEmergencyContacts": { + "message": "Als Notfallkontakt benannt" + }, + "noGrantedAccess": { + "message": "Sie wurden noch nicht als Notfallkontakt für jemanden benannt." + }, + "inviteEmergencyContact": { + "message": "Notfallkontakt einladen" + }, + "editEmergencyContact": { + "message": "Notfallkontakt bearbeiten" + }, + "inviteEmergencyContactDesc": { + "message": "Laden Sie einen neuen Notfallkontakt ein, indem Sie die E-Mail-Adresse seines Bitwarden-Kontos unten eintragen. Falls dieser noch kein Bitwarden-Konto besitzt, wird er/sie zur Erstellung eines neuen Kontos aufgefordert." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Notfallzugriff ausgelöst" + }, + "emergencyAccessRecoveryApproved": { + "message": "Notfallzugriff genehmigt" + }, + "viewDesc": { + "message": "Kann alle Einträge in Ihrem eigenen Tresor sehen." + }, + "takeover": { + "message": "Übernahme" + }, + "takeoverDesc": { + "message": "Kann Ihr Konto mit einem neuen Master-Passwort zurücksetzen." + }, + "waitTime": { + "message": "Wartezeit" + }, + "waitTimeDesc": { + "message": "Benötigte Zeit, bevor der Zugang automatisch gewährt wird." + }, + "oneDay": { + "message": "1 Tag" + }, + "days": { + "message": "$DAYS$ Tage", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Eingeladener Benutzer." + }, + "acceptEmergencyAccess": { + "message": "Sie wurden eingeladen, ein Notfallkontakt für den oben genannten Benutzer zu werden. Um die Einladung anzunehmen, müssen Sie sich einloggen oder ein neues Bitwarden-Konto erstellen." + }, + "emergencyInviteAcceptFailed": { + "message": "Die Einladung konnte nicht angenommen werden. Bitten Sie den Benutzer, eine neue Einladung zu versenden." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Die Einladung kann nicht angenommen werden. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Sie können auf die Notfalloptionen für diesen Benutzer zugreifen, nachdem Ihre Identität bestätigt wurde. Wir senden Ihnen eine E-Mail, wenn dies geschieht." + }, + "requestAccess": { + "message": "Zugriff anfordern" + }, + "requestAccessConfirmation": { + "message": "Sind Sie sicher, dass Sie einen Notfallzugriff anfordern möchten? Sie erhalten nach $WAITTIME$ Tag(en) Zugang oder wann immer der Benutzer die Anfrage manuell genehmigt.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Notfallzugriff für $USER$ angefordert. Wir werden Sie per E-Mail benachrichtigen, wenn Sie fortfahren können.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Genehmigen" + }, + "reject": { + "message": "Ablehnen" + }, + "approveAccessConfirmation": { + "message": "Sind Sie sicher, dass Sie den Notfallzugriff genehmigen möchten? Dies gibt $USER$ folgende Berechtigung auf Ihr Konto: $ACTION$.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Notfallzugriff genehmigt." + }, + "emergencyRejected": { + "message": "Notfallzugriff abgelehnt" + }, + "passwordResetFor": { + "message": "Passwort für $USER$ zurückgesetzt. Sie können sich jetzt mit dem neuen Passwort anmelden.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Persönliches Eigentum" + }, + "personalOwnershipPolicyDesc": { + "message": "Benutzern vorschreiben, Tresoreinträge in einer Organisation zu speichern, indem sie die persönliche Eigentumsoption entfernen." + }, + "personalOwnershipExemption": { + "message": "Organisationseigentümer und Administratoren sind von der Durchsetzung dieser Richtlinie ausgenommen." + }, + "personalOwnershipSubmitError": { + "message": "Aufgrund einer Unternehmensrichtlinie dürfen Sie keine Einträge in Ihrem persönlichen Tresor speichern. Ändern Sie die Eigentümer-Option in eine Organisation und wählen Sie aus den verfügbaren Sammlungen." + }, + "disableSend": { + "message": "Send deaktivieren" + }, + "disableSendPolicyDesc": { + "message": "Benutzern das Erstellen oder Bearbeiten eines Bitwarden Sends nicht gestatten. Das Löschen eines bestehenden Sends ist weiterhin erlaubt.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Benutzer der Organisation, die die Richtlinien der Organisation verwalten können, sind von der Durchsetzung dieser Richtlinie ausgenommen." + }, + "sendDisabled": { + "message": "Send deaktiviert", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Aufgrund einer Unternehmensrichtlinie können Sie nur ein bestehendes Send löschen.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Einstellungen", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Einstellungen zum Erstellen und Bearbeiten von Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Benutzer der Organisation, die die Richtlinien der Organisation verwalten können, sind von der Durchsetzung dieser Richtlinie ausgenommen." + }, + "disableHideEmail": { + "message": "Benutzern nicht gestatten, ihre E-Mail-Adresse vor Empfängern zu verstecken, wenn sie ein Send erstellen oder bearbeiten.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Die folgenden Organisationsrichtlinien sind derzeit gültig:" + }, + "sendDisableHideEmailInEffect": { + "message": "Benutzer dürfen ihre E-Mail-Adresse beim Erstellen oder Bearbeiten eines Sends nicht vor den Empfängern verstecken.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Richtlinie $ID$ geändert.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Abopreis" + }, + "estimatedTax": { + "message": "Voraussichtliche Steuern" + }, + "custom": { + "message": "Benutzerdefiniert" + }, + "customDesc": { + "message": "Feinere Kontrolle der Benutzer Berechtigungen für erweiterte Konfigurationen erlauben." + }, + "permissions": { + "message": "Berechtigungen" + }, + "accessEventLogs": { + "message": "Zugriff auf Ereignisprotokolle" + }, + "accessImportExport": { + "message": "Zugriff auf Import/Export" + }, + "accessReports": { + "message": "Zugriff auf Berichte" + }, + "missingPermissions": { + "message": "Dir fehlt die erforderliche Berechtigung, um diese Aktion auszuführen." + }, + "manageAllCollections": { + "message": "Alle Sammlungen verwalten" + }, + "createNewCollections": { + "message": "Neue Sammlungen erstellen" + }, + "editAnyCollection": { + "message": "Beliebige Sammlung bearbeiten" + }, + "deleteAnyCollection": { + "message": "Beliebige Sammlung löschen" + }, + "manageAssignedCollections": { + "message": "Zugewiesene Sammlungen verwalten" + }, + "editAssignedCollections": { + "message": "Zugewiesene Sammlungen bearbeiten" + }, + "deleteAssignedCollections": { + "message": "Zugewiesene Sammlungen löschen" + }, + "manageGroups": { + "message": "Gruppen verwalten" + }, + "managePolicies": { + "message": "Richtlinien verwalten" + }, + "manageSso": { + "message": "SSO verwalten" + }, + "manageUsers": { + "message": "Benutzer verwalten" + }, + "manageResetPassword": { + "message": "Passwort Zurücksetzung verwalten" + }, + "disableRequiredError": { + "message": "Du musst die $POLICYNAME$-Richtlinie manuell deaktivieren, bevor diese Richtlinie deaktiviert werden kann.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Eine Organisationsrichtlinie beeinflusst Ihre Eigentümer-Optionen." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "Eine Organisationsrichtlinie hat das Importieren von Einträgen in deinem persönlichen Tresor deaktiviert." + }, + "personalOwnershipCheckboxDesc": { + "message": "Persönliches Eigentum für Organisationsbenutzer deaktivieren" + }, + "textHiddenByDefault": { + "message": "Beim Zugriff auf dieses Send den Text standardmäßig ausblenden", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Ein eigener Name, um dieses Send zu beschreiben.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Der Text, den Sie senden möchten." + }, + "sendFileDesc": { + "message": "Die Datei, die Sie senden möchten." + }, + "copySendLinkOnSave": { + "message": "Den Link zum Teilen dieses Sends beim Speichern in meine Zwischenablage kopieren." + }, + "sendLinkLabel": { + "message": "Send-Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send überträgt einfach und sicher sensible, temporäre Informationen an andere.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Mehr erfahren über", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Teile Text oder Dateien direkt mit jedermann." + }, + "sendVaultCardLearnMore": { + "message": "Mehr erfahren", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "sehen", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "wie es funktioniert", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "oder", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "probieren Sie es aus", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "oder", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "registrieren Sie sich", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "um es heute auszuprobieren.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden Benutzer $USER_IDENTIFIER$ hat Folgendes mit Ihnen geteilt", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Der Bitwarden Benutzer, der dieses Send erstellt hat, hat sich entschieden, seine E-Mail-Adresse zu verstecken. Sie sollten sicherstellen, dass Sie der Quelle dieses Links vertrauen, bevor Sie dessen Inhalt verwenden oder herunterladen.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Das angegebene Verfallsdatum ist nicht gültig." + }, + "deletionDateIsInvalid": { + "message": "Das angegebene Löschdatum ist nicht gültig." + }, + "expirationDateAndTimeRequired": { + "message": "Ein Verfallsdatum und eine Zeit sind erforderlich." + }, + "deletionDateAndTimeRequired": { + "message": "Ein Löschdatum und eine Zeit sind erforderlich." + }, + "dateParsingError": { + "message": "Es gab einen Fehler beim Speichern Ihrer Lösch- und Verfallsdaten." + }, + "webAuthnFallbackMsg": { + "message": "Um Ihre 2FA zu verifizieren, klicken Sie bitte unten auf den Button." + }, + "webAuthnAuthenticate": { + "message": "Authentifiziere WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn wird in diesem Browser nicht unterstützt." + }, + "webAuthnSuccess": { + "message": "WebAuthn erfolgreich verifiziert!
Sie können diesen Tab nun schließen." + }, + "hintEqualsPassword": { + "message": "Dein Passwort-Hinweis darf nicht identisch mit deinem Passwort sein." + }, + "enrollPasswordReset": { + "message": "Für Passwort Zurücksetzung registrieren" + }, + "enrolledPasswordReset": { + "message": "Für Passwort Zurücksetzung registriert" + }, + "withdrawPasswordReset": { + "message": "Von Passwort Zurücksetzung abmelden" + }, + "enrollPasswordResetSuccess": { + "message": "Registrierung erfolgreich!" + }, + "withdrawPasswordResetSuccess": { + "message": "Abmeldung erfolgreich!" + }, + "eventEnrollPasswordReset": { + "message": "Der Benutzer $ID$ hat sich für die Unterstützung zum Zurücksetzen des Passworts registriert.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Der Benutzer $ID$ hat sich von der Unterstützung zum Zurücksetzten des Passworts abgemeldet.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master-Passwort für Benutzer $ID$ zurückgesetzt.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "SSO Link für Benutzer $ID$ zurücksetzen", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ hat sich zum ersten Mal mit SSO angemeldet", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Passwort zurücksetzen" + }, + "resetPasswordLoggedOutWarning": { + "message": "Wenn du fortfährst, wird $NAME$ aus seiner aktuellen Sitzung ausgeloggt und muss sich erneut einloggen. Aktive Sitzungen auf anderen Geräten können bis zu einer Stunde weiterhin aktiv bleiben.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "dieser Benutzer" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Eine oder mehrere Organisationsrichtlinien erfordern, dass dein Master-Passwort die folgenden Anforderungen erfüllt:" + }, + "resetPasswordSuccess": { + "message": "Passwort erfolgreich zurückgesetzt!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Die Registrierung erlaubt Administratoren der Organisation, dein Master-Passwort zu ändern. Bist du sicher, dass du dich registrieren möchtest?" + }, + "resetPasswordPolicy": { + "message": "Master-Passwort zurücksetzen" + }, + "resetPasswordPolicyDescription": { + "message": "Administratoren in der Organisation erlauben, das Master-Passwort der Organisationsbenutzer zurückzusetzen." + }, + "resetPasswordPolicyWarning": { + "message": "Benutzer in der Organisation müssen sich selbst registrieren oder automatisch registriert sein, bevor Administratoren deren Master-Passwort zurücksetzen können." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatische Registrierung" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Alle Benutzer werden automatisch für das Zurücksetzen des Passworts registriert, sobald ihre Einladung angenommen wurde." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Benutzer, die bereits in der Organisation sind, werden nicht rückwirkend für das Zurücksetzen des Passworts registriert. Sie müssen sich selbst registrieren, bevor Administratoren deren Master-Passwort zurücksetzen können." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Neue Benutzer automatisch registrieren" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Diese Organisation hat eine Unternehmensrichtlinie, die dich automatisch zum Zurücksetzen deines Passworts registriert. Die Registrierung wird es Administratoren der Organisation erlauben, dein Master-Passwort zu ändern." + }, + "resetPasswordOrgKeysError": { + "message": "Die Rückmeldung der Organisationsschlüssel ist null" + }, + "resetPasswordDetailsError": { + "message": "Die Rückmeldung der Passwort Details Zurücksetzung ist null" + }, + "trashCleanupWarning": { + "message": "Einträge, die länger als 30 Tage im Papierkorb waren, werden automatisch gelöscht." + }, + "trashCleanupWarningSelfHosted": { + "message": "Einträge, die einige Zeit im Papierkorb waren, werden automatisch gelöscht." + }, + "passwordPrompt": { + "message": "Master-Passwort erneut abfragen" + }, + "passwordConfirmation": { + "message": "Master-Passwort bestätigen" + }, + "passwordConfirmationDesc": { + "message": "Diese Aktion ist geschützt. Um fortzufahren, geben Sie bitte Ihr Master-Passwort erneut ein, um Ihre Identität zu bestätigen." + }, + "reinviteSelected": { + "message": "Einladungen erneut senden" + }, + "noSelectedUsersApplicable": { + "message": "Diese Aktion ist für keinen der ausgewählten Benutzer anwendbar." + }, + "removeUsersWarning": { + "message": "Bist du sicher, dass du die folgenden Benutzer entfernen möchtest? Der Prozess kann einige Sekunden dauern und kann nicht unterbrochen oder abgebrochen werden." + }, + "theme": { + "message": "Design" + }, + "themeDesc": { + "message": "Wähle ein Design für deinen Web-Tresor." + }, + "themeSystem": { + "message": "Benutze Systemdesign" + }, + "themeDark": { + "message": "Dunkel" + }, + "themeLight": { + "message": "Hell" + }, + "confirmSelected": { + "message": "Auswahl bestätigen" + }, + "bulkConfirmStatus": { + "message": "Multi-Aktion Status" + }, + "bulkConfirmMessage": { + "message": "Erfolgreich bestätigt." + }, + "bulkReinviteMessage": { + "message": "Erfolgreich wieder eingeladen." + }, + "bulkRemovedMessage": { + "message": "Erfolgreich entfernt" + }, + "bulkFilteredMessage": { + "message": "Ausgeschlossen, nicht anwendbar für diese Aktion." + }, + "fingerprint": { + "message": "Fingerabdruck" + }, + "removeUsers": { + "message": "Benutzer entfernen" + }, + "error": { + "message": "Fehler" + }, + "resetPasswordManageUsers": { + "message": "Benutzer verwalten muss ebenfalls mit der Passwort zurücksetzen Berechtigung aktiviert werden" + }, + "setupProvider": { + "message": "Anbieter-Einrichtung" + }, + "setupProviderLoginDesc": { + "message": "Du wurdest eingeladen, einen neuen Anbieter einzurichten. Um fortzufahren, musst du dich anmelden oder ein neues Bitwarden-Konto erstellen." + }, + "setupProviderDesc": { + "message": "Bitte gib unten die Details ein, um die Anbieter-Einrichtung abzuschließen. Kontaktiere den Kundenservice, falls du Fragen hast." + }, + "providerName": { + "message": "Anbietername" + }, + "providerSetup": { + "message": "Der Anbieter wurde eingerichtet." + }, + "clients": { + "message": "Kunden" + }, + "providerAdmin": { + "message": "Anbieter-Administrator" + }, + "providerAdminDesc": { + "message": "Der Benutzer mit dem höchsten Zugriffsrechten, der alle Aspekte Ihres Anbieters verwalten kann, sowie auf die Kunden-Organisationen zugreifen und diese verwalten kann." + }, + "serviceUser": { + "message": "Service Benutzer" + }, + "serviceUserDesc": { + "message": "Service Benutzer können auf alle Kunden-Organisationen zugreifen und sie verwalten." + }, + "providerInviteUserDesc": { + "message": "Lade einen neuen Benutzer zu deinem Anbieter ein, indem du die E-Mail-Adresse seines Bitwarden-Kontos unten einträgst. Falls dieser noch kein Bitwarden-Konto besitzt, wird er/sie zur Erstellung eines neuen Kontos aufgefordert." + }, + "joinProvider": { + "message": "Anbieter beitreten" + }, + "joinProviderDesc": { + "message": "Du wurdest eingeladen, dem oben genannten Anbieter beizutreten. Um die Einladung anzunehmen, musst du ein Bitwarden-Konto erstellen, oder dich mit deinem bestehenden Bitwarden-Konto anmelden." + }, + "providerInviteAcceptFailed": { + "message": "Einladung konnte nicht angenommen werden. Bitte einen Anbieter-Administrator darum, eine neue Einladung zu versenden." + }, + "providerInviteAcceptedDesc": { + "message": "Du kannst dem Anbieter beitreten, sobald ein Administrator deine Mitgliedschaft bestätigt hat. Wir werden dich dann per E-Mail benachrichtigen." + }, + "providerUsersNeedConfirmed": { + "message": "Du hast Benutzer, die deine Einladung angenommen haben, aber noch bestätigt werden müssen. Benutzer haben erst Zugriff auf den Anbieter, wenn sie bestätigt wurden." + }, + "provider": { + "message": "Anbieter" + }, + "newClientOrganization": { + "message": "Neue Kunden-Organisation" + }, + "newClientOrganizationDesc": { + "message": "Erstelle eine neue Kunden-Organisation, die dir als Anbieter zugeordnet wird. Du kannst auf diese Organisation zugreifen und diese verwalten." + }, + "addExistingOrganization": { + "message": "Bestehende Organisation hinzufügen" + }, + "myProvider": { + "message": "Mein Anbieter" + }, + "addOrganizationConfirmation": { + "message": "Bist du sicher, dass du $ORGANIZATION$ als Kunde zu $PROVIDER$ hinzufügen möchtest?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organisation wurde erfolgreich zum Anbieter hinzugefügt" + }, + "accessingUsingProvider": { + "message": "Zugriff auf Organisation mit Anbieter $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Anbieter ist deaktiviert." + }, + "providerUpdated": { + "message": "Anbieter aktualisiert" + }, + "yourProviderIs": { + "message": "Dein Anbieter ist $PROVIDER$. Dieser hat Verwaltungs- und Abrechnungsrechte für deine Organisation.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "Die Organisation $ORGANIZATION$ wurde von deinem Anbieter getrennt.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Bist du sicher, dass du diese Organisation trennen möchten? Die Organisation wird weiterhin existieren, wird aber nicht mehr vom Anbieter verwaltet." + }, + "add": { + "message": "Hinzufügen" + }, + "updatedMasterPassword": { + "message": "Master-Passwort aktualisiert" + }, + "updateMasterPassword": { + "message": "Master-Passwort aktualisieren" + }, + "updateMasterPasswordWarning": { + "message": "Dein Master-Passwort wurde kürzlich von einem Administrator deiner Organisation geändert. Um auf den Tresor zuzugreifen, musst du dein Master-Passwort jetzt aktualisieren. Wenn Du fortfährst, wirst du aus der aktuellen Sitzung abgemeldet und eine erneute Anmeldung ist erforderlich. Aktive Sitzungen auf anderen Geräten können bis zu einer Stunde weiterhin aktiv bleiben." + }, + "masterPasswordInvalidWarning": { + "message": "Ihr Master-Passwort erfüllt nicht die Anforderungen dieser Organisation. Um der Organisation beizutreten, müssen Sie Ihr Master-Passwort jetzt aktualisieren. Ein Fortfahren wird Ihre aktuelle Sitzung abmelden. Danach müssen Sie sich wieder anmelden. Aktive Sitzungen auf anderen Geräten können bis zu einer Stunde weiterhin aktiv bleiben." + }, + "maximumVaultTimeout": { + "message": "Tresor-Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Konfiguriere ein maximales Tresor-Timeout für alle Benutzer." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximales Tresor-Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Ungültiger maximaler Tresor-Timeout." + }, + "hours": { + "message": "Stunden" + }, + "minutes": { + "message": "Minuten" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Deine Unternehmensrichtlinien beeinflussen dein Tresor-Timeout. Das maximal zulässige Tresor-Timeout ist $HOURS$ Stunde(n) und $MINUTES$ Minute(n)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Benutzerdefinierter Tresor-Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Dein Tresor-Timeout überschreitet die von deinem Unternehmen festgelegte Beschränkung." + }, + "disablePersonalVaultExport": { + "message": "Persönlichen Tresor-Export deaktivieren" + }, + "disablePersonalVaultExportDesc": { + "message": "Benutzern den Export ihrer privaten Tresor-Daten verbieten." + }, + "vaultExportDisabled": { + "message": "Tresor-Export deaktiviert" + }, + "personalVaultExportPolicyInEffect": { + "message": "Eine oder mehrere Unternehmensrichtlinien verhindern es, dass du deinen persönlichen Tresor exportieren kannst." + }, + "selectType": { + "message": "SSO-Typ auswählen" + }, + "type": { + "message": "Typ" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Konfiguration" + }, + "samlSpConfig": { + "message": "SAML Dienstanbieter Konfiguration" + }, + "samlIdpConfig": { + "message": "SAML Identitätsanbieter Konfiguration" + }, + "callbackPath": { + "message": "Rückruf Pfad" + }, + "signedOutCallbackPath": { + "message": "Rückruf Pfad abgemeldet" + }, + "authority": { + "message": "Zertifizierungsstelle" + }, + "clientId": { + "message": "Client-ID" + }, + "clientSecret": { + "message": "Client Geheimnis" + }, + "metadataAddress": { + "message": "Metadaten Adresse" + }, + "oidcRedirectBehavior": { + "message": "OIDC Weiterleitungsverhalten" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Ansprüche vom Benutzer Info-Endpunkt erhalten" + }, + "additionalScopes": { + "message": "Zusätzliche/Benutzerdefinierte Bereiche (durch Komma getrennt)" + }, + "additionalUserIdClaimTypes": { + "message": "Zusätzliche/benutzerdefinierte Client-ID Anspruchstypen (durch Komma getrennt)" + }, + "additionalEmailClaimTypes": { + "message": "Zusätzliche/Benutzerdefinierte E-Mail Anspruchstypen (durch Komma getrennt)" + }, + "additionalNameClaimTypes": { + "message": "Zusätzliche/Benutzerdefinierte Namen Anspruchstypen (durch Komma getrennt)" + }, + "acrValues": { + "message": "Angeforderte Authentifizierungskontextklassen Referenzwerte (acr_values)" + }, + "expectedReturnAcrValue": { + "message": "\"acr\" Anspruchswert in Antwort erwartet (acr Validation)" + }, + "spEntityId": { + "message": "SP Entitäts-ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadaten-URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Namen ID-Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Ausgehender Signaturalgorithmus" + }, + "spSigningBehavior": { + "message": "Signaturverhalten" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimal eingehender Signaturalgorithmus" + }, + "spWantAssertionsSigned": { + "message": "Möchte Zusicherungen signieren" + }, + "spValidateCertificates": { + "message": "Zertifikate überprüfen" + }, + "idpEntityId": { + "message": "Entitäts-ID" + }, + "idpBindingType": { + "message": "Bindungstyp" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign-On Service-URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log-Out Service-URL" + }, + "idpX509PublicCert": { + "message": "Öffentliches X509-Zertifikat" + }, + "idpOutboundSigningAlgorithm": { + "message": "Ausgehender Signaturalgorithmus" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Erlaube unaufgeforderte Authentifizierungsantwort" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Ausgehende Abmeldeanfragen erlauben" + }, + "idpSignAuthenticationRequests": { + "message": "Signiere Authentifizierungsanfragen" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On Konfiguration wurde gespeichert." + }, + "sponsoredFamilies": { + "message": "Kostenloses Bitwarden Familienabo" + }, + "sponsoredFamiliesEligible": { + "message": "Du und deine Familie haben Anspruch auf ein kostenloses Bitwarden Familienabo. Mit deiner persönlichen E-Mail einlösen, um deine Daten zu schützen, auch wenn du nicht am Arbeitsplatz bist." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Löse dein kostenloses Bitwarden für Familien Abo heute ein, um deine Daten zu schützen, auch wenn du nicht am Arbeitsplatz bist." + }, + "sponsoredFamiliesInclude": { + "message": "Das Bitwarden für Familien Abo beinhaltet" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium-Zugang für bis zu 6 Benutzer" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Gemeinsame Sammlungen für Familiengeheimnisse" + }, + "badToken": { + "message": "Der Link ist nicht mehr gültig. Bitte lasse dir vom Förderer das Angebot erneut senden." + }, + "reclaimedFreePlan": { + "message": "Kostenloses Abo zurückgefordert" + }, + "redeem": { + "message": "Einlösen" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Wähle die Organisation aus, die du gerne fördern möchtest" + }, + "familiesSponsoringOrgSelect": { + "message": "Welches kostenlose Familienangebot möchtest du einlösen?" + }, + "sponsoredFamiliesEmail": { + "message": "Gebe deine persönliche E-Mail ein, um Bitwarden Familien einlösen zu können" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Wenn du diese Organisation verlässt oder aus ihr entfernt wirst, läuft dein Familien-Abo am Ende des Abrechnungszeitraums ab." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Angebot für eine bestehende Organisation akzeptieren oder eine neue Familien-Organisation erstellen." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Dir wurde ein kostenloses Bitwarden Familien-Organisationsabo angeboten. Um fortzufahren, musst du dich in das Konto einloggen, das das Angebot erhalten hat." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Angebot kann nicht angenommen werden. Bitte sende die Angebotsmail von deinem Unternehmenskonto erneut und versuche es noch einmal." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Angebot kann nicht angenommen werden. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Kostenloses Bitwarden Familien-Organisationsangebot einlösen" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Kostenloses Bitwarden Familien-Angebot erfolgreich eingelöst" + }, + "redeemed": { + "message": "Eingelöst" + }, + "redeemedAccount": { + "message": "Eingelöstes Konto" + }, + "revokeAccount": { + "message": "Konto $NAME$ zurückziehen", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Sponsoring-E-Mail erneut an $NAME$ Sponsoring senden", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Kostenloses Familien Abo" + }, + "redeemNow": { + "message": "Jetzt einlösen" + }, + "recipient": { + "message": "Empfänger" + }, + "removeSponsorship": { + "message": "Sponsoring entfernen" + }, + "removeSponsorshipConfirmation": { + "message": "Nachdem du eine Förderung entfernt hast, bist du für dieses Abo und die damit verbundenen Rechnungen verantwortlich. Bist du sicher, dass du fortfahren möchtest?" + }, + "sponsorshipCreated": { + "message": "Förderung erstellt" + }, + "revoke": { + "message": "Zurückziehen" + }, + "emailSent": { + "message": "E-Mail gesendet" + }, + "revokeSponsorshipConfirmation": { + "message": "Nach dem Entfernen dieses Kontos ist der Besitzer der Familienorganisation für dieses Abo und die damit verbundenen Rechnungen verantwortlich. Bist du sicher, dass du fortfahren möchtest?" + }, + "removeSponsorshipSuccess": { + "message": "Förderung entfernt" + }, + "ssoKeyConnectorUnavailable": { + "message": "Der Key Connector konnte nicht erreicht werden. Versuche es später erneut." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Einen Bestätigungscode an deine E-Mail senden" + }, + "sendCode": { + "message": "Code senden" + }, + "codeSent": { + "message": "Code gesendet" + }, + "verificationCode": { + "message": "Verifizierungscode" + }, + "confirmIdentity": { + "message": "Bestätige deine Identität, um fortzufahren." + }, + "verificationCodeRequired": { + "message": "Verifizierungscode ist erforderlich." + }, + "invalidVerificationCode": { + "message": "Ungültiger Verifizierungscode" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ verwendet SSO mit einem selbst gehosteten Schlüsselserver. Ein Master-Passwort ist nicht mehr erforderlich, damit sich Mitglieder dieser Organisation anmelden können.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Organisation verlassen" + }, + "removeMasterPassword": { + "message": "Master-Passwort entfernen" + }, + "removedMasterPassword": { + "message": "Master-Passwort entfernt." + }, + "allowSso": { + "message": "SSO-Authentifizierung erlauben" + }, + "allowSsoDesc": { + "message": "Nach der Einrichtung wird deine Konfiguration gespeichert und die Mitglieder können sich mit ihren Identitätsanbieter-Anmeldedaten authentifizieren." + }, + "ssoPolicyHelpStart": { + "message": "Aktiviere die", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO-Richtlinie", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": ", um zu erzwingen, dass sich alle Mitglieder mit SSO anmelden.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO-Authentifizierung und Richtlinien für eine einzelne Organisation werden benötigt, um die Key Connector Entschlüsselung einzurichten." + }, + "memberDecryptionOption": { + "message": "Entschlüsselungsoptionen für Mitglieder" + }, + "memberDecryptionPassDesc": { + "message": "Einmal authentifiziert, entschlüsseln Mitglieder Tresordaten mit ihren Master-Passwörtern." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Verbinde die Anmeldung über SSO mit deinem selbst gehosteten Entschlüssel-Schlüssel-Server. Mit dieser Option müssen Mitglieder ihre Masterpasswörter nicht verwenden, um Tresordaten zu entschlüsseln." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Anmelden mit SSO und Key-Connector-Entschlüsselung\" ist aktiviert. Diese Richtlinie gilt nur für Eigentümer und Adminstratoren." + }, + "enabledSso": { + "message": "SSO aktiviert" + }, + "disabledSso": { + "message": "SSO deaktiviert" + }, + "enabledKeyConnector": { + "message": "Key Connector aktiviert" + }, + "disabledKeyConnector": { + "message": "Key Connector deaktiviert" + }, + "keyConnectorWarning": { + "message": "Sobald der Key Connector eingerichtet ist, können die Mitglieder-Entschlüsselungsoptionen nicht geändert werden." + }, + "migratedKeyConnector": { + "message": "Zum Key Connector migriert" + }, + "paymentSponsored": { + "message": "Bitte gib eine Zahlungsmethode an, die mit der Organisation verbunden wird. Keine Sorge, wir werden dir nichts berechnen, es sei denn, du wählst zusätzliche Funktionen aus oder deine Förderung läuft ab. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "Das Förderangebot ist abgelaufen. Du kannst die Organisation, die du erstellt hast, löschen, um eine Gebühr am Ende deiner 7-Tage-Testversion zu vermeiden. Andernfalls kannst du diese Meldung schließen, um die Organisation zu behalten und die Rechnungsverantwortung zu übernehmen." + }, + "newFamiliesOrganization": { + "message": "Neue Familien-Organisation" + }, + "acceptOffer": { + "message": "Angebot annehmen" + }, + "sponsoringOrg": { + "message": "Förderorganisation" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Erfolg! Key Connector erreicht." + }, + "keyConnectorTestFail": { + "message": "Key Connector nicht erreichbar. URL überprüfen." + }, + "sponsorshipTokenHasExpired": { + "message": "Das Förderangebot ist abgelaufen." + }, + "freeWithSponsorship": { + "message": "KOSTENLOS mit Förderung" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ Felder oben müssen beachtet werden.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 Feld oben muss beachtet werden." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ ist erforderlich.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "erforderlich" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Erforderlich, wenn die Entitäts-ID keine URL ist." + }, + "openIdOptionalCustomizations": { + "message": "Optionale Anpassungen" + }, + "openIdAuthorityRequired": { + "message": "Erforderlich, wenn die Zertifizierungsstelle nicht gültig ist." + }, + "separateMultipleWithComma": { + "message": "Mehrere mit einem Komma trennen." + }, + "sessionTimeout": { + "message": "Deine Sitzung ist abgelaufen. Bitte gehe zurück und versuche dich erneut einzuloggen." + }, + "exportingPersonalVaultTitle": { + "message": "Persönlichen Tresor exportieren" + }, + "exportingOrganizationVaultTitle": { + "message": "Tresor der Organisation exportieren" + }, + "exportingPersonalVaultDescription": { + "message": "Nur die persönlichen Tresoreinträge, die mit $EMAIL$ verbunden sind, werden exportiert. Tresoreinträge der Organisation werden nicht berücksichtigt.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Nur der mit $ORGANIZATION$ verbundene Tresor der Organisation wird exportiert. Persönliche Tresoreinträge und Einträge anderer Organisationen werden nicht berücksichtigt.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Zurück zu den Berichten" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "Was möchtest du generieren?" + }, + "passwordType": { + "message": "Passworttyp" + }, + "regenerateUsername": { + "message": "Benutzername neu generieren" + }, + "generateUsername": { + "message": "Benutzernamen generieren" + }, + "usernameType": { + "message": "Benutzernamentyp" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all-E-Mail-Adresse" + }, + "catchallEmailDesc": { + "message": "Verwenden Sie den konfigurierten Catch-All-Posteingang Ihrer Domain." + }, + "random": { + "message": "Zufällig" + }, + "randomWord": { + "message": "Zufälliges Wort" + }, + "service": { + "message": "Dienst" + } +} diff --git a/apps/web/src/locales/el/messages.json b/apps/web/src/locales/el/messages.json new file mode 100644 index 0000000000..720117e97c --- /dev/null +++ b/apps/web/src/locales/el/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Web Vault", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Τι είδους στοιχείο είναι αυτό;" + }, + "name": { + "message": "Όνομα" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Νέο URI" + }, + "username": { + "message": "Όνομα χρήστη" + }, + "password": { + "message": "Κωδικός" + }, + "newPassword": { + "message": "Νέος Κωδικός" + }, + "passphrase": { + "message": "Συνθηματικό" + }, + "notes": { + "message": "Σημειώσεις" + }, + "customFields": { + "message": "Προσαρμοσμένα Πεδία" + }, + "cardholderName": { + "message": "Όνομα κατόχου της κάρτας" + }, + "number": { + "message": "Αριθμός" + }, + "brand": { + "message": "Μάρκα" + }, + "expiration": { + "message": "Λήξη" + }, + "securityCode": { + "message": "Κωδικός ασφαλείας (CVV)" + }, + "identityName": { + "message": "Όνομα Ταυτότητας" + }, + "company": { + "message": "Εταιρεία" + }, + "ssn": { + "message": "ΑΜΚΑ" + }, + "passportNumber": { + "message": "Αριθμός Διαβατηρίου" + }, + "licenseNumber": { + "message": "Αριθμός Άδειας" + }, + "email": { + "message": "Email" + }, + "phone": { + "message": "Τηλέφωνο" + }, + "january": { + "message": "Ιανουάριος" + }, + "february": { + "message": "Φεβρουάριος" + }, + "march": { + "message": "Μάρτιος" + }, + "april": { + "message": "Απρίλιος" + }, + "may": { + "message": "Μάιος" + }, + "june": { + "message": "Ιούνιος" + }, + "july": { + "message": "Ιούλιος" + }, + "august": { + "message": "Αύγουστος" + }, + "september": { + "message": "Σεπτέμβριος" + }, + "october": { + "message": "Οκτώβριος" + }, + "november": { + "message": "Νοέμβριος" + }, + "december": { + "message": "Δεκέμβριος" + }, + "title": { + "message": "Τίτλος" + }, + "mr": { + "message": "Κος" + }, + "mrs": { + "message": "Κα" + }, + "ms": { + "message": "Κα" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Μήνας Λήξης" + }, + "expirationYear": { + "message": "Έτος Λήξης" + }, + "authenticatorKeyTotp": { + "message": "Κλειδί Επαλήθευσης (TOTP)" + }, + "folder": { + "message": "Φάκελος" + }, + "newCustomField": { + "message": "Νέο Προσαρμοσμένο Πεδίο" + }, + "value": { + "message": "Τιμή" + }, + "dragToSort": { + "message": "Σύρετε για ταξινόμηση" + }, + "cfTypeText": { + "message": "Κείμενο" + }, + "cfTypeHidden": { + "message": "Κρυφό" + }, + "cfTypeBoolean": { + "message": "Δυαδικό" + }, + "cfTypeLinked": { + "message": "Συνδεδεμένο", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Αφαίρεση" + }, + "unassigned": { + "message": "Χωρίς ανάθεση" + }, + "noneFolder": { + "message": "Χωρίς Φάκελο", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Προσθήκη Φακέλου" + }, + "editFolder": { + "message": "Επεξεργασία Φακέλου" + }, + "baseDomain": { + "message": "Βασικός τομέας", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Όνομα τομέα", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Διακομιστής", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Ακριβής" + }, + "startsWith": { + "message": "Έναρξη με" + }, + "regEx": { + "message": "Κανονική έκφραση", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Εντοπισμός Αντιστοίχισης", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Προεπιλεγμένος εντοπισμός αντιστοίχισης", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Ποτέ" + }, + "toggleVisibility": { + "message": "Εναλλαγή Ορατότητας" + }, + "toggleCollapse": { + "message": "Εναλλαγή Σύμπτυξης", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Δημιουργία Κωδικού" + }, + "checkPassword": { + "message": "Ελέγξτε εάν ο κωδικός έχει εκτεθεί." + }, + "passwordExposed": { + "message": "Αυτός ο κωδικός έχει εκτεθεί $VALUE$ φορά (ές) σε διαρροές δεδομένων. Πρέπει να τον αλλάξετε.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Αυτός ο κωδικός δεν βρέθηκε σε γνωστές παραβιάσεις δεδομένων. Πρέπει να είναι ασφαλής για χρήση." + }, + "save": { + "message": "Αποθήκευση" + }, + "cancel": { + "message": "Ακύρωση" + }, + "canceled": { + "message": "Ακυρώθηκε" + }, + "close": { + "message": "Κλείσιμο" + }, + "delete": { + "message": "Διαγραφή" + }, + "favorite": { + "message": "Αγαπημένο" + }, + "unfavorite": { + "message": "Μη αγαπημένο" + }, + "edit": { + "message": "Επεξεργασία" + }, + "searchCollection": { + "message": "Αναζήτηση στη συλλογή" + }, + "searchFolder": { + "message": "Αναζήτηση στον Φάκελο" + }, + "searchFavorites": { + "message": "Αναζήτηση στα Αγαπημένα" + }, + "searchType": { + "message": "Τύπος Αναζήτησης", + "description": "Search item type" + }, + "searchVault": { + "message": "Αναζήτηση στο Vault" + }, + "allItems": { + "message": "Όλα τα στοιχεία" + }, + "favorites": { + "message": "Αγαπημένα" + }, + "types": { + "message": "Τύποι" + }, + "typeLogin": { + "message": "Σύνδεση" + }, + "typeCard": { + "message": "Κάρτα" + }, + "typeIdentity": { + "message": "Ταυτότητα" + }, + "typeSecureNote": { + "message": "Ασφαλής Σημείωση" + }, + "typeLoginPlural": { + "message": "Συνδέσεις" + }, + "typeCardPlural": { + "message": "Κάρτες" + }, + "typeIdentityPlural": { + "message": "Ταυτότητες" + }, + "typeSecureNotePlural": { + "message": "Ασφαλείς Σημειώσεις" + }, + "folders": { + "message": "Φάκελοι" + }, + "collections": { + "message": "Συλλογές" + }, + "firstName": { + "message": "Όνομα" + }, + "middleName": { + "message": "Μεσαίο Όνομα" + }, + "lastName": { + "message": "Επώνυμο" + }, + "fullName": { + "message": "Ονοματεπώνυμο" + }, + "address1": { + "message": "Διεύθυνση 1" + }, + "address2": { + "message": "Διεύθυνση 2" + }, + "address3": { + "message": "Διεύθυνση 3" + }, + "cityTown": { + "message": "Πόλη / Κωμόπολη" + }, + "stateProvince": { + "message": "Περιοχή / Νομός" + }, + "zipPostalCode": { + "message": "Ταχυδρομικός κώδικας" + }, + "country": { + "message": "Χώρα" + }, + "shared": { + "message": "Κοινοποιήθηκε" + }, + "attachments": { + "message": "Συνημμένα" + }, + "select": { + "message": "Επιλογή" + }, + "addItem": { + "message": "Προσθήκη Στοιχείου" + }, + "editItem": { + "message": "Επεξεργασία Στοιχείου" + }, + "viewItem": { + "message": "Προβολή Στοιχείου" + }, + "ex": { + "message": "πχ.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Άλλο" + }, + "share": { + "message": "Κοινοποίηση" + }, + "moveToOrganization": { + "message": "Μετακίνηση στον Οργανισμό" + }, + "valueCopied": { + "message": "$VALUE$ αντιγράφηκε", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Αντιγραφή Τιμής", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Αντιγραφή Κωδικού", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Αντιγραφή Ονόματος Χρήστη", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Αντιγραφή Αριθμού", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Αντιγραφή Κωδικού Ασφαλείας", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Αντιγραφή URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Το Vault μου" + }, + "vault": { + "message": "Vault" + }, + "moveSelectedToOrg": { + "message": "Μετακίνηση Επιλεγμένων στον Οργανισμό" + }, + "deleteSelected": { + "message": "Διαγραφή Επιλεγμένων" + }, + "moveSelected": { + "message": "Μετακίνηση Επιλεγμένων" + }, + "selectAll": { + "message": "Επιλογή Όλων" + }, + "unselectAll": { + "message": "Αποεπιλογή Ολων" + }, + "launch": { + "message": "Εκκίνηση" + }, + "newAttachment": { + "message": "Προσθήκη Νέου Συνημμένου" + }, + "deletedAttachment": { + "message": "Διαγραφή επισύναψης" + }, + "deleteAttachmentConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το συνημμένο;" + }, + "attachmentSaved": { + "message": "Η επισύναψη έχει αποθηκευτεί." + }, + "file": { + "message": "Αρχείο" + }, + "selectFile": { + "message": "Επιλέξτε ένα αρχείο." + }, + "maxFileSize": { + "message": "Το μέγιστο μέγεθος αρχείου είναι 500 MB." + }, + "updateKey": { + "message": "Δεν μπορείτε να χρησιμοποιήσετε αυτήν τη δυνατότητα μέχρι να ενημερώσετε το κλειδί κρυπτογράφησης." + }, + "addedItem": { + "message": "Προστέθηκε στοιχείο" + }, + "editedItem": { + "message": "Επεξεργασμένο στοιχείο" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ μετακινήθηκε στο $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Τα επιλεγμένα αντικείμενα μετακινήθηκαν στο $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Διαγραφή στοιχείου" + }, + "deleteFolder": { + "message": "Διαγραφή Φακέλου" + }, + "deleteAttachment": { + "message": "Διαγραφή συνημμένου" + }, + "deleteItemConfirmation": { + "message": "Θέλετε πραγματικά να στείλετε στον κάδο απορριμμάτων;" + }, + "deletedItem": { + "message": "Διαγραμμένο στοιχείο" + }, + "deletedItems": { + "message": "Διαγραμμένα στοιχεία" + }, + "movedItems": { + "message": "Στοιχεία που έχουν μετακινηθεί" + }, + "overwritePasswordConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να αντικαταστήσετε τον τρέχον κωδικό;" + }, + "editedFolder": { + "message": "Επεξεργασμένος φάκελος" + }, + "addedFolder": { + "message": "Προστέθηκε φάκελος" + }, + "deleteFolderConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτόν το φάκελο;" + }, + "deletedFolder": { + "message": "Διαγραφή φακέλου" + }, + "loggedOut": { + "message": "Αποσυνδεθήκατε" + }, + "loginExpired": { + "message": "Η περίοδος σύνδεσής σας έχει λήξει." + }, + "logOutConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να αποσυνδεθείτε;" + }, + "logOut": { + "message": "Αποσύνδεση" + }, + "ok": { + "message": "Οκ" + }, + "yes": { + "message": "Ναι" + }, + "no": { + "message": "Όχι" + }, + "loginOrCreateNewAccount": { + "message": "Συνδεθείτε ή δημιουργήστε νέο λογαριασμό για να αποκτήσετε πρόσβαση στο vault σας." + }, + "createAccount": { + "message": "Δημιουργία Λογαριασμού" + }, + "logIn": { + "message": "Είσοδος" + }, + "submit": { + "message": "Υποβολή" + }, + "emailAddressDesc": { + "message": "Θα χρησιμοποιήσετε τη διεύθυνση email σας για να συνδεθείτε." + }, + "yourName": { + "message": "Το όνομα σας" + }, + "yourNameDesc": { + "message": "Πως να σας φωνάζουμε;" + }, + "masterPass": { + "message": "Κύριος Κωδικός" + }, + "masterPassDesc": { + "message": "Ο κύριος κωδικός είναι ο κωδικός που χρησιμοποιείτε για την πρόσβαση στο vault σας. Είναι πολύ σημαντικό να μην ξεχάσετε τον κύριο κωδικό. Δεν υπάρχει τρόπος να τον ανακτήσετε σε περίπτωση που τον ξεχάσετε." + }, + "masterPassHintDesc": { + "message": "Η υπόδειξη του κύριου κωδικού μπορεί να σας βοηθήσει να θυμηθείτε τον κωδικό σας, σε περίπτωση που τον ξεχάσετε." + }, + "reTypeMasterPass": { + "message": "Εισάγετε Ξανά τον Κύριο Κωδικό σας" + }, + "masterPassHint": { + "message": "Υπόδειξη Κύριου Κωδικού (προαιρετικό)" + }, + "masterPassHintLabel": { + "message": "Υπόδειξη Κύριου Κωδικού" + }, + "settings": { + "message": "Ρυθμίσεις" + }, + "passwordHint": { + "message": "Υπόδειξη Κωδικού" + }, + "enterEmailToGetHint": { + "message": "Παρακαλούμε εισάγετε το email του λογαριασμού σας, ώστε να λάβετε την υπόδειξη του κύριου κωδικού πρόσβασης." + }, + "getMasterPasswordHint": { + "message": "Λήψη υπόδειξης κύριου κωδικού" + }, + "emailRequired": { + "message": "Απαιτείται μια διεύθυνση email." + }, + "invalidEmail": { + "message": "Μη έγκυρη διεύθυνση e-mail." + }, + "masterPassRequired": { + "message": "Απαιτείται κύριος κωδικός πρόσβασης." + }, + "masterPassLength": { + "message": "Ο κύριος κωδικός πρέπει να έχει μήκος τουλάχιστον 8 χαρακτήρες." + }, + "masterPassDoesntMatch": { + "message": "Η επιβεβαίωση του κύριου κωδικού δεν ταιριάζει." + }, + "newAccountCreated": { + "message": "Ο λογαριασμός σας έχει δημιουργηθεί! Τώρα μπορείτε να συνδεθείτε." + }, + "masterPassSent": { + "message": "Σας στείλαμε ένα email με την υπόδειξη του κύριου κωδικού." + }, + "unexpectedError": { + "message": "Παρουσιάστηκε ένα μη αναμενόμενο σφάλμα." + }, + "emailAddress": { + "message": "Διεύθυνση Email" + }, + "yourVaultIsLocked": { + "message": "Το vault σας είναι κλειδωμένο. Επαληθεύστε τον κύριο κωδικό πρόσβασης για να συνεχίσετε." + }, + "unlock": { + "message": "Ξεκλείδωμα" + }, + "loggedInAsEmailOn": { + "message": "Συνδεθήκατε ως $EMAIL$ στο $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Μη έγκυρος κύριος κωδικός πρόσβασης" + }, + "lockNow": { + "message": "Κλείδωμα Τώρα" + }, + "noItemsInList": { + "message": "Δεν υπάρχουν στοιχεία στη λίστα." + }, + "noCollectionsInList": { + "message": "Δεν υπάρχουν συλλογές στη λίστα." + }, + "noGroupsInList": { + "message": "Δεν υπάρχουν ομάδες στη λίστα." + }, + "noUsersInList": { + "message": "Δεν υπάρχουν χρήστες στη λίστα." + }, + "noEventsInList": { + "message": "Δεν υπάρχουν γεγονότα στη λίστα." + }, + "newOrganization": { + "message": "Νέος Οργανισμός" + }, + "noOrganizationsList": { + "message": "Δεν συμμετέχετε σε κάποιον οργανισμό. Οι οργανισμοί επιτρέπουν την ασφαλή κοινοποίηση στοιχείων με άλλους χρήστες." + }, + "versionNumber": { + "message": "Έκδοση $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Εισάγετε τον 6ψήφιο κωδικό από την εφαρμογή επαλήθευσης." + }, + "enterVerificationCodeEmail": { + "message": "Εισάγετε τον 6ψήφιο κωδικό επαλήθευσης, τον οποίο λάβατε στο $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Εστάλη email επαλήθευσης στο $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Να με θυμάσαι" + }, + "sendVerificationCodeEmailAgain": { + "message": "Αποστολή email κωδικού επαλήθευσης ξανά" + }, + "useAnotherTwoStepMethod": { + "message": "Χρήση άλλης μεθόδου δύο παραγόντων" + }, + "insertYubiKey": { + "message": "Τοποθετήστε το YubiKey στη θύρα USB του υπολογιστή σας και έπειτα πατήστε το κουμπί του." + }, + "insertU2f": { + "message": "Εισάγετε το κλειδί ασφαλείας στη θύρα USB του υπολογιστή σας. Αν υπάρχει κουμπί, πατήστε το." + }, + "loginUnavailable": { + "message": "Σύνδεση μη Διαθέσιμη" + }, + "noTwoStepProviders": { + "message": "Αυτός ο λογαριασμός έχει ενεργοποιημένη τη σύνδεση σε δύο βήματα, ωστόσο, κανένας από τους διαμορφωμένους παροχείς δύο βημάτων δεν υποστηρίζεται από αυτό το πρόγραμμα περιήγησης." + }, + "noTwoStepProviders2": { + "message": "Παρακαλούμε χρησιμοποιήστε ένα περιηγητή (όπως Chrome) και/ή προσθέστε επιπλέον παρόχους οι οποίοι υποστηρίζονται καλύτερα από τους περιηγητές internet (όπως για παράδειγμα μια εφαρμογή επαλήθευσης)." + }, + "twoStepOptions": { + "message": "Επιλογές σύνδεσης δύο παραγόντων" + }, + "recoveryCodeDesc": { + "message": "Έχετε χάσει την πρόσβαση σε όλους τους παρόχους δύο παραγόντων; Χρησιμοποιήστε τον κωδικό ανάκτησης για να απενεργοποιήσετε όλους τους παρόχους δύο παραγόντων από το λογαριασμό σας." + }, + "recoveryCodeTitle": { + "message": "Κωδικός Ανάκτησης" + }, + "authenticatorAppTitle": { + "message": "Εφαρμογή Επαλήθευσης" + }, + "authenticatorAppDesc": { + "message": "Χρησιμοποιήστε μια εφαρμογή επαλήθευσης (όπως το Authy ή Google Authenticator) για να δημιουργήσει κωδικούς επαλήθευσης με χρόνικο περιορισμό.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "Κλειδί Ασφαλείας YubiKey OTP" + }, + "yubiKeyDesc": { + "message": "Χρησιμοποιήστε ένα YubiKey για να αποκτήσετε πρόσβαση στο λογαριασμό σας. Λειτουργεί με συσκευές σειράς YubiKey 4, 5 και συσκευές NEO." + }, + "duoDesc": { + "message": "Επαληθεύστε με το Duo Security χρησιμοποιώντας την εφαρμογή Duo Mobile, μηνύματα SMS, τηλεφωνική κλήση ή κλειδί ασφαλείας U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Επαληθεύστε με το Duo Security για τον οργανισμό σας χρησιμοποιώντας την εφαρμογή Duo Mobile, μήνυμα SMS, τηλεφωνική κλήση ή κλειδί ασφαλείας U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Χρησιμοποιήστε οποιοδήποτε κλειδί ασφαλείας με δυνατότητα FIDO U2F για πρόσβαση στον λογαριασμό σας." + }, + "u2fTitle": { + "message": "Κλειδί Aσφαλείας FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Χρησιμοποιήστε οποιοδήποτε κλειδί ασφαλείας WebAuthn για να αποκτήσετε πρόσβαση στο λογαριασμό σας." + }, + "webAuthnMigrated": { + "message": "(Μετεγκατάσταση από το FIDO)" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Οι κωδικοί επαλήθευσης θα σας αποσταλούν μέσω email." + }, + "continue": { + "message": "Συνέχεια" + }, + "organization": { + "message": "Οργανισμός" + }, + "organizations": { + "message": "Οργανισμοί" + }, + "moveToOrgDesc": { + "message": "Επιλέξτε έναν οργανισμό στον οποίο θέλετε να μετακινήσετε αυτό το στοιχείο. Η μετακίνηση σε έναν οργανισμό μεταβιβάζει την ιδιοκτησία του στοιχείου σε αυτό τον οργανισμό. Δεν θα είστε πλέον ο άμεσος ιδιοκτήτης αυτού του στοιχείου μόλις το μετακινήσετε." + }, + "moveManyToOrgDesc": { + "message": "Επιλέξτε έναν οργανισμό στον οποίο θέλετε να μετακινήσετε αυτά τα στοιχεία. Η μετακίνηση σε έναν οργανισμό μεταβιβάζει την ιδιοκτησία του στοιχείου σε αυτό τον οργανισμό. Δεν θα είστε πλέον ο άμεσος ιδιοκτήτης αυτού του στοιχείου μόλις το μετακινήσετε." + }, + "collectionsDesc": { + "message": "Επεξεργαστείτε τις συλλογές με τις οποίες μοιράζεται αυτό το στοιχείο. Μόνο οι χρήστες των οργανισμών που έχουν πρόσβαση σε αυτές τις συλλογές θα μπορούν να βλέπουν αυτό το στοιχείο." + }, + "deleteSelectedItemsDesc": { + "message": "Έχετε επιλέξει $COUNT$ στοιχείο(α) για διαγραφή. Είστε βέβαιοι ότι θέλετε να διαγράψετε όλα αυτά τα στοιχεία;", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Επιλέξτε ένα φάκελο στον οποίο θέλετε να μετακινήσετε το $COUNT$ επιλεγμένο(α) στοιχεία.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Έχετε επιλέξει $COUNT$ αντικείμενα. $MOVEABLE_COUNT$ αντικείμενα μπορούν να μετακινηθούν σε έναν οργανισμό, $NONMOVEABLE_COUNT$ δεν μπορεί.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Κωδικός Επαλήθευσης (TOTP)" + }, + "copyVerificationCode": { + "message": "Αντιγραφή Κωδικού Επαλήθευσης" + }, + "warning": { + "message": "Προειδοποίηση" + }, + "confirmVaultExport": { + "message": "Επιβεβαίωση εξαγωγής Vault" + }, + "exportWarningDesc": { + "message": "Αυτή η εξαγωγή περιέχει τα δεδομένα σε μη κρυπτογραφημένη μορφή. Δεν πρέπει να αποθηκεύετε ή να στείλετε το εξαγόμενο αρχείο μέσω μη ασφαλών τρόπων (όπως μέσω email). Διαγράψτε το αμέσως μόλις τελειώσετε με τη χρήση του." + }, + "encExportKeyWarningDesc": { + "message": "Αυτή η εξαγωγή κρυπτογραφεί τα δεδομένα σας χρησιμοποιώντας το κλειδί κρυπτογράφησης του λογαριασμού σας. Εάν ποτέ περιστρέψετε το κλειδί κρυπτογράφησης του λογαριασμού σας, θα πρέπει να κάνετε εξαγωγή ξανά, καθώς δεν θα μπορείτε να αποκρυπτογραφήσετε αυτό το αρχείο εξαγωγής." + }, + "encExportAccountWarningDesc": { + "message": "Τα κλειδιά κρυπτογράφησης λογαριασμού είναι μοναδικά για κάθε λογαριασμό χρήστη Bitwarden, οπότε δεν μπορείτε να εισάγετε μια κρυπτογραφημένη εξαγωγή σε διαφορετικό λογαριασμό." + }, + "export": { + "message": "Εξαγωγή" + }, + "exportVault": { + "message": "Εξαγωγή Vault" + }, + "fileFormat": { + "message": "Μορφή Αρχείου" + }, + "exportSuccess": { + "message": "Τα δεδομένα του vault σας έχουν εξαχθεί." + }, + "passwordGenerator": { + "message": "Γεννήτρια Κωδικού" + }, + "minComplexityScore": { + "message": "Ελάχιστος Βαθμός Πολυπλοκότητας" + }, + "minNumbers": { + "message": "Ελάχιστα Αριθμητικά Ψηφία" + }, + "minSpecial": { + "message": "Ελάχιστο Ειδικών Χαρακτήρων", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Αποφυγή Αμφιλεγόμενων Χαρακτήρων" + }, + "regeneratePassword": { + "message": "Επαναδημιουργία Κωδικού" + }, + "length": { + "message": "Μήκος" + }, + "numWords": { + "message": "Αριθμός Λέξεων" + }, + "wordSeparator": { + "message": "Διαχωριστής Λέξεων" + }, + "capitalize": { + "message": "Κεφαλαία", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Συμπερίληψη Αριθμών" + }, + "passwordHistory": { + "message": "Ιστορικό Κωδικού" + }, + "noPasswordsInList": { + "message": "Δεν υπάρχουν κωδικοί στη λίστα." + }, + "clear": { + "message": "Εκκαθάριση", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Ο Λογαριασμός Ενημερώθηκε" + }, + "changeEmail": { + "message": "Αλλαγή Email" + }, + "changeEmailTwoFactorWarning": { + "message": "Η διαδικασία θα αλλάξει τη διεύθυνση email του λογαριασμού σας. Δεν θα αλλάξει το email που χρησιμοποιείται για έλεγχο ταυτότητας δύο παραγόντων. Μπορείτε να αλλάξετε αυτό το email στις ρυθμίσεις σύνδεσης δύο βημάτων." + }, + "newEmail": { + "message": "Νέο Email" + }, + "code": { + "message": "Κωδικός" + }, + "changeEmailDesc": { + "message": "Έχουμε στείλει έναν κωδικό επαλήθευσης στο $EMAIL$. Ελέγξτε το email σας για αυτόν τον κωδικό και πληκτρολογήστε τον παρακάτω, προκειμένου να ολοκληρώσετε την αλλαγή διεύθυνσης του email σας.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Η διαδικασία θα σας αποσυνδέσει από την τρέχουσα συνεδρία και θα σας ζητήσει να συνδεθείτε ξανά. Οι ενεργές συνεδρίες σε άλλες συσκευές ενδέχεται να παραμείνουν ενεργοποιημένες για έως και μία ώρα." + }, + "emailChanged": { + "message": "Το email άλλαξε" + }, + "logBackIn": { + "message": "Παρακαλούμε συνδεθείτε ξανά." + }, + "logBackInOthersToo": { + "message": "Παρακαλούμε συνδεθείτε ξανά. Εάν χρησιμοποιείτε άλλες εφαρμογές Bitwarden, αποσυνδεθείτε και επιστρέψτε σε αυτές επίσης." + }, + "changeMasterPassword": { + "message": "Αλλαγή Κύριου Κωδικού" + }, + "masterPasswordChanged": { + "message": "Ο Κύριος Κωδικός Αλλαξε" + }, + "currentMasterPass": { + "message": "Τρέχων Κύριος Κωδικός" + }, + "newMasterPass": { + "message": "Νέος Κύριος Κωδικός" + }, + "confirmNewMasterPass": { + "message": "Επιβεβαίωση Νέου Κύριου Κωδικού" + }, + "encKeySettings": { + "message": "Ρυθμίσεις Κλειδιού Κρυπτογράφησης" + }, + "kdfAlgorithm": { + "message": "Αλγόριθμος KDF" + }, + "kdfIterations": { + "message": "Επαναλήψεις KDF" + }, + "kdfIterationsDesc": { + "message": "Οι περισσότερες επαναλήψεις του KDF μπορούν να σας βοηθήσουν να προστατέψετε τον κύριο κωδικό από έναν εισβολέα.. Συνιστούμε μια τιμή $VALUE$ ή περισσότερο.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Η ρύθμιση των επαναλήψεων KDF σε υπερβολικά υψηλά επίπεδα μπορεί να οδηγήσει σε κακή απόδοση κατά τη σύνδεση (και ξεκλειδώματος) του Bitwarden σε συσκευές με βραδύτερους CPU. Σας συνιστούμε να αυξήσετε την τιμή σε $INCREMENT$ και στη συνέχεια να δοκιμάσετε όλες τις συσκευές σας.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Αλλαγή KDF" + }, + "encKeySettingsChanged": { + "message": "Οι Ρυθμίσεις του Κλειδιού Κρυπτογράφησης Αλλαξαν" + }, + "dangerZone": { + "message": "Επικίνδυνη Ζώνη" + }, + "dangerZoneDesc": { + "message": "Προσοχή, αυτές οι ενέργειες είναι μη αναστρέψιμες!" + }, + "deauthorizeSessions": { + "message": "Κατάργηση Εξουσιοδότησης Συνεδριών" + }, + "deauthorizeSessionsDesc": { + "message": "Σκέφτεστε μήπως έχει συνδεθεί άλλη συσκευή στον λογαριασμό σας; Συνεχίστε παρακάτω για να καταργήσετε την πρόσβαση σε όλους τους υπολογιστές ή συσκευές που είχατε χρησιμοποιήσει στο παρελθόν. Αυτό το βήμα ασφαλείας συνιστάται αν χρησιμοποιούσατε προηγουμένως έναν δημόσιο υπολογιστή ή αν αποθηκεύσατε κατά λάθος τον κωδικό σας, σε μια συσκευή που δεν είναι δική σας. Αυτό το βήμα θα καθαρίσει επίσης όλες τις προηγούμενες συνδέσεις δύο βημάτων που έγιναν." + }, + "deauthorizeSessionsWarning": { + "message": "Η διαδικασία θα σας αποσυνδέσει από την τρέχουσα συνεδρία και θα σας ζητήσει να συνδεθείτε ξανά. Οι ενεργές συνεδρίες σε άλλες συσκευές ενδέχεται να παραμείνουν ενεργοποιημένες για έως και μία ώρα." + }, + "sessionsDeauthorized": { + "message": "Η Ανακληθεί η Πρόσβαση από Όλες τις Συνεδρίες" + }, + "purgeVault": { + "message": "Εκκαθάριση Vault" + }, + "purgedOrganizationVault": { + "message": "Εκκαθάριση vault οργανισμού." + }, + "vaultAccessedByProvider": { + "message": "Vault με πρόσβαση από τον πάροχο." + }, + "purgeVaultDesc": { + "message": "Προχωρήστε παρακάτω για να διαγράψετε όλα τα στοιχεία και τους φακέλους στo vault σας. Τα στοιχεία που ανήκουν σε έναν οργανισμό των οποίων τα στοιχεία κοινοποιείτε, δεν θα διαγραφούν." + }, + "purgeOrgVaultDesc": { + "message": "Προχωρήστε παρακάτω για να διαγράψετε όλα τα στοιχεία του vault του οργανισμού." + }, + "purgeVaultWarning": { + "message": "Η εκκαθάριση του vault είναι μόνιμη. Αυτό δεν μπορεί να αναιρεθεί." + }, + "vaultPurged": { + "message": "Το vault σας έχει καθαριστεί." + }, + "deleteAccount": { + "message": "Διαγραφή Λογαριασμού" + }, + "deleteAccountDesc": { + "message": "Προχωρήστε παρακάτω για να διαγράψετε το λογαριασμό σας και όλα τα συσχετιζόμενα δεδομένα." + }, + "deleteAccountWarning": { + "message": "Η διαγραφή του λογαριασμού σας είναι μόνιμη. Δε μπορεί να αναιρεθεί." + }, + "accountDeleted": { + "message": "Ο Λογαριασμός Διαγράφηκε" + }, + "accountDeletedDesc": { + "message": "Ο λογαριασμός σας έκλεισε και όλα τα σχετικά δεδομένα διαγράφηκαν." + }, + "myAccount": { + "message": "Ο Λογαριασμός μου" + }, + "tools": { + "message": "Εργαλεία" + }, + "importData": { + "message": "Εισαγωγή Δεδομένων" + }, + "importError": { + "message": "Σφάλμα Εισαγωγής" + }, + "importErrorDesc": { + "message": "Παρουσιάστηκε πρόβλημα με τα δεδομένα που επιχειρήσατε να εισαγάγετε. Παρακαλώ επιλύστε τα σφάλματα που αναφέρονται παρακάτω στο αρχείο προέλευσης και προσπαθήστε ξανά." + }, + "importSuccess": { + "message": "Τα δεδομένα έχουν εισαχθεί με επιτυχία στο vault σας." + }, + "importWarning": { + "message": "Εισάγετε δεδομένα στο $ORGANIZATION$. Τα δεδομένα σας μπορεί να μοιραστούν με μέλη αυτού του οργανισμού. Θέλετε να προχωρήσετε;", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Τα δεδομένα δεν έχουν διαμορφωθεί σωστά. Ελέγξτε το αρχείο εισαγωγής και δοκιμάστε ξανά." + }, + "importNothingError": { + "message": "Δεν υπάρχει κάτι για εισαγωγή." + }, + "importEncKeyError": { + "message": "Σφάλμα αποκρυπτογράφησης του εξαγόμενου αρχείου. Το κλειδί κρυπτογράφησης δεν ταιριάζει με το κλειδί κρυπτογράφησης που χρησιμοποιήθηκε για την εξαγωγή των δεδομένων." + }, + "selectFormat": { + "message": "Επιλέξτε μορφή του αρχείου εισαγωγής" + }, + "selectImportFile": { + "message": "Επιλέξτε το αρχείο εισαγωγής" + }, + "orCopyPasteFileContents": { + "message": "ή αντιγράψτε/επικολλήστε τα περιεχόμενα του αρχείου εισαγωγής" + }, + "instructionsFor": { + "message": "$NAME$ Οδηγίες", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Επιλογές" + }, + "optionsDesc": { + "message": "Προσαρμόστε την εμπειρία σας στο web vault." + }, + "optionsUpdated": { + "message": "Οι επιλογές ενημερώθηκαν" + }, + "language": { + "message": "Γλώσσα" + }, + "languageDesc": { + "message": "Αλλάξτε γλώσσα που χρησιμοποιείται από το web vault." + }, + "disableIcons": { + "message": "Απενεργοποίηση Εικονιδίων Ιστοσελίδας" + }, + "disableIconsDesc": { + "message": "Τα εικονίδια ιστοσελίδων παρέχουν μια αναγνωρίσιμη εικόνα δίπλα σε κάθε στοιχείο σύνδεσης του vault σας." + }, + "enableGravatars": { + "message": "Ενεργοποίηση Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Χρήση εικόνων avatar από gravatar.com." + }, + "enableFullWidth": { + "message": "Ενεργοποίηση διάταξης πλήρους πλάτους", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Επιτρέψτε το web vault να επεκτείνει το πλήρες πλάτος του παραθύρου του Browser." + }, + "default": { + "message": "Προεπιλογή" + }, + "domainRules": { + "message": "Κανόνες Tομέα" + }, + "domainRulesDesc": { + "message": "Αν έχετε την ίδια σύνδεση σε πολλούς διαφορετικούς τομείς ιστοσελίδων, μπορείτε να την επισημάνετε \"Ταυτόσημη\". Οι \"Παγκόσμιοι\" τομείς θα δημιουργηθούν για εσάς από το Bitwarden." + }, + "globalEqDomains": { + "message": "Παγκόσμιοι Tαυτόσημοι Tομείς" + }, + "customEqDomains": { + "message": "Προσαρμογή Tαυτόσημων Tομέων" + }, + "exclude": { + "message": "Εξαίρεση" + }, + "include": { + "message": "Συμπερίληψη" + }, + "customize": { + "message": "Προσαρμογή" + }, + "newCustomDomain": { + "message": "Νέος Προσαρμοσμένος Τομέας" + }, + "newCustomDomainDesc": { + "message": "Καταχωρίστε μια λίστα με τομείς που χωρίζονται με κόμματα. Επιτρέπονται μόνο οι \"Βασικοί\" τομείς. Μην εισάγετε υποτομείς. Για παράδειγμα, πληκτρολογήστε \"google.com\" αντί για \"www.google.com\". Μπορείτε επίσης να εισαγάγετε το \"androidapp: //package.name\" για να συσχετίσετε μια εφαρμογή Android με άλλους τομείς ιστοσελίδων." + }, + "customDomainX": { + "message": "Προσαρμοσμένος Τομέας $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Οι Τομείς Ενημερώθηκαν" + }, + "twoStepLogin": { + "message": "Σύνδεση σε δύο βήματα" + }, + "twoStepLoginDesc": { + "message": "Ασφαλίστε το λογαριασμό σας απαιτώντας ένα επιπλέον βήμα κατά τη σύνδεση." + }, + "twoStepLoginOrganizationDesc": { + "message": "Απαιτήστε σύνδεση σε δύο βήματα για τους χρήστες του οργανισμού σας, ρυθμίζοντας τους παρόχους σε επίπεδο οργανισμού." + }, + "twoStepLoginRecoveryWarning": { + "message": "Η ενεργοποίηση σύνδεσης δύο βημάτων μπορεί να κλειδώσει οριστικά το λογαριασμό σας από το Bitwarden. Ένας κωδικός ανάκτησης σάς επιτρέπει να έχετε πρόσβαση στον λογαριασμό σας σε περίπτωση που δεν μπορείτε πλέον να χρησιμοποιήσετε τη σύνδεση δύο βημάτων (π. χ. χάνετε τη συσκευή σας). Η υποστήριξη πελατών του Bitwarden δεν θα είναι σε θέση να σας βοηθήσει αν χάσετε την πρόσβαση στο λογαριασμό σας. Συνιστούμε να γράψετε ή να εκτυπώσετε τον κωδικό ανάκτησης και να τον φυλάξετε σε ασφαλές μέρος." + }, + "viewRecoveryCode": { + "message": "Προβολή Κωδικού Ανάκτησης" + }, + "providers": { + "message": "Πάροχοι", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Ενεργοποίηση" + }, + "enabled": { + "message": "Ενεργοποιημένο" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Συνδρομή Premium" + }, + "premiumRequired": { + "message": "Απαιτείται η έκδοση Premium" + }, + "premiumRequiredDesc": { + "message": "Για να χρησιμοποιήσετε αυτό το χαρακτηριστικό, απαιτείται η έκδοση premium." + }, + "youHavePremiumAccess": { + "message": "Έχετε premium πρόσβαση" + }, + "alreadyPremiumFromOrg": { + "message": "Έχετε ήδη πρόσβαση σε χαρακτηριστικά premium λόγω ενός οργανισμού στον οποίο είστε μέλος." + }, + "manage": { + "message": "Διαχείριση" + }, + "disable": { + "message": "Απενεργοποίηση" + }, + "twoStepLoginProviderEnabled": { + "message": "Ο πάροχος σύνδεσης δύο βημάτων του λογαριασμού σας, είναι ενεργοποιημένος." + }, + "twoStepLoginAuthDesc": { + "message": "Εισάγετε τον κύριο κωδικό για να τροποποιήσετε τις ρυθμίσεις σύνδεσης δύο βημάτων." + }, + "twoStepAuthenticatorDesc": { + "message": "Ακολουθήστε αυτά τα βήματα για να ρυθμίσετε τη σύνδεση δύο βημάτων με μια εφαρμογή επαλήθευσης:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Λήψη μιας εφαρμογής επαλήθευσης, δύο παραγόντων" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Χρειάζεστε μια εφαρμογή επαλήθευσης δύο παραγόντων; Κατεβάστε μία από τις παρακάτω" + }, + "iosDevices": { + "message": "Συσκευές iOS" + }, + "androidDevices": { + "message": "Συσκευές Android" + }, + "windowsDevices": { + "message": "Συσκευές Windows" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Προτείνονται αυτές οι εφαρμογές, ωστόσο, άλλες εφαρμογές επαλήθευσης θα λειτουργήσουν επίσης." + }, + "twoStepAuthenticatorScanCode": { + "message": "Σαρώστε αυτόν τον κώδικα QR με την εφαρμογή επαλήθευσης" + }, + "key": { + "message": "Κλειδί" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Καταχωρίστε τον 6ψήφιο κωδικό επαλήθευσης που προκύπτει από την εφαρμογή" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Σε περίπτωση που χρειαστεί να την προσθέσετε σε άλλη συσκευή, παρακάτω είναι ο κωδικός QR (ή το κλειδί) που απαιτείται από την εφαρμογή επαλήθευσης." + }, + "twoStepDisableDesc": { + "message": "Είστε βέβαιοι ότι θέλετε να απενεργοποιήσετε τη σύνδεση δύο βημάτων;" + }, + "twoStepDisabled": { + "message": "Η σύνδεση δύο βημάτων απενεργοποιήθηκε." + }, + "twoFactorYubikeyAdd": { + "message": "Προσθήκη νέου YubiKey στο λογαριασμό σας" + }, + "twoFactorYubikeyPlugIn": { + "message": "Συνδέστε το YubiKey στη θύρα USB του υπολογιστή σας." + }, + "twoFactorYubikeySelectKey": { + "message": "Επιλέξτε το πρώτο κενό πεδίο εισαγωγής YubiKey παρακάτω." + }, + "twoFactorYubikeyTouchButton": { + "message": "Πατήστε το κουμπί του YubiKey." + }, + "twoFactorYubikeySaveForm": { + "message": "Αποθηκεύστε τη φόρμα." + }, + "twoFactorYubikeyWarning": { + "message": "Λόγω περιορισμών της πλατφόρμας, το YubiKey δεν μπορεί να χρησιμοποιηθεί σε όλες τις εφαρμογές του Bitwarden. Θα πρέπει να ενεργοποιήσετε έναν άλλο πάροχο σύνδεσης δύο βημάτων, ώστε να έχετε πρόσβαση στον λογαριασμό σας όταν δεν θα μπορείτε να χρησιμοποιήσετε το YubiKey. Υποστηριζόμενες πλατφόρμες:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, εφαρμογή υπολογιστή, CLI και όλες τις επεκτάσεις του προγράμματος περιήγησης σε μια συσκευή με θύρα USB που μπορεί να δεχτεί YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Εφαρμογές κινητής σε μια συσκευή με δυνατότητες NFC ή θύρα USB, που να μπορεί να δεχτεί το YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Κλειδί $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "Υποστήριξη NFC" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Ένα από τα κλειδιά μου υποστηρίζει NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Εάν ένα από τα YubiKeys υποστηρίζει NFC (όπως YubiKey NEO), θα σας ζητηθεί σε κινητές συσκευές όποτε εντοπίζεται η διαθεσιμότητα NFC." + }, + "yubikeysUpdated": { + "message": "Τα YubiKeys ενημερώθηκαν" + }, + "disableAllKeys": { + "message": "Απενεργοποίηση Όλων των Κλειδιών" + }, + "twoFactorDuoDesc": { + "message": "Καταχωρίστε τις πληροφορίες εφαρμογής Bitwarden από τον πίνακα διαχειριστή Duo." + }, + "twoFactorDuoIntegrationKey": { + "message": "Κλειδί Ολοκλήρωσης" + }, + "twoFactorDuoSecretKey": { + "message": "Μυστικό Κλειδί" + }, + "twoFactorDuoApiHostname": { + "message": "API Hostname" + }, + "twoFactorEmailDesc": { + "message": "Ακολουθήστε αυτά τα βήματα για να ρυθμίσετε τη σύνδεση δύο βημάτων μέσω email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Εισάγετε τη διεύθυνση email που θέλετε να λαμβάνετε τους κωδικούς επαλήθευσης" + }, + "twoFactorEmailEnterCode": { + "message": "Εισάγετε τον 6ψήφιο κωδικό επαλήθευσης που λάβατε στο email σας" + }, + "sendEmail": { + "message": "Αποστολή Email" + }, + "twoFactorU2fAdd": { + "message": "Προσθήκη κλειδιού ασφαλείας FIDO U2F στο λογαριασμό σας" + }, + "removeU2fConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να καταργήσετε αυτό το κλειδί ασφαλείας;" + }, + "twoFactorWebAuthnAdd": { + "message": "Προσθέστε ένα κλειδί ασφαλείας WebAuthn στο λογαριασμό σας" + }, + "readKey": { + "message": "Ανάγνωση Κλειδιού" + }, + "keyCompromised": { + "message": "Το κλειδί έχει παραβιαστεί." + }, + "twoFactorU2fGiveName": { + "message": "Δώστε στο κλειδί ασφαλείας ένα φιλικό όνομα για να το αναγνωρίσετε." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Συνδέστε το κλειδί ασφαλείας στη θύρα USB του υπολογιστή σας, και κάντε κλικ στο κουμπί \"Ανάγνωση Κλειδιού\"." + }, + "twoFactorU2fTouchButton": { + "message": "Εάν το κλειδί ασφαλείας έχει κουμπί, πατήστε το." + }, + "twoFactorU2fSaveForm": { + "message": "Αποθηκεύστε τη φόρμα." + }, + "twoFactorU2fWarning": { + "message": "Λόγω περιορισμών της πλατφόρμας, το YubiKey δεν μπορεί να χρησιμοποιηθεί σε όλες τις εφαρμογές του Bitwarden. Θα πρέπει να ενεργοποιήσετε έναν άλλο πάροχο σύνδεσης δύο βημάτων, ώστε να έχετε πρόσβαση στον λογαριασμό σας όταν δεν μπορείτε να χρησιμοποιήσετε το YubiKey. Υποστηριζόμενες πλατφόρμες:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault και επεκτάσεις προγραμμάτων περιήγησης σε επιτραπέζιο/φορητό υπολογιστή με ενεργοποιημένη τη δυνατότητα U2F (Chrome, Opera, Vivaldi ή Firefox με ενεργοποιημένο το FIDO U2F)." + }, + "twoFactorU2fWaiting": { + "message": "Σας περιμένουμε να πατήστε το κουμπί του κλειδιού ασφαλείας" + }, + "twoFactorU2fClickSave": { + "message": "Κάντε κλικ στο κουμπί \"Αποθήκευση\" παρακάτω για να ενεργοποιήσετε το κλειδί ασφαλείας, με σύνδεση δύο βημάτων." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Παρουσιάστηκε πρόβλημα κατά την ανάγνωση του κλειδιού ασφαλείας. Προσπάθησε ξανά." + }, + "twoFactorWebAuthnWarning": { + "message": "Λόγω περιορισμών της πλατφόρμας, το WebAuthn δεν μπορεί να χρησιμοποιηθεί σε όλες τις εφαρμογές Bitwarden. Θα πρέπει να ενεργοποιήσετε έναν άλλο πάροχο σύνδεσης δύο βημάτων, ώστε να έχετε πρόσβαση στο λογαριασμό σας όταν δεν μπορεί να χρησιμοποιηθεί το WebAuthn. Υποστηριζόμενες πλατφόρμες:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault και επεκτάσεις browser σε έναν σταθερό / φορητό υπολογιστή με ένα πρόγραμμα περιήγησης WebAuthn (Chrome, Opera, Vivaldi, ή Firefox με FIDO U2F ενεργοποιημένο)." + }, + "twoFactorRecoveryYourCode": { + "message": "Ο Bitwarden κωδικός ανάκτησης, εισόδου δύο βημάτων" + }, + "twoFactorRecoveryNoCode": { + "message": "Δεν έχετε ενεργοποιήσει κάποιον πάροχο σύνδεσης δύο παραγόντων ακόμα. Αφού ενεργοποιήσετε έναν πάροχο σύνδεσης, μπορείτε να ελέγξετε εδώ, για τον κωδικό ανάκτησης." + }, + "printCode": { + "message": "Εκτύπωση Κωδικού", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Αναφορές" + }, + "reportsDesc": { + "message": "Προσδιορίστε και κλείστε τα κενά ασφαλείας στους online λογαριασμούς σας κάνοντας κλικ στις παρακάτω αναφορές." + }, + "unsecuredWebsitesReport": { + "message": "Αναφορά Μη-Ασφαλών Ιστοσελίδων" + }, + "unsecuredWebsitesReportDesc": { + "message": "Η χρήση μη ασφαλισμένων ιστοσελίδων με πρόθεμα http:// μπορεί να είναι επικίνδυνο. Αν η ιστοσελίδα το επιτρέπει, θα πρέπει πάντα να έχετε πρόσβαση σε αυτήν χρησιμοποιώντας το πρότυπο https://, έτσι ώστε η σύνδεσή σας να είναι κρυπτογραφημένη." + }, + "unsecuredWebsitesFound": { + "message": "Βρέθηκαν μη ασφαλής ιστοσελίδες" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Βρήκαμε $COUNT$ στοιχεία στο vault σας, με μη ασφαλές URI. Θα πρέπει να αλλάξετε το URI σε https:/ εφόσον το επιτρέπει η ιστοσελίδα.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Κανένα στοιχείο στο vault σας δεν διαθέτει ανασφάλιστα URIs." + }, + "inactive2faReport": { + "message": "Μη Ενεργή Αναφορά 2FA" + }, + "inactive2faReportDesc": { + "message": "Ο έλεγχος ταυτότητας δύο παραγόντων (2FA) είναι μια σημαντική ρύθμιση ασφαλείας που βοηθά στη διασφάλιση των λογαριασμών σας. Αν το υποστηρίζει η ιστοσελίδα, θα πρέπει πάντα να ενεργοποιείτε τον έλεγχο ταυτότητας δύο παραγόντων." + }, + "inactive2faFound": { + "message": "Βρέθηκαν Συνδέσεις Χωρίς 2FA" + }, + "inactive2faFoundDesc": { + "message": "Βρήκαμε $COUNT$ ιστοσελίδα(ες) στο vault σας, που ενδέχεται να μην έχει ρυθμιστεί ο έλεγχος ταυτότητας δύο παραγόντων (σύμφωνα με το twofactorauth.org). Για επιπλέον προστασία αυτών των λογαριασμών, θα πρέπει να ενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Δεν βρέθηκαν ιστοσελίδες στο vault σας που να μην έχει οριστεί, η επαλήθευση δύο παραγόντων." + }, + "instructions": { + "message": "Οδηγίες" + }, + "exposedPasswordsReport": { + "message": "Αναφορά Κωδικών που έχουν Εκτεθεί" + }, + "exposedPasswordsReportDesc": { + "message": "Οι εκτεθειμένοι κωδικοί, είναι κωδικοί που έχουν εμφανιστεί σε γνωστές διαρροές δεδομένων, και που κυκλοφόρησαν δημόσια ή πουλήθηκαν στο dark web από χάκερς." + }, + "exposedPasswordsFound": { + "message": "Βρέθηκαν Εκτεθειμένοι Κωδικοί" + }, + "exposedPasswordsFoundDesc": { + "message": "Βρήκαμε $COUNT$ στοιχεία στο vault σας, που έχουν εκτεθειμένους κωδικούς σε γνωστές παραβιάσεις δεδομένων. Θα πρέπει να τους αλλάξετε προκειμένου να χρησιμοποιήσετε έναν νέο κωδικό.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Κανένα στοιχείο του vault σας δεν περιέχει κωδικούς που να έχουν εκτεθεί σε γνωστές παραβιάσεις δεδομένων." + }, + "checkExposedPasswords": { + "message": "Έλεγχος Εκτεθειμένων Κωδικών" + }, + "exposedXTimes": { + "message": "Εκτέθηκε $COUNT$ φορά(ές)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Αναφορά Αδύναμων Κωδικών" + }, + "weakPasswordsReportDesc": { + "message": "Οι αδύναμοι κωδικοί μπορούν εύκολα να βρεθούν από τους χάκερ με τα αυτοματοποιημένα εργαλεία που χρησιμοποιούν για να σπάσουν τους κωδικούς. Η γεννήτρια κωδικού του Bitwarden μπορεί να σας βοηθήσει να δημιουργήσετε ισχυρούς κωδικούς." + }, + "weakPasswordsFound": { + "message": "Βρέθηκαν Αδύναμοι Κωδικοί" + }, + "weakPasswordsFoundDesc": { + "message": "Βρήκαμε $COUNT$ στοιχεία στο vault σας, με κωδικούς που δεν είναι ισχυροί. Θα πρέπει να τους ενημερώσετε και να χρησιμοποιήσετε ισχυρότερους κωδικούς.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Κανένα απο τα στοιχεία στο vault σας δεν έχει αδύναμους κωδικούς." + }, + "reusedPasswordsReport": { + "message": "Αναφορά Επανα-χρησιμοποιημένων Κωδικών" + }, + "reusedPasswordsReportDesc": { + "message": "Εάν μια υπηρεσία ή λογαριασμός που χρησιμοποιείτε έχει εκτεθεί, η επαναλαμβανόμενη χρήση του ίδιου κωδικού, μπορεί να επιτρέψει στους χάκερς να αποκτήσουν εύκολα πρόσβαση σε περισσότερους λογαριασμούς σας στο διαδίκτυο. Θα πρέπει να χρησιμοποιείτε έναν μοναδικό κωδικό για κάθε λογαριασμό ή υπηρεσία." + }, + "reusedPasswordsFound": { + "message": "Βρέθηκαν Επανα-χρησιμοποιούμενοι Κωδικοί" + }, + "reusedPasswordsFoundDesc": { + "message": "Βρήκαμε $COUNT$ κωδικούς που επανα-χρησιμοποιούνται στο vault σας. Θα πρέπει να αλλάξετε τον κάθε ένα, σε κάτι μοναδικό.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Δεν υπάρχουν συνδέσεις στο vault σας, οι οποίες να περιέχουν κωδικούς που επανα-χρησιμοποιούνται." + }, + "reusedXTimes": { + "message": "Επαναχρησιμοποιείται $COUNT$ φορές", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Αναφορά Παραβίασης Δεδομένων" + }, + "breachDesc": { + "message": "Μια \"παραβίαση\" είναι ένα περιστατικό όπου τα δεδομένα μίας ιστοσελίδας, έχουν παραβιαστεί από χάκερς, αποκτούν πρόσβαση και στη συνέχεια τα δημοσιοποιούν. Ελέγξτε τους τύπους των δεδομένων που διακυβεύονται (διευθύνσεις email, κωδικοί, πιστωτικές κάρτες κλπ.) και ακολουθήστε τις κατάλληλες ενέργειες, όπως η αλλαγή των κωδικών." + }, + "breachCheckUsernameEmail": { + "message": "Ελέγξτε τυχόν ονόματα χρήστη ή διευθύνσεις email που χρησιμοποιείτε." + }, + "checkBreaches": { + "message": "Έλεγχος Παραβιάσεων" + }, + "breachUsernameNotFound": { + "message": "Το $USERNAME$ δεν βρέθηκε σε καμία γνωστή παραβίαση δεδομένων.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Καλά Νέα", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "Το $USERNAME$ βρέθηκε $COUNT$ φορά (ες) σε παραβιάσεις δεδομένων στο διαδίκτυο.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Βρέθηκαν Παραβιασμένοι Λογαριασμοί" + }, + "compromisedData": { + "message": "Δεδομένα που έχουν παραβιαστεί" + }, + "website": { + "message": "Ιστοσελίδα" + }, + "affectedUsers": { + "message": "Επηρεαζόμενοι Χρήστες" + }, + "breachOccurred": { + "message": "Προέκυψε Παραβίαση" + }, + "breachReported": { + "message": "Αναφέρθηκε Παραβίαση" + }, + "reportError": { + "message": "Παρουσιάστηκε σφάλμα κατά την φόρτωση της αναφοράς. Προσπάθησε ξανά" + }, + "billing": { + "message": "Χρέωση" + }, + "accountCredit": { + "message": "Λογαριασμός Πίστωσης", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Υπόλοιπο Λογαριασμού", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Προσθήκη Μονάδων", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Ποσό", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Οι μονάδες που προστέθηκαν, θα εμφανιστούν στο λογαριασμό σας μετά την πλήρη επεξεργασία της πληρωμής. Ορισμένες μέθοδοι πληρωμής καθυστερούν και μπορεί να διαρκέσουν περισσότερο από άλλες." + }, + "makeSureEnoughCredit": { + "message": "Βεβαιωθείτε ότι ο λογαριασμός σας έχει αρκετές μονάδες για αυτήν την αγορά. Αν ο λογαριασμός σας δεν διαθέτει αρκετές μονάδες, θα χρησιμοποιηθεί η προκαθορισμένη μέθοδος πληρωμής για τη διαφορά. Μπορείτε να προσθέσετε μονάδες στο λογαριασμό σας από τη σελίδα Χρέωσης." + }, + "creditAppliedDesc": { + "message": "Οι μονάδες του λογαριασμού σας, μπορούν να χρησιμοποιηθούν για να κάνετε αγορές. Κάθε διαθέσιμη μονάδα θα εφαρμοστεί αυτόματα στα παραστατικά που δημιουργούνται για αυτόν το λογαριασμό." + }, + "goPremium": { + "message": "Αποκτήστε Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Έχετε αναβαθμίσει σε premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Αναβαθμίστε το λογαριασμό σας σε premium και ξεκλειδώστε μερικές επιπλέον σπουδαίες λειτουργίες." + }, + "premiumSignUpStorage": { + "message": "1 GB κρυπτογραφημένο αποθηκευτικό χώρο για συνημμένα αρχεία." + }, + "premiumSignUpTwoStep": { + "message": "Πρόσθετες επιλογές σύνδεσης δύο παραγόντων, όπως το YubiKey, το FIDO U2F και το Duo." + }, + "premiumSignUpEmergency": { + "message": "Πρόσβαση Έκτακτης Ανάγκης" + }, + "premiumSignUpReports": { + "message": "Ασφάλεια κωδικών, υγεία λογαριασμού και αναφορές διαρροής δεδομένων, προκειμένου να διατηρήσετε ασφαλές το vault σας." + }, + "premiumSignUpTotp": { + "message": "TOTP κωδικός επαλήθευσης (2FA) για συνδέσεις στο vault σας." + }, + "premiumSignUpSupport": { + "message": "Προτεραιότητα υποστήριξης πελατών." + }, + "premiumSignUpFuture": { + "message": "Όλα τα μελλοντικά χαρακτηριστικά premium. Περισσότερα σύντομα!" + }, + "premiumPrice": { + "message": "Όλα για μόνο $PRICE$ /έτος!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Πρόσθετα" + }, + "premiumAccess": { + "message": "Πρόσβαση Premium" + }, + "premiumAccessDesc": { + "message": "Μπορείτε να προσθέσετε premium πρόσβαση σε όλα τα μέλη του οργανισμού σας για $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Επιπλέον χώρος αποθήκευσης (GB)" + }, + "additionalStorageGbDesc": { + "message": "# επιπλέον GB" + }, + "additionalStorageIntervalDesc": { + "message": "Το πακέτο σας έρχεται με $SIZE$ κρυπτογραφημένης αποθήκευσης αρχείων. Μπορείτε να προσθέσετε επιπλέον αποθηκευτικό χώρο για $PRICE$ ανά GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Σύνοψη" + }, + "total": { + "message": "Σύνολο" + }, + "year": { + "message": "έτος" + }, + "month": { + "message": "μήνας" + }, + "monthAbbr": { + "message": "μην.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Η μέθοδος πληρωμής θα χρεωθεί αμέσως και στη συνέχεια σε πάγια βάση κάθε χρόνο. Μπορείτε να το ακυρώσετε οποιαδήποτε στιγμή." + }, + "paymentCharged": { + "message": "Ο τρόπος πληρωμής σας θα χρεωθεί αμέσως και στη συνέχεια ανά τακτά χρονικά διαστήματα κάθε $INTERVAL$. Μπορείτε να το ακυρώσετε οποιαδήποτε στιγμή.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Το πακέτο σας έρχεται με δωρεάν δοκιμή 7 ημερών. Ο τρόπος πληρωμής σας δεν θα χρεωθεί μέχρι να τελειώσει η δοκιμή. Η χρέωση θα πραγματοποιείται σε επαναλαμβανόμενη βάση κάθε $INTERVAL$. Μπορείτε να το ακυρώσετε οποιαδήποτε στιγμή." + }, + "paymentInformation": { + "message": "Πληροφορίες Πληρωμής" + }, + "billingInformation": { + "message": "Πληροφορίες Χρέωσης" + }, + "creditCard": { + "message": "Πιστωτική Κάρτα" + }, + "paypalClickSubmit": { + "message": "Κάντε κλικ στο κουμπί PayPal για να συνδεθείτε στον λογαριασμό σας στο PayPal και στη συνέχεια, κάντε κλικ στο κουμπί Υποβολή παρακάτω για να συνεχίσετε." + }, + "cancelSubscription": { + "message": "Ακύρωση Συνδρομής" + }, + "subscriptionCanceled": { + "message": "Η συνδρομή ακυρώθηκε." + }, + "pendingCancellation": { + "message": "Εν αναμονή ακύρωσης" + }, + "subscriptionPendingCanceled": { + "message": "Η συνδρομή έχει επισημανθεί για ακύρωση στο τέλος της τρέχουσας περιόδου χρέωσης." + }, + "reinstateSubscription": { + "message": "Επαναφορά συνδρομής" + }, + "reinstateConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να καταργήσετε το αίτημα ακύρωσης που εκκρεμεί και να επαναφέρετε τη συνδρομή σας;" + }, + "reinstated": { + "message": "Η συνδρομή έχει αποκατασταθεί." + }, + "cancelConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να ακυρώσετε; Θα χάσετε την πρόσβαση σε όλες τις λειτουργίες αυτής της συνδρομής στο τέλος αυτού του κύκλου χρέωσης." + }, + "canceledSubscription": { + "message": "Η συνδρομή ακυρώθηκε." + }, + "neverExpires": { + "message": "Χωρίς λήξη" + }, + "status": { + "message": "Κατάσταση" + }, + "nextCharge": { + "message": "Επόμενη Χρέωση" + }, + "details": { + "message": "Λεπτομέρειες" + }, + "downloadLicense": { + "message": "Λήψη Άδειας" + }, + "updateLicense": { + "message": "Ενημέρωση Άδειας" + }, + "updatedLicense": { + "message": "Η άδεια ενημερώθηκε" + }, + "manageSubscription": { + "message": "Διαχείριση Συνδρομής" + }, + "storage": { + "message": "Αποθήκευση" + }, + "addStorage": { + "message": "Προσθήκη αποθηκευτικού χώρου" + }, + "removeStorage": { + "message": "Κατάργηση αποθήκευσης" + }, + "subscriptionStorage": { + "message": "Η συνδρομή σας έχει συνολικά $MAX_STORAGE$ GB κρυπτογραφημένης αποθήκευσης αρχείων. Αυτήν τη στιγμή χρησιμοποιείτε $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Τρόπος Πληρωμής" + }, + "noPaymentMethod": { + "message": "Δεν υπάρχει καμία μέθοδος πληρωμής." + }, + "addPaymentMethod": { + "message": "Προσθήκη Τρόπου Πληρωμής" + }, + "changePaymentMethod": { + "message": "Αλλαγή Τρόπου Πληρωμής" + }, + "invoices": { + "message": "Παραστατικά" + }, + "noInvoices": { + "message": "Δεν υπάρχουν παραστατικά." + }, + "paid": { + "message": "Πληρωμένα", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Απλήρωτο", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Συναλλαγές", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Δεν υπάρχουν συναλλαγές." + }, + "chargeNoun": { + "message": "Χρέωση", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Επιστροφή", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Τυχόν χρεώσεις θα εμφανιστούν στη κατάσταση ως $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB αποθήκευσης για προσθήκη" + }, + "gbStorageRemove": { + "message": "GB αποθήκευσης για κατάργηση" + }, + "storageAddNote": { + "message": "Η προσθήκη χώρου αποθήκευσης θα έχει ως αποτέλεσμα προσαρμογές στα σύνολα χρέωσης και θα χρεώσει αμέσως τον τρόπο πληρωμής σας στο αρχείο. Η πρώτη χρέωση θα είναι αναλογική για το υπόλοιπο του τρέχοντος κύκλου χρέωσης." + }, + "storageRemoveNote": { + "message": "Η κατάργηση χώρου αποθήκευσης θα έχει ως αποτέλεσμα να γίνει προσαρμογή των στοιχείων χρέωσης σας, οι οποίες θα αναλογούν ως πίστωση στην επόμενη τιμολόγηση σας." + }, + "adjustedStorage": { + "message": "Προσαρμογή $AMOUNT$ GB αποθήκευσης.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Επικοινωνήστε με την Υποστήριξη πελατών" + }, + "updatedPaymentMethod": { + "message": "Ενημερωμένος τρόπος πληρωμής." + }, + "purchasePremium": { + "message": "Αγορά Premium έκδοσης" + }, + "licenseFile": { + "message": "Αρχείο Άδειας" + }, + "licenseFileDesc": { + "message": "Το όνομα αρχείου αδείας θα ονομάζεται κάτι σαν $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Για να αναβαθμίσετε το λογαριασμό σας στην έκδοση premium, πρέπει να ανεβάσετε ένα έγκυρο αρχείο άδειας χρήσης." + }, + "uploadLicenseFileOrg": { + "message": "Για να δημιουργήσετε έναν οργανισμό που φιλοξενείται στο χώρο της εγκατάστασης, πρέπει να ανεβάσετε ένα έγκυρο αρχείο άδειας χρήσης." + }, + "accountEmailMustBeVerified": { + "message": "Η διεύθυνση email του λογαριασμού σας πρέπει να επαληθευτεί." + }, + "newOrganizationDesc": { + "message": "Οι οργανισμοί σας επιτρέπουν να μοιράζεστε τμήματα του vault σας με άλλους, καθώς και να διαχειρίζεστε σχετικούς χρήστες για μια συγκεκριμένη οντότητα, όπως οικογένεια, μικρή ομάδα ή μεγάλη εταιρεία." + }, + "generalInformation": { + "message": "Γενικές Πληροφορίες" + }, + "organizationName": { + "message": "Όνομα Οργανισμού" + }, + "accountOwnedBusiness": { + "message": "Αυτός ο λογαριασμός ανήκει σε μια επιχείρηση." + }, + "billingEmail": { + "message": "Email Χρέωσης" + }, + "businessName": { + "message": "Όνομα Επιχείρησης" + }, + "chooseYourPlan": { + "message": "Επιλέξτε το Πακέτο σας" + }, + "users": { + "message": "Χρήστες" + }, + "userSeats": { + "message": "Θέσεις Χρηστών" + }, + "additionalUserSeats": { + "message": "Επιπλέον Θέσεις Χρηστών" + }, + "userSeatsDesc": { + "message": "# θέσεις χρηστών" + }, + "userSeatsAdditionalDesc": { + "message": "Το πλάνο σας έρχεται με $BASE_SEATS$ θέσεις χρηστών. Μπορείτε να προσθέσετε επιπλέον χρήστες για $SEAT_PRICE$ ανά χρήστη /μήνα.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Πόσες θέσεις χρηστών χρειάζεστε; Μπορείτε επίσης να προσθέσετε επιπλέον θέσεις αργότερα, αν χρειαστεί." + }, + "planNameFree": { + "message": "Δωρεάν", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Για δοκιμή ή προσωπική χρήση μπορείτε να μοιραστείτε $COUNT$ με άλλο χρήστη.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Οικογένειες" + }, + "planDescFamilies": { + "message": "Για προσωπική χρήση, για να μοιραστείτε με την οικογένεια και τους φίλους σας." + }, + "planNameTeams": { + "message": "Ομάδες" + }, + "planDescTeams": { + "message": "Για επιχειρήσεις και οργανισμούς." + }, + "planNameEnterprise": { + "message": "Επιχείρηση" + }, + "planDescEnterprise": { + "message": "Για επιχειρήσεις και άλλους μεγάλους οργανισμούς." + }, + "freeForever": { + "message": "Δωρεάν Για Πάντα" + }, + "includesXUsers": { + "message": "περιλαμβάνει $COUNT$ χρήστες", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Επιπλέον Χρήστες" + }, + "costPerUser": { + "message": "$COST$ ανά χρήστη", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Περιορίζεται σε $COUNT$ χρήστες (συμπεριλαμβανομένου εσένα)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Περιορίζεται σε $COUNT$ συλλογές", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Προσθήκη και κοινή χρήση με έως και $COUNT$ χρήστες", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Προσθήκη και κοινή χρήση με απεριόριστους χρήστες" + }, + "createUnlimitedCollections": { + "message": "Δημιουργία απεριόριστων συλλογών" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ κρυπτογραφημένη αποθήκευση αρχείων", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Υποδομή φιλοξενίας (προαιρετικό)" + }, + "usersGetPremium": { + "message": "Απόκτηση πρόσβασης χρηστών σε χαρακτηριστικά premium έκδοσης" + }, + "controlAccessWithGroups": { + "message": "Έλεγχος πρόσβασης χρηστών με ομάδες" + }, + "syncUsersFromDirectory": { + "message": "Συγχρονισμός χρηστών και ομάδων από έναν κατάλογο" + }, + "trackAuditLogs": { + "message": "Παρακολούθηση ενεργειών χρήστη με αρχεία καταγραφής ελέγχου" + }, + "enforce2faDuo": { + "message": "Επιβολή 2FA με Duo" + }, + "priorityCustomerSupport": { + "message": "Προτεραιότητα υποστήριξης πελατών" + }, + "xDayFreeTrial": { + "message": "$COUNT$ ημέρες δωρεάν δοκιμής, ακυρώστε ανά πάσα στιγμή", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Μηνιαία" + }, + "annually": { + "message": "Ετησίως" + }, + "basePrice": { + "message": "Βασική Τιμή" + }, + "organizationCreated": { + "message": "Ο οργανισμός δημιουργήθηκε" + }, + "organizationReadyToGo": { + "message": "Ο νέος σας οργανισμός είναι έτοιμος!" + }, + "organizationUpgraded": { + "message": "Ο οργανισμός σας έχει αναβαθμιστεί." + }, + "leave": { + "message": "Αποχώρηση" + }, + "leaveOrganizationConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να φύγετε από αυτόν τον οργανισμό;" + }, + "leftOrganization": { + "message": "Έχετε φύγει από τον οργανισμό." + }, + "defaultCollection": { + "message": "Προεπιλεγμένη Συλλογή" + }, + "getHelp": { + "message": "Ζητήστε Βοήθεια" + }, + "getApps": { + "message": "Αποκτήστε τις Εφαρμογές" + }, + "loggedInAs": { + "message": "Συνδεδεμένος ως" + }, + "eventLogs": { + "message": "Αρχείο Καταγραφής" + }, + "people": { + "message": "Άτομα" + }, + "policies": { + "message": "Πολιτικές" + }, + "singleSignOn": { + "message": "Απλή Σύνδεση" + }, + "editPolicy": { + "message": "Επεξεργασία Πολιτικής" + }, + "groups": { + "message": "Ομάδες" + }, + "newGroup": { + "message": "Νέα ομάδα" + }, + "addGroup": { + "message": "Προσθήκη Ομάδας" + }, + "editGroup": { + "message": "Επεξεργασία Ομάδας" + }, + "deleteGroupConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την ομάδα;" + }, + "removeUserConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να αφαιρέσετε αυτό τον χρήστη;" + }, + "removeUserConfirmationKeyConnector": { + "message": "Προσοχή! Αυτός ο χρήστης απαιτεί σύνδεση κλειδιού για τη διαχείριση της κρυπτογράφησης του. Η αφαίρεση αυτού του χρήστη από τον οργανισμό σας θα απενεργοποιήσει οριστικά τον λογαριασμό του. Αυτή η ενέργεια δεν μπορεί να αναιρεθεί. Θέλετε να συνεχίσετε;" + }, + "externalId": { + "message": "Εξωτερικό ID" + }, + "externalIdDesc": { + "message": "Το εξωτερικό αναγνωριστικό id μπορεί να χρησιμοποιηθεί ως αναφορά ή να συνδέσει αυτόν τον πόρο με ένα εξωτερικό σύστημα, όπως έναν κατάλογο χρηστών." + }, + "accessControl": { + "message": "Έλεγχος Πρόσβασης" + }, + "groupAccessAllItems": { + "message": "Αυτή η ομάδα μπορεί να έχει πρόσβαση και να τροποποιεί όλα τα στοιχεία." + }, + "groupAccessSelectedCollections": { + "message": "Αυτή η ομάδα μπορεί να έχει πρόσβαση μόνο στις επιλεγμένες συλλογές." + }, + "readOnly": { + "message": "Μόνο για ανάγνωση" + }, + "newCollection": { + "message": "Νέα Συλλογή" + }, + "addCollection": { + "message": "Προσθήκη συλλογής" + }, + "editCollection": { + "message": "Επεξεργασία συλλογής" + }, + "deleteCollectionConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτή τη συλλογή;" + }, + "editUser": { + "message": "Επεξεργασία Χρήστη" + }, + "inviteUser": { + "message": "Προσκαλέστε Χρήστη" + }, + "inviteUserDesc": { + "message": "Προσκαλέστε έναν νέο χρήστη στον οργανισμό σας εισάγοντας παρακάτω τη διεύθυνση email του λογαριασμού Bitwarden. Αν δεν έχουν ήδη λογαριασμό Bitwarden, θα τους ζητηθεί να δημιουργήσουν ένα νέο λογαριασμό." + }, + "inviteMultipleEmailDesc": { + "message": "Μπορείτε να προσκαλέσετε στη λίστα σας μέχρι $COUNT$ χρήστες κάθε φορά διαχωρίζοντας με κόμμα κάθε διεύθυνση email.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Αυτός ο χρήστης χρησιμοποιεί τρόπο σύνδεσης δύο βημάτων για να προστατεύσει το λογαριασμό του." + }, + "userAccessAllItems": { + "message": "Αυτός ο χρήστης μπορεί να έχει πρόσβαση και να τροποποιεί όλα τα στοιχεία." + }, + "userAccessSelectedCollections": { + "message": "Αυτός ο χρήστης μπορεί να έχει πρόσβαση μόνο στις επιλεγμένες συλλογές." + }, + "search": { + "message": "Αναζήτηση" + }, + "invited": { + "message": "Προσκεκλημένος" + }, + "accepted": { + "message": "Αποδεκτή" + }, + "confirmed": { + "message": "Επιβεβαιωμένο" + }, + "clientOwnerEmail": { + "message": "Email Ιδιοκτήτη Πελάτη" + }, + "owner": { + "message": "Ιδιοκτήτης" + }, + "ownerDesc": { + "message": "Χρήστης με υψηλό βαθμό πρόσβασης που μπορεί να διαχειριστεί όλες τις πτυχές του οργανισμού σας." + }, + "clientOwnerDesc": { + "message": "Αυτός ο χρήστης πρέπει να είναι ανεξάρτητος από τον Πάροχο. Εάν ο Πάροχος δεν συνδέεται με τον οργανισμό, αυτός ο χρήστης θα διατηρήσει την ιδιοκτησία του οργανισμού." + }, + "admin": { + "message": "Διαχειριστής" + }, + "adminDesc": { + "message": "Οι διαχειριστές μπορούν να έχουν πρόσβαση και να διαχειρίζονται όλα τα στοιχεία, τις συλλογές και τους χρήστες του οργανισμού σας." + }, + "user": { + "message": "Χρήστης" + }, + "userDesc": { + "message": "Ένας κανονικός χρήστης με πρόσβαση σε ανατεθείσες συλλογές στον οργανισμό σας." + }, + "manager": { + "message": "Διαχειριστης" + }, + "managerDesc": { + "message": "Οι διαχειριστές μπορούν να έχουν πρόσβαση και να διαχειρίζονται εκχωρημένες συλλογές στον οργανισμό σας." + }, + "all": { + "message": "Όλα" + }, + "refresh": { + "message": "Ανανέωση" + }, + "timestamp": { + "message": "Χρονική σήμανση" + }, + "event": { + "message": "Συμβάν" + }, + "unknown": { + "message": "Άγνωστο" + }, + "loadMore": { + "message": "Φόρτωση περισσότερων" + }, + "mobile": { + "message": "Κινητό", + "description": "Mobile app" + }, + "extension": { + "message": "Επέκταση", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Επιφάνειας Εργασίας", + "description": "Desktop app" + }, + "webVault": { + "message": "Web Vault" + }, + "loggedIn": { + "message": "Συνδεδεμένος." + }, + "changedPassword": { + "message": "Αλλαγή κωδικού λογαριασμού." + }, + "enabledUpdated2fa": { + "message": "Ενεργοποίηση/Ενημέρωση σύνδεσης δύο βημάτων." + }, + "disabled2fa": { + "message": "Απενεργοποίηση σύνδεσης δύο βημάτων." + }, + "recovered2fa": { + "message": "Ανάκτηση λογαριασμού από τη σύνδεση δύο βημάτων." + }, + "failedLogin": { + "message": "Η προσπάθεια σύνδεσης απέτυχε λόγω εσφαλμένου κωδικού πρόσβασης." + }, + "failedLogin2fa": { + "message": "Η προσπάθεια σύνδεσης απέτυχε λόγω λανθασμένης σύνδεσης δύο βημάτων." + }, + "exportedVault": { + "message": "Εξαγωγή Vault." + }, + "exportedOrganizationVault": { + "message": "Εξαγωγή λίστας οργανισμού." + }, + "editedOrgSettings": { + "message": "Επεξεργασία ρυθμίσεων οργανισμού." + }, + "createdItemId": { + "message": "Δημιουργία στοιχείου $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Επεξεργασμένο στοιχείο $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Διεγραμμένο στοιχείο $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Μετακινήθηκε το στοιχείο $ID$ σε έναν οργανισμό.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Προβεβλημένο στοιχείο $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Προβεβλημένος κωδικός για το στοιχείο $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Προβεβλημένο κρυμμένο πεδίο για το στοιχείο $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Προβεβλημένος κωδικός ασφαλείας για το στοιχείο $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Αντιγραμμένος κωδικός για το στοιχείο $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Αντιγραμμένο κρυφό πεδίο για το στοιχείο $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Αντιγραμμένος κωδικός ασφαλείας για το στοιχείο $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Αυτόματη συμπλήρωση στοιχείου $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Δημιουργημένη συλλογή $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Επεξεργασμένη συλλογή $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Διεγραμμένη συλλογή $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Επεξεργασμένη πολιτική $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Δημιουργημένη ομάδα $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Επεξεργασμένη ομάδα $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Διεγραμμένη ομάδα $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Χρήστης που αφαιρέθηκε $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Συννημένο που δημιουργήθηκε για το στοιχείο $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Συννημένο που διαγράφηκε για το στοιχείο $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Επεξεργασμένες συλλογές για το στοιχείο $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Προσκεκλημένος χρήστης $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Επιβεβαιωμένος χρήστης $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Επεξεργασία χρήστη $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Επεξεργασμένες ομάδων από χρήστη $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Αποσυνδεδεμένο SSO για το χρήστη $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Δημιουργήθηκε οργανισμός $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Προστέθηκε οργανισμός $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Ο οργανισμός $ID$ αφαιρέθηκε.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Πρόσβαση στο $ID$ vault οργανισμού.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Συσκευή" + }, + "view": { + "message": "Προβολή" + }, + "invalidDateRange": { + "message": "Μη έγκυρο εύρος ημερομηνιών." + }, + "errorOccurred": { + "message": "Παρουσιάστηκε σφάλμα." + }, + "userAccess": { + "message": "Πρόσβαση Χρήστη" + }, + "userType": { + "message": "Τύπος Χρήστη" + }, + "groupAccess": { + "message": "Πρόσβασης Ομάδας" + }, + "groupAccessUserDesc": { + "message": "Επεξεργασία ομάδων στις οποίες ανήκει ο συγκεκριμένος χρήστης." + }, + "invitedUsers": { + "message": "Προσκεκλημένος χρήστης (ες)." + }, + "resendInvitation": { + "message": "Αποστολή Πρόσκλησης Ξανά" + }, + "resendEmail": { + "message": "Επαναποστολή e-mail" + }, + "hasBeenReinvited": { + "message": "$USER$ έχει ξανα-προσκληθεί.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Επιβεβαίωση" + }, + "confirmUser": { + "message": "Επιβεβαίωση Χρήστη" + }, + "hasBeenConfirmed": { + "message": "$USER$ έχει επιβεβαιωθεί.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Επιβεβαίωση Χρηστών" + }, + "usersNeedConfirmed": { + "message": "Έχετε χρήστες που έχουν αποδεχθεί την πρόσκληση τους, αλλά πρέπει να επιβεβαιωθούν. Οι χρήστες δεν θα έχουν πρόσβαση στον οργανισμό μέχρι να επιβεβαιωθούν." + }, + "startDate": { + "message": "Ημερομηνία Έναρξης" + }, + "endDate": { + "message": "Ημερομηνία Λήξης" + }, + "verifyEmail": { + "message": "Επιβεβαίωση Email" + }, + "verifyEmailDesc": { + "message": "Επαληθεύστε τη διεύθυνση email του λογαριασμού σας για να ξεκλειδώσετε την πρόσβαση σε όλες τις λειτουργίες." + }, + "verifyEmailFirst": { + "message": "Η διεύθυνση email του λογαριασμού σας, πρέπει πρώτα να επαληθευτεί." + }, + "checkInboxForVerification": { + "message": "Ελέγξτε τα εισερχόμενα στο email σας για έναν σύνδεσμο επαλήθευσης." + }, + "emailVerified": { + "message": "Το email σας έχει επαληθευτεί." + }, + "emailVerifiedFailed": { + "message": "Δεν είναι δυνατή η επαλήθευση του email σας. Δοκιμάστε να στείλετε νέο email επαλήθευσης." + }, + "emailVerificationRequired": { + "message": "Απαιτείται Επαλήθευση Email" + }, + "emailVerificationRequiredDesc": { + "message": "Πρέπει να επαληθεύσετε το email σας για να χρησιμοποιήσετε αυτή τη δυνατότητα." + }, + "updateBrowser": { + "message": "Ενημερώστε τον Browser" + }, + "updateBrowserDesc": { + "message": "Χρησιμοποιείτε ένα μη υποστηριζόμενο browser. Το web vault ενδέχεται να μην λειτουργεί σωστά." + }, + "joinOrganization": { + "message": "Εγγραφή στον οργανισμό" + }, + "joinOrganizationDesc": { + "message": "Έχετε προσκληθεί να συμμετάσχετε στον παραπάνω οργανισμό. Για να αποδεχτείτε την πρόσκληση, πρέπει να συνδεθείτε ή να δημιουργήσετε ένα νέο λογαριασμό Bitwarden." + }, + "inviteAccepted": { + "message": "Η Πρόσκληση έγινε αποδεκτή" + }, + "inviteAcceptedDesc": { + "message": "Μπορείτε να αποκτήσετε πρόσβαση σε αυτόν τον οργανισμό μόλις ο διαχειριστής σας επιβεβαιώσει την ιδιότητα μέλους. Θα σας στείλουμε ένα email όταν αυτό συμβεί." + }, + "inviteAcceptFailed": { + "message": "Δεν είναι δυνατή η αποδοχή πρόσκλησης. Ζητήστε από έναν διαχειριστή του οργανισμού να στείλει μια νέα πρόσκληση." + }, + "inviteAcceptFailedShort": { + "message": "Δεν είναι δυνατή η αποδοχή πρόσκλησης. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Απομνημόνευση email" + }, + "recoverAccountTwoStepDesc": { + "message": "Εάν δεν μπορείτε να αποκτήσετε πρόσβαση στο λογαριασμό σας μέσω των συνήθων μεθόδων σύνδεσης δύο βημάτων, μπορείτε να χρησιμοποιήσετε τον κωδικό ανάκτησης σύνδεσης δύο βημάτων για να απενεργοποιήσετε όλους τους παροχείς δύο βημάτων στο λογαριασμό σας." + }, + "recoverAccountTwoStep": { + "message": "Ανάκτηση Λογαριασμού Σύνδεσης Δύο Βημάτων" + }, + "twoStepRecoverDisabled": { + "message": "Η σύνδεση δύο βημάτων έχει απενεργοποιηθεί στο λογαριασμό σας." + }, + "learnMore": { + "message": "Μάθετε περισσότερα" + }, + "deleteRecoverDesc": { + "message": "Εισάγετε την παρακάτω διεύθυνση email για να ανακτήσετε και να διαγράψετε το λογαριασμό σας." + }, + "deleteRecoverEmailSent": { + "message": "Εάν ο λογαριασμός σας υπάρχει ήδη, θα δείτε να σας έχουμε στείλει ένα email με περεταίρω οδηγίες." + }, + "deleteRecoverConfirmDesc": { + "message": "Ζητήσατε να διαγράψετε το λογαριασμό Bitwarden. Κάντε κλικ στο παρακάτω κουμπί για επιβεβαίωση." + }, + "myOrganization": { + "message": "Ο οργανισμός μου" + }, + "deleteOrganization": { + "message": "Διαγραφή Οργανισμού" + }, + "deletingOrganizationContentWarning": { + "message": "Εισάγετε τον κύριο κωδικό πρόσβασης για να επιβεβαιώσετε τη διαγραφή του $ORGANIZATION$ και όλων των σχετικών δεδομένων. Τα δεδομένα vault στο $ORGANIZATION$ περιλαμβάνουν:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Οι λογαριασμοί χρήστη θα παραμείνουν ενεργοί μετά τη διαγραφή αλλά δεν θα συσχετίζονται πλέον με αυτόν τον οργανισμό." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Η διαγραφή του $ORGANIZATION$ είναι μόνιμη και μη αναστρέψιμη.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Ο Οργανισμός Διαγράφηκε" + }, + "organizationDeletedDesc": { + "message": "Ο οργανισμός και όλα τα συσχετιζόμενα δεδομένα έχουν διαγραφεί." + }, + "organizationUpdated": { + "message": "Ο οργανισμός ενημερώθηκε" + }, + "taxInformation": { + "message": "Φορολογικές πληροφορίες" + }, + "taxInformationDesc": { + "message": "Επικοινωνήστε με την υποστήριξη για να δώσετε (ή να ενημερώσετε) φορολογικά στοιχεία για τα παραστατικά σας." + }, + "billingPlan": { + "message": "Πακέτο", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Αλλαγή Πακέτου", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Αναβαθμίστε το λογαριασμό σας σε κάποιο άλλο πακέτο παρέχοντας τις παρακάτω πληροφορίες. Βεβαιωθείτε ότι έχετε προσθέσει έναν ενεργό τρόπο πληρωμής στο λογαριασμό.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Παραστατικό #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Προβολή Παραστατικού" + }, + "downloadInvoice": { + "message": "Λήψη Παραστατικού" + }, + "verifyBankAccount": { + "message": "Επαλήθευση Τραπεζικού Λογαριασμού" + }, + "verifyBankAccountDesc": { + "message": "Έχουμε κάνει δύο μικρο-καταθέσεις στον τραπεζικό σας λογαριασμό (μπορεί να χρειαστούν 1-2 εργάσιμες ημέρες για να εμφανιστούν). Καταχωρίστε αυτά τα ποσά για να επαληθεύσετε τον τραπεζικό λογαριασμό." + }, + "verifyBankAccountInitialDesc": { + "message": "Η πληρωμή με τραπεζικό λογαριασμό είναι διαθέσιμη μόνο σε πελάτες στις Ηνωμένες Πολιτείες. Θα σας ζητηθεί να επαληθεύσετε τον τραπεζικό σας λογαριασμό. Θα πραγματοποιήσουμε δύο μικρο-καταθέσεις εντός των επόμενων 1-2 εργάσιμων ημερών. Καταχωρίστε αυτά τα ποσά στη σελίδα χρέωσης του οργανισμού για να επαληθεύσετε τον τραπεζικό λογαριασμό." + }, + "verifyBankAccountFailureWarning": { + "message": "Η αδυναμία επαλήθευσης του τραπεζικού λογαριασμού θα έχει ως αποτέλεσμα τη μη πραγματοποίηση πληρωμής και την απενεργοποίηση της συνδρομής σας." + }, + "verifiedBankAccount": { + "message": "Ο Τραπεζικός Λογαριασμός έχει Επαληθευτεί." + }, + "bankAccount": { + "message": "Τραπεζικός Λογαριασμός" + }, + "amountX": { + "message": "Ποσό $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Αριθμός Δρομολόγησης", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Αριθμός Λογαριασμού" + }, + "accountHolderName": { + "message": "Όνομα Κατόχου Λογαριασμού" + }, + "bankAccountType": { + "message": "Είδος Λογαριασμού" + }, + "bankAccountTypeCompany": { + "message": "Εταιρεία (Επιχειρήσεις)" + }, + "bankAccountTypeIndividual": { + "message": "Ατομικό (Προσωπικό)" + }, + "enterInstallationId": { + "message": "Εισάγετε το αναγνωριστικό εγκατάστασης" + }, + "limitSubscriptionDesc": { + "message": "Ορίστε ένα όριο θέσης για τη συνδρομή σας. Μόλις συμπληρωθεί αυτό το όριο, δεν θα μπορείτε να προσκαλέσετε νέους χρήστες." + }, + "maxSeatLimit": { + "message": "Μέγιστο Όριο Θέσης (Προαιρετικό)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Μέγιστο δυνητικό κόστος θέσης" + }, + "addSeats": { + "message": "Προσθήκη Θέσεων", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Αφαίρεση Θέσεων", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Οι προσαρμογές της συνδρομής σας θα έχουν ως αποτέλεσμα αλλαγές στα σύνολα τιμολόγησης. Εάν οι νεοπροσκεκλημένοι χρήστες υπερβούν τις συνδρομητικές σας θέσεις, θα λάβετε αμέσως μια αναθεωρημένη χρέωση για τους πρόσθετους χρήστες." + }, + "subscriptionUserSeats": { + "message": "Η συνδρομή σας, επιτρέπει συνολικά $COUNT$ χρήστες.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Όριο Συνδρομής (Προαιρετικό)" + }, + "subscriptionSeats": { + "message": "Θέσεις Συνδρομής" + }, + "subscriptionUpdated": { + "message": "Η συνδρομή ενημερώθηκε" + }, + "additionalOptions": { + "message": "Πρόσθετες Επιλογές" + }, + "additionalOptionsDesc": { + "message": "Για πρόσθετη βοήθεια στη διαχείριση της συνδρομής σας, επικοινωνήστε με την Υποστήριξη πελατών." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Οι προσαρμογές της συνδρομής σας θα έχουν ως αποτέλεσμα αλλαγές στα σύνολα τιμολόγησης. Εάν οι νεοπροσκεκλημένοι χρήστες υπερβούν τις συνδρομητικές σας θέσεις, θα λάβετε αμέσως μια αναθεωρημένη χρέωση για τους πρόσθετους χρήστες." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Οι προσαρμογές της συνδρομής σας θα έχουν ως αποτέλεσμα αλλαγές στα σύνολα τιμολόγησης. Εάν οι νεοπροσκεκλημένοι χρήστες υπερβούν τις θέσεις συνδρομής, θα λάβετε αμέσως μια τροποποιημένη χρέωση για τους επιπλέον χρήστες μέχρι να συμπληρωθεί το όριο θέσης $MAX$ σας.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Δεν μπορείτε να προσκαλέσετε περισσότερους από $COUNT$ χρήστες χωρίς αναβάθμιση του σχεδίου σας.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Δεν μπορείτε να προσκαλέσετε περισσότερους από $COUNT$ χρήστες χωρίς αναβάθμιση του προγράμματός σας. Επικοινωνήστε με την Υποστήριξη πελατών για αναβάθμιση.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Η συνδρομή σας επιτρέπει συνολικά $COUNT$ χρήστες. Το πρόγραμμα σας χορηγείται και χρεώνεται σε εξωτερικό οργανισμό.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Οι προσαρμογές της συνδρομής σας θα οδηγήσουν σε αναλογικές αλλαγές στα συνολικά τιμολόγιά σας. Δεν μπορείτε να προσκαλέσετε περισσότερους από $COUNT$ χρήστες χωρίς να αυξήσετε τις συνδρομητικές σας θέσεις.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Θέσεις για Προσθήκη" + }, + "seatsToRemove": { + "message": "Θέσεις για Κατάργηση" + }, + "seatsAddNote": { + "message": "Η προσθήκη θέσης χρηστών, θα έχει ως αποτέλεσμα προσαρμογές στα σύνολα χρέωσης και θα χρεώσει αμέσως τον τρόπο πληρωμής σας στο αρχείο. Η πρώτη χρέωση θα είναι αναλογική για το υπόλοιπο του τρέχοντος κύκλου χρέωσης." + }, + "seatsRemoveNote": { + "message": "Η κατάργηση της θέσης χρηστών θα έχει ως αποτέλεσμα προσαρμογές των λεπτομερειών χρέωσης σας, οι οποίες θα αναλογούν ως πίστωση στην επόμενη τιμολόγηση σας." + }, + "adjustedSeats": { + "message": "$AMOUNT$ Προσαρμοσμένες θέσεις χρηστών.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Το Κλειδί Ενημερώθηκε" + }, + "updateKeyTitle": { + "message": "Ενημέρωση Κλειδιού" + }, + "updateEncryptionKey": { + "message": "Ενημέρωση Κλειδιού Κρυπτογράφησης" + }, + "updateEncryptionKeyShortDesc": { + "message": "Αυτήν τη στιγμή χρησιμοποιείτε ένα ξεπερασμένο σύστημα κρυπτογράφησης." + }, + "updateEncryptionKeyDesc": { + "message": "Έχουμε μετακινηθεί σε μεγαλύτερα κλειδιά κρυπτογράφησης που παρέχουν καλύτερη ασφάλεια και πρόσβαση σε νεότερες λειτουργίες. Η ενημέρωση του κλειδιού κρυπτογράφησης είναι γρήγορη και εύκολη. Απλά πληκτρολογήστε τον κύριο κωδικό σας παρακάτω. Αυτή η ενημέρωση τελικά θα καταστεί υποχρεωτική." + }, + "updateEncryptionKeyWarning": { + "message": "Μετά την ενημέρωση του κλειδιού κρυπτογράφησης, πρέπει να αποσυνδεθείτε και να επιστρέψετε σε όλες τις εφαρμογές Bitwarden που χρησιμοποιείτε αυτήν τη στιγμή (όπως η εφαρμογή για κινητά ή οι επεκτάσεις του προγράμματος περιήγησης). Η αποτυχία αποσύνδεσης και επαναφοράς (στην οποία γίνεται λήψη του νέου κλειδιού κρυπτογράφησης) ενδέχεται να προκαλέσει καταστροφή δεδομένων. Θα προσπαθήσουμε να αποσυνδεθείτε αυτόματα, ωστόσο αυτό μπορεί να καθυστερήσει." + }, + "updateEncryptionKeyExportWarning": { + "message": "Οποιεσδήποτε κρυπτογραφημένες εξαγωγές που έχετε αποθηκεύσει θα είναι επίσης άκυρες." + }, + "subscription": { + "message": "Συνδρομή" + }, + "loading": { + "message": "Φόρτωση" + }, + "upgrade": { + "message": "Αναβάθμιση" + }, + "upgradeOrganization": { + "message": "Αναβάθμιση Οργανισμού" + }, + "upgradeOrganizationDesc": { + "message": "Αυτή η λειτουργία, δεν είναι διαθέσιμη στους δωρεάν οργανισμούς. Μεταβείτε σε ένα πακέτο επί πληρωμής για να ξεκλειδώσετε περισσότερες λειτουργίες." + }, + "createOrganizationStep1": { + "message": "Δημιουργία Οργανισμού: Βήμα 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Πριν δημιουργήσετε τον οργανισμό σας, πρέπει πρώτα να δημιουργήσετε έναν δωρεάν προσωπικό λογαριασμό." + }, + "refunded": { + "message": "Επιστράφηκαν" + }, + "nothingSelected": { + "message": "Δεν έχετε επιλέξει τίποτα." + }, + "acceptPolicies": { + "message": "Επιλέγοντας αυτό το πλαίσιο, συμφωνείτε με τα εξής:" + }, + "acceptPoliciesError": { + "message": "Οι Όροι Παροχής Υπηρεσιών και η Πολιτική Απορρήτου δεν έχουν αναγνωριστεί." + }, + "termsOfService": { + "message": "Όροι Χρήσης" + }, + "privacyPolicy": { + "message": "Πολιτική Απορρήτου" + }, + "filters": { + "message": "Φίλτρα" + }, + "vaultTimeout": { + "message": "Χρόνος Λήξης Vault" + }, + "vaultTimeoutDesc": { + "message": "Επιλέξτε πότε θα λήξει το vault και πραγματοποιήστε την επιλεγμένη ενέργεια." + }, + "oneMinute": { + "message": "1 λεπτό" + }, + "fiveMinutes": { + "message": "5 λεπτά" + }, + "fifteenMinutes": { + "message": "15 λεπτά" + }, + "thirtyMinutes": { + "message": "30 λεπτά" + }, + "oneHour": { + "message": "1 ώρα" + }, + "fourHours": { + "message": "4 ώρες" + }, + "onRefresh": { + "message": "Κατά την Ανανέωση του Browser" + }, + "dateUpdated": { + "message": "Ενημερώθηκε", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Ο Κωδικός Ενημερώθηκε", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Ο οργανισμός είναι απενεργοποιημένος." + }, + "licenseIsExpired": { + "message": "Η άδεια χρήσης έληξε." + }, + "updatedUsers": { + "message": "Οι χρήστες ενημερώθηκαν" + }, + "selected": { + "message": "Επιλεγμένα" + }, + "ownership": { + "message": "Ιδιοκτησία" + }, + "whoOwnsThisItem": { + "message": "Ποιος κατέχει αυτό το στοιχείο;" + }, + "strong": { + "message": "Ισχυρό", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Καλός", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Αδύναμος", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Πολύ αδύναμος", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Αδύναμος Κύριος Κωδικός" + }, + "weakMasterPasswordDesc": { + "message": "Ο κύριος κωδικός που έχετε επιλέξει είναι αδύναμος. Θα πρέπει να χρησιμοποιήσετε έναν ισχυρό κύριο κωδικό (ή μια φράση) για την κατάλληλη προστασία του λογαριασμού Bitwarden. Είστε βέβαιοι ότι θέλετε να χρησιμοποιήσετε αυτόν τον κύριο κωδικό;" + }, + "rotateAccountEncKey": { + "message": "Επίσης, περιστροφή κλειδιού κρυπτογράφησης του λογαριασμού μου" + }, + "rotateEncKeyTitle": { + "message": "Περιστροφή κλειδιού κρυπτογράφησης" + }, + "rotateEncKeyConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να γίνει περιστροφή του κλειδιού κρυπτογράφησης του λογαριασμού σας;" + }, + "attachmentsNeedFix": { + "message": "Αυτό το στοιχείο έχει παλιά συνημμένα αρχεία που πρέπει να διορθωθούν." + }, + "attachmentFixDesc": { + "message": "Αυτό είναι ένα παλιό συνημμένο αρχείο που πρέπει να διορθωθεί. Κάντε κλικ για να μάθετε περισσότερα." + }, + "fix": { + "message": "Επιδιόρθωση", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Υπάρχουν στο παρελθόν παλιά συνημμένα αρχεία που πρέπει να διορθωθούν πριν την περιστροφή κλειδιού κρυπτογράφησης του λογαριασμού σας." + }, + "yourAccountsFingerprint": { + "message": "Φράση δακτυλικών αποτυπωμάτων λογαριασμού", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Για να διασφαλίσετε την ακεραιότητα των κλειδιών κρυπτογράφησης, επιβεβαιώστε τη φράση των δακτυλικών αποτυπωμάτων χρήστη πριν συνεχίσετε.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Ποτέ μην παρακινείτε να επαληθεύσετε φράσεις fingerprint για τους προσκεκλημένους χρήστες (Δεν συνιστάται)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Δωρεάν", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "Kλειδί API" + }, + "apiKeyDesc": { + "message": "Το κλειδί API μπορεί να χρησιμοποιηθεί για τον έλεγχο ταυτότητας στο δημόσιο API Bitwarden." + }, + "apiKeyRotateDesc": { + "message": "Η περιστροφή του κλειδιού API θα ακυρώσει το προηγούμενο κλειδί. Μπορείτε να περιστρέψετε το κλειδί API αν πιστεύετε ότι το τρέχον κλειδί δεν είναι πλέον ασφαλές στη χρήση." + }, + "apiKeyWarning": { + "message": "Το κλειδί API έχει πλήρη πρόσβαση στον οργανισμό. Πρέπει να το κρατήσετε μυστικό." + }, + "userApiKeyDesc": { + "message": "Το κλειδί API σας μπορεί να χρησιμοποιηθεί για έλεγχο ταυτότητας στο Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Το κλειδί API σας είναι ένας εναλλακτικός μηχανισμός ελέγχου ταυτότητας. Θα πρέπει να κρατηθεί μυστικό." + }, + "oauth2ClientCredentials": { + "message": "Πιστοποιητικά πελάτη OAuth 2.0", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Προβολή κλειδιού API" + }, + "rotateApiKey": { + "message": "Περιστροφή κλειδιού API" + }, + "selectOneCollection": { + "message": "Πρέπει να επιλέξετε τουλάχιστον μία συλλογή." + }, + "couldNotChargeCardPayInvoice": { + "message": "Δεν ήταν δυνατή η χρέωση της κάρτας σας. Παρακαλούμε δείτε και πληρώστε το μη πληρωθέν παραστατικό που παρατίθεται παρακάτω." + }, + "inAppPurchase": { + "message": "Αγορές εντός εφαρμογής" + }, + "cannotPerformInAppPurchase": { + "message": "Δεν μπορείτε να εκτελέσετε αυτήν την ενέργεια κατά τη χρήση μεθόδου αγοράς και πληρωμής μέσω εφαρμογής." + }, + "manageSubscriptionFromStore": { + "message": "Πρέπει να διαχειριστείτε τη συνδρομή σας από το κατάστημα όπου έγινε η αγορά σας μέσω εφαρμογής." + }, + "minLength": { + "message": "Ελάχιστο Μήκος" + }, + "clone": { + "message": "Κλώνος" + }, + "masterPassPolicyDesc": { + "message": "Ορίστε ελάχιστες απαιτήσεις, για ισχύ του κύριου κωδικού." + }, + "twoStepLoginPolicyDesc": { + "message": "Να απαιτείτε από τους χρήστες να ορίσουν τη σύνδεση σε δύο βήματα στους προσωπικούς τους λογαριασμούς." + }, + "twoStepLoginPolicyWarning": { + "message": "Τα μέλη του οργανισμού που δεν έχουν ενεργοποιημένη τη σύνδεση σε δύο βήματα για τον προσωπικό τους λογαριασμό θα αφαιρεθούν από τον οργανισμό και θα λάβουν ένα μήνυμα ηλεκτρονικού ταχυδρομείου που θα τους ειδοποιεί για την αλλαγή." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Είστε μέλος ενός οργανισμού που απαιτεί την ενεργοποίηση σύνδεσης σε δύο βήματα στον λογαριασμό σας. Εάν απενεργοποιήσετε όλους τους παροχείς σύνδεσης σε δύο βήματα, θα αφαιρεθείτε αυτόματα από αυτούς τους οργανισμούς." + }, + "passwordGeneratorPolicyDesc": { + "message": "Ελάχιστες απαιτήσεις διαμόρφωσης γεννήτριας κωδικών." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Μία ή περισσότερες πολιτικές του οργανισμού επηρεάζουν τις ρυθμίσεις της γεννήτριας." + }, + "masterPasswordPolicyInEffect": { + "message": "Σε μία ή περισσότερες πολιτικές του οργανισμού απαιτείται ο κύριος κωδικός να πληρεί τις ακόλουθες απαιτήσεις:" + }, + "policyInEffectMinComplexity": { + "message": "Ελάχιστος βαθμός πολυπλοκότητας: $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Ελάχιστο μήκος: $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Να περιέχει έναν ή περισσότερους κεφαλαίους χαρακτήρες" + }, + "policyInEffectLowercase": { + "message": "Να περιέχει έναν ή περισσότερους πεζούς χαρακτήρες" + }, + "policyInEffectNumbers": { + "message": "Να περιέχει έναν ή περισσότερους αριθμούς" + }, + "policyInEffectSpecial": { + "message": "Να περιέχει έναν ή περισσότερους από τους ακόλουθους ειδικούς χαρακτήρες $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Ο νέος κύριος κωδικός δεν πληροί τις απαιτήσεις πολιτικής." + }, + "minimumNumberOfWords": { + "message": "Ελάχιστος Αριθμός Χαρακτήρων" + }, + "defaultType": { + "message": "Προεπιλεγμένος Τύπος" + }, + "userPreference": { + "message": "Προτιμήσεις Χρήστη" + }, + "vaultTimeoutAction": { + "message": "Ενέργεια Χρόνου Λήξης Vault" + }, + "vaultTimeoutActionLockDesc": { + "message": "Ένα κλειδωμένο vault απαιτεί να εισάγετε ξανά τον κύριο κωδικό για να αποκτήσετε ξανά πρόσβαση σε αυτόν." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Ένα αποσυνδεδεμένο vault απαιτεί να κάνετε ξανά έλεγχο ταυτότητας για να αποκτήσετε πρόσβαση σε αυτό." + }, + "lock": { + "message": "Κλείδωμα", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Κάδος Απορριμάτων", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Αναζήτηση Κάδου" + }, + "permanentlyDelete": { + "message": "Μόνιμη Διαγραφή" + }, + "permanentlyDeleteSelected": { + "message": "Επιλέχτηκε Μόνιμη Διαγραφή" + }, + "permanentlyDeleteItem": { + "message": "Μόνιμη Διαγραφή Αντικειμένου" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να διαγράψετε μόνιμα αυτό το στοιχείο;" + }, + "permanentlyDeletedItem": { + "message": "Μόνιμα Διεγραμμένο Στοιχείο" + }, + "permanentlyDeletedItems": { + "message": "Μόνιμα Διεγραμμένα Στοιχεία" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Έχετε επιλέξει $COUNT$ στοιχείο(α) για μόνιμη διαγραφή. Είστε βέβαιοι ότι θέλετε να διαγράψετε για πάντα όλα αυτά τα στοιχεία;", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Μόνιμα Διεγραμμένο Στοιχείο $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Ανάκτηση" + }, + "restoreSelected": { + "message": "Επαναφορά Επιλεγμένων" + }, + "restoreItem": { + "message": "Ανάκτηση Στοιχείου" + }, + "restoredItem": { + "message": "Στοιχείο που έχει Ανακτηθεί" + }, + "restoredItems": { + "message": "Στοιχεία που έχουν Ανακτηθεί" + }, + "restoreItemConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να ανακτήσετε αυτό το στοιχείο;" + }, + "restoreItems": { + "message": "Ανάκτηση Στοιχείων" + }, + "restoreSelectedItemsDesc": { + "message": "Έχετε επιλέξει $COUNT$ στοιχείο(α) για ανάκτηση. Είστε βέβαιοι ότι θέλετε να ανακτήσετε όλα αυτά τα στοιχεία;", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Στοιχείο που έχει ανακτηθεί $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Η αποσύνδεση θα καταργήσει όλη την πρόσβαση στο vault σας και απαιτεί online έλεγχο ταυτότητας μετά το χρονικό όριο λήξης. Είστε βέβαιοι ότι θέλετε να χρησιμοποιήσετε αυτήν τη ρύθμιση;" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Επιβεβαίωση Ενέργειας Χρονικού Ορίου" + }, + "hidePasswords": { + "message": "Απόκρυψη Κωδικών" + }, + "countryPostalCodeRequiredDesc": { + "message": "Χρειαζόμαστε αυτές τις πληροφορίες μόνο για τον υπολογισμό του φόρου επί των πωλήσεων και των οικονομικών αναφορών." + }, + "includeVAT": { + "message": "Συμπερίληψη πληροφοριών ΦΠΑ / GST (προαιρετικά)" + }, + "taxIdNumber": { + "message": "Αναγνωριστικό φόρου ΦΠΑ / GST" + }, + "taxInfoUpdated": { + "message": "Τα φορολογικά στοιχεία ενημερώθηκαν." + }, + "setMasterPassword": { + "message": "Ορισμός Κύριου Κωδικού" + }, + "ssoCompleteRegistration": { + "message": "Για να ολοκληρώσετε τη σύνδεση με SSO, ορίστε έναν κύριο κωδικό πρόσβασης για πρόσβαση και προστασία του vault σας." + }, + "identifier": { + "message": "Αναγνωριστικό" + }, + "organizationIdentifier": { + "message": "Αναγνωριστικό οργανισμού" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Συνδεθείτε χρησιμοποιώντας την πύλη μεμονωμένης σύνδεσης του οργανισμού σας. Εισάγετε το αναγνωριστικό του οργανισμού σας για να ξεκινήσετε." + }, + "enterpriseSingleSignOn": { + "message": "Ενιαία είσοδος για επιχειρήσεις" + }, + "ssoHandOff": { + "message": "Μπορείτε να κλείσετε αυτήν την καρτέλα τώρα και να συνεχίσετε στην επέκταση." + }, + "includeAllTeamsFeatures": { + "message": "Όλα τα χαρακτηριστικά του Teams, συν:" + }, + "includeSsoAuthentication": { + "message": "Έλεγχος ταυτότητας SSO μέσω SAML2.0 και OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Επιχειρηματικές πολιτικές" + }, + "ssoValidationFailed": { + "message": "Η επικύρωση SSO απέτυχε" + }, + "ssoIdentifierRequired": { + "message": "Απαιτείται αναγνωριστικό οργανισμού." + }, + "unlinkSso": { + "message": "Αποσύνδεση SSO" + }, + "unlinkSsoConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να αποσυνδέσετε το SSO για αυτόν τον οργανισμό;" + }, + "linkSso": { + "message": "Σύνδεσμος SSO" + }, + "singleOrg": { + "message": "Ενιαίος οργανισμός" + }, + "singleOrgDesc": { + "message": "Περιορίστε τους χρήστες να μην μπορούν να συμμετάσχουν σε άλλους οργανισμούς." + }, + "singleOrgBlockCreateMessage": { + "message": "Ο τρέχων οργανισμός σας έχει μια πολιτική που δεν σας επιτρέπει να συμμετάσχετε σε περισσότερους από έναν οργανισμούς. Επικοινωνήστε με τους διαχειριστές του οργανισμού σας ή εγγραφείτε από διαφορετικό λογαριασμό Bitwarden." + }, + "singleOrgPolicyWarning": { + "message": "Τα μέλη του οργανισμού που δεν είναι κάτοχοι ή διαχειριστές και είναι ήδη μέλη άλλου οργανισμού θα αφαιρεθούν από τον οργανισμό σας." + }, + "requireSso": { + "message": "Έλεγχος ταυτότητας μεμονωμένης σύνδεσης" + }, + "requireSsoPolicyDesc": { + "message": "Απαιτήστε από τους χρήστες να συνδεθούν με τη μέθοδο Enterprise Single Sign-On." + }, + "prerequisite": { + "message": "Προαπαιτούμενο" + }, + "requireSsoPolicyReq": { + "message": "Απαιτήστε από τους χρήστες να συνδεθούν με τη μέθοδο Enterprise Single Sign-On." + }, + "requireSsoPolicyReqError": { + "message": "Η πολιτική ενός οργανισμού δεν ενεργοποιήθηκε." + }, + "requireSsoExemption": { + "message": "Οι κάτοχοι και οι διαχειριστές του οργανισμού εξαιρούνται από την εφαρμογή αυτής της πολιτικής." + }, + "sendTypeFile": { + "message": "Αρχείο" + }, + "sendTypeText": { + "message": "Κείμενο" + }, + "createSend": { + "message": "Δημιουργία Νέου Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Επεξεργασία Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Το Send Δημιουργήθηκε", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Το Send Επεξεργάστηκε", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Το Send Διαγράφηκε", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Διαγραφή Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να διαγράψετε το Send;", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Τι είδους Send είναι αυτό;", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Ημερομηνία διαγραφής" + }, + "deletionDateDesc": { + "message": "Το Send θα διαγραφεί οριστικά την καθορισμένη ημερομηνία και ώρα.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Ημερομηνία Λήξης" + }, + "expirationDateDesc": { + "message": "Εάν οριστεί, η πρόσβαση σε αυτό το Send θα λήξει την καθορισμένη ημερομηνία και ώρα.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Μέγιστος Αριθμός Πρόσβασης" + }, + "maxAccessCountDesc": { + "message": "Εάν οριστεί, οι χρήστες δεν θα μπορούν πλέον να έχουν πρόσβαση σε αυτό το send μόλις επιτευχθεί ο μέγιστος αριθμός πρόσβασης.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Τρέχων Αριθμός Πρόσβασης" + }, + "sendPasswordDesc": { + "message": "Προαιρετικά απαιτείται κωδικός πρόσβασης για τους χρήστες για να έχουν πρόσβαση σε αυτό το Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Ιδιωτικές σημειώσεις σχετικά με αυτό το Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Απενεργοποιημένο" + }, + "sendLink": { + "message": "Αποστολή Συνδέσμου", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Αντιγραφή Συνδέσμου Αποστολής", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Αφαίρεση κωδικού" + }, + "removedPassword": { + "message": "Καταργήθηκε κωδικός πρόσβασης" + }, + "removePasswordConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να καταργήσετε τον κωδικό πρόσβασης;" + }, + "hideEmail": { + "message": "Απόκρυψη της διεύθυνσης email μου από τους παραλήπτες." + }, + "disableThisSend": { + "message": "Απενεργοποιήστε αυτό το Send έτσι ώστε κανείς να μην μπορεί να έχει πρόσβαση σε αυτό.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Όλα τα Sends" + }, + "maxAccessCountReached": { + "message": "Φτάσατε στον μέγιστο αριθμό πρόσβασης", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Εκκρεμεί διαγραφή" + }, + "expired": { + "message": "Έληξε" + }, + "searchSends": { + "message": "Αναζήτηση Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Αυτό το Send προστατεύεται με κωδικό πρόσβασης. Πληκτρολογήστε τον κωδικό πρόσβασης παρακάτω για να συνεχίσετε.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Δεν γνωρίζετε τον κωδικό; Ζητήστε από τον αποστολέα τον κωδικό που απαιτείται για την πρόσβαση σε αυτό το Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Αυτό το send είναι κρυμμένο από προεπιλογή. Μπορείτε να αλλάξετε την ορατότητά του χρησιμοποιώντας το παρακάτω κουμπί.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Λήψη Αρχείου" + }, + "sendAccessUnavailable": { + "message": "Το Send που προσπαθείτε να αποκτήσετε πρόσβαση, δεν υπάρχει ή δεν είναι πλέον διαθέσιμο.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Το αρχείο που σχετίζεται με αυτό το Send δεν βρέθηκε.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Δεν υπάρχουν Sends στη λίστα.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Πρόσβαση Έκτακτης Ανάγκης" + }, + "emergencyAccessDesc": { + "message": "Εκχώρηση και διαχείριση πρόσβασης έκτακτης ανάγκης για αξιόπιστες επαφές. Οι επαφές εμπίστευσης μπορούν να ζητήσουν πρόσβαση είτε στην Προβολή είτε στην ανάληψη του λογαριασμού σας σε περίπτωση έκτακτης ανάγκης. Επισκεφθείτε τη σελίδα βοήθειας μας για περισσότερες πληροφορίες και λεπτομέρειες σχετικά με το πώς λειτουργεί o μηδενικός διαμοιρασμός πληροφοριών." + }, + "emergencyAccessOwnerWarning": { + "message": "Είστε ιδιοκτήτης ενός ή περισσότερων οργανισμών. Αν δώσετε πρόσβαση σε μια επαφή έκτακτης ανάγκης, θα είναι σε θέση να χρησιμοποιήσουν όλα τα δικαιώματά σας ως Ιδιοκτήτη μετά από μια εξαγορά." + }, + "trustedEmergencyContacts": { + "message": "Έμπιστες επαφές έκτακτης ανάγκης" + }, + "noTrustedContacts": { + "message": "Δεν έχετε προσθέσει ακόμη επαφές έκτακτης ανάγκης, προσκαλέστε μια αξιόπιστη επαφή για να ξεκινήσετε." + }, + "addEmergencyContact": { + "message": "Προσθήκη επαφής έκτακτης ανάγκης" + }, + "designatedEmergencyContacts": { + "message": "Χαρακτηρίστηκε ως επαφή έκτακτης ανάγκης" + }, + "noGrantedAccess": { + "message": "Δεν έχετε ορίσει ως επαφή έκτακτης ανάγκης για κανέναν ακόμα." + }, + "inviteEmergencyContact": { + "message": "Πρόσκληση επαφής έκτακτης ανάγκης" + }, + "editEmergencyContact": { + "message": "Επεξεργασία επαφής έκτακτης ανάγκης" + }, + "inviteEmergencyContactDesc": { + "message": "Προσκαλέστε μια νέα επαφή έκτακτης ανάγκης, εισάγοντας την διεύθυνση email τους, του λογαριασμού Bitwarden, παρακάτω. Εάν δεν έχουν ήδη λογαριασμό Bitwarden, θα τους ζητηθεί να δημιουργήσουν ένα νέο λογαριασμό." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Έναρξη Πρόσβασης Έκτακτης Ανάγκης" + }, + "emergencyAccessRecoveryApproved": { + "message": "Εγκεκριμένη Πρόσβαση Έκτακτης Ανάγκης" + }, + "viewDesc": { + "message": "Μπορείτε να δείτε όλα τα στοιχεία, στο δικό σας vault." + }, + "takeover": { + "message": "Ανάληψη" + }, + "takeoverDesc": { + "message": "Μπορείτε να επαναφέρετε το λογαριασμό σας με ένα νέο κύριο κωδικό πρόσβασης." + }, + "waitTime": { + "message": "Χρόνος Αναμονής" + }, + "waitTimeDesc": { + "message": "Χρόνος που απαιτείται πριν από την αυτόματη χορήγηση πρόσβασης." + }, + "oneDay": { + "message": "1 ημέρα" + }, + "days": { + "message": "$DAYS$ ημέρες", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Προσκεκλημένος χρήστης." + }, + "acceptEmergencyAccess": { + "message": "Έχετε προσκληθεί να γίνετε μια επαφή έκτακτης ανάγκης για τον χρήστη που αναφέρεται παραπάνω. Για να αποδεχτείτε την πρόσκληση, πρέπει να συνδεθείτε ή να δημιουργήσετε ένα νέο λογαριασμό Bitwarden." + }, + "emergencyInviteAcceptFailed": { + "message": "Αδυναμία αποδοχής πρόσκλησης. Ζητήστε από τον χρήστη να στείλει μια νέα πρόσκληση." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Δεν είναι δυνατή η αποδοχή πρόσκλησης. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Μπορείτε να αποκτήσετε πρόσβαση στις επιλογές έκτακτης ανάγκης για αυτόν τον χρήστη μετά την επιβεβαίωση της ταυτότητας σας. Θα σας στείλουμε ένα email όταν συμβεί αυτό." + }, + "requestAccess": { + "message": "Αίτηση Πρόσβασης" + }, + "requestAccessConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να ζητήσετε πρόσβαση έκτακτης ανάγκης? Θα σας δοθεί η πρόσβαση μετά από $WAITTIME$ ημέρα(ες) ή όποτε ο χρήστης εγκρίνει χειροκίνητα το αίτημα.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Ζητήθηκε πρόσβαση έκτακτης ανάγκης για το $USER$. Θα σας ειδοποιήσουμε με email όταν είναι εφικτό να συνεχίσετε.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Έγκριση" + }, + "reject": { + "message": "Απόρριψη" + }, + "approveAccessConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να εγκρίνετε την πρόσβαση έκτακτης ανάγκης? Αυτό θα επιτρέψει στο $USER$ να $ACTION$ το λογαριασμό σας.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Η πρόσβαση έκτακτης ανάγκης εγκρίθηκε." + }, + "emergencyRejected": { + "message": "Η πρόσβαση έκτακτης ανάγκης απορρίφθηκε" + }, + "passwordResetFor": { + "message": "Επαναφορά κωδικού πρόσβασης για το $USER$. Τώρα μπορείτε να συνδεθείτε χρησιμοποιώντας το νέο κωδικό πρόσβασης.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Προσωπική Ιδιοκτησία" + }, + "personalOwnershipPolicyDesc": { + "message": "Απαιτείται από τους χρήστες να αποθηκεύσουν στοιχεία vault σε έναν οργανισμό, αφαιρώντας την επιλογή προσωπικής ιδιοκτησίας." + }, + "personalOwnershipExemption": { + "message": "Οι κάτοχοι και οι διαχειριστές του οργανισμού εξαιρούνται από την εφαρμογή αυτής της πολιτικής." + }, + "personalOwnershipSubmitError": { + "message": "Λόγω μιας Πολιτικής Επιχειρήσεων, δεν επιτρέπεται η αποθήκευση στοιχείων στο προσωπικό σας vault. Αλλάξτε την επιλογή Ιδιοκτησίας σε έναν οργανισμό και επιλέξτε από τις διαθέσιμες Συλλογές." + }, + "disableSend": { + "message": "Απενεργοποίηση Αποστολής" + }, + "disableSendPolicyDesc": { + "message": "Μην επιτρέπετε στους χρήστες να δημιουργήσουν ή να επεξεργαστούν μια Αποστολή Bitwarden. Η διαγραφή μιας υπάρχουσας Αποστολής εξακολουθεί να επιτρέπεται.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Οι χρήστες του οργανισμού που μπορούν να διαχειριστούν τις πολιτικές του οργανισμού εξαιρούνται από την εφαρμογή αυτής της πολιτικής." + }, + "sendDisabled": { + "message": "Send Απενεργοποιημένο", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Λόγω μιας επιχειρηματικής πολιτικής, είστε σε θέση να διαγράψετε μόνο ένα υπάρχον Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Επιλογές Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Καθορίστε επιλογές για τη δημιουργία και επεξεργασία sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Οι χρήστες του οργανισμού που μπορούν να διαχειριστούν τις πολιτικές του οργανισμού εξαιρούνται από την εφαρμογή αυτής της πολιτικής." + }, + "disableHideEmail": { + "message": "Μην επιτρέπετε στους χρήστες να αποκρύψουν τη διεύθυνση email τους από τους παραλήπτες κατά τη δημιουργία ή την επεξεργασία ενός send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Οι ακόλουθες οργανωτικές πολιτικές εφαρμόζονται επί του παρόντος:" + }, + "sendDisableHideEmailInEffect": { + "message": "Οι χρήστες δεν επιτρέπεται να αποκρύψουν τη διεύθυνση email τους από τους παραλήπτες κατά τη δημιουργία ή την επεξεργασία ενός send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Τροποποιημένη πολιτική $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Τιμή Πακέτου" + }, + "estimatedTax": { + "message": "Εκτιμώμενος φόρος" + }, + "custom": { + "message": "Προσαρμοσμένο" + }, + "customDesc": { + "message": "Επιτρέπει πιο κοκκώδη έλεγχο, των δικαιωμάτων χρήστη για προηγμένες ρυθμίσεις." + }, + "permissions": { + "message": "Άδειες" + }, + "accessEventLogs": { + "message": "Αρχείο Καταγραφής Πρόσβασης" + }, + "accessImportExport": { + "message": "Πρόσβαση Εισαγωγή/Εξαγωγή" + }, + "accessReports": { + "message": "Αναφορές Πρόσβασης" + }, + "missingPermissions": { + "message": "Δεν έχετε τα απαραίτητα δικαιώματα για να εκτελέσετε αυτήν την ενέργεια." + }, + "manageAllCollections": { + "message": "Διαχείριση Όλων Των Συλλογών" + }, + "createNewCollections": { + "message": "Δημιουργία Νέων Συλλογών" + }, + "editAnyCollection": { + "message": "Επεξεργασία Οποιασδήποτε Συλλογής" + }, + "deleteAnyCollection": { + "message": "Διαγραφή Οποιασδήποτε Συλλογής" + }, + "manageAssignedCollections": { + "message": "Διαχείριση Αντιστοιχισμένων Συλλογών" + }, + "editAssignedCollections": { + "message": "Επεξεργασία Αντιστοιχισμένων Συλλογών" + }, + "deleteAssignedCollections": { + "message": "Διαγραφή Ανατεθειμένων Συλλογών" + }, + "manageGroups": { + "message": "Διαχείριση Ομάδων" + }, + "managePolicies": { + "message": "Διαχείριση Πολιτικών" + }, + "manageSso": { + "message": "Διαχείριση SSO" + }, + "manageUsers": { + "message": "Διαχείριση Χρηστών" + }, + "manageResetPassword": { + "message": "Διαχείριση Επαναφοράς Κωδικού Πρόσβασης" + }, + "disableRequiredError": { + "message": "Πρέπει να απενεργοποιήσετε χειροκίνητα την πολιτική $POLICYNAME$ πριν απενεργοποιηθεί αυτή η πολιτική.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Μια πολιτική οργάνωσης επηρεάζει τις επιλογές ιδιοκτησίας σας." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "Μια οργανωτική πολιτική έχει απενεργοποιήσει την εισαγωγή στοιχείων στο προσωπικό θησαυ/κιο σας." + }, + "personalOwnershipCheckboxDesc": { + "message": "Απενεργοποίηση προσωπικής ιδιοκτησίας για χρήστες οργανισμού" + }, + "textHiddenByDefault": { + "message": "Κατά την πρόσβαση στην αποστολή, απόκρυψη του κειμένου από προεπιλογή", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Ένα φιλικό όνομα για την περιγραφή αυτού του Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Το κείμενο που θέλετε να στείλετε." + }, + "sendFileDesc": { + "message": "Το αρχείο που θέλετε να στείλετε." + }, + "copySendLinkOnSave": { + "message": "Αντιγράψτε το σύνδεσμο, για να μοιραστείτε αυτό το Send στο πρόχειρο μου, κατά την αποθήκευση." + }, + "sendLinkLabel": { + "message": "Σύνδεσμος Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Το Bitwarden Send μεταδίδει ευαίσθητες, προσωρινές πληροφορίες σε άλλους, εύκολα και με ασφάλεια.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Περισσότερες πληροφορίες για", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Κοινή χρήση κειμένου ή αρχείων απευθείας με οποιονδήποτε." + }, + "sendVaultCardLearnMore": { + "message": "Μάθετε περισσότερα", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "δείτε", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "πώς λειτουργεί", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "ή", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "δοκιμάστε το τώρα", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "ή", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "εγγραφείτε", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "για να το δοκιμάσετε σήμερα.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Ο χρήστης Bitwarden $USER_IDENTIFIER$ κοινοποίησε τα ακόλουθα μαζί σας", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Ο χρήστης Bitwarden που δημιούργησε αυτό το send έχει επιλέξει να κρύψει τη διεύθυνση email του. Πρέπει να διασφαλίσετε ότι εμπιστεύεστε την πηγή αυτού του συνδέσμου πριν χρησιμοποιήσετε ή κατεβάσετε το περιεχόμενό του.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Η ημερομηνία λήξης που δόθηκε δεν είναι έγκυρη." + }, + "deletionDateIsInvalid": { + "message": "Η ημερομηνία διαγραφής που δόθηκε δεν είναι έγκυρη." + }, + "expirationDateAndTimeRequired": { + "message": "Απαιτείται ημερομηνία και ώρα λήξης." + }, + "deletionDateAndTimeRequired": { + "message": "Απαιτείται ημερομηνία και ώρα διαγραφής." + }, + "dateParsingError": { + "message": "Παρουσιάστηκε σφάλμα κατά την αποθήκευση των ημερομηνιών διαγραφής και λήξης." + }, + "webAuthnFallbackMsg": { + "message": "Για να επαληθεύσετε τον 2FA σας παρακαλώ κάντε κλικ στο παρακάτω κουμπί." + }, + "webAuthnAuthenticate": { + "message": "Ταυτοποίηση WebAutn" + }, + "webAuthnNotSupported": { + "message": "Το WebAuthn δεν υποστηρίζεται σε αυτό το πρόγραμμα περιήγησης." + }, + "webAuthnSuccess": { + "message": "Το WebAuthn επαληθεύτηκε επιτυχώς!
Μπορείτε να κλείσετε αυτή την καρτέλα." + }, + "hintEqualsPassword": { + "message": "Η υπόδειξη κωδικού πρόσβασης, δεν μπορεί να είναι η ίδια με τον κωδικό πρόσβασης σας." + }, + "enrollPasswordReset": { + "message": "Επαναφορά κωδικού πρόσβασης" + }, + "enrolledPasswordReset": { + "message": "Εγγεγραμμένος στην επαναφορά κωδικού πρόσβασης" + }, + "withdrawPasswordReset": { + "message": "Επαναφορά κωδικού πρόσβασης" + }, + "enrollPasswordResetSuccess": { + "message": "Επιτυχής εγγραφή!" + }, + "withdrawPasswordResetSuccess": { + "message": "Επιτυχής απόσυρση!" + }, + "eventEnrollPasswordReset": { + "message": "Ο χρήστης $ID$ έχει εγγραφεί στη βοήθεια επαναφοράς κωδικού πρόσβασης.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Ο χρήστης $ID$ αποσύρθηκε από τη βοήθεια επαναφοράς κωδικού πρόσβασης.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Επαναφορά κύριου κωδικού πρόσβασης για το χρήστη $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Επαναφορά συνδέσμου Sso για το χρήστη $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ συνδέθηκε χρησιμοποιώντας το Sso για πρώτη φορά", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Επαναφορά Κωδικού" + }, + "resetPasswordLoggedOutWarning": { + "message": "Η διαδικασία θα αποσυνδέσει το $NAME$ από την τρέχουσα περίοδο λειτουργίας του, απαιτώντας από αυτούς να συνδεθούν. Οι ενεργές συνεδρίες σε άλλες συσκευές ενδέχεται να συνεχίσουν να είναι ενεργές για μία ώρα.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "αυτός ο χρήστης" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Σε μία ή περισσότερες πολιτικές του οργανισμού απαιτείται ο κύριος κωδικός να πληρεί τις ακόλουθες απαιτήσεις:" + }, + "resetPasswordSuccess": { + "message": "Επιτυχία επαναφοράς κωδικού!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Η εγγραφή θα επιτρέψει στους διαχειριστές του οργανισμού να αλλάξουν τον κύριο κωδικό σας. Είστε σίγουροι ότι θέλετε να εγγραφείτε;" + }, + "resetPasswordPolicy": { + "message": "Επαναφορά Κύριου Κωδικού Πρόσβασης" + }, + "resetPasswordPolicyDescription": { + "message": "Επιτρέψτε στους διαχειριστές του οργανισμού να επαναφέρουν τον κύριο κωδικό πρόσβασης των χρηστών." + }, + "resetPasswordPolicyWarning": { + "message": "Οι χρήστες του οργανισμού θα πρέπει να αυτο-εγγραφούν ή να εγγραφούν αυτόματα πριν οι διαχειριστές μπορούν να επαναφέρουν τον κύριο κωδικό πρόσβασής τους." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Αυτόματη Εγγραφή" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Όλοι οι χρήστες θα εγγραφούν αυτόματα στην επαναφορά κωδικού πρόσβασης μόλις γίνει αποδεκτή η πρόσκληση τους." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Οι χρήστες που βρίσκονται ήδη στον οργανισμό δεν θα εγγραφούν αναδρομικά στην επαναφορά κωδικού πρόσβασης. Θα χρειαστεί να κάνουν αυτόματη εγγραφή πριν οι διαχειριστές μπορέσουν να επαναφέρουν τον κωδικό πρόσβασης τους." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Αυτόματη εγγραφή νέων χρηστών" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Αυτός ο οργανισμός έχει μια επιχειρηματική πολιτική που θα σας εγγράψει αυτόματα στην επαναφορά κωδικού. Η εγγραφή θα επιτρέψει στους διαχειριστές του οργανισμού να αλλάξουν τον κύριο κωδικό πρόσβασης σας." + }, + "resetPasswordOrgKeysError": { + "message": "Η απάντηση των κλειδιών οργανισμού είναι κενή" + }, + "resetPasswordDetailsError": { + "message": "Επαναφορά κωδικού πρόσβασης Η απάντηση λεπτομερειών είναι κενή" + }, + "trashCleanupWarning": { + "message": "Τα Ciphers που βρίσκονται σε κάδο απορριμμάτων περισσότερες από 30 ημέρες θα διαγράφονται αυτόματα." + }, + "trashCleanupWarningSelfHosted": { + "message": "Τα Ciphers που βρίσκονται στον κάδο απορριμμάτων για λίγο θα διαγράφονται αυτόματα." + }, + "passwordPrompt": { + "message": "Προτροπή νέου κωδικού πρόσβασης" + }, + "passwordConfirmation": { + "message": "Επιβεβαίωση κύριου κωδικού πρόσβασης" + }, + "passwordConfirmationDesc": { + "message": "Αυτή η ενέργεια προστατεύεται. Για να συνεχίσετε, πληκτρολογήστε ξανά τον κύριο κωδικό πρόσβασης για να επαληθεύσετε την ταυτότητά σας." + }, + "reinviteSelected": { + "message": "Επαναποστολή Προσκλήσεων" + }, + "noSelectedUsersApplicable": { + "message": "Αυτή η ενέργεια δεν ισχύει για κανέναν από τους επιλεγμένους χρήστες." + }, + "removeUsersWarning": { + "message": "Είστε βέβαιοι ότι θέλετε να καταργήσετε τους ακόλουθους χρήστες? Η διαδικασία μπορεί να διαρκέσει μερικά δευτερόλεπτα για να ολοκληρωθεί και δεν μπορεί να διακοπεί ή να ακυρωθεί." + }, + "theme": { + "message": "Θέμα" + }, + "themeDesc": { + "message": "Επιλέξτε ένα θέμα για το web vault." + }, + "themeSystem": { + "message": "Χρήση Θέματος Συστήματος" + }, + "themeDark": { + "message": "Σκοτεινό" + }, + "themeLight": { + "message": "Φωτεινό" + }, + "confirmSelected": { + "message": "Επιβεβαίωση Επιλεγμένων" + }, + "bulkConfirmStatus": { + "message": "Κατάσταση μαζικής ενέργειας" + }, + "bulkConfirmMessage": { + "message": "Επιβεβαιώθηκε επιτυχώς." + }, + "bulkReinviteMessage": { + "message": "Επιτυχής ανάκληση." + }, + "bulkRemovedMessage": { + "message": "Καταργήθηκε με επιτυχία" + }, + "bulkFilteredMessage": { + "message": "Εξαιρείται, δεν ισχύει για αυτήν την ενέργεια." + }, + "fingerprint": { + "message": "Αποτύπωμα" + }, + "removeUsers": { + "message": "Αφαίρεση Χρηστών" + }, + "error": { + "message": "Σφάλμα" + }, + "resetPasswordManageUsers": { + "message": "Οι Διαχειριστές Χρηστών πρέπει επίσης να είναι ενεργοποιημένοι με την άδεια Διαχείρισης Κωδικού Επαναφοράς" + }, + "setupProvider": { + "message": "Ρύθμιση Παρόχου" + }, + "setupProviderLoginDesc": { + "message": "Έχετε προσκληθεί να ρυθμίσετε έναν νέο πάροχο. Για να συνεχίσετε, πρέπει να συνδεθείτε ή να δημιουργήσετε ένα νέο λογαριασμό Bitwarden." + }, + "setupProviderDesc": { + "message": "Παρακαλούμε εισάγετε τα παρακάτω στοιχεία για να ολοκληρώσετε την εγκατάσταση του παρόχου. Επικοινωνήστε με την Υποστήριξη πελατών αν έχετε οποιεσδήποτε απορίες." + }, + "providerName": { + "message": "Όνομα παρόχου" + }, + "providerSetup": { + "message": "Ο πάροχος έχει ρυθμιστεί." + }, + "clients": { + "message": "Πελάτες" + }, + "providerAdmin": { + "message": "Διαχειριστής Παρόχου" + }, + "providerAdminDesc": { + "message": "Ο χρήστης με την υψηλότερη πρόσβαση που μπορεί να διαχειριστεί όλες τις πτυχές του παρόχου σας, καθώς και την πρόσβαση και τη διαχείριση των οργανισμών-πελατών." + }, + "serviceUser": { + "message": "Υπηρεσία Χρήστη" + }, + "serviceUserDesc": { + "message": "Οι χρήστες υπηρεσιών μπορούν να έχουν πρόσβαση και να διαχειρίζονται όλους τους οργανισμούς πελατών." + }, + "providerInviteUserDesc": { + "message": "Προσκαλέστε έναν νέο χρήστη στον πάροχο σας εισάγοντας το email λογαριασμού Bitwarden παρακάτω. Εάν δεν έχουν ήδη λογαριασμό Bitwarden, θα τους ζητηθεί να δημιουργήσουν ένα νέο λογαριασμό." + }, + "joinProvider": { + "message": "Συμμετοχή Στον Πάροχο" + }, + "joinProviderDesc": { + "message": "Έχετε προσκληθεί να συμμετάσχετε στον παραπάνω πάροχο. Για να αποδεχτείτε την πρόσκληση, πρέπει να συνδεθείτε ή να δημιουργήσετε ένα νέο λογαριασμό Bitwarden." + }, + "providerInviteAcceptFailed": { + "message": "Αδυναμία αποδοχής πρόσκλησης. Ζητήστε από τον διαχειριστή του παρόχου να στείλει μια νέα πρόσκληση." + }, + "providerInviteAcceptedDesc": { + "message": "Μπορείτε να αποκτήσετε πρόσβαση σε αυτόν τον πάροχο μόλις ένας διαχειριστής επιβεβαιώσει τη συμμετοχή σας. Θα σας στείλουμε ένα email όταν συμβεί αυτό." + }, + "providerUsersNeedConfirmed": { + "message": "Έχετε χρήστες που έχουν αποδεχθεί την πρόσκληση τους, αλλά πρέπει ακόμα να επιβεβαιωθούν. Οι χρήστες δεν θα έχουν πρόσβαση στον πάροχο μέχρι να επιβεβαιωθούν." + }, + "provider": { + "message": "Πάροχος" + }, + "newClientOrganization": { + "message": "Νέος Οργανισμός Πελάτη" + }, + "newClientOrganizationDesc": { + "message": "Δημιουργήστε ένα νέο οργανισμό πελάτη που θα συσχετιστεί με εσάς ως πάροχο. Θα είστε σε θέση να έχετε πρόσβαση και να διαχειριστείτε αυτόν τον οργανισμό." + }, + "addExistingOrganization": { + "message": "Προσθήκη Υπάρχοντος Οργανισμού" + }, + "myProvider": { + "message": "Ο Πάροχος Μου" + }, + "addOrganizationConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να προσθέσετε $ORGANIZATION$ ως πελάτης στο $PROVIDER$;", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Ο οργανισμός προστέθηκε με επιτυχία στον πάροχο" + }, + "accessingUsingProvider": { + "message": "Πρόσβαση στον οργανισμό χρησιμοποιώντας τον πάροχο $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Ο πάροχος είναι απενεργοποιημένος." + }, + "providerUpdated": { + "message": "Ο πάροχος ενημερώθηκε" + }, + "yourProviderIs": { + "message": "Ο πάροχος σας είναι $PROVIDER$. Έχουν δικαιώματα διαχείρισης και χρέωσης για τον οργανισμό σας.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "Ο οργανισμός $ORGANIZATION$ έχει αποσπαστεί από τον πάροχο σας.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Είστε βέβαιοι ότι θέλετε να αποσυνδέσετε αυτόν τον οργανισμό? Ο οργανισμός θα συνεχίσει να υπάρχει, αλλά δεν θα διαχειρίζεται πλέον από τον πάροχο." + }, + "add": { + "message": "Προσθήκη" + }, + "updatedMasterPassword": { + "message": "Ενημερώθηκε ο κύριος κωδικός πρόσβασης" + }, + "updateMasterPassword": { + "message": "Ενημερώστε τον κύριο κωδικό πρόσβασης" + }, + "updateMasterPasswordWarning": { + "message": "Ο Κύριος Κωδικός Πρόσβασης σας άλλαξε πρόσφατα από διαχειριστή στον οργανισμό σας. Για να αποκτήσετε πρόσβαση στο vault, πρέπει να ενημερώσετε το κύριο κωδικό τώρα. Η διαδικασία θα σας αποσυνδέσει από την τρέχουσα συνεδρία σας, απαιτώντας από εσάς να συνδεθείτε ξανά. Οι ενεργές συνεδρίες σε άλλες συσκευές ενδέχεται να συνεχίσουν να είναι ενεργές για μία ώρα." + }, + "masterPasswordInvalidWarning": { + "message": "Ο Κύριος κωδικός πρόσβασης δεν πληροί τις απαιτήσεις πολιτικής αυτού του οργανισμού. Για να γίνετε μέλος του οργανισμού, πρέπει να ενημερώσετε το Κύριο Συνθηματικό σας τώρα. Η διαδικασία θα σας αποσυνδέσει από την τρέχουσα συνεδρία σας, απαιτώντας από εσάς να συνδεθείτε ξανά. Οι ενεργές συνεδρίες σε άλλες συσκευές ενδέχεται να συνεχίσουν να είναι ενεργές για μία ώρα." + }, + "maximumVaultTimeout": { + "message": "Χρόνος Λήξης Vault" + }, + "maximumVaultTimeoutDesc": { + "message": "Ρύθμιση μέγιστου χρονικού ορίου vault για όλους τους χρήστες." + }, + "maximumVaultTimeoutLabel": { + "message": "Μέγιστο Χρονικό Όριο Vault" + }, + "invalidMaximumVaultTimeout": { + "message": "Μη Έγκυρο Μέγιστο Χρονικό Όριο Vault." + }, + "hours": { + "message": "Ώρες" + }, + "minutes": { + "message": "Λεπτά" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Οι πολιτικές του οργανισμού σας επηρεάζουν το χρονικό όριο vault σας. Το μέγιστο επιτρεπόμενο Χρονικό όριο Vault είναι $HOURS$ ώρα(ες) και $MINUTES$ λεπτό(ά)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Προσαρμοσμένο Χρονικό Όριο Vault" + }, + "vaultTimeoutToLarge": { + "message": "Το χρονικό όριο του vault υπερβαίνει τον περιορισμό που ορίστηκε από τον οργανισμό σας." + }, + "disablePersonalVaultExport": { + "message": "Απενεργοποίηση Εξαγωγής Προσωπικών Vault" + }, + "disablePersonalVaultExportDesc": { + "message": "Προσελκύει τους χρήστες να εξάγουν τα προσωπικά τους δεδομένα από το vault." + }, + "vaultExportDisabled": { + "message": "Εξαγωγή vault Απενεργοποιημένη" + }, + "personalVaultExportPolicyInEffect": { + "message": "Μία ή περισσότερες οργανωτικές πολιτικές σας αποτρέπει από την εξαγωγή του προσωπικού vault." + }, + "selectType": { + "message": "Επιλογή Τύπου SSO" + }, + "type": { + "message": "Τύπος" + }, + "openIdConnectConfig": { + "message": "Ρύθμιση Σύνδεσης OpenID" + }, + "samlSpConfig": { + "message": "Ρύθμιση Παροχής Υπηρεσιών SAML" + }, + "samlIdpConfig": { + "message": "Ρύθμιση Παρόχου Ταυτότητας SAML" + }, + "callbackPath": { + "message": "Διαδρομή Κλήσης" + }, + "signedOutCallbackPath": { + "message": "Διαδρομή Κλήσης Αποσύνδεσης" + }, + "authority": { + "message": "Αρχή" + }, + "clientId": { + "message": "Ταυτότητα Πελάτη" + }, + "clientSecret": { + "message": "Μυστικό Πελάτη" + }, + "metadataAddress": { + "message": "Διεύθυνση Μεταδεδομένων" + }, + "oidcRedirectBehavior": { + "message": "Συμπεριφορά Ανακατεύθυνσης OIDC" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Λήψη Αιτημάτων Από Το Τελικό Σημείο Πληροφοριών Χρήστη" + }, + "additionalScopes": { + "message": "Προσαρμοσμένα Πεδία" + }, + "additionalUserIdClaimTypes": { + "message": "Προσαρμοσμένοι Τύποι Ιδιότητας Χρήστη" + }, + "additionalEmailClaimTypes": { + "message": "Προσαρμοσμένοι Τύποι Διεκδίκησης Email" + }, + "additionalNameClaimTypes": { + "message": "Προσαρμοσμένος Τύπος Διεκδίκησης Ονόματος" + }, + "acrValues": { + "message": "Ζητούμενες τιμές αναφοράς κατηγορίας πλαισίου ελέγχου ταυτότητας (acr_values)" + }, + "expectedReturnAcrValue": { + "message": "Αναμενόμενη τιμή διεκδίκησης \"acr\" στην απάντηση (επικύρωση acr)" + }, + "spEntityId": { + "message": "SP ID Οντότητας" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Διεύθυνση Url Υπηρεσίας Καταναλωτών (ACS)" + }, + "spNameIdFormat": { + "message": "Μορφή ID Ονόματος" + }, + "spOutboundSigningAlgorithm": { + "message": "Αλγόριθμος Εξερχόμενης Υπογραφής" + }, + "spSigningBehavior": { + "message": "Συμπεριφορά Υπογραφής" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Ελάχιστος Εισερχόμενος Αλγόριθμος Υπογραφής" + }, + "spWantAssertionsSigned": { + "message": "Αναμονή υπογεγραμμένων ισχυρισμών" + }, + "spValidateCertificates": { + "message": "Επικύρωση Πιστοποιητικών" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Τύπος Σύνδεσης" + }, + "idpSingleSignOnServiceUrl": { + "message": "Διεύθυνση Url Υπηρεσίας Ενιαίας Εγγραφής" + }, + "idpSingleLogoutServiceUrl": { + "message": "Διεύθυνση Url Υπηρεσίας Ενιαίας Αποσύνδεσης" + }, + "idpX509PublicCert": { + "message": "X509 Δημόσιο Πιστοποιητικό" + }, + "idpOutboundSigningAlgorithm": { + "message": "Αλγόριθμος Εξερχόμενης Υπογραφής" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Να Επιτρέπεται Μη Αιτούμενη Απόκριση Ταυτοποίησης" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Να επιτρέπονται αιτήματα εξερχόμενης αποσύνδεσης" + }, + "idpSignAuthenticationRequests": { + "message": "Υπογραφή αιτήσεων ταυτοποίησης" + }, + "ssoSettingsSaved": { + "message": "Οι ρυθμίσεις για απλή σύνδεση αποθηκεύτηκαν." + }, + "sponsoredFamilies": { + "message": "Δωρεάν Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "Εσείς και η οικογένεια σας έχετε δικαίωμα για Δωρεάν Bitwarden Families. Εξαργυρώστε με το προσωπικό σας email για να διατηρείτε τα δεδομένα σας ασφαλή ακόμα και όταν δεν εργάζεστε." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Εξαργυρώστε το Δωρεάν Bitwarden Families σήμερα για να διατηρήσουν τα δεδομένα σας ασφαλή ακόμα και όταν δεν είστε στη δουλειά." + }, + "sponsoredFamiliesInclude": { + "message": "Το πλάνο Bitwarden Families περιλαμβάνει" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium πρόσβαση για έως 6 χρήστες" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Κοινές συλλογές για οικογενειακά μυστικά" + }, + "badToken": { + "message": "Ο σύνδεσμος δεν είναι πλέον έγκυρος. Παρακαλώ στείλτε ξανά την προσφορά." + }, + "reclaimedFreePlan": { + "message": "Επαναλαμβανόμενο ελεύθερο πλάνο" + }, + "redeem": { + "message": "Εξαργύρωση" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Επιλέξτε τον οργανισμό που θα θέλατε" + }, + "familiesSponsoringOrgSelect": { + "message": "Ποια Free Families προσφορά θα θέλατε να εξαργυρώσετε;" + }, + "sponsoredFamiliesEmail": { + "message": "Εισάγετε το προσωπικό σας email για να εξαργυρώσετε το Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Αν φύγετε ή απομακρυνθείτε από αυτόν τον οργανισμό, το πλάνο Families θα λήξει στο τέλος της περιόδου τιμολόγησης." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Αποδοχή προσφοράς για έναν υπάρχοντα οργανισμό ή δημιουργία ενός νέου οργανισμού οικογενειών." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Έχετε προσφερθεί έναn δωρεάν οργανισμό πλάνου Bitwarden Families. Για να συνεχίσετε, πρέπει να συνδεθείτε στο λογαριασμό που έλαβε την προσφορά." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Δεν είναι δυνατή η αποδοχή προσφοράς. Παρακαλώ στείλτε ξανά το email προσφοράς από τον λογαριασμό επιχείρησής σας και προσπαθήστε ξανά." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Αδυναμία αποδοχής προσφοράς. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Αποδοχή Δωρεάν Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "H Δωρεάν προσφορά Bitwarden Families, εξαργυρώθηκε με επιτυχία" + }, + "redeemed": { + "message": "Εξαργυρώθηκε" + }, + "redeemedAccount": { + "message": "Εξαργυρωμένος Λογαριασμός" + }, + "revokeAccount": { + "message": "Ανάκληση λογαριασμού $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Επαναποστολή email χορηγίας σε $NAME$ χορηγία", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Δωρεάν Πλάνο Families" + }, + "redeemNow": { + "message": "Εξαργυρώστε Τώρα" + }, + "recipient": { + "message": "Παραλήπτης" + }, + "removeSponsorship": { + "message": "Αφαίρεση Χορηγίας" + }, + "removeSponsorshipConfirmation": { + "message": "Μετά την αφαίρεση μιας χορηγίας, θα είστε υπεύθυνοι για αυτή τη συνδρομή και τα σχετικά τιμολόγια. Είστε βέβαιοι ότι θέλετε να συνεχίσετε;" + }, + "sponsorshipCreated": { + "message": "Χορηγία Δημιουργήθηκε" + }, + "revoke": { + "message": "Ανάκληση" + }, + "emailSent": { + "message": "Το Email Εστάλη" + }, + "revokeSponsorshipConfirmation": { + "message": "Μετά την αφαίρεση αυτού του λογαριασμού, ο ιδιοκτήτης του οργανισμού families θα είναι υπεύθυνος για αυτή τη συνδρομή και τα σχετικά τιμολόγια. Είστε βέβαιοι ότι θέλετε να συνεχίσετε;" + }, + "removeSponsorshipSuccess": { + "message": "Χορηγία Αφαιρέθηκε" + }, + "ssoKeyConnectorUnavailable": { + "message": "Δεν είναι δυνατή η πρόσβαση στον σύνδεσμο κλειδιού, προσπαθήστε ξανά αργότερα." + }, + "keyConnectorUrl": { + "message": "URL Σύνδεσης Κλειδιού" + }, + "sendVerificationCode": { + "message": "Στείλτε έναν κωδικό επαλήθευσης στο email σας" + }, + "sendCode": { + "message": "Αποστολή Κωδικού" + }, + "codeSent": { + "message": "Ο Κωδικός Στάλθηκε" + }, + "verificationCode": { + "message": "Κωδικός Επαλήθευσης" + }, + "confirmIdentity": { + "message": "Επιβεβαιώστε την ταυτότητα σας για να συνεχίσετε." + }, + "verificationCodeRequired": { + "message": "Απαιτείται ο κωδικός επαλήθευσης." + }, + "invalidVerificationCode": { + "message": "Μη έγκυρος κωδικός επαλήθευσης" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ χρησιμοποιεί SSO με έναν αυτοεξυπηρετητή κλειδιών. Ένας κύριος κωδικός πρόσβασης δεν απαιτείται πλέον για να συνδεθείτε για τα μέλη αυτού του οργανισμού.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Αποχώρηση από τον οργανισμό" + }, + "removeMasterPassword": { + "message": "Αφαίρεση Κύριου Κωδικού Πρόσβασης" + }, + "removedMasterPassword": { + "message": "Ο κύριος κωδικός αφαιρέθηκε." + }, + "allowSso": { + "message": "Να επιτρέπεται έλεγχος ταυτότητας SSO" + }, + "allowSsoDesc": { + "message": "Μόλις συσταθεί, οι ρυθμίσεις σας θα αποθηκευτούν και τα μέλη θα είναι σε θέση να πιστοποιήσουν τον έλεγχο ταυτότητας χρησιμοποιώντας τα διαπιστευτήρια του παρόχου ταυτότητας." + }, + "ssoPolicyHelpStart": { + "message": "Ενεργοποίηση του", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "Πολιτική ελέγχου ταυτότητας SSO", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "για να απαιτήσει από όλα τα μέλη να συνδεθούν με SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "Απαιτούνται πολιτικές ελέγχου ταυτότητας και ενιαίου οργανισμού για τη δημιουργία αποκρυπτογράφησης κλειδιών σύνδεσης." + }, + "memberDecryptionOption": { + "message": "Επιλογές Αποκρυπτογράφησης Μελών" + }, + "memberDecryptionPassDesc": { + "message": "Μόλις ελεγχθεί, τα μέλη θα αποκρυπτογραφήσουν τα δεδομένα vault χρησιμοποιώντας τους Κύριους Κωδικούς Πρόσβασης." + }, + "keyConnector": { + "message": "Σύνδεσμος Κλειδιού" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Συνδεθείτε με SSO στον αυτο-φιλοξενημένο διακομιστή κλειδιών αποκρυπτογράφησης. Χρησιμοποιώντας αυτή την επιλογή, τα μέλη δεν θα χρειαστεί να χρησιμοποιήσουν τους Κύριους κωδικούς πρόσβασης τους για να αποκρυπτογραφήσουν τα δεδομένα θησαυ/κιου." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Σύνδεση με αποκρυπτογράφηση SSO και Key Connector \" είναι ενεργοποιημένη. Αυτή η πολιτική θα ισχύει μόνο για Ιδιοκτήτες και Διαχειριστές." + }, + "enabledSso": { + "message": "Ενεργοποιημένο SSO" + }, + "disabledSso": { + "message": "Απενεργοποιημένο SSO" + }, + "enabledKeyConnector": { + "message": "Ενεργοποιημένος Σύνδεσμος Κλειδιών" + }, + "disabledKeyConnector": { + "message": "Απενεργοποιημένη Σύνδεση Κλειδιών" + }, + "keyConnectorWarning": { + "message": "Μόλις τα μέλη αρχίσουν να χρησιμοποιούν το Key Connector, ο Οργανισμός σας δεν μπορεί να επανέλθει στην αποκρυπτογράφηση Master Password. Προχωρήστε μόνο εάν είστε άνετοι στην ανάπτυξη και διαχείριση ενός εξυπηρετητή κλειδιών." + }, + "migratedKeyConnector": { + "message": "Μετεγκατάσταση στον σύνδεσμο κλειδιού" + }, + "paymentSponsored": { + "message": "Παρακαλώ δώστε μια μέθοδο πληρωμής για να συσχετίσετε με τον οργανισμό. Μην ανησυχείτε, δεν θα σας χρεώσουμε τίποτα, εκτός αν επιλέξετε πρόσθετες λειτουργίες ή η εγγυοδοσία σας λήξει. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "Η προσφορά χορηγίας έχει λήξει. Μπορείτε να διαγράψετε τον οργανισμό που δημιουργήσατε για να αποφύγετε μια χρέωση στο τέλος της δοκιμής 7 ημερών. Διαφορετικά, μπορείτε να κλείσετε αυτή την προτροπή για να κρατήσει την οργάνωση και να αναλάβει την ευθύνη χρέωσης." + }, + "newFamiliesOrganization": { + "message": "Νέος Οργανισμός Families" + }, + "acceptOffer": { + "message": "Αποδοχή Προσφοράς" + }, + "sponsoringOrg": { + "message": "Χορηγούμενος Οργανισμός" + }, + "keyConnectorTest": { + "message": "Δοκιμή" + }, + "keyConnectorTestSuccess": { + "message": "Επιτυχία! Η σύνδεση με τα πλήκτρα έφτασε." + }, + "keyConnectorTestFail": { + "message": "Αδύνατη η πρόσβαση στον σύνδεσμο κλειδιού. Ελέγξτε το URL." + }, + "sponsorshipTokenHasExpired": { + "message": "Η προσφορά χορηγίας έχει λήξει." + }, + "freeWithSponsorship": { + "message": "ΔΩΡΕΑΝ με χορηγία" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ πεδία παραπάνω χρειάζονται την προσοχή σας.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 πεδίο παραπάνω χρειάζεται την προσοχή σας." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ απαιτείται.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "απαιτείται" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Απαιτείται εάν το ID οντότητας δεν είναι URL." + }, + "openIdOptionalCustomizations": { + "message": "Προαιρετικές Προσαρμογές" + }, + "openIdAuthorityRequired": { + "message": "Απαιτείται εάν η Αρχή δεν είναι έγκυρη." + }, + "separateMultipleWithComma": { + "message": "Διαχωρίστε το πολλαπλάσιο με κόμμα." + }, + "sessionTimeout": { + "message": "Έχει λήξει το χρονικό όριο. Παρακαλώ επιστρέψτε και προσπαθήστε να συνδεθείτε ξανά." + }, + "exportingPersonalVaultTitle": { + "message": "Εξαγωγή Προσωπικού Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Εξαγωγή Vault Οργανισμού" + }, + "exportingPersonalVaultDescription": { + "message": "Θα εξαχθούν μόνο τα προσωπικά αντικείμενα Vault που σχετίζονται με το $EMAIL$. Τα αντικείμενα Vault οργανισμού δεν θα συμπεριληφθούν.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Μόνο το vault οργανισμού που σχετίζεται με το $ORGANIZATION$ θα εξαχθεί. Προσωπικά αντικείμενα και αντικείμενα από άλλους οργανισμούς δεν θα συμπεριληφθούν.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Επιστροφή στις Αναφορές" + }, + "generator": { + "message": "Γεννήτρια" + }, + "whatWouldYouLikeToGenerate": { + "message": "Τι θα θέλατε να δημιουργήσετε;" + }, + "passwordType": { + "message": "Τύπος Κωδικού" + }, + "regenerateUsername": { + "message": "Επαναδημιουργία Ονόματος Χρήστη" + }, + "generateUsername": { + "message": "Δημιουργία Ονόματος Χρήστη" + }, + "usernameType": { + "message": "Τύπος Ονόματος Χρήστη" + }, + "plusAddressedEmail": { + "message": "Συν Διεύθυνση Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Χρησιμοποιήστε τις δυνατότητες δευτερεύουσας διεύθυνσης του παρόχου email σας." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Χρησιμοποιήστε τα διαμορφωμένα εισερχόμενα catch-all του domain σας." + }, + "random": { + "message": "Τυχαίο" + }, + "randomWord": { + "message": "Τυχαία Λέξη" + }, + "service": { + "message": "Υπηρεσία" + } +} diff --git a/apps/web/src/locales/en/messages.json b/apps/web/src/locales/en/messages.json new file mode 100644 index 0000000000..6cd0bbd02d --- /dev/null +++ b/apps/web/src/locales/en/messages.json @@ -0,0 +1,5073 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Web Vault", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "What type of item is this?" + }, + "name": { + "message": "Name" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "New URI" + }, + "username": { + "message": "Username" + }, + "password": { + "message": "Password" + }, + "newPassword": { + "message": "New Password" + }, + "passphrase": { + "message": "Passphrase" + }, + "notes": { + "message": "Notes" + }, + "customFields": { + "message": "Custom Fields" + }, + "cardholderName": { + "message": "Cardholder Name" + }, + "number": { + "message": "Number" + }, + "brand": { + "message": "Brand" + }, + "expiration": { + "message": "Expiration" + }, + "securityCode": { + "message": "Security Code (CVV)" + }, + "identityName": { + "message": "Identity Name" + }, + "company": { + "message": "Company" + }, + "ssn": { + "message": "Social Security Number" + }, + "passportNumber": { + "message": "Passport Number" + }, + "licenseNumber": { + "message": "License Number" + }, + "email": { + "message": "Email" + }, + "phone": { + "message": "Phone" + }, + "january": { + "message": "January" + }, + "february": { + "message": "February" + }, + "march": { + "message": "March" + }, + "april": { + "message": "April" + }, + "may": { + "message": "May" + }, + "june": { + "message": "June" + }, + "july": { + "message": "July" + }, + "august": { + "message": "August" + }, + "september": { + "message": "September" + }, + "october": { + "message": "October" + }, + "november": { + "message": "November" + }, + "december": { + "message": "December" + }, + "title": { + "message": "Title" + }, + "mr": { + "message": "Mr" + }, + "mrs": { + "message": "Mrs" + }, + "ms": { + "message": "Ms" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Expiration Month" + }, + "expirationYear": { + "message": "Expiration Year" + }, + "authenticatorKeyTotp": { + "message": "Authenticator Key (TOTP)" + }, + "folder": { + "message": "Folder" + }, + "newCustomField": { + "message": "New Custom Field" + }, + "value": { + "message": "Value" + }, + "dragToSort": { + "message": "Drag to sort" + }, + "cfTypeText": { + "message": "Text" + }, + "cfTypeHidden": { + "message": "Hidden" + }, + "cfTypeBoolean": { + "message": "Boolean" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Remove" + }, + "unassigned": { + "message": "Unassigned" + }, + "noneFolder": { + "message": "No Folder", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Add Folder" + }, + "editFolder": { + "message": "Edit Folder" + }, + "baseDomain": { + "message": "Base domain", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exact" + }, + "startsWith": { + "message": "Starts with" + }, + "regEx": { + "message": "Regular expression", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Match Detection", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Default match detection", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Never" + }, + "toggleVisibility": { + "message": "Toggle Visibility" + }, + "toggleCollapse": { + "message": "Toggle Collapse", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generate Password" + }, + "checkPassword": { + "message": "Check if password has been exposed." + }, + "passwordExposed": { + "message": "This password has been exposed $VALUE$ time(s) in data breaches. You should change it.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "This password was not found in any known data breaches. It should be safe to use." + }, + "save": { + "message": "Save" + }, + "cancel": { + "message": "Cancel" + }, + "canceled": { + "message": "Canceled" + }, + "close": { + "message": "Close" + }, + "delete": { + "message": "Delete" + }, + "favorite": { + "message": "Favorite" + }, + "unfavorite": { + "message": "Unfavorite" + }, + "edit": { + "message": "Edit" + }, + "searchCollection": { + "message": "Search Collection" + }, + "searchFolder": { + "message": "Search Folder" + }, + "searchFavorites": { + "message": "Search Favorites" + }, + "searchType": { + "message": "Search Type", + "description": "Search item type" + }, + "searchVault": { + "message": "Search Vault" + }, + "allItems": { + "message": "All Items" + }, + "favorites": { + "message": "Favorites" + }, + "types": { + "message": "Types" + }, + "typeLogin": { + "message": "Login" + }, + "typeCard": { + "message": "Card" + }, + "typeIdentity": { + "message": "Identity" + }, + "typeSecureNote": { + "message": "Secure Note" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "Folders" + }, + "collections": { + "message": "Collections" + }, + "firstName": { + "message": "First Name" + }, + "middleName": { + "message": "Middle Name" + }, + "lastName": { + "message": "Last Name" + }, + "fullName": { + "message": "Full Name" + }, + "address1": { + "message": "Address 1" + }, + "address2": { + "message": "Address 2" + }, + "address3": { + "message": "Address 3" + }, + "cityTown": { + "message": "City / Town" + }, + "stateProvince": { + "message": "State / Province" + }, + "zipPostalCode": { + "message": "Zip / Postal Code" + }, + "country": { + "message": "Country" + }, + "shared": { + "message": "Shared" + }, + "attachments": { + "message": "Attachments" + }, + "select": { + "message": "Select" + }, + "addItem": { + "message": "Add Item" + }, + "editItem": { + "message": "Edit Item" + }, + "viewItem": { + "message": "View Item" + }, + "ex": { + "message": "ex.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Other" + }, + "share": { + "message": "Share" + }, + "moveToOrganization": { + "message": "Move to Organization" + }, + "valueCopied": { + "message": "$VALUE$ copied", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Copy Value", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Copy Password", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Copy Username", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Copy Number", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copy Security Code", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Copy URI", + "description": "Copy URI to clipboard" + }, + "me": { + "message": "Me" + }, + "myVault": { + "message": "My Vault" + }, + "allVaults": { + "message": "All Vaults" + }, + "vault": { + "message": "Vault" + }, + "vaults": { + "message": "Vaults" + }, + "vaultItems": { + "message": "Vault Items" + }, + "moveSelectedToOrg": { + "message": "Move Selected to Organization" + }, + "deleteSelected": { + "message": "Delete Selected" + }, + "moveSelected": { + "message": "Move Selected" + }, + "selectAll": { + "message": "Select All" + }, + "unselectAll": { + "message": "Unselect All" + }, + "launch": { + "message": "Launch" + }, + "newAttachment": { + "message": "Add New Attachment" + }, + "deletedAttachment": { + "message": "Deleted attachment" + }, + "deleteAttachmentConfirmation": { + "message": "Are you sure you want to delete this attachment?" + }, + "attachmentSaved": { + "message": "The attachment has been saved." + }, + "file": { + "message": "File" + }, + "selectFile": { + "message": "Select a file." + }, + "maxFileSize": { + "message": "Maximum file size is 500 MB." + }, + "updateKey": { + "message": "You cannot use this feature until you update your encryption key." + }, + "addedItem": { + "message": "Added item" + }, + "editedItem": { + "message": "Edited item" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ moved to $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Selected items moved to $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Delete Item" + }, + "deleteFolder": { + "message": "Delete Folder" + }, + "deleteAttachment": { + "message": "Delete Attachment" + }, + "deleteItemConfirmation": { + "message": "Do you really want to send to the trash?" + }, + "deletedItem": { + "message": "Item sent to trash" + }, + "deletedItems": { + "message": "Items sent to trash" + }, + "movedItems": { + "message": "Moved items" + }, + "overwritePasswordConfirmation": { + "message": "Are you sure you want to overwrite the current password?" + }, + "editedFolder": { + "message": "Edited folder" + }, + "addedFolder": { + "message": "Added folder" + }, + "deleteFolderConfirmation": { + "message": "Are you sure you want to delete this folder?" + }, + "deletedFolder": { + "message": "Deleted folder" + }, + "loggedOut": { + "message": "Logged out" + }, + "loginExpired": { + "message": "Your login session has expired." + }, + "logOutConfirmation": { + "message": "Are you sure you want to log out?" + }, + "logOut": { + "message": "Log Out" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Yes" + }, + "no": { + "message": "No" + }, + "loginOrCreateNewAccount": { + "message": "Log in or create a new account to access your secure vault." + }, + "createAccount": { + "message": "Create Account" + }, + "logIn": { + "message": "Log In" + }, + "submit": { + "message": "Submit" + }, + "emailAddressDesc": { + "message": "You'll use your email address to log in." + }, + "yourName": { + "message": "Your Name" + }, + "yourNameDesc": { + "message": "What should we call you?" + }, + "masterPass": { + "message": "Master Password" + }, + "masterPassDesc": { + "message": "The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it." + }, + "masterPassHintDesc": { + "message": "A master password hint can help you remember your password if you forget it." + }, + "reTypeMasterPass": { + "message": "Re-type Master Password" + }, + "masterPassHint": { + "message": "Master Password Hint (optional)" + }, + "masterPassHintLabel": { + "message": "Master Password Hint" + }, + "settings": { + "message": "Settings" + }, + "passwordHint": { + "message": "Password Hint" + }, + "enterEmailToGetHint": { + "message": "Enter your account email address to receive your master password hint." + }, + "getMasterPasswordHint": { + "message": "Get master password hint" + }, + "emailRequired": { + "message": "Email address is required." + }, + "invalidEmail": { + "message": "Invalid email address." + }, + "masterPassRequired": { + "message": "Master password is required." + }, + "masterPassLength": { + "message": "Master password must be at least 8 characters long." + }, + "masterPassDoesntMatch": { + "message": "Master password confirmation does not match." + }, + "newAccountCreated": { + "message": "Your new account has been created! You may now log in." + }, + "masterPassSent": { + "message": "We've sent you an email with your master password hint." + }, + "unexpectedError": { + "message": "An unexpected error has occurred." + }, + "emailAddress": { + "message": "Email Address" + }, + "yourVaultIsLocked": { + "message": "Your vault is locked. Verify your master password to continue." + }, + "unlock": { + "message": "Unlock" + }, + "loggedInAsEmailOn": { + "message": "Logged in as $EMAIL$ on $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Invalid master password" + }, + "lockNow": { + "message": "Lock Now" + }, + "noItemsInList": { + "message": "There are no items to list." + }, + "noCollectionsInList": { + "message": "There are no collections to list." + }, + "noGroupsInList": { + "message": "There are no groups to list." + }, + "noUsersInList": { + "message": "There are no users to list." + }, + "noEventsInList": { + "message": "There are no events to list." + }, + "newOrganization": { + "message": "New Organization" + }, + "noOrganizationsList": { + "message": "You do not belong to any organizations. Organizations allow you to securely share items with other users." + }, + "versionNumber": { + "message": "Version $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Enter the 6 digit verification code from your authenticator app." + }, + "enterVerificationCodeEmail": { + "message": "Enter the 6 digit verification code that was emailed to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Verification email sent to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Remember me" + }, + "sendVerificationCodeEmailAgain": { + "message": "Send verification code email again" + }, + "useAnotherTwoStepMethod": { + "message": "Use another two-step login method" + }, + "insertYubiKey": { + "message": "Insert your YubiKey into your computer's USB port, then touch its button." + }, + "insertU2f": { + "message": "Insert your security key into your computer's USB port. If it has a button, touch it." + }, + "loginUnavailable": { + "message": "Login Unavailable" + }, + "noTwoStepProviders": { + "message": "This account has two-step login enabled, however, none of the configured two-step providers are supported by this web browser." + }, + "noTwoStepProviders2": { + "message": "Please use a supported web browser (such as Chrome) and/or add additional providers that are better supported across web browsers (such as an authenticator app)." + }, + "twoStepOptions": { + "message": "Two-step Login Options" + }, + "recoveryCodeDesc": { + "message": "Lost access to all of your two-factor providers? Use your recovery code to disable all two-factor providers from your account." + }, + "recoveryCodeTitle": { + "message": "Recovery Code" + }, + "authenticatorAppTitle": { + "message": "Authenticator App" + }, + "authenticatorAppDesc": { + "message": "Use an authenticator app (such as Authy or Google Authenticator) to generate time-based verification codes.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP Security Key" + }, + "yubiKeyDesc": { + "message": "Use a YubiKey to access your account. Works with YubiKey 4 series, 5 series, and NEO devices." + }, + "duoDesc": { + "message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verify with Duo Security for your organization using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Use any FIDO U2F enabled security key to access your account." + }, + "u2fTitle": { + "message": "FIDO U2F Security Key" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Verification codes will be emailed to you." + }, + "continue": { + "message": "Continue" + }, + "organization": { + "message": "Organization" + }, + "organizations": { + "message": "Organizations" + }, + "moveToOrgDesc": { + "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organization that you wish to move these items to. Moving to an organization transfers ownership of the items to that organization. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "Edit the collections that this item is being shared with. Only organization users with access to these collections will be able to see this item." + }, + "deleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to delete. Are you sure you want to delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Choose a folder that you would like to move the $COUNT$ selected item(s) to.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organization, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Verification Code (TOTP)" + }, + "copyVerificationCode": { + "message": "Copy Verification Code" + }, + "warning": { + "message": "Warning" + }, + "confirmVaultExport": { + "message": "Confirm Vault Export" + }, + "exportWarningDesc": { + "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "Export Vault" + }, + "fileFormat": { + "message": "File Format" + }, + "exportSuccess": { + "message": "Your vault data has been exported." + }, + "passwordGenerator": { + "message": "Password Generator" + }, + "minComplexityScore": { + "message": "Minimum Complexity Score" + }, + "minNumbers": { + "message": "Minimum Numbers" + }, + "minSpecial": { + "message": "Minimum Special", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Avoid Ambiguous Characters" + }, + "regeneratePassword": { + "message": "Regenerate Password" + }, + "length": { + "message": "Length" + }, + "uppercase": { + "message": "Uppercase (A-Z)", + "description": "Include uppercase letters in the password generator." + }, + "lowercase": { + "message": "Lowercase (a-z)", + "description": "Include lowercase letters in the password generator." + }, + "numbers": { + "message": "Numbers (0-9)" + }, + "specialCharacters": { + "message": "Special Characters (!@#$%^&*)" + }, + "numWords": { + "message": "Number of Words" + }, + "wordSeparator": { + "message": "Word Separator" + }, + "capitalize": { + "message": "Capitalize", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Include Number" + }, + "passwordHistory": { + "message": "Password History" + }, + "noPasswordsInList": { + "message": "There are no passwords to list." + }, + "clear": { + "message": "Clear", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Account Updated" + }, + "changeEmail": { + "message": "Change Email" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "New Email" + }, + "code": { + "message": "Code" + }, + "changeEmailDesc": { + "message": "We have emailed a verification code to $EMAIL$. Please check your email for this code and enter it below to finalize the email address change.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "emailChanged": { + "message": "Email Changed" + }, + "logBackIn": { + "message": "Please log back in." + }, + "logBackInOthersToo": { + "message": "Please log back in. If you are using other Bitwarden applications log out and back in to those as well." + }, + "changeMasterPassword": { + "message": "Change Master Password" + }, + "masterPasswordChanged": { + "message": "Master Password Changed" + }, + "currentMasterPass": { + "message": "Current Master Password" + }, + "newMasterPass": { + "message": "New Master Password" + }, + "confirmNewMasterPass": { + "message": "Confirm New Master Password" + }, + "encKeySettings": { + "message": "Encryption Key Settings" + }, + "kdfAlgorithm": { + "message": "KDF Algorithm" + }, + "kdfIterations": { + "message": "KDF Iterations" + }, + "kdfIterationsDesc": { + "message": "Higher KDF iterations can help protect your master password from being brute forced by an attacker. We recommend a value of $VALUE$ or more.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Setting your KDF iterations too high could result in poor performance when logging into (and unlocking) Bitwarden on devices with slower CPUs. We recommend that you increase the value in increments of $INCREMENT$ and then test all of your devices.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Change KDF" + }, + "encKeySettingsChanged": { + "message": "Encryption Key Settings Changed" + }, + "dangerZone": { + "message": "Danger Zone" + }, + "dangerZoneDesc": { + "message": "Careful, these actions are not reversible!" + }, + "deauthorizeSessions": { + "message": "Deauthorize Sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Concerned your account is logged in on another device? Proceed below to deauthorize all computers or devices that you have previously used. This security step is recommended if you previously used a public computer or accidentally saved your password on a device that isn't yours. This step will also clear all previously remembered two-step login sessions." + }, + "deauthorizeSessionsWarning": { + "message": "Proceeding will also log you out of your current session, requiring you to log back in. You will also be prompted for two-step login again, if enabled. Active sessions on other devices may continue to remain active for up to one hour." + }, + "sessionsDeauthorized": { + "message": "All Sessions Deauthorized" + }, + "purgeVault": { + "message": "Purge Vault" + }, + "purgedOrganizationVault": { + "message": "Purged organization vault." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Proceed below to delete all items and folders in your vault. Items that belong to an organization that you share with will not be deleted." + }, + "purgeOrgVaultDesc": { + "message": "Proceed below to delete all items in the organization's vault." + }, + "purgeVaultWarning": { + "message": "Purging your vault is permanent. It cannot be undone." + }, + "vaultPurged": { + "message": "Your vault has been purged." + }, + "deleteAccount": { + "message": "Delete Account" + }, + "deleteAccountDesc": { + "message": "Proceed below to delete your account and all associated data." + }, + "deleteAccountWarning": { + "message": "Deleting your account is permanent. It cannot be undone." + }, + "accountDeleted": { + "message": "Account Deleted" + }, + "accountDeletedDesc": { + "message": "Your account has been closed and all associated data has been deleted." + }, + "myAccount": { + "message": "My Account" + }, + "tools": { + "message": "Tools" + }, + "importData": { + "message": "Import Data" + }, + "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." + }, + "importSuccess": { + "message": "Data has been successfully imported into your vault." + }, + "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." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "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)" + } + } + }, + "options": { + "message": "Options" + }, + "preferences": { + "message": "Preferences" + }, + "preferencesDesc": { + "message": "Customize your web vault experience." + }, + "preferencesUpdated": { + "message": "Preferences updated" + }, + "language": { + "message": "Language" + }, + "languageDesc": { + "message": "Change the language used by the web vault." + }, + "disableIcons": { + "message": "Disable Website Icons" + }, + "disableIconsDesc": { + "message": "Website Icons provide a recognizable image next to each login item in your vault." + }, + "enableGravatars": { + "message": "Enable Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use avatar images loaded from gravatar.com." + }, + "enableFullWidth": { + "message": "Enable Full Width Layout", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Allow the web vault to expand the full width of the browser window." + }, + "default": { + "message": "Default" + }, + "domainRules": { + "message": "Domain Rules" + }, + "domainRulesDesc": { + "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + }, + "globalEqDomains": { + "message": "Global Equivalent Domains" + }, + "customEqDomains": { + "message": "Custom Equivalent Domains" + }, + "exclude": { + "message": "Exclude" + }, + "include": { + "message": "Include" + }, + "customize": { + "message": "Customize" + }, + "newCustomDomain": { + "message": "New Custom Domain" + }, + "newCustomDomainDesc": { + "message": "Enter a list of domains separated by commas. Only \"base\" domains are allowed. Do not enter subdomains. For example, enter \"google.com\" instead of \"www.google.com\". You can also enter \"androidapp://package.name\" to associate an android app with other website domains." + }, + "customDomainX": { + "message": "Custom Domain $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domains updated" + }, + "twoStepLogin": { + "message": "Two-step Login" + }, + "twoStepLoginDesc": { + "message": "Secure your account by requiring an additional step when logging in." + }, + "twoStepLoginOrganizationDesc": { + "message": "Require two-step login for your organization's users by configuring providers at the organization level." + }, + "twoStepLoginRecoveryWarning": { + "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (ex. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + }, + "viewRecoveryCode": { + "message": "View Recovery Code" + }, + "providers": { + "message": "Providers", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Enable" + }, + "enabled": { + "message": "Enabled" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium Membership" + }, + "premiumRequired": { + "message": "Premium Required" + }, + "premiumRequiredDesc": { + "message": "A premium membership is required to use this feature." + }, + "youHavePremiumAccess": { + "message": "You have premium access" + }, + "alreadyPremiumFromOrg": { + "message": "You already have access to premium features because of an organization you are a member of." + }, + "manage": { + "message": "Manage" + }, + "disable": { + "message": "Disable" + }, + "twoStepLoginProviderEnabled": { + "message": "This two-step login provider is enabled on your account." + }, + "twoStepLoginAuthDesc": { + "message": "Enter your master password to modify two-step login settings." + }, + "twoStepAuthenticatorDesc": { + "message": "Follow these steps to set up two-step login with an authenticator app:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Download a two-step authenticator app" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Need a two-step authenticator app? Download one of the following" + }, + "iosDevices": { + "message": "iOS devices" + }, + "androidDevices": { + "message": "Android devices" + }, + "windowsDevices": { + "message": "Windows devices" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "These apps are recommended, however, other authenticator apps will also work." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scan this QR code with your authenticator app" + }, + "key": { + "message": "Key" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Enter the resulting 6 digit verification code from the app" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app." + }, + "twoStepDisableDesc": { + "message": "Are you sure you want to disable this two-step login provider?" + }, + "twoStepDisabled": { + "message": "Two-step login provider disabled." + }, + "twoFactorYubikeyAdd": { + "message": "Add a new YubiKey to your account" + }, + "twoFactorYubikeyPlugIn": { + "message": "Plug the YubiKey into your computer's USB port." + }, + "twoFactorYubikeySelectKey": { + "message": "Select the first empty YubiKey input field below." + }, + "twoFactorYubikeyTouchButton": { + "message": "Touch the YubiKey's button." + }, + "twoFactorYubikeySaveForm": { + "message": "Save the form." + }, + "twoFactorYubikeyWarning": { + "message": "Due to platform limitations, YubiKeys cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when YubiKeys cannot be used. Supported platforms:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile apps on a device with NFC capabilities or a data port that can accept your YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC Support" + }, + "twoFactorYubikeySupportsNfc": { + "message": "One of my keys supports NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "If one of your YubiKeys supports NFC (such as a YubiKey NEO), you will be prompted on mobile devices whenever NFC availability is detected." + }, + "yubikeysUpdated": { + "message": "YubiKeys updated" + }, + "disableAllKeys": { + "message": "Disable All Keys" + }, + "twoFactorDuoDesc": { + "message": "Enter the Bitwarden application information from your Duo Admin panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration Key" + }, + "twoFactorDuoSecretKey": { + "message": "Secret Key" + }, + "twoFactorDuoApiHostname": { + "message": "API Hostname" + }, + "twoFactorEmailDesc": { + "message": "Follow these steps to set up two-step login with email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enter the email that you wish to receive verification codes" + }, + "twoFactorEmailEnterCode": { + "message": "Enter the resulting 6 digit verification code from the email" + }, + "sendEmail": { + "message": "Send Email" + }, + "twoFactorU2fAdd": { + "message": "Add a FIDO U2F security key to your account" + }, + "removeU2fConfirmation": { + "message": "Are you sure you want to remove this security key?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Read Key" + }, + "keyCompromised": { + "message": "Key is compromised." + }, + "twoFactorU2fGiveName": { + "message": "Give the security key a friendly name to identify it." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Plug the security key into your computer's USB port and click the \"Read Key\" button." + }, + "twoFactorU2fTouchButton": { + "message": "If the security key has a button, touch it." + }, + "twoFactorU2fSaveForm": { + "message": "Save the form." + }, + "twoFactorU2fWarning": { + "message": "Due to platform limitations, FIDO U2F cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when FIDO U2F cannot be used. Supported platforms:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorU2fWaiting": { + "message": "Waiting for you to touch the button on your security key" + }, + "twoFactorU2fClickSave": { + "message": "Click the \"Save\" button below to enable this security key for two-step login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Your Bitwarden two-step login recovery code" + }, + "twoFactorRecoveryNoCode": { + "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + }, + "printCode": { + "message": "Print Code", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Reports" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below.", + "description": "Vault Health Reports can be used to evaluate the security of your Bitwarden Personal or Organization Vault." + }, + "unsecuredWebsitesReport": { + "message": "Unsecure Websites" + }, + "unsecuredWebsitesReportDesc": { + "message": "URLs that start with http:// don’t use the best available encryption. Change the Login URIs for these accounts to https:// for safer browsing." + }, + "unsecuredWebsitesFound": { + "message": "Unsecured Websites Found" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Inactive Two-step Login" + }, + "inactive2faReportDesc": { + "message": "Two-step Login adds a layer of protection to your accounts. Turn on Two-Step Login using Bitwarden Authenticator for these accounts or use an alternative method." + }, + "inactive2faFound": { + "message": "Logins Without 2FA Found" + }, + "inactive2faFoundDesc": { + "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to 2fa.directory). To further protect these accounts, you should enable two-factor authentication.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No websites were found in your vault with a missing two-factor authentication configuration." + }, + "instructions": { + "message": "Instructions" + }, + "exposedPasswordsReport": { + "message": "Exposed Passwords" + }, + "exposedPasswordsReportDesc": { + "message": "Passwords exposed in a data breach are easy targets for attackers. Change these passwords to prevent potential break-ins." + }, + "exposedPasswordsFound": { + "message": "Exposed Passwords Found" + }, + "exposedPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No items in your vault have passwords that have been exposed in known data breaches." + }, + "checkExposedPasswords": { + "message": "Check Exposed Passwords" + }, + "exposedXTimes": { + "message": "Exposed $COUNT$ time(s)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Weak Passwords" + }, + "weakPasswordsReportDesc": { + "message": "Weak passwords can be easily guessed by attackers. Change these passwords to strong ones using the Password Generator." + }, + "weakPasswordsFound": { + "message": "Weak Passwords Found" + }, + "weakPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "No items in your vault have weak passwords." + }, + "reusedPasswordsReport": { + "message": "Reused Passwords" + }, + "reusedPasswordsReportDesc": { + "message": "Reusing passwords makes it easier for attackers to break into multiple accounts. Change these passwords so that each is unique." + }, + "reusedPasswordsFound": { + "message": "Reused Passwords Found" + }, + "reusedPasswordsFoundDesc": { + "message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "No logins in your vault have passwords that are being reused." + }, + "reusedXTimes": { + "message": "Reused $COUNT$ times", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Data Breach" + }, + "breachDesc": { + "message": "Breached accounts can expose your personal information. Secure breached accounts by enabling 2FA or creating a stronger password." + }, + "breachCheckUsernameEmail": { + "message": "Check any usernames or email addresses that you use." + }, + "checkBreaches": { + "message": "Check Breaches" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ was not found in any known data breaches.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Good News", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Breached Accounts Found" + }, + "compromisedData": { + "message": "Compromised data" + }, + "website": { + "message": "Website" + }, + "affectedUsers": { + "message": "Affected Users" + }, + "breachOccurred": { + "message": "Breach Occurred" + }, + "breachReported": { + "message": "Breach Reported" + }, + "reportError": { + "message": "An error occurred trying to load the report. Try again" + }, + "billing": { + "message": "Billing" + }, + "accountCredit": { + "message": "Account Credit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Account Balance", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Add Credit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Amount", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Added credit will appear on your account after the payment has been fully processed. Some payment methods are delayed and can take longer to process than others." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + }, + "goPremium": { + "message": "Go Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "You've upgraded to premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Upgrade your account to a premium membership and unlock some great additional features." + }, + "premiumSignUpStorage": { + "message": "1 GB encrypted storage for file attachments." + }, + "premiumSignUpTwoStep": { + "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + }, + "premiumSignUpTotp": { + "message": "TOTP verification code (2FA) generator for logins in your vault." + }, + "premiumSignUpSupport": { + "message": "Priority customer support." + }, + "premiumSignUpFuture": { + "message": "All future premium features. More coming soon!" + }, + "premiumPrice": { + "message": "All for just $PRICE$ /year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Addons" + }, + "premiumAccess": { + "message": "Premium Access" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organization for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Additional Storage (GB)" + }, + "additionalStorageGbDesc": { + "message": "# of additional GB" + }, + "additionalStorageIntervalDesc": { + "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Summary" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "year" + }, + "month": { + "message": "month" + }, + "monthAbbr": { + "message": "mo.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Your payment method will be charged immediately and then on a recurring basis each year. You may cancel at any time." + }, + "paymentCharged": { + "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Your plan comes with a free 7 day trial. Your payment method will not be charged until the trial has ended. You may cancel at any time." + }, + "paymentInformation": { + "message": "Payment Information" + }, + "billingInformation": { + "message": "Billing Information" + }, + "creditCard": { + "message": "Credit Card" + }, + "paypalClickSubmit": { + "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + }, + "cancelSubscription": { + "message": "Cancel Subscription" + }, + "subscriptionCanceled": { + "message": "The subscription has been canceled." + }, + "pendingCancellation": { + "message": "Pending Cancellation" + }, + "subscriptionPendingCanceled": { + "message": "The subscription has been marked for cancellation at the end of the current billing period." + }, + "reinstateSubscription": { + "message": "Reinstate Subscription" + }, + "reinstateConfirmation": { + "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + }, + "reinstated": { + "message": "The subscription has been reinstated." + }, + "cancelConfirmation": { + "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + }, + "canceledSubscription": { + "message": "The subscription has been canceled." + }, + "neverExpires": { + "message": "Never Expires" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Next Charge" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "Download License" + }, + "updateLicense": { + "message": "Update License" + }, + "updatedLicense": { + "message": "Updated license" + }, + "manageSubscription": { + "message": "Manage Subscription" + }, + "storage": { + "message": "Storage" + }, + "addStorage": { + "message": "Add Storage" + }, + "removeStorage": { + "message": "Remove Storage" + }, + "subscriptionStorage": { + "message": "Your subscription has a total of $MAX_STORAGE$ GB of encrypted file storage. You are currently using $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Payment Method" + }, + "noPaymentMethod": { + "message": "No payment method on file." + }, + "addPaymentMethod": { + "message": "Add Payment Method" + }, + "changePaymentMethod": { + "message": "Change Payment Method" + }, + "invoices": { + "message": "Invoices" + }, + "noInvoices": { + "message": "No invoices." + }, + "paid": { + "message": "Paid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Unpaid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transactions", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "No transactions." + }, + "chargeNoun": { + "message": "Charge", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Refund", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Any charges will appear on your statement as $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB of Storage To Add" + }, + "gbStorageRemove": { + "message": "GB of Storage To Remove" + }, + "storageAddNote": { + "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "storageRemoveNote": { + "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedStorage": { + "message": "Adjusted $AMOUNT$ GB of storage.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contact Customer Support" + }, + "updatedPaymentMethod": { + "message": "Updated payment method." + }, + "purchasePremium": { + "message": "Purchase Premium" + }, + "licenseFile": { + "message": "License File" + }, + "licenseFileDesc": { + "message": "Your license file will be named something like $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "To upgrade your account to a premium membership you need to upload a valid license file." + }, + "uploadLicenseFileOrg": { + "message": "To create an on-premises hosted organization you need to upload a valid license file." + }, + "accountEmailMustBeVerified": { + "message": "Your account's email address must be verified." + }, + "newOrganizationDesc": { + "message": "Organizations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company." + }, + "generalInformation": { + "message": "General Information" + }, + "organizationName": { + "message": "Organization Name" + }, + "accountOwnedBusiness": { + "message": "This account is owned by a business." + }, + "billingEmail": { + "message": "Billing Email" + }, + "businessName": { + "message": "Business Name" + }, + "chooseYourPlan": { + "message": "Choose Your Plan" + }, + "users": { + "message": "Users" + }, + "userSeats": { + "message": "User Seats" + }, + "additionalUserSeats": { + "message": "Additional User Seats" + }, + "userSeatsDesc": { + "message": "# of user seats" + }, + "userSeatsAdditionalDesc": { + "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "How many user seats do you need? You can also add additional seats later if needed." + }, + "planNameFree": { + "message": "Free", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing or personal users to share with $COUNT$ other user.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Families" + }, + "planDescFamilies": { + "message": "For personal use, to share with family & friends." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "For businesses and other team organizations." + }, + "planNameEnterprise": { + "message": "Enterprise" + }, + "planDescEnterprise": { + "message": "For businesses and other large organizations." + }, + "freeForever": { + "message": "Free Forever" + }, + "includesXUsers": { + "message": "includes $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Additional Users" + }, + "costPerUser": { + "message": "$COST$ per user", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limited to $COUNT$ users (including you)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limited to $COUNT$ collections", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Add and share with up to $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Add and share with unlimited users" + }, + "createUnlimitedCollections": { + "message": "Create unlimited Collections" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ encrypted file storage", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "On-premise hosting (optional)" + }, + "usersGetPremium": { + "message": "Users get access to Premium Features" + }, + "controlAccessWithGroups": { + "message": "Control user access with Groups" + }, + "syncUsersFromDirectory": { + "message": "Sync your users and Groups from a directory" + }, + "trackAuditLogs": { + "message": "Track user actions with audit logs" + }, + "enforce2faDuo": { + "message": "Enforce 2FA with Duo" + }, + "priorityCustomerSupport": { + "message": "Priority customer support" + }, + "xDayFreeTrial": { + "message": "$COUNT$ day free trial, cancel anytime", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Monthly" + }, + "annually": { + "message": "Annually" + }, + "basePrice": { + "message": "Base Price" + }, + "organizationCreated": { + "message": "Organization Created" + }, + "organizationReadyToGo": { + "message": "Your new organization is ready to go!" + }, + "organizationUpgraded": { + "message": "Your organization has been upgraded." + }, + "leave": { + "message": "Leave" + }, + "leaveOrganizationConfirmation": { + "message": "Are you sure you want to leave this organization?" + }, + "leftOrganization": { + "message": "You have left the organization." + }, + "defaultCollection": { + "message": "Default Collection" + }, + "getHelp": { + "message": "Get Help" + }, + "getApps": { + "message": "Get the Apps" + }, + "loggedInAs": { + "message": "Logged in as" + }, + "eventLogs": { + "message": "Event Logs" + }, + "people": { + "message": "People" + }, + "policies": { + "message": "Policies" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Edit Policy" + }, + "groups": { + "message": "Groups" + }, + "newGroup": { + "message": "New Group" + }, + "addGroup": { + "message": "Add Group" + }, + "editGroup": { + "message": "Edit Group" + }, + "deleteGroupConfirmation": { + "message": "Are you sure you want to delete this group?" + }, + "removeUserConfirmation": { + "message": "Are you sure you want to remove this user?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "External Id" + }, + "externalIdDesc": { + "message": "The external id can be used as a reference or to link this resource to an external system such as a user directory." + }, + "accessControl": { + "message": "Access Control" + }, + "groupAccessAllItems": { + "message": "This group can access and modify all items." + }, + "groupAccessSelectedCollections": { + "message": "This group can access only the selected collections." + }, + "readOnly": { + "message": "Read Only" + }, + "newCollection": { + "message": "New Collection" + }, + "addCollection": { + "message": "Add Collection" + }, + "editCollection": { + "message": "Edit Collection" + }, + "deleteCollectionConfirmation": { + "message": "Are you sure you want to delete this collection?" + }, + "editUser": { + "message": "Edit User" + }, + "inviteUser": { + "message": "Invite User" + }, + "inviteUserDesc": { + "message": "Invite a new user to your organization by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "inviteMultipleEmailDesc": { + "message": "You can invite up to $COUNT$ users at a time by comma separating a list of email addresses.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "This user is using two-step login to protect their account." + }, + "userAccessAllItems": { + "message": "This user can access and modify all items." + }, + "userAccessSelectedCollections": { + "message": "This user can access only the selected collections." + }, + "search": { + "message": "Search" + }, + "invited": { + "message": "Invited" + }, + "accepted": { + "message": "Accepted" + }, + "confirmed": { + "message": "Confirmed" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Owner" + }, + "ownerDesc": { + "message": "The highest access user that can manage all aspects of your organization." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admins can access and manage all items, collections and users in your organization." + }, + "user": { + "message": "User" + }, + "userDesc": { + "message": "A regular user with access to assigned collections in your organization." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managers can access and manage assigned collections in your organization." + }, + "all": { + "message": "All" + }, + "refresh": { + "message": "Refresh" + }, + "timestamp": { + "message": "Timestamp" + }, + "event": { + "message": "Event" + }, + "unknown": { + "message": "Unknown" + }, + "loadMore": { + "message": "Load More" + }, + "mobile": { + "message": "Mobile", + "description": "Mobile app" + }, + "extension": { + "message": "Extension", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Web Vault" + }, + "loggedIn": { + "message": "Logged in." + }, + "changedPassword": { + "message": "Changed account password." + }, + "enabledUpdated2fa": { + "message": "Enabled/updated two-step login." + }, + "disabled2fa": { + "message": "Disabled two-step login." + }, + "recovered2fa": { + "message": "Recovered account from two-step login." + }, + "failedLogin": { + "message": "Login attempt failed with incorrect password." + }, + "failedLogin2fa": { + "message": "Login attempt failed with incorrect two-step login." + }, + "exportedVault": { + "message": "Exported vault." + }, + "exportedOrganizationVault": { + "message": "Exported organization vault." + }, + "editedOrgSettings": { + "message": "Edited organization settings." + }, + "createdItemId": { + "message": "Created item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Edited item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Sent item $ID$ to trash.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Viewed item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Viewed password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Viewed hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Viewed security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Copied password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Copied hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Copied security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Auto-filled item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Created collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Edited collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Deleted collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Edited policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Created group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Edited group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Deleted group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Removed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Created attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Deleted attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Edited collections for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Invited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Confirmed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Edited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Edited groups for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Device" + }, + "view": { + "message": "View" + }, + "invalidDateRange": { + "message": "Invalid date range." + }, + "errorOccurred": { + "message": "An error has occurred." + }, + "userAccess": { + "message": "User Access" + }, + "userType": { + "message": "User Type" + }, + "groupAccess": { + "message": "Group Access" + }, + "groupAccessUserDesc": { + "message": "Edit the groups that this user belongs to." + }, + "invitedUsers": { + "message": "Invited user(s)." + }, + "resendInvitation": { + "message": "Resend Invitation" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ has been reinvited.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirm" + }, + "confirmUser": { + "message": "Confirm User" + }, + "hasBeenConfirmed": { + "message": "$USER$ has been confirmed.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirm Users" + }, + "usersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organization until they are confirmed." + }, + "startDate": { + "message": "Start Date" + }, + "endDate": { + "message": "End Date" + }, + "verifyEmail": { + "message": "Verify Email" + }, + "verifyEmailDesc": { + "message": "Verify your account's email address to unlock access to all features." + }, + "verifyEmailFirst": { + "message": "Your account's email address first must be verified." + }, + "checkInboxForVerification": { + "message": "Check your email inbox for a verification link." + }, + "emailVerified": { + "message": "Your email has been verified." + }, + "emailVerifiedFailed": { + "message": "Unable to verify your email. Try sending a new verification email." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "Update Browser" + }, + "updateBrowserDesc": { + "message": "You are using an unsupported web browser. The web vault may not function properly." + }, + "joinOrganization": { + "message": "Join Organization" + }, + "joinOrganizationDesc": { + "message": "You've been invited to join the organization listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "inviteAccepted": { + "message": "Invitation Accepted" + }, + "inviteAcceptedDesc": { + "message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens." + }, + "inviteAcceptFailed": { + "message": "Unable to accept invitation. Ask an organization admin to send a new invitation." + }, + "inviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Remember email" + }, + "recoverAccountTwoStepDesc": { + "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + }, + "recoverAccountTwoStep": { + "message": "Recover Account Two-Step Login" + }, + "twoStepRecoverDisabled": { + "message": "Two-step login has been disabled on your account." + }, + "learnMore": { + "message": "Learn more" + }, + "deleteRecoverDesc": { + "message": "Enter your email address below to recover and delete your account." + }, + "deleteRecoverEmailSent": { + "message": "If your account exists, we've sent you an email with further instructions." + }, + "deleteRecoverConfirmDesc": { + "message": "You have requested to delete your Bitwarden account. Click the button below to confirm." + }, + "myOrganization": { + "message": "My Organization" + }, + "deleteOrganization": { + "message": "Delete Organization" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organization Deleted" + }, + "organizationDeletedDesc": { + "message": "The organization and all associated data has been deleted." + }, + "organizationUpdated": { + "message": "Organization updated" + }, + "taxInformation": { + "message": "Tax Information" + }, + "taxInformationDesc": { + "message": "For customers within the US, ZIP code is required to satisfy sales tax requirements, for other countries you may optionally provide a tax identification number (VAT/GST) and/or address to appear on your invoices." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Upgrade Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade your account to another plan by providing the information below. Please ensure that you have an active payment method added to the account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Invoice #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "View Invoice" + }, + "downloadInvoice": { + "message": "Download Invoice" + }, + "verifyBankAccount": { + "message": "Verify Bank Account" + }, + "verifyBankAccountDesc": { + "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." + }, + "verifyBankAccountInitialDesc": { + "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organization's billing page to verify the bank account." + }, + "verifyBankAccountFailureWarning": { + "message": "Failure to verify the bank account will result in a missed payment and your subscription being disabled." + }, + "verifiedBankAccount": { + "message": "Bank account has been verified." + }, + "bankAccount": { + "message": "Bank Account" + }, + "amountX": { + "message": "Amount $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Account Number" + }, + "accountHolderName": { + "message": "Account Holder Name" + }, + "bankAccountType": { + "message": "Account Type" + }, + "bankAccountTypeCompany": { + "message": "Company (Business)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Personal)" + }, + "enterInstallationId": { + "message": "Enter your installation id" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Add Seats", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remove Seats", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Your subscription allows for a total of $COUNT$ users.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seats To Add" + }, + "seatsToRemove": { + "message": "Seats To Remove" + }, + "seatsAddNote": { + "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "seatsRemoveNote": { + "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedSeats": { + "message": "Adjusted $AMOUNT$ user seats.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Key Updated" + }, + "updateKeyTitle": { + "message": "Update Key" + }, + "updateEncryptionKey": { + "message": "Update Encryption Key" + }, + "updateEncryptionKeyShortDesc": { + "message": "You are currently using an outdated encryption scheme." + }, + "updateEncryptionKeyDesc": { + "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, however, it may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "Subscription" + }, + "loading": { + "message": "Loading" + }, + "upgrade": { + "message": "Upgrade" + }, + "upgradeOrganization": { + "message": "Upgrade Organization" + }, + "upgradeOrganizationDesc": { + "message": "This feature is not available for free organizations. Switch to a paid plan to unlock more features." + }, + "createOrganizationStep1": { + "message": "Create Organization: Step 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Before creating your organization, you first need to create a free personal account." + }, + "refunded": { + "message": "Refunded" + }, + "nothingSelected": { + "message": "You have not selected anything." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." + }, + "termsOfService": { + "message": "Terms of Service" + }, + "privacyPolicy": { + "message": "Privacy Policy" + }, + "filters": { + "message": "Filters" + }, + "vaultTimeout": { + "message": "Vault Timeout" + }, + "vaultTimeoutDesc": { + "message": "Choose when your vault will timeout and perform the selected action." + }, + "oneMinute": { + "message": "1 minute" + }, + "fiveMinutes": { + "message": "5 minutes" + }, + "fifteenMinutes": { + "message": "15 minutes" + }, + "thirtyMinutes": { + "message": "30 minutes" + }, + "oneHour": { + "message": "1 hour" + }, + "fourHours": { + "message": "4 hours" + }, + "onRefresh": { + "message": "On Browser Refresh" + }, + "dateUpdated": { + "message": "Updated", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Password Updated", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organization is disabled." + }, + "licenseIsExpired": { + "message": "License is expired." + }, + "updatedUsers": { + "message": "Updated users" + }, + "selected": { + "message": "Selected" + }, + "ownership": { + "message": "Ownership" + }, + "whoOwnsThisItem": { + "message": "Who owns this item?" + }, + "strong": { + "message": "Strong", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Good", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Weak", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Very Weak", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Weak Master Password" + }, + "weakMasterPasswordDesc": { + "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + }, + "rotateAccountEncKey": { + "message": "Also rotate my account's encryption key" + }, + "rotateEncKeyTitle": { + "message": "Rotate Encryption Key" + }, + "rotateEncKeyConfirmation": { + "message": "Are you sure you want to rotate your account's encryption key?" + }, + "attachmentsNeedFix": { + "message": "This item has old file attachments that need to be fixed." + }, + "attachmentFixDesc": { + "message": "This is an old file attachment the needs to be fixed. Click to learn more." + }, + "fix": { + "message": "Fix", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key." + }, + "yourAccountsFingerprint": { + "message": "Your account's fingerprint phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Never prompt to verify fingerprint phrases for invited users (Not recommended)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Free", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API Key" + }, + "apiKeyDesc": { + "message": "Your API key can be used to authenticate to the Bitwarden public API." + }, + "apiKeyRotateDesc": { + "message": "Rotating the API key will invalidate the previous key. You can rotate your API key if you believe that the current key is no longer safe to use." + }, + "apiKeyWarning": { + "message": "Your API key has full access to the organization. It should be kept secret." + }, + "userApiKeyDesc": { + "message": "Your API key can be used to authenticate in the Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 Client Credentials", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "View API Key" + }, + "rotateApiKey": { + "message": "Rotate API Key" + }, + "selectOneCollection": { + "message": "You must select at least one collection." + }, + "couldNotChargeCardPayInvoice": { + "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + }, + "inAppPurchase": { + "message": "In-app Purchase" + }, + "cannotPerformInAppPurchase": { + "message": "You cannot perform this action while using an in-app purchase payment method." + }, + "manageSubscriptionFromStore": { + "message": "You must manage your subscription from the store where your in-app purchase was made." + }, + "minLength": { + "message": "Minimum Length" + }, + "clone": { + "message": "Clone" + }, + "masterPassPolicyDesc": { + "message": "Set minimum requirements for master password strength." + }, + "twoStepLoginPolicyDesc": { + "message": "Require users to set up two-step login on their personal accounts." + }, + "twoStepLoginPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and do not have two-step login enabled for their personal account will be removed from the organization and will receive an email notifying them about the change." + }, + "twoStepLoginPolicyUserWarning": { + "message": "You are a member of an organization that requires two-step login to be enabled on your user account. If you disable all two-step login providers you will be automatically removed from these organizations." + }, + "passwordGeneratorPolicyDesc": { + "message": "Set minimum requirements for password generator configuration." + }, + "passwordGeneratorPolicyInEffect": { + "message": "One or more organization policies are affecting your generator settings." + }, + "masterPasswordPolicyInEffect": { + "message": "One or more organization policies require your master password to meet the following requirements:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum complexity score of $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum length of $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contain one or more uppercase characters" + }, + "policyInEffectLowercase": { + "message": "Contain one or more lowercase characters" + }, + "policyInEffectNumbers": { + "message": "Contain one or more numbers" + }, + "policyInEffectSpecial": { + "message": "Contain one or more of the following special characters $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Your new master password does not meet the policy requirements." + }, + "minimumNumberOfWords": { + "message": "Minimum Number of Words" + }, + "defaultType": { + "message": "Default Type" + }, + "userPreference": { + "message": "User Preference" + }, + "vaultTimeoutAction": { + "message": "Vault Timeout Action" + }, + "vaultTimeoutActionLockDesc": { + "message": "A locked vault requires that you re-enter your master password to access it again." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "A logged out vault requires that you re-authenticate to access it again." + }, + "lock": { + "message": "Lock", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Trash", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Search Trash" + }, + "permanentlyDelete": { + "message": "Permanently Delete" + }, + "permanentlyDeleteSelected": { + "message": "Permanently Delete Selected" + }, + "permanentlyDeleteItem": { + "message": "Permanently Delete Item" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Are you sure you want to permanently delete this item?" + }, + "permanentlyDeletedItem": { + "message": "Permanently Deleted item" + }, + "permanentlyDeletedItems": { + "message": "Permanently Deleted items" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Permanently Deleted item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restore" + }, + "restoreSelected": { + "message": "Restore Selected" + }, + "restoreItem": { + "message": "Restore Item" + }, + "restoredItem": { + "message": "Restored Item" + }, + "restoredItems": { + "message": "Restored Items" + }, + "restoreItemConfirmation": { + "message": "Are you sure you want to restore this item?" + }, + "restoreItems": { + "message": "Restore items" + }, + "restoreSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Restored item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout Action Confirmation" + }, + "hidePasswords": { + "message": "Hide Passwords" + }, + "countryPostalCodeRequiredDesc": { + "message": "We require this information for calculating sales tax and financial reporting only." + }, + "includeVAT": { + "message": "Include VAT/GST Information (optional)" + }, + "taxIdNumber": { + "message": "VAT/GST Tax ID" + }, + "taxInfoUpdated": { + "message": "Tax information updated." + }, + "setMasterPassword": { + "message": "Set Master Password" + }, + "ssoCompleteRegistration": { + "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + }, + "identifier": { + "message": "Identifier" + }, + "organizationIdentifier": { + "message": "Organization Identifier" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Log in using your organization's single sign-on portal. Please enter your organization's identifier to begin." + }, + "enterpriseSingleSignOn": { + "message": "Enterprise Single Sign-On" + }, + "ssoHandOff": { + "message": "You may now close this tab and continue in the extension." + }, + "includeAllTeamsFeatures": { + "message": "All Teams features, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO Authentication via SAML2.0 and OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Enterprise Policies" + }, + "ssoValidationFailed": { + "message": "SSO Validation Failed" + }, + "ssoIdentifierRequired": { + "message": "Organization Identifier is required." + }, + "unlinkSso": { + "message": "Unlink SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Link SSO" + }, + "singleOrg": { + "message": "Single Organization" + }, + "singleOrgDesc": { + "message": "Restrict users from being able to join any other organizations." + }, + "singleOrgBlockCreateMessage": { + "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + }, + "singleOrgPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + }, + "requireSso": { + "message": "Single Sign-On Authentication" + }, + "requireSsoPolicyDesc": { + "message": "Require users to log in with the Enterprise Single Sign-On method." + }, + "prerequisite": { + "message": "Prerequisite" + }, + "requireSsoPolicyReq": { + "message": "The Single Organization enterprise policy must be enabled before activating this policy." + }, + "requireSsoPolicyReqError": { + "message": "Single Organization policy not enabled." + }, + "requireSsoExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "sendTypeFile": { + "message": "File" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Create New Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edit Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Created Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Edited Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Deleted Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Delete Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Are you sure you want to delete this Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "What type of Send is this?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Deletion Date" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Expiration Date" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximum Access Count" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Current Access Count" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Disabled" + }, + "sendLink": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copy Send Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remove Password" + }, + "removedPassword": { + "message": "Removed Password" + }, + "removePasswordConfirmation": { + "message": "Are you sure you want to remove the password?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "All Sends" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "expired": { + "message": "Expired" + }, + "searchSends": { + "message": "Search Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "This Send is protected with a password. Please type the password below to continue.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Download File" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "There are no Sends to list.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Emergency Access" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Request Access" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approve" + }, + "reject": { + "message": "Reject" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Disable Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "Estimated tax" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Manage All Collections" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Manage Groups" + }, + "managePolicies": { + "message": "Manage Policies" + }, + "manageSso": { + "message": "Manage SSO" + }, + "manageUsers": { + "message": "Manage Users" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organization users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Learn more about", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Learn more", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "try it now", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "sign up", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "to try it today.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organization policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organization administrators to change your master password" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you remove an offer or are removed from the sponsoring organization, your Families sponsorship will expire at the next renewal date." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families plan sponsorship will expire at the end of the billing period. You will not be able to redeem a new sponsorship offer until the existing one expires. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorError": { + "message": "Key Connector error: make sure Key Connector is available and working correctly." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "viewBillingSyncToken": { + "message": "View Billing Sync Token" + }, + "generateBillingSyncToken": { + "message": "Generate Billing Sync Token" + }, + "copyPasteBillingSync": { + "message": "Copy and paste this token into the Billing Sync settings of your self-hosted organization." + }, + "billingSyncCanAccess": { + "message": "Your Billing Sync token can access and edit this organization's subscription settings." + }, + "manageBillingSync": { + "message": "Manage Billing Sync" + }, + "setUpBillingSync": { + "message": "Set Up Billing Sync" + }, + "generateToken": { + "message": "Generate Token" + }, + "rotateToken": { + "message": "Rotate Token" + }, + "rotateBillingSyncTokenWarning": { + "message": "If you proceed, you will need to re-setup billing sync on your self-hosted server." + }, + "rotateBillingSyncTokenTitle": { + "message": "Rotating the Billing Sync Token will invalidate the previous token." + }, + "selfHostingTitle": { + "message": "Self-Hosting" + }, + "selfHostingEnterpriseOrganizationSectionCopy": { + "message": "To set-up your organization on your own server, you will need to upload your license file. To support Free Families plans and advanced billing capabilities for your self-hosted organization, you will need to set up billing sync." + }, + "billingSyncApiKeyRotated": { + "message": "Token rotated." + }, + "billingSync": { + "message": "Billing Sync" + }, + "billingSyncDesc": { + "message": "Billing Sync provides Free Families plans for members and advanced billing capabilities by linking your self-hosted Bitwarden to the Bitwarden cloud server." + }, + "billingSyncKeyDesc": { + "message": "A Billing Sync Token from your cloud organization's subscription settings is required to complete this form." + }, + "billingSyncKey": { + "message": "Billing Sync Token" + }, + "active": { + "message": "Active" + }, + "inactive": { + "message": "Inactive" + }, + "sentAwaitingSync": { + "message": "Sent (Awaiting Sync)" + }, + "sent": { + "message": "Sent" + }, + "requestRemoved": { + "message": "Removed (Awaiting Sync)" + }, + "requested": { + "message": "Requested" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "accessDenied": { + "message": "Access Denied. You do not have permission to view this page." + }, + "masterPassword": { + "message": "Master Password" + }, + "security": { + "message": "Security" + }, + "keys": { + "message": "Keys" + }, + "billingHistory": { + "message": "Billing History" + }, + "backToReports": { + "message": "Back to Reports" + }, + "organizationPicker": { + "message": "Organization picker" + }, + "currentOrganization": { + "message": "Current organization", + "description": "This is used by screen readers to indicate the organization that is currently being shown to the user." + }, + "accountSettings": { + "message": "Account Settings" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random", + "description": "Generates domain-based username using random letters" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + }, + "unknownCipher": { + "message": "Unknown Item, you may need to request permission to access this item." + }, + "cannotSponsorSelf": { + "message": "You cannot redeem for the active account. Enter a different email." + }, + "revokeWhenExpired": { + "message": "Expires $DATE$", + "placeholders": { + "date": { + "content": "$1", + "example": "12/31/2020" + } + } + }, + "awaitingSyncSingular": { + "message": "Token rotated $DAYS$ day ago. Update the billing sync token in your self-hosted organization settings.", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "awaitingSyncPlural": { + "message": "Token rotated $DAYS$ days ago. Update the billing sync token in your self-hosted organization settings.", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "lastSync": { + "message": "Last Sync", + "Description": "Used as a prefix to indicate the last time a sync occured. Example \"Last sync 1968-11-16 00:00:00\"" + }, + "sponsorshipsSynced": { + "message": "Self-hosted sponsorships synced." + }, + "billingManagedByProvider": { + "message": "Managed by $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "Managed Services Company" + } + } + }, + "billingContactProviderForAssistance": { + "message": "Please reach out to them for further assistance", + "description": "This text is displayed if an organization's billing is managed by a Provider. It tells the user to contact the Provider for assistance." + }, + "forwardedEmail": { + "message": "Forwarded Email Alias" + }, + "forwardedEmailDesc": { + "message": "Generate an email alias with an external forwarding service." + }, + "hostname": { + "message": "Hostname", + "description": "Part of a URL." + }, + "apiAccessToken": { + "message": "API Access Token" + } +} diff --git a/apps/web/src/locales/en_GB/messages.json b/apps/web/src/locales/en_GB/messages.json new file mode 100644 index 0000000000..e41f5ebab4 --- /dev/null +++ b/apps/web/src/locales/en_GB/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Web Vault", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "What type of item is this?" + }, + "name": { + "message": "Name" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "New URI" + }, + "username": { + "message": "Username" + }, + "password": { + "message": "Password" + }, + "newPassword": { + "message": "New password" + }, + "passphrase": { + "message": "Passphrase" + }, + "notes": { + "message": "Notes" + }, + "customFields": { + "message": "Custom fields" + }, + "cardholderName": { + "message": "Cardholder name" + }, + "number": { + "message": "Number" + }, + "brand": { + "message": "Brand" + }, + "expiration": { + "message": "Expiration" + }, + "securityCode": { + "message": "Security code (CVV)" + }, + "identityName": { + "message": "Identity name" + }, + "company": { + "message": "Company" + }, + "ssn": { + "message": "National Insurance number" + }, + "passportNumber": { + "message": "Passport number" + }, + "licenseNumber": { + "message": "Licence number" + }, + "email": { + "message": "Email" + }, + "phone": { + "message": "Phone" + }, + "january": { + "message": "January" + }, + "february": { + "message": "February" + }, + "march": { + "message": "March" + }, + "april": { + "message": "April" + }, + "may": { + "message": "May" + }, + "june": { + "message": "June" + }, + "july": { + "message": "July" + }, + "august": { + "message": "August" + }, + "september": { + "message": "September" + }, + "october": { + "message": "October" + }, + "november": { + "message": "November" + }, + "december": { + "message": "December" + }, + "title": { + "message": "Title" + }, + "mr": { + "message": "Mr" + }, + "mrs": { + "message": "Mrs" + }, + "ms": { + "message": "Ms" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Expiration month" + }, + "expirationYear": { + "message": "Expiration year" + }, + "authenticatorKeyTotp": { + "message": "Authenticator key (TOTP)" + }, + "folder": { + "message": "Folder" + }, + "newCustomField": { + "message": "New custom field" + }, + "value": { + "message": "Value" + }, + "dragToSort": { + "message": "Drag to sort" + }, + "cfTypeText": { + "message": "Text" + }, + "cfTypeHidden": { + "message": "Hidden" + }, + "cfTypeBoolean": { + "message": "Boolean" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Remove" + }, + "unassigned": { + "message": "Unassigned" + }, + "noneFolder": { + "message": "No folder", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Add folder" + }, + "editFolder": { + "message": "Edit folder" + }, + "baseDomain": { + "message": "Base domain", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exact" + }, + "startsWith": { + "message": "Starts with" + }, + "regEx": { + "message": "Regular expression", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Match detection", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Default match detection", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Never" + }, + "toggleVisibility": { + "message": "Toggle visibility" + }, + "toggleCollapse": { + "message": "Toggle collapse", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generate password" + }, + "checkPassword": { + "message": "Check if password has been exposed." + }, + "passwordExposed": { + "message": "This password has been exposed $VALUE$ time(s) in data breaches. You should change it.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "This password was not found in any known data breaches. It should be safe to use." + }, + "save": { + "message": "Save" + }, + "cancel": { + "message": "Cancel" + }, + "canceled": { + "message": "Cancelled" + }, + "close": { + "message": "Close" + }, + "delete": { + "message": "Delete" + }, + "favorite": { + "message": "Favourite" + }, + "unfavorite": { + "message": "Unfavourite" + }, + "edit": { + "message": "Edit" + }, + "searchCollection": { + "message": "Search collection" + }, + "searchFolder": { + "message": "Search folder" + }, + "searchFavorites": { + "message": "Search favourites" + }, + "searchType": { + "message": "Search type", + "description": "Search item type" + }, + "searchVault": { + "message": "Search vault" + }, + "allItems": { + "message": "All items" + }, + "favorites": { + "message": "Favourites" + }, + "types": { + "message": "Types" + }, + "typeLogin": { + "message": "Login" + }, + "typeCard": { + "message": "Card" + }, + "typeIdentity": { + "message": "Identity" + }, + "typeSecureNote": { + "message": "Secure note" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "Folders" + }, + "collections": { + "message": "Collections" + }, + "firstName": { + "message": "First name" + }, + "middleName": { + "message": "Middle name" + }, + "lastName": { + "message": "Last name" + }, + "fullName": { + "message": "Full Name" + }, + "address1": { + "message": "Address 1" + }, + "address2": { + "message": "Address 2" + }, + "address3": { + "message": "Address 3" + }, + "cityTown": { + "message": "City / town" + }, + "stateProvince": { + "message": "County" + }, + "zipPostalCode": { + "message": "Postcode" + }, + "country": { + "message": "Country" + }, + "shared": { + "message": "Shared" + }, + "attachments": { + "message": "Attachments" + }, + "select": { + "message": "Select" + }, + "addItem": { + "message": "Add item" + }, + "editItem": { + "message": "Edit item" + }, + "viewItem": { + "message": "View Item" + }, + "ex": { + "message": "e.g.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Other" + }, + "share": { + "message": "Share" + }, + "moveToOrganization": { + "message": "Move to Organisation" + }, + "valueCopied": { + "message": "$VALUE$ copied", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Copy value", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Copy password", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Copy username", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Copy number", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copy security code", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Copy URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "My vault" + }, + "vault": { + "message": "Vault" + }, + "moveSelectedToOrg": { + "message": "Move Selected to Organisation" + }, + "deleteSelected": { + "message": "Delete selected" + }, + "moveSelected": { + "message": "Move selected" + }, + "selectAll": { + "message": "Select all" + }, + "unselectAll": { + "message": "Unselect all" + }, + "launch": { + "message": "Launch" + }, + "newAttachment": { + "message": "Add new attachment" + }, + "deletedAttachment": { + "message": "Deleted attachment" + }, + "deleteAttachmentConfirmation": { + "message": "Are you sure you want to delete this attachment?" + }, + "attachmentSaved": { + "message": "The attachment has been saved." + }, + "file": { + "message": "File" + }, + "selectFile": { + "message": "Select a file." + }, + "maxFileSize": { + "message": "Maximum file size is 500 MB." + }, + "updateKey": { + "message": "You cannot use this feature until you update your encryption key." + }, + "addedItem": { + "message": "Added item" + }, + "editedItem": { + "message": "Edited item" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ moved to $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Selected items moved to $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Delete item" + }, + "deleteFolder": { + "message": "Delete folder" + }, + "deleteAttachment": { + "message": "Delete attachment" + }, + "deleteItemConfirmation": { + "message": "Do you really want to send to the bin?" + }, + "deletedItem": { + "message": "Item sent to bin" + }, + "deletedItems": { + "message": "Items sent to bin" + }, + "movedItems": { + "message": "Moved items" + }, + "overwritePasswordConfirmation": { + "message": "Are you sure you want to overwrite the current password?" + }, + "editedFolder": { + "message": "Edited folder" + }, + "addedFolder": { + "message": "Added folder" + }, + "deleteFolderConfirmation": { + "message": "Are you sure you want to delete this folder?" + }, + "deletedFolder": { + "message": "Deleted folder" + }, + "loggedOut": { + "message": "Logged out" + }, + "loginExpired": { + "message": "Your login session has expired." + }, + "logOutConfirmation": { + "message": "Are you sure you want to log out?" + }, + "logOut": { + "message": "Log out" + }, + "ok": { + "message": "OK" + }, + "yes": { + "message": "Yes" + }, + "no": { + "message": "No" + }, + "loginOrCreateNewAccount": { + "message": "Log in or create a new account to access your secure vault." + }, + "createAccount": { + "message": "Create account" + }, + "logIn": { + "message": "Log in" + }, + "submit": { + "message": "Submit" + }, + "emailAddressDesc": { + "message": "You'll use your email address to log in." + }, + "yourName": { + "message": "Your name" + }, + "yourNameDesc": { + "message": "What should we call you?" + }, + "masterPass": { + "message": "Master password" + }, + "masterPassDesc": { + "message": "The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it." + }, + "masterPassHintDesc": { + "message": "A master password hint can help you remember your password if you forget it." + }, + "reTypeMasterPass": { + "message": "Re-type master password" + }, + "masterPassHint": { + "message": "Master password hint (optional)" + }, + "masterPassHintLabel": { + "message": "Master password hint" + }, + "settings": { + "message": "Settings" + }, + "passwordHint": { + "message": "Password hint" + }, + "enterEmailToGetHint": { + "message": "Enter your account email address to receive your master password hint." + }, + "getMasterPasswordHint": { + "message": "Get master password hint" + }, + "emailRequired": { + "message": "Email address is required." + }, + "invalidEmail": { + "message": "Invalid email address." + }, + "masterPassRequired": { + "message": "Master password is required." + }, + "masterPassLength": { + "message": "Master password must be at least 8 characters long." + }, + "masterPassDoesntMatch": { + "message": "Master password confirmation does not match." + }, + "newAccountCreated": { + "message": "Your new account has been created! You may now log in." + }, + "masterPassSent": { + "message": "We've sent you an email with your master password hint." + }, + "unexpectedError": { + "message": "An unexpected error has occurred." + }, + "emailAddress": { + "message": "Email address" + }, + "yourVaultIsLocked": { + "message": "Your vault is locked. Verify your master password to continue." + }, + "unlock": { + "message": "Unlock" + }, + "loggedInAsEmailOn": { + "message": "Logged in as $EMAIL$ on $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Invalid master password" + }, + "lockNow": { + "message": "Lock now" + }, + "noItemsInList": { + "message": "There are no items to list." + }, + "noCollectionsInList": { + "message": "There are no collections to list." + }, + "noGroupsInList": { + "message": "There are no groups to list." + }, + "noUsersInList": { + "message": "There are no users to list." + }, + "noEventsInList": { + "message": "There are no events to list." + }, + "newOrganization": { + "message": "New organisation" + }, + "noOrganizationsList": { + "message": "You do not belong to any organisations. Organisations allow you to securely share items with other users." + }, + "versionNumber": { + "message": "Version $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Enter the 6 digit verification code from your authenticator app." + }, + "enterVerificationCodeEmail": { + "message": "Enter the 6 digit verification code that was emailed to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Verification email sent to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Remember me" + }, + "sendVerificationCodeEmailAgain": { + "message": "Send verification code email again" + }, + "useAnotherTwoStepMethod": { + "message": "Use another two-step login method" + }, + "insertYubiKey": { + "message": "Insert your YubiKey into your computer's USB port, then touch its button." + }, + "insertU2f": { + "message": "Insert your security key into your computer's USB port. If it has a button, touch it." + }, + "loginUnavailable": { + "message": "Login unavailable" + }, + "noTwoStepProviders": { + "message": "This account has two-step login enabled. However, none of the configured two-step providers are supported by this web browser." + }, + "noTwoStepProviders2": { + "message": "Please use a supported web browser (such as Chrome) and/or add additional providers that are better supported across web browsers (such as an authenticator app)." + }, + "twoStepOptions": { + "message": "Two-step login options" + }, + "recoveryCodeDesc": { + "message": "Lost access to all of your two-factor providers? Use your recovery code to disable all two-factor providers from your account." + }, + "recoveryCodeTitle": { + "message": "Recovery code" + }, + "authenticatorAppTitle": { + "message": "Authenticator app" + }, + "authenticatorAppDesc": { + "message": "Use an authenticator app (such as Authy or Google Authenticator) to generate time-based verification codes.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP security key" + }, + "yubiKeyDesc": { + "message": "Use a YubiKey to access your account. Works with YubiKey 4 series, 5 series, and NEO devices." + }, + "duoDesc": { + "message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verify with Duo Security for your organisation using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Use any FIDO U2F enabled security key to access your account." + }, + "u2fTitle": { + "message": "FIDO U2F security key" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Verification codes will be emailed to you." + }, + "continue": { + "message": "Continue" + }, + "organization": { + "message": "Organisation" + }, + "organizations": { + "message": "Organisations" + }, + "moveToOrgDesc": { + "message": "Choose an organisation that you wish to move this item to. Moving to an organisation transfers ownership of the item to that organisation. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organisation that you wish to move these items to. Moving to an organisation transfers ownership of the items to that organisation. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "Edit the collections that this item is being shared with. Only organisation users with access to these collections will be able to see this item." + }, + "deleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to delete. Are you sure you want to delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Choose a folder that you would like to move the $COUNT$ selected item(s) to.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organisation, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Verification code (TOTP)" + }, + "copyVerificationCode": { + "message": "Copy verification code" + }, + "warning": { + "message": "Warning" + }, + "confirmVaultExport": { + "message": "Confirm Vault Export" + }, + "exportWarningDesc": { + "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over insecure channels (such as email). Delete it immediately after you are done using it." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "Export vault" + }, + "fileFormat": { + "message": "File format" + }, + "exportSuccess": { + "message": "Your vault data has been exported." + }, + "passwordGenerator": { + "message": "Password generator" + }, + "minComplexityScore": { + "message": "Minimum complexity score" + }, + "minNumbers": { + "message": "Minimum numbers" + }, + "minSpecial": { + "message": "Minimum special", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Avoid ambiguous characters" + }, + "regeneratePassword": { + "message": "Regenerate password" + }, + "length": { + "message": "Length" + }, + "numWords": { + "message": "Number of words" + }, + "wordSeparator": { + "message": "Word separator" + }, + "capitalize": { + "message": "Capitalise", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Include number" + }, + "passwordHistory": { + "message": "Password history" + }, + "noPasswordsInList": { + "message": "There are no passwords to list." + }, + "clear": { + "message": "Clear", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Account updated" + }, + "changeEmail": { + "message": "Change email" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "New email" + }, + "code": { + "message": "Code" + }, + "changeEmailDesc": { + "message": "We have emailed a verification code to $EMAIL$. Please check your email for this code and enter it below to finalise the email address change.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "emailChanged": { + "message": "Email changed" + }, + "logBackIn": { + "message": "Please log back in." + }, + "logBackInOthersToo": { + "message": "Please log back in. If you are using other Bitwarden applications, log out and back in to those as well." + }, + "changeMasterPassword": { + "message": "Change master password" + }, + "masterPasswordChanged": { + "message": "Master password changed" + }, + "currentMasterPass": { + "message": "Current master password" + }, + "newMasterPass": { + "message": "New master password" + }, + "confirmNewMasterPass": { + "message": "Confirm new master password" + }, + "encKeySettings": { + "message": "Encryption key settings" + }, + "kdfAlgorithm": { + "message": "KDF algorithm" + }, + "kdfIterations": { + "message": "KDF iterations" + }, + "kdfIterationsDesc": { + "message": "Higher KDF iterations can help protect your master password from being brute forced by an attacker. We recommend a value of $VALUE$ or more.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Setting your KDF iterations too high could result in poor performance when logging into (and unlocking) Bitwarden on devices with slower CPUs. We recommend that you increase the value in increments of $INCREMENT$ and then test all of your devices.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Change KDF" + }, + "encKeySettingsChanged": { + "message": "Encryption key settings changed" + }, + "dangerZone": { + "message": "Danger zone" + }, + "dangerZoneDesc": { + "message": "Careful, these actions are not reversible!" + }, + "deauthorizeSessions": { + "message": "Deauthorise sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Concerned your account is logged in on another device? Proceed below to deauthorise all computers or devices that you have previously used. This security step is recommended if you previously used a public computer or accidentally saved your password on a device that isn't yours. This step will also clear all previously remembered two-step login sessions." + }, + "deauthorizeSessionsWarning": { + "message": "Proceeding will also log you out of your current session, requiring you to log back in. You will also be prompted for two-step login again, if enabled. Active sessions on other devices may continue to remain active for up to one hour." + }, + "sessionsDeauthorized": { + "message": "All sessions deauthorised" + }, + "purgeVault": { + "message": "Purge vault" + }, + "purgedOrganizationVault": { + "message": "Purged organisation vault." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Proceed below to delete all items and folders in your vault. Items that belong to an organisation that you share with will not be deleted." + }, + "purgeOrgVaultDesc": { + "message": "Proceed below to delete all items in the organisation's vault." + }, + "purgeVaultWarning": { + "message": "Purging your vault is permanent. It cannot be undone." + }, + "vaultPurged": { + "message": "Your vault has been purged." + }, + "deleteAccount": { + "message": "Delete account" + }, + "deleteAccountDesc": { + "message": "Proceed below to delete your account and all associated data." + }, + "deleteAccountWarning": { + "message": "Deleting your account is permanent. It cannot be undone." + }, + "accountDeleted": { + "message": "Account deleted" + }, + "accountDeletedDesc": { + "message": "Your account has been closed and all associated data has been deleted." + }, + "myAccount": { + "message": "My account" + }, + "tools": { + "message": "Tools" + }, + "importData": { + "message": "Import data" + }, + "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." + }, + "importSuccess": { + "message": "Data has been successfully imported into your vault." + }, + "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 export the data." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "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)" + } + } + }, + "options": { + "message": "Options" + }, + "optionsDesc": { + "message": "Customise your web vault experience." + }, + "optionsUpdated": { + "message": "Options updated" + }, + "language": { + "message": "Language" + }, + "languageDesc": { + "message": "Change the language used by the web vault." + }, + "disableIcons": { + "message": "Disable website icons" + }, + "disableIconsDesc": { + "message": "Website icons provide a recognisable image next to each login item in your vault." + }, + "enableGravatars": { + "message": "Enable Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use avatar images loaded from gravatar.com." + }, + "enableFullWidth": { + "message": "Enable full width layout", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Allow the web vault to expand the full width of the browser window." + }, + "default": { + "message": "Default" + }, + "domainRules": { + "message": "Domain rules" + }, + "domainRulesDesc": { + "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + }, + "globalEqDomains": { + "message": "Global equivalent domains" + }, + "customEqDomains": { + "message": "Custom equivalent domains" + }, + "exclude": { + "message": "Exclude" + }, + "include": { + "message": "Include" + }, + "customize": { + "message": "Customise" + }, + "newCustomDomain": { + "message": "New custom domain" + }, + "newCustomDomainDesc": { + "message": "Enter a list of domains separated by commas. Only \"base\" domains are allowed. Do not enter sub-domains. For example, enter \"google.com\" instead of \"www.google.com\". You can also enter \"androidapp://package.name\" to associate an Android app with other website domains." + }, + "customDomainX": { + "message": "Custom domain $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domains updated" + }, + "twoStepLogin": { + "message": "Two-step login" + }, + "twoStepLoginDesc": { + "message": "Secure your account by requiring an additional step when logging in." + }, + "twoStepLoginOrganizationDesc": { + "message": "Require two-step login for your organisation's users by configuring providers at the organisation level." + }, + "twoStepLoginRecoveryWarning": { + "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (e.g. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + }, + "viewRecoveryCode": { + "message": "View recovery code" + }, + "providers": { + "message": "Providers", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Enable" + }, + "enabled": { + "message": "Enabled" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium membership" + }, + "premiumRequired": { + "message": "Premium required" + }, + "premiumRequiredDesc": { + "message": "A premium membership is required to use this feature." + }, + "youHavePremiumAccess": { + "message": "You have premium access" + }, + "alreadyPremiumFromOrg": { + "message": "You already have access to premium features because of an organisation of which you are a member." + }, + "manage": { + "message": "Manage" + }, + "disable": { + "message": "Disable" + }, + "twoStepLoginProviderEnabled": { + "message": "This two-step login provider is enabled on your account." + }, + "twoStepLoginAuthDesc": { + "message": "Enter your master password to modify two-step login settings." + }, + "twoStepAuthenticatorDesc": { + "message": "Follow these steps to set up two-step login with an authenticator app:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Download a two-step authenticator app" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Need a two-step authenticator app? Download one of the following" + }, + "iosDevices": { + "message": "iOS devices" + }, + "androidDevices": { + "message": "Android devices" + }, + "windowsDevices": { + "message": "Windows devices" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "These apps are recommended. However, other authenticator apps will also work." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scan this QR code with your authenticator app" + }, + "key": { + "message": "Key" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Enter the resulting 6 digit verification code from the app" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app." + }, + "twoStepDisableDesc": { + "message": "Are you sure you want to disable this two-step login provider?" + }, + "twoStepDisabled": { + "message": "Two-step login provider disabled." + }, + "twoFactorYubikeyAdd": { + "message": "Add a new YubiKey to your account" + }, + "twoFactorYubikeyPlugIn": { + "message": "Plug the YubiKey into your computer's USB port." + }, + "twoFactorYubikeySelectKey": { + "message": "Select the first empty YubiKey input field below." + }, + "twoFactorYubikeyTouchButton": { + "message": "Touch the YubiKey's button." + }, + "twoFactorYubikeySaveForm": { + "message": "Save the form." + }, + "twoFactorYubikeyWarning": { + "message": "Due to platform limitations, YubiKeys cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when YubiKeys cannot be used. Supported platforms:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile apps on a device with NFC capabilities or a USB port that can accept your YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC support" + }, + "twoFactorYubikeySupportsNfc": { + "message": "One of my keys supports NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "If one of your YubiKeys supports NFC (such as a YubiKey NEO), you will be prompted on mobile devices whenever NFC availability is detected." + }, + "yubikeysUpdated": { + "message": "YubiKeys updated" + }, + "disableAllKeys": { + "message": "Disable all keys" + }, + "twoFactorDuoDesc": { + "message": "Enter the Bitwarden application information from your Duo Admin panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration key" + }, + "twoFactorDuoSecretKey": { + "message": "Secret key" + }, + "twoFactorDuoApiHostname": { + "message": "API hostname" + }, + "twoFactorEmailDesc": { + "message": "Follow these steps to set up two-step login with email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enter the email that you wish to receive verification codes" + }, + "twoFactorEmailEnterCode": { + "message": "Enter the resulting 6 digit verification code from the email" + }, + "sendEmail": { + "message": "Send email" + }, + "twoFactorU2fAdd": { + "message": "Add a FIDO U2F security key to your account" + }, + "removeU2fConfirmation": { + "message": "Are you sure you want to remove this security key?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Read key" + }, + "keyCompromised": { + "message": "Key is compromised." + }, + "twoFactorU2fGiveName": { + "message": "Give the security key a friendly name to identify it." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Plug the security key into your computer's USB port and click the \"Read key\" button." + }, + "twoFactorU2fTouchButton": { + "message": "If the security key has a button, touch it." + }, + "twoFactorU2fSaveForm": { + "message": "Save the form." + }, + "twoFactorU2fWarning": { + "message": "Due to platform limitations, FIDO U2F cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when FIDO U2F cannot be used. Supported platforms:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorU2fWaiting": { + "message": "Waiting for you to touch the button on your security key" + }, + "twoFactorU2fClickSave": { + "message": "Click the \"Save\" button below to enable this security key for two-step login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Your Bitwarden two-step login recovery code" + }, + "twoFactorRecoveryNoCode": { + "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + }, + "printCode": { + "message": "Print code", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Reports" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Unsecured websites report" + }, + "unsecuredWebsitesReportDesc": { + "message": "Using unsecured websites with the http:// scheme can be dangerous. If the website allows, you should always access it using the https:// scheme so that your connection is encrypted." + }, + "unsecuredWebsitesFound": { + "message": "Unsecured websites found" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Inactive 2FA report" + }, + "inactive2faReportDesc": { + "message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication." + }, + "inactive2faFound": { + "message": "Logins without 2FA found" + }, + "inactive2faFoundDesc": { + "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No websites were found in your vault with a missing two-factor authentication configuration." + }, + "instructions": { + "message": "Instructions" + }, + "exposedPasswordsReport": { + "message": "Exposed passwords report" + }, + "exposedPasswordsReportDesc": { + "message": "Exposed passwords are passwords that have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers." + }, + "exposedPasswordsFound": { + "message": "Exposed passwords found" + }, + "exposedPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No items in your vault have passwords that have been exposed in known data breaches." + }, + "checkExposedPasswords": { + "message": "Check exposed passwords" + }, + "exposedXTimes": { + "message": "Exposed $COUNT$ time(s)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Weak passwords report" + }, + "weakPasswordsReportDesc": { + "message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords." + }, + "weakPasswordsFound": { + "message": "Weak passwords found" + }, + "weakPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "No items in your vault have weak passwords." + }, + "reusedPasswordsReport": { + "message": "Reused passwords report" + }, + "reusedPasswordsReportDesc": { + "message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service." + }, + "reusedPasswordsFound": { + "message": "Reused passwords found" + }, + "reusedPasswordsFoundDesc": { + "message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "No logins in your vault have passwords that are being reused." + }, + "reusedXTimes": { + "message": "Reused $COUNT$ times", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Data breach report" + }, + "breachDesc": { + "message": "A \"breach\" is an incident where a site's data has been illegally accessed by hackers and then released publicly. Review the types of data that were compromised (email addresses, passwords, credit cards etc.) and take appropriate action, such as changing passwords." + }, + "breachCheckUsernameEmail": { + "message": "Check any usernames or email addresses that you use." + }, + "checkBreaches": { + "message": "Check breaches" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ was not found in any known data breaches.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Good news", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Breached accounts found" + }, + "compromisedData": { + "message": "Compromised data" + }, + "website": { + "message": "Website" + }, + "affectedUsers": { + "message": "Affected users" + }, + "breachOccurred": { + "message": "Breach occurred" + }, + "breachReported": { + "message": "Breach reported" + }, + "reportError": { + "message": "An error occurred trying to load the report. Try again" + }, + "billing": { + "message": "Billing" + }, + "accountCredit": { + "message": "Account credit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Account balance", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Add credit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Amount", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Added credit will appear on your account after the payment has been fully processed. Some payment methods are delayed and can take longer to process than others." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + }, + "goPremium": { + "message": "Go premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "You've upgraded to premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Upgrade your account to a premium membership and unlock some great additional features." + }, + "premiumSignUpStorage": { + "message": "1 GB encrypted storage for file attachments." + }, + "premiumSignUpTwoStep": { + "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + }, + "premiumSignUpTotp": { + "message": "TOTP verification code (2FA) generator for logins in your vault." + }, + "premiumSignUpSupport": { + "message": "Priority customer support." + }, + "premiumSignUpFuture": { + "message": "All future premium features. More coming soon!" + }, + "premiumPrice": { + "message": "All for just $PRICE$ /year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Add-ons" + }, + "premiumAccess": { + "message": "Premium access" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organisation for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Additional storage (GB)" + }, + "additionalStorageGbDesc": { + "message": "# of additional GB" + }, + "additionalStorageIntervalDesc": { + "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Summary" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "year" + }, + "month": { + "message": "month" + }, + "monthAbbr": { + "message": "mon.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Your payment method will be charged immediately and then on a recurring basis each year. You may cancel at any time." + }, + "paymentCharged": { + "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Your plan comes with a free 7 day trial. Your payment method will not be charged until the trial has ended. You may cancel at any time." + }, + "paymentInformation": { + "message": "Payment information" + }, + "billingInformation": { + "message": "Billing Information" + }, + "creditCard": { + "message": "Credit card" + }, + "paypalClickSubmit": { + "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + }, + "cancelSubscription": { + "message": "Cancel subscription" + }, + "subscriptionCanceled": { + "message": "The subscription has been cancelled." + }, + "pendingCancellation": { + "message": "Pending cancellation" + }, + "subscriptionPendingCanceled": { + "message": "The subscription has been marked for cancellation at the end of the current billing period." + }, + "reinstateSubscription": { + "message": "Reinstate subscription" + }, + "reinstateConfirmation": { + "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + }, + "reinstated": { + "message": "The subscription has been reinstated." + }, + "cancelConfirmation": { + "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + }, + "canceledSubscription": { + "message": "The subscription has been cancelled." + }, + "neverExpires": { + "message": "Never expires" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Next charge" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "Download licence" + }, + "updateLicense": { + "message": "Update licence" + }, + "updatedLicense": { + "message": "Updated licence" + }, + "manageSubscription": { + "message": "Manage subscription" + }, + "storage": { + "message": "Storage" + }, + "addStorage": { + "message": "Add storage" + }, + "removeStorage": { + "message": "Remove storage" + }, + "subscriptionStorage": { + "message": "Your subscription has a total of $MAX_STORAGE$ GB of encrypted file storage. You are currently using $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Payment method" + }, + "noPaymentMethod": { + "message": "No payment method on file." + }, + "addPaymentMethod": { + "message": "Add payment method" + }, + "changePaymentMethod": { + "message": "Change payment method" + }, + "invoices": { + "message": "Invoices" + }, + "noInvoices": { + "message": "No invoices." + }, + "paid": { + "message": "Paid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Unpaid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transactions", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "No transactions." + }, + "chargeNoun": { + "message": "Charge", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Refund", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Any charges will appear on your statement as $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB of storage to add" + }, + "gbStorageRemove": { + "message": "GB of storage to remove" + }, + "storageAddNote": { + "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "storageRemoveNote": { + "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedStorage": { + "message": "Adjusted $AMOUNT$ GB of storage.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contact Customer Support" + }, + "updatedPaymentMethod": { + "message": "Updated payment method." + }, + "purchasePremium": { + "message": "Purchase premium" + }, + "licenseFile": { + "message": "Licence file" + }, + "licenseFileDesc": { + "message": "Your licence file will be named something like $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "To upgrade your account to a premium membership you need to upload a valid licence file." + }, + "uploadLicenseFileOrg": { + "message": "To create an on-premises hosted organisation you need to upload a valid licence file." + }, + "accountEmailMustBeVerified": { + "message": "Your account's email address must be verified." + }, + "newOrganizationDesc": { + "message": "Organisations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company." + }, + "generalInformation": { + "message": "General information" + }, + "organizationName": { + "message": "Organisation name" + }, + "accountOwnedBusiness": { + "message": "This account is owned by a business." + }, + "billingEmail": { + "message": "Billing email" + }, + "businessName": { + "message": "Business name" + }, + "chooseYourPlan": { + "message": "Choose your plan" + }, + "users": { + "message": "Users" + }, + "userSeats": { + "message": "User seats" + }, + "additionalUserSeats": { + "message": "Additional user seats" + }, + "userSeatsDesc": { + "message": "# of user seats" + }, + "userSeatsAdditionalDesc": { + "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "How many user seats do you need? You can also add additional seats later if needed." + }, + "planNameFree": { + "message": "Free", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing or personal users to share with $COUNT$ other users.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Families" + }, + "planDescFamilies": { + "message": "For personal use, to share with family & friends." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "For businesses and other team organisations." + }, + "planNameEnterprise": { + "message": "Enterprise" + }, + "planDescEnterprise": { + "message": "For businesses and other large organisations." + }, + "freeForever": { + "message": "Free forever" + }, + "includesXUsers": { + "message": "includes $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Additional users" + }, + "costPerUser": { + "message": "$COST$ per user", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limited to $COUNT$ users (including you)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limited to $COUNT$ collections", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Add and share with up to $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Add and share with unlimited users" + }, + "createUnlimitedCollections": { + "message": "Create unlimited collections" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ encrypted file storage", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "On-premise hosting (optional)" + }, + "usersGetPremium": { + "message": "Users get access to premium features" + }, + "controlAccessWithGroups": { + "message": "Control user access with groups" + }, + "syncUsersFromDirectory": { + "message": "Sync your users and groups from a directory" + }, + "trackAuditLogs": { + "message": "Track user actions with audit logs" + }, + "enforce2faDuo": { + "message": "Enforce 2FA with Duo" + }, + "priorityCustomerSupport": { + "message": "Priority customer support" + }, + "xDayFreeTrial": { + "message": "$COUNT$ day free trial, cancel anytime", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Monthly" + }, + "annually": { + "message": "Annually" + }, + "basePrice": { + "message": "Base price" + }, + "organizationCreated": { + "message": "Organisation created" + }, + "organizationReadyToGo": { + "message": "Your new organisation is ready to go!" + }, + "organizationUpgraded": { + "message": "Your organisation has been upgraded." + }, + "leave": { + "message": "Leave" + }, + "leaveOrganizationConfirmation": { + "message": "Are you sure you want to leave this organisation?" + }, + "leftOrganization": { + "message": "You have left the organisation." + }, + "defaultCollection": { + "message": "Default collection" + }, + "getHelp": { + "message": "Get help" + }, + "getApps": { + "message": "Get the apps" + }, + "loggedInAs": { + "message": "Logged in as" + }, + "eventLogs": { + "message": "Event logs" + }, + "people": { + "message": "People" + }, + "policies": { + "message": "Policies" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Edit policy" + }, + "groups": { + "message": "Groups" + }, + "newGroup": { + "message": "New group" + }, + "addGroup": { + "message": "Add group" + }, + "editGroup": { + "message": "Edit group" + }, + "deleteGroupConfirmation": { + "message": "Are you sure you want to delete this group?" + }, + "removeUserConfirmation": { + "message": "Are you sure you want to remove this user?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organisation will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "External ID" + }, + "externalIdDesc": { + "message": "The external ID can be used as a reference or to link this resource to an external system such as a user directory." + }, + "accessControl": { + "message": "Access control" + }, + "groupAccessAllItems": { + "message": "This group can access and modify all items." + }, + "groupAccessSelectedCollections": { + "message": "This group can access only the selected collections." + }, + "readOnly": { + "message": "Read only" + }, + "newCollection": { + "message": "New collection" + }, + "addCollection": { + "message": "Add collection" + }, + "editCollection": { + "message": "Edit collection" + }, + "deleteCollectionConfirmation": { + "message": "Are you sure you want to delete this collection?" + }, + "editUser": { + "message": "Edit user" + }, + "inviteUser": { + "message": "Invite user" + }, + "inviteUserDesc": { + "message": "Invite a new user to your organisation by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "inviteMultipleEmailDesc": { + "message": "You can invite up to $COUNT$ users at a time by comma separating a list of email addresses.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "This user is using two-step login to protect their account." + }, + "userAccessAllItems": { + "message": "This user can access and modify all items." + }, + "userAccessSelectedCollections": { + "message": "This user can access only the selected collections." + }, + "search": { + "message": "Search" + }, + "invited": { + "message": "Invited" + }, + "accepted": { + "message": "Accepted" + }, + "confirmed": { + "message": "Confirmed" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Owner" + }, + "ownerDesc": { + "message": "The highest access user that can manage all aspects of your organisation." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organisation, this user will maintain ownership of the organisation." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admins can access and manage all items, collections and users in your organisation." + }, + "user": { + "message": "User" + }, + "userDesc": { + "message": "A regular user with access to assigned collections in your organisation." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managers can access and manage assigned collections in your organisation." + }, + "all": { + "message": "All" + }, + "refresh": { + "message": "Refresh" + }, + "timestamp": { + "message": "Timestamp" + }, + "event": { + "message": "Event" + }, + "unknown": { + "message": "Unknown" + }, + "loadMore": { + "message": "Load more" + }, + "mobile": { + "message": "Mobile", + "description": "Mobile app" + }, + "extension": { + "message": "Extension", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Web vault" + }, + "loggedIn": { + "message": "Logged in." + }, + "changedPassword": { + "message": "Changed account password." + }, + "enabledUpdated2fa": { + "message": "Enabled/updated two-step login." + }, + "disabled2fa": { + "message": "Disabled two-step login." + }, + "recovered2fa": { + "message": "Recovered account from two-step login." + }, + "failedLogin": { + "message": "Login attempt failed with incorrect password." + }, + "failedLogin2fa": { + "message": "Login attempt failed with incorrect two-step login." + }, + "exportedVault": { + "message": "Exported vault." + }, + "exportedOrganizationVault": { + "message": "Exported organisation vault." + }, + "editedOrgSettings": { + "message": "Edited organisation settings." + }, + "createdItemId": { + "message": "Created item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Edited item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Sent item $ID$ to bin.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organisation.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Viewed item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Viewed password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Viewed hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Viewed security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Copied password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Copied hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Copied security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Auto-filled item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Created collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Edited collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Deleted collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Edited policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Created group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Edited group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Deleted group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Removed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Created attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Deleted attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Edited collections for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Invited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Confirmed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Edited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Edited groups for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organisation $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organisation $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organisation $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organisation vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Device" + }, + "view": { + "message": "View" + }, + "invalidDateRange": { + "message": "Invalid date range." + }, + "errorOccurred": { + "message": "An error has occurred." + }, + "userAccess": { + "message": "User access" + }, + "userType": { + "message": "User type" + }, + "groupAccess": { + "message": "Group access" + }, + "groupAccessUserDesc": { + "message": "Edit the groups that this user belongs to." + }, + "invitedUsers": { + "message": "Invited user(s)." + }, + "resendInvitation": { + "message": "Resend invitation" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ has been reinvited.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirm" + }, + "confirmUser": { + "message": "Confirm user" + }, + "hasBeenConfirmed": { + "message": "$USER$ has been confirmed.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirm users" + }, + "usersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organisation until they are confirmed." + }, + "startDate": { + "message": "Start date" + }, + "endDate": { + "message": "End date" + }, + "verifyEmail": { + "message": "Verify email" + }, + "verifyEmailDesc": { + "message": "Verify your account's email address to unlock access to all features." + }, + "verifyEmailFirst": { + "message": "Your account's email address must first be verified." + }, + "checkInboxForVerification": { + "message": "Check your email inbox for a verification link." + }, + "emailVerified": { + "message": "Your email has been verified." + }, + "emailVerifiedFailed": { + "message": "Unable to verify your email. Try sending a new verification email." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "Update browser" + }, + "updateBrowserDesc": { + "message": "You are using an unsupported web browser. The web vault may not function properly." + }, + "joinOrganization": { + "message": "Join organisation" + }, + "joinOrganizationDesc": { + "message": "You've been invited to join the organisation listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "inviteAccepted": { + "message": "Invitation accepted" + }, + "inviteAcceptedDesc": { + "message": "You can access this organisation once an administrator confirms your membership. We'll send you an email when that happens." + }, + "inviteAcceptFailed": { + "message": "Unable to accept invitation. Ask an organisation admin to send a new invitation." + }, + "inviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Remember email" + }, + "recoverAccountTwoStepDesc": { + "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + }, + "recoverAccountTwoStep": { + "message": "Recover account two-step login" + }, + "twoStepRecoverDisabled": { + "message": "Two-step login has been disabled on your account." + }, + "learnMore": { + "message": "Learn more" + }, + "deleteRecoverDesc": { + "message": "Enter your email address below to recover and delete your account." + }, + "deleteRecoverEmailSent": { + "message": "If your account exists, we've sent you an email with further instructions." + }, + "deleteRecoverConfirmDesc": { + "message": "You have requested to delete your Bitwarden account. Click the button below to confirm." + }, + "myOrganization": { + "message": "My organisation" + }, + "deleteOrganization": { + "message": "Delete organisation" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organisation." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organisation deleted" + }, + "organizationDeletedDesc": { + "message": "The organisation and all associated data has been deleted." + }, + "organizationUpdated": { + "message": "Organisation updated" + }, + "taxInformation": { + "message": "Tax information" + }, + "taxInformationDesc": { + "message": "For customers within the US, ZIP code is required to satisfy sales tax requirements; for other countries you may optionally provide a tax identification number (VAT/GST) and/or address to appear on your invoices." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Upgrade Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade your account to another plan by providing the information below. Please ensure that you have an active payment method added to the account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Invoice #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "View invoice" + }, + "downloadInvoice": { + "message": "Download invoice" + }, + "verifyBankAccount": { + "message": "Verify bank account" + }, + "verifyBankAccountDesc": { + "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." + }, + "verifyBankAccountInitialDesc": { + "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organisation's billing page to verify the bank account." + }, + "verifyBankAccountFailureWarning": { + "message": "Failure to verify the bank account will result in a missed payment and your subscription being disabled." + }, + "verifiedBankAccount": { + "message": "Bank account has been verified." + }, + "bankAccount": { + "message": "Bank account" + }, + "amountX": { + "message": "Amount $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Sort code", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Account number" + }, + "accountHolderName": { + "message": "Account holder name" + }, + "bankAccountType": { + "message": "Account type" + }, + "bankAccountTypeCompany": { + "message": "Company (business)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (personal)" + }, + "enterInstallationId": { + "message": "Enter your installation ID" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Add seats", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remove seats", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Your subscription allows for a total of $COUNT$ users.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organisation.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seats to add" + }, + "seatsToRemove": { + "message": "Seats to remove" + }, + "seatsAddNote": { + "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "seatsRemoveNote": { + "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedSeats": { + "message": "Adjusted $AMOUNT$ user seats.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Key updated" + }, + "updateKeyTitle": { + "message": "Update key" + }, + "updateEncryptionKey": { + "message": "Update encryption key" + }, + "updateEncryptionKeyShortDesc": { + "message": "You are currently using an outdated encryption scheme." + }, + "updateEncryptionKeyDesc": { + "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, although this may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "Subscription" + }, + "loading": { + "message": "Loading" + }, + "upgrade": { + "message": "Upgrade" + }, + "upgradeOrganization": { + "message": "Upgrade organisation" + }, + "upgradeOrganizationDesc": { + "message": "This feature is not available for free organisations. Switch to a paid plan to unlock more features." + }, + "createOrganizationStep1": { + "message": "Create organisation: step 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Before creating your organisation, you first need to create a free personal account." + }, + "refunded": { + "message": "Refunded" + }, + "nothingSelected": { + "message": "You have not selected anything." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of service and privacy policy have not been acknowledged." + }, + "termsOfService": { + "message": "Terms of service" + }, + "privacyPolicy": { + "message": "Privacy policy" + }, + "filters": { + "message": "Filters" + }, + "vaultTimeout": { + "message": "Vault timeout" + }, + "vaultTimeoutDesc": { + "message": "Choose when your vault will timeout and perform the selected action." + }, + "oneMinute": { + "message": "1 minute" + }, + "fiveMinutes": { + "message": "5 minutes" + }, + "fifteenMinutes": { + "message": "15 minutes" + }, + "thirtyMinutes": { + "message": "30 minutes" + }, + "oneHour": { + "message": "1 hour" + }, + "fourHours": { + "message": "4 hours" + }, + "onRefresh": { + "message": "On browser refresh" + }, + "dateUpdated": { + "message": "Updated", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Password updated", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organisation is disabled." + }, + "licenseIsExpired": { + "message": "Licence is expired." + }, + "updatedUsers": { + "message": "Updated users" + }, + "selected": { + "message": "Selected" + }, + "ownership": { + "message": "Ownership" + }, + "whoOwnsThisItem": { + "message": "Who owns this item?" + }, + "strong": { + "message": "Strong", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Good", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Weak", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Very weak", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Weak master password" + }, + "weakMasterPasswordDesc": { + "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + }, + "rotateAccountEncKey": { + "message": "Also rotate my account's encryption key" + }, + "rotateEncKeyTitle": { + "message": "Rotate encryption key" + }, + "rotateEncKeyConfirmation": { + "message": "Are you sure you want to rotate your account's encryption key?" + }, + "attachmentsNeedFix": { + "message": "This item has old file attachments that need to be fixed." + }, + "attachmentFixDesc": { + "message": "This is an old file attachment the needs to be fixed. Click to learn more." + }, + "fix": { + "message": "Fix", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key." + }, + "yourAccountsFingerprint": { + "message": "Your account's fingerprint phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Never prompt to verify fingerprint phrases for invited users (Not recommended)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Free", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API key" + }, + "apiKeyDesc": { + "message": "Your API key can be used to authenticate to the Bitwarden public API." + }, + "apiKeyRotateDesc": { + "message": "Rotating the API key will invalidate the previous key. You can rotate your API key if you believe that the current key is no longer safe to use." + }, + "apiKeyWarning": { + "message": "Your API key has full access to the organisation. It should be kept secret." + }, + "userApiKeyDesc": { + "message": "Your API key can be used to authenticate in the Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 client credentials", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "View API key" + }, + "rotateApiKey": { + "message": "Rotate API key" + }, + "selectOneCollection": { + "message": "You must select at least one collection." + }, + "couldNotChargeCardPayInvoice": { + "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + }, + "inAppPurchase": { + "message": "In-app purchase" + }, + "cannotPerformInAppPurchase": { + "message": "You cannot perform this action while using an in-app purchase payment method." + }, + "manageSubscriptionFromStore": { + "message": "You must manage your subscription from the store where your in-app purchase was made." + }, + "minLength": { + "message": "Minimum length" + }, + "clone": { + "message": "Clone" + }, + "masterPassPolicyDesc": { + "message": "Set minimum requirements for master password strength." + }, + "twoStepLoginPolicyDesc": { + "message": "Require users to set up two-step login on their personal accounts." + }, + "twoStepLoginPolicyWarning": { + "message": "Organisation members who are not Owners or Administrators and do not have two-step login enabled for their personal account will be removed from the organisation and will receive an email notifying them about the change." + }, + "twoStepLoginPolicyUserWarning": { + "message": "You are a member of an organisation that requires two-step login to be enabled on your user account. If you disable all two-step login providers you will be automatically removed from these organisations." + }, + "passwordGeneratorPolicyDesc": { + "message": "Set minimum requirements for password generator configuration." + }, + "passwordGeneratorPolicyInEffect": { + "message": "One or more organisation policies are affecting your generator settings." + }, + "masterPasswordPolicyInEffect": { + "message": "One or more organisation policies require your master password to meet the following requirements:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum complexity score of $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum length of $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contain one or more uppercase characters" + }, + "policyInEffectLowercase": { + "message": "Contain one or more lowercase characters" + }, + "policyInEffectNumbers": { + "message": "Contain one or more numbers" + }, + "policyInEffectSpecial": { + "message": "Contain one or more of the following special characters $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Your new master password does not meet the policy requirements." + }, + "minimumNumberOfWords": { + "message": "Minimum number of words" + }, + "defaultType": { + "message": "Default type" + }, + "userPreference": { + "message": "User preference" + }, + "vaultTimeoutAction": { + "message": "Vault timeout action" + }, + "vaultTimeoutActionLockDesc": { + "message": "A locked vault requires that you re-enter your master password to access it again." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "A logged out vault requires that you re-authenticate to access it again." + }, + "lock": { + "message": "Lock", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Bin", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Search bin" + }, + "permanentlyDelete": { + "message": "Permanently delete" + }, + "permanentlyDeleteSelected": { + "message": "Permanently delete selected" + }, + "permanentlyDeleteItem": { + "message": "Permanently delete item" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Are you sure you want to permanently delete this item?" + }, + "permanentlyDeletedItem": { + "message": "Permanently deleted item" + }, + "permanentlyDeletedItems": { + "message": "Permanently deleted items" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Permanently deleted item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restore" + }, + "restoreSelected": { + "message": "Restore selected" + }, + "restoreItem": { + "message": "Restore item" + }, + "restoredItem": { + "message": "Restored item" + }, + "restoredItems": { + "message": "Restored items" + }, + "restoreItemConfirmation": { + "message": "Are you sure you want to restore this item?" + }, + "restoreItems": { + "message": "Restore items" + }, + "restoreSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Restored item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout action confirmation" + }, + "hidePasswords": { + "message": "Hide passwords" + }, + "countryPostalCodeRequiredDesc": { + "message": "We require this information for calculating sales tax and financial reporting only." + }, + "includeVAT": { + "message": "Include VAT/GST information (optional)" + }, + "taxIdNumber": { + "message": "VAT/GST tax ID" + }, + "taxInfoUpdated": { + "message": "Tax information updated." + }, + "setMasterPassword": { + "message": "Set master password" + }, + "ssoCompleteRegistration": { + "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + }, + "identifier": { + "message": "Identifier" + }, + "organizationIdentifier": { + "message": "Organisation identifier" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Log in using your organisation's single sign-on portal. Please enter your organisation's identifier to begin." + }, + "enterpriseSingleSignOn": { + "message": "Enterprise single sign-on" + }, + "ssoHandOff": { + "message": "You may now close this tab and continue in the extension." + }, + "includeAllTeamsFeatures": { + "message": "All Teams features, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO authentication via SAML2.0 and OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Enterprise policies" + }, + "ssoValidationFailed": { + "message": "SSO validation failed" + }, + "ssoIdentifierRequired": { + "message": "Organisation identifier is required." + }, + "unlinkSso": { + "message": "Unlink SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organisation?" + }, + "linkSso": { + "message": "Link SSO" + }, + "singleOrg": { + "message": "Single organisation" + }, + "singleOrgDesc": { + "message": "Restrict users from being able to join any other organisations." + }, + "singleOrgBlockCreateMessage": { + "message": "Your current organisation has a policy that does not allow you to join more than one organisation. Please contact your organisation admins or sign up from a different Bitwarden account." + }, + "singleOrgPolicyWarning": { + "message": "Organisation members who are not Owners or Administrators and are already a member of another organisation will be removed from your organisation." + }, + "requireSso": { + "message": "Single sign-on authentication" + }, + "requireSsoPolicyDesc": { + "message": "Require users to log in with the Enterprise Single Sign-On method." + }, + "prerequisite": { + "message": "Prerequisite" + }, + "requireSsoPolicyReq": { + "message": "The Single Organisation enterprise policy must be enabled before activating this policy." + }, + "requireSsoPolicyReqError": { + "message": "Single Organisation policy not enabled." + }, + "requireSsoExemption": { + "message": "Organisation Owners and Administrators are exempt from this policy's enforcement." + }, + "sendTypeFile": { + "message": "File" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Create new send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edit send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Created send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Edited send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Deleted send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Delete send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Are you sure you want to delete this send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "What type of send is this?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Deletion date" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Expiration date" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximum access count" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Current access count" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Disabled" + }, + "sendLink": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copy send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remove password" + }, + "removedPassword": { + "message": "Removed password" + }, + "removePasswordConfirmation": { + "message": "Are you sure you want to remove the password?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "All sends" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "expired": { + "message": "Expired" + }, + "searchSends": { + "message": "Search sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "This send is protected with a password. Please type the password below to continue.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the sender for the password needed to access this send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Download file" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "There are no sends to list.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Emergency Access" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of a emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organisations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet; invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Request Access" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approve" + }, + "reject": { + "message": "Reject" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organisation by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organisation Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organisation and choose from available Collections." + }, + "disableSend": { + "message": "Disable Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organisation users that can manage the organisation's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organisation users that can manage the organisation's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organisation policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "Estimated tax" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Manage All Collections" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Manage Groups" + }, + "managePolicies": { + "message": "Manage Policies" + }, + "manageSso": { + "message": "Manage SSO" + }, + "manageUsers": { + "message": "Manage Users" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organisation policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organisation policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organisation users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Learn more about", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Learn more", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "try it now", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "sign up", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "to try it today.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrolment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organisation policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organisation administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organisation to reset organisation users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organisation will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organisation will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Automatically enroll new users" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organisation has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organisation administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organisation Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or cancelled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organisations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organisations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organisation" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organisation that will be associated with you as the provider. You will be able to access and manage this organisation." + }, + "addExistingOrganization": { + "message": "Add Existing Organisation" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organisation was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organisation using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organisation.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organisation $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organisation? The organisation will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organisation. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organisation. In order to join the organisation, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organisation policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organisation." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organisation policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get Claims From User Info Endpoint" + }, + "additionalScopes": { + "message": "Additional/Custom Scopes (comma delimited)" + }, + "additionalUserIdClaimTypes": { + "message": "Additional/Custom User ID Claim Types (comma delimited)" + }, + "additionalEmailClaimTypes": { + "message": "Additional/Custom Email Claim Types (comma delimited)" + }, + "additionalNameClaimTypes": { + "message": "Additional/Custom Name Claim Types (comma delimited)" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values (acr_values)" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response (acr validation)" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Want Assertions Signed" + }, + "spValidateCertificates": { + "message": "Validate Certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow Unsolicited Authentication Response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organisation you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organisation, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organisation or create a new Families organisation." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organisation. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organisation owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organisation.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organisation" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organisation policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organisation cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organisation. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organisation you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organisation and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organisation" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organisation" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customisations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organisation Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organisation vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organisation vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organisations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/en_IN/messages.json b/apps/web/src/locales/en_IN/messages.json new file mode 100644 index 0000000000..3f88812b29 --- /dev/null +++ b/apps/web/src/locales/en_IN/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Web Vault", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "What type of item is this?" + }, + "name": { + "message": "Name" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "New URI" + }, + "username": { + "message": "Username" + }, + "password": { + "message": "Password" + }, + "newPassword": { + "message": "New Password" + }, + "passphrase": { + "message": "Passphrase" + }, + "notes": { + "message": "Notes" + }, + "customFields": { + "message": "Custom fields" + }, + "cardholderName": { + "message": "Cardholder name" + }, + "number": { + "message": "Number" + }, + "brand": { + "message": "Brand" + }, + "expiration": { + "message": "Expiration" + }, + "securityCode": { + "message": "Security code (CVV)" + }, + "identityName": { + "message": "Identity name" + }, + "company": { + "message": "Company" + }, + "ssn": { + "message": "Aadhar Number" + }, + "passportNumber": { + "message": "Passport number" + }, + "licenseNumber": { + "message": "Licence number" + }, + "email": { + "message": "Email" + }, + "phone": { + "message": "Phone" + }, + "january": { + "message": "January" + }, + "february": { + "message": "February" + }, + "march": { + "message": "March" + }, + "april": { + "message": "April" + }, + "may": { + "message": "May" + }, + "june": { + "message": "June" + }, + "july": { + "message": "July" + }, + "august": { + "message": "August" + }, + "september": { + "message": "September" + }, + "october": { + "message": "October" + }, + "november": { + "message": "November" + }, + "december": { + "message": "December" + }, + "title": { + "message": "Title" + }, + "mr": { + "message": "Mr" + }, + "mrs": { + "message": "Mrs" + }, + "ms": { + "message": "Ms" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Expiration month" + }, + "expirationYear": { + "message": "Expiration year" + }, + "authenticatorKeyTotp": { + "message": "Authenticator key (TOTP)" + }, + "folder": { + "message": "Folder" + }, + "newCustomField": { + "message": "New custom field" + }, + "value": { + "message": "Value" + }, + "dragToSort": { + "message": "Drag to sort" + }, + "cfTypeText": { + "message": "Text" + }, + "cfTypeHidden": { + "message": "Hidden" + }, + "cfTypeBoolean": { + "message": "Boolean" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Remove" + }, + "unassigned": { + "message": "Unassigned" + }, + "noneFolder": { + "message": "No folder", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Add folder" + }, + "editFolder": { + "message": "Edit folder" + }, + "baseDomain": { + "message": "Base domain", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exact" + }, + "startsWith": { + "message": "Starts with" + }, + "regEx": { + "message": "Regular expression", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Match detection", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Default match detection", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Never" + }, + "toggleVisibility": { + "message": "Toggle visibility" + }, + "toggleCollapse": { + "message": "Toggle collapse", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generate password" + }, + "checkPassword": { + "message": "Check if password has been exposed." + }, + "passwordExposed": { + "message": "This password has been exposed $VALUE$ time(s) in data breaches. You should change it.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "This password was not found in any known data breaches. It should be safe to use." + }, + "save": { + "message": "Save" + }, + "cancel": { + "message": "Cancel" + }, + "canceled": { + "message": "Cancelled" + }, + "close": { + "message": "Close" + }, + "delete": { + "message": "Delete" + }, + "favorite": { + "message": "Favourite" + }, + "unfavorite": { + "message": "Unfavourite" + }, + "edit": { + "message": "Edit" + }, + "searchCollection": { + "message": "Search collection" + }, + "searchFolder": { + "message": "Search folder" + }, + "searchFavorites": { + "message": "Search favourites" + }, + "searchType": { + "message": "Search type", + "description": "Search item type" + }, + "searchVault": { + "message": "Search vault" + }, + "allItems": { + "message": "All items" + }, + "favorites": { + "message": "Favourites" + }, + "types": { + "message": "Types" + }, + "typeLogin": { + "message": "Login" + }, + "typeCard": { + "message": "Card" + }, + "typeIdentity": { + "message": "Identity" + }, + "typeSecureNote": { + "message": "Secure note" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "Folders" + }, + "collections": { + "message": "Collections" + }, + "firstName": { + "message": "First name" + }, + "middleName": { + "message": "Middle name" + }, + "lastName": { + "message": "Last name" + }, + "fullName": { + "message": "Full Name" + }, + "address1": { + "message": "Address 1" + }, + "address2": { + "message": "Address 2" + }, + "address3": { + "message": "Address 3" + }, + "cityTown": { + "message": "City / town" + }, + "stateProvince": { + "message": "State / Union territory" + }, + "zipPostalCode": { + "message": "Postcode" + }, + "country": { + "message": "Country" + }, + "shared": { + "message": "Shared" + }, + "attachments": { + "message": "Attachments" + }, + "select": { + "message": "Select" + }, + "addItem": { + "message": "Add item" + }, + "editItem": { + "message": "Edit item" + }, + "viewItem": { + "message": "View item" + }, + "ex": { + "message": "e.g.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Other" + }, + "share": { + "message": "Share" + }, + "moveToOrganization": { + "message": "Move to Organisation" + }, + "valueCopied": { + "message": "$VALUE$ copied", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Copy value", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Copy password", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Copy username", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Copy number", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copy security code", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Copy URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "My vault" + }, + "vault": { + "message": "Vault" + }, + "moveSelectedToOrg": { + "message": "Move Selected to Organisation" + }, + "deleteSelected": { + "message": "Delete selected" + }, + "moveSelected": { + "message": "Move selected" + }, + "selectAll": { + "message": "Select all" + }, + "unselectAll": { + "message": "Unselect all" + }, + "launch": { + "message": "Launch" + }, + "newAttachment": { + "message": "Add new attachment" + }, + "deletedAttachment": { + "message": "Deleted attachment" + }, + "deleteAttachmentConfirmation": { + "message": "Are you sure you want to delete this attachment?" + }, + "attachmentSaved": { + "message": "The attachment has been saved." + }, + "file": { + "message": "File" + }, + "selectFile": { + "message": "Select a file." + }, + "maxFileSize": { + "message": "Maximum file size is 500 MB." + }, + "updateKey": { + "message": "You cannot use this feature until you update your encryption key." + }, + "addedItem": { + "message": "Added item" + }, + "editedItem": { + "message": "Edited item" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ moved to $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Selected items moved to $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Delete item" + }, + "deleteFolder": { + "message": "Delete folder" + }, + "deleteAttachment": { + "message": "Delete attachment" + }, + "deleteItemConfirmation": { + "message": "Are you sure you want to delete this item?" + }, + "deletedItem": { + "message": "Item sent to bin" + }, + "deletedItems": { + "message": "Items sent to bin" + }, + "movedItems": { + "message": "Moved items" + }, + "overwritePasswordConfirmation": { + "message": "Are you sure you want to overwrite the current password?" + }, + "editedFolder": { + "message": "Edited folder" + }, + "addedFolder": { + "message": "Added folder" + }, + "deleteFolderConfirmation": { + "message": "Are you sure you want to delete this folder?" + }, + "deletedFolder": { + "message": "Deleted folder" + }, + "loggedOut": { + "message": "Logged out" + }, + "loginExpired": { + "message": "Your login session has expired." + }, + "logOutConfirmation": { + "message": "Are you sure you want to log out?" + }, + "logOut": { + "message": "Log out" + }, + "ok": { + "message": "OK" + }, + "yes": { + "message": "Yes" + }, + "no": { + "message": "No" + }, + "loginOrCreateNewAccount": { + "message": "Log in or create a new account to access your secure vault." + }, + "createAccount": { + "message": "Create account" + }, + "logIn": { + "message": "Log in" + }, + "submit": { + "message": "Submit" + }, + "emailAddressDesc": { + "message": "You'll use your email address to log in." + }, + "yourName": { + "message": "Your name" + }, + "yourNameDesc": { + "message": "What should we call you?" + }, + "masterPass": { + "message": "Master password" + }, + "masterPassDesc": { + "message": "The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it." + }, + "masterPassHintDesc": { + "message": "A master password hint can help you remember your password if you forget it." + }, + "reTypeMasterPass": { + "message": "Re-type master password" + }, + "masterPassHint": { + "message": "Master password hint (optional)" + }, + "masterPassHintLabel": { + "message": "Master password hint" + }, + "settings": { + "message": "Settings" + }, + "passwordHint": { + "message": "Password hint" + }, + "enterEmailToGetHint": { + "message": "Enter your account email address to receive your master password hint." + }, + "getMasterPasswordHint": { + "message": "Get master password hint" + }, + "emailRequired": { + "message": "Email address is required." + }, + "invalidEmail": { + "message": "Invalid email address." + }, + "masterPassRequired": { + "message": "Master password is required." + }, + "masterPassLength": { + "message": "Master password must be at least 8 characters long." + }, + "masterPassDoesntMatch": { + "message": "Master password confirmation does not match." + }, + "newAccountCreated": { + "message": "Your new account has been created! You may now log in." + }, + "masterPassSent": { + "message": "We've sent you an email with your master password hint." + }, + "unexpectedError": { + "message": "An unexpected error has occurred." + }, + "emailAddress": { + "message": "Email address" + }, + "yourVaultIsLocked": { + "message": "Your vault is locked. Verify your master password to continue." + }, + "unlock": { + "message": "Unlock" + }, + "loggedInAsEmailOn": { + "message": "Logged in as $EMAIL$ on $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Invalid master password" + }, + "lockNow": { + "message": "Lock now" + }, + "noItemsInList": { + "message": "There are no items to list." + }, + "noCollectionsInList": { + "message": "There are no collections to list." + }, + "noGroupsInList": { + "message": "There are no groups to list." + }, + "noUsersInList": { + "message": "There are no users to list." + }, + "noEventsInList": { + "message": "There are no events to list." + }, + "newOrganization": { + "message": "New organisation" + }, + "noOrganizationsList": { + "message": "You do not belong to any organisations. Organisations allow you to securely share items with other users." + }, + "versionNumber": { + "message": "Version $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Enter the 6 digit verification code from your authenticator app." + }, + "enterVerificationCodeEmail": { + "message": "Enter the 6 digit verification code that was emailed to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Verification email sent to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Remember me" + }, + "sendVerificationCodeEmailAgain": { + "message": "Send verification code email again" + }, + "useAnotherTwoStepMethod": { + "message": "Use another two-step login method" + }, + "insertYubiKey": { + "message": "Insert your YubiKey into your computer's USB port, then touch its button." + }, + "insertU2f": { + "message": "Insert your security key into your computer's USB port. If it has a button, touch it." + }, + "loginUnavailable": { + "message": "Login unavailable" + }, + "noTwoStepProviders": { + "message": "This account has two-step login enabled. However, none of the configured two-step providers are supported by this web browser." + }, + "noTwoStepProviders2": { + "message": "Please use a supported web browser (such as Chrome) and/or add additional providers that are better supported across web browsers (such as an authenticator app)." + }, + "twoStepOptions": { + "message": "Two-step login options" + }, + "recoveryCodeDesc": { + "message": "Lost access to all of your two-factor providers? Use your recovery code to disable all two-factor providers from your account." + }, + "recoveryCodeTitle": { + "message": "Recovery code" + }, + "authenticatorAppTitle": { + "message": "Authenticator app" + }, + "authenticatorAppDesc": { + "message": "Use an authenticator app (such as Authy or Google Authenticator) to generate time-based verification codes.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP security key" + }, + "yubiKeyDesc": { + "message": "Use a YubiKey to access your account. Works with YubiKey 4 series, 5 series, and NEO devices." + }, + "duoDesc": { + "message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verify with Duo Security for your organisation using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Use any FIDO U2F enabled security key to access your account." + }, + "u2fTitle": { + "message": "FIDO U2F security key" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Verification codes will be emailed to you." + }, + "continue": { + "message": "Continue" + }, + "organization": { + "message": "Organisation" + }, + "organizations": { + "message": "Organisations" + }, + "moveToOrgDesc": { + "message": "Choose an organisation that you wish to move this item to. Moving to an organisation transfers ownership of the item to that organisation. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organisation that you wish to move these items to. Moving to an organisation transfers ownership of the items to that organisation. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "Edit the collections that this item is being shared with. Only organisation users with access to these collections will be able to see this item." + }, + "deleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to delete. Are you sure you want to delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Choose a folder that you would like to move the $COUNT$ selected item(s) to.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organisation, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Verification code (TOTP)" + }, + "copyVerificationCode": { + "message": "Copy verification code" + }, + "warning": { + "message": "Warning" + }, + "confirmVaultExport": { + "message": "Confirm Vault Export" + }, + "exportWarningDesc": { + "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over insecure channels (such as email). Delete it immediately after you are done using it." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "Export vault" + }, + "fileFormat": { + "message": "File format" + }, + "exportSuccess": { + "message": "Your vault data has been exported." + }, + "passwordGenerator": { + "message": "Password generator" + }, + "minComplexityScore": { + "message": "Minimum complexity score" + }, + "minNumbers": { + "message": "Minimum numbers" + }, + "minSpecial": { + "message": "Minimum special", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Avoid ambiguous characters" + }, + "regeneratePassword": { + "message": "Regenerate password" + }, + "length": { + "message": "Length" + }, + "numWords": { + "message": "Number of words" + }, + "wordSeparator": { + "message": "Word separator" + }, + "capitalize": { + "message": "Capitalise", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Include number" + }, + "passwordHistory": { + "message": "Password history" + }, + "noPasswordsInList": { + "message": "There are no passwords to list." + }, + "clear": { + "message": "Clear", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Account updated" + }, + "changeEmail": { + "message": "Change email" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "New email" + }, + "code": { + "message": "Code" + }, + "changeEmailDesc": { + "message": "We have emailed a verification code to $EMAIL$. Please check your email for this code and enter it below to finalise the email address change.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "emailChanged": { + "message": "Email changed" + }, + "logBackIn": { + "message": "Please log back in." + }, + "logBackInOthersToo": { + "message": "Please log back in. If you are using other Bitwarden applications, log out and back in to those as well." + }, + "changeMasterPassword": { + "message": "Change master password" + }, + "masterPasswordChanged": { + "message": "Master password changed" + }, + "currentMasterPass": { + "message": "Current master password" + }, + "newMasterPass": { + "message": "New master password" + }, + "confirmNewMasterPass": { + "message": "Confirm new master password" + }, + "encKeySettings": { + "message": "Encryption key settings" + }, + "kdfAlgorithm": { + "message": "KDF algorithm" + }, + "kdfIterations": { + "message": "KDF iterations" + }, + "kdfIterationsDesc": { + "message": "Higher KDF iterations can help protect your master password from being brute forced by an attacker. We recommend a value of $VALUE$ or more.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Setting your KDF iterations too high could result in poor performance when logging into (and unlocking) Bitwarden on devices with slower CPUs. We recommend that you increase the value in increments of $INCREMENT$ and then test all of your devices.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Change KDF" + }, + "encKeySettingsChanged": { + "message": "Encryption key settings changed" + }, + "dangerZone": { + "message": "Danger zone" + }, + "dangerZoneDesc": { + "message": "Careful, these actions are not reversible!" + }, + "deauthorizeSessions": { + "message": "Deauthorise sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Concerned your account is logged in on another device? Proceed below to deauthorise all computers or devices that you have previously used. This security step is recommended if you previously used a public computer or accidentally saved your password on a device that isn't yours. This step will also clear all previously remembered two-step login sessions." + }, + "deauthorizeSessionsWarning": { + "message": "Proceeding will also log you out of your current session, requiring you to log back in. You will also be prompted for two-step login again, if enabled. Active sessions on other devices may continue to remain active for up to one hour." + }, + "sessionsDeauthorized": { + "message": "All sessions deauthorised" + }, + "purgeVault": { + "message": "Purge vault" + }, + "purgedOrganizationVault": { + "message": "Purged organisation vault." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Proceed below to delete all items and folders in your vault. Items that belong to an organisation that you share with will not be deleted." + }, + "purgeOrgVaultDesc": { + "message": "Proceed below to delete all items in the organisation's vault." + }, + "purgeVaultWarning": { + "message": "Purging your vault is permanent. It cannot be undone." + }, + "vaultPurged": { + "message": "Your vault has been purged." + }, + "deleteAccount": { + "message": "Delete account" + }, + "deleteAccountDesc": { + "message": "Proceed below to delete your account and all associated data." + }, + "deleteAccountWarning": { + "message": "Deleting your account is permanent. It cannot be undone." + }, + "accountDeleted": { + "message": "Account deleted" + }, + "accountDeletedDesc": { + "message": "Your account has been closed and all associated data has been deleted." + }, + "myAccount": { + "message": "My account" + }, + "tools": { + "message": "Tools" + }, + "importData": { + "message": "Import data" + }, + "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." + }, + "importSuccess": { + "message": "Data has been successfully imported into your vault." + }, + "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." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "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)" + } + } + }, + "options": { + "message": "Options" + }, + "optionsDesc": { + "message": "Customise your web vault experience." + }, + "optionsUpdated": { + "message": "Options updated" + }, + "language": { + "message": "Language" + }, + "languageDesc": { + "message": "Change the language used by the web vault." + }, + "disableIcons": { + "message": "Disable website icons" + }, + "disableIconsDesc": { + "message": "Website icons provide a recognisable image next to each login item in your vault." + }, + "enableGravatars": { + "message": "Enable Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use avatar images loaded from gravatar.com." + }, + "enableFullWidth": { + "message": "Enable full width layout", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Allow the web vault to expand the full width of the browser window." + }, + "default": { + "message": "Default" + }, + "domainRules": { + "message": "Domain rules" + }, + "domainRulesDesc": { + "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + }, + "globalEqDomains": { + "message": "Global equivalent domains" + }, + "customEqDomains": { + "message": "Custom equivalent domains" + }, + "exclude": { + "message": "Exclude" + }, + "include": { + "message": "Include" + }, + "customize": { + "message": "Customise" + }, + "newCustomDomain": { + "message": "New custom domain" + }, + "newCustomDomainDesc": { + "message": "Enter a list of domains separated by commas. Only \"base\" domains are allowed. Do not enter sub-domains. For example, enter \"google.com\" instead of \"www.google.com\". You can also enter \"androidapp://package.name\" to associate an Android app with other website domains." + }, + "customDomainX": { + "message": "Custom domain $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domains updated" + }, + "twoStepLogin": { + "message": "Two-step login" + }, + "twoStepLoginDesc": { + "message": "Secure your account by requiring an additional step when logging in." + }, + "twoStepLoginOrganizationDesc": { + "message": "Require two-step login for your organisation's users by configuring providers at the organisation level." + }, + "twoStepLoginRecoveryWarning": { + "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (e.g. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + }, + "viewRecoveryCode": { + "message": "View recovery code" + }, + "providers": { + "message": "Providers", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Enable" + }, + "enabled": { + "message": "Enabled" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium membership" + }, + "premiumRequired": { + "message": "Premium required" + }, + "premiumRequiredDesc": { + "message": "A premium membership is required to use this feature." + }, + "youHavePremiumAccess": { + "message": "You have premium access" + }, + "alreadyPremiumFromOrg": { + "message": "You already have access to premium features because of an organisation of which you are a member." + }, + "manage": { + "message": "Manage" + }, + "disable": { + "message": "Disable" + }, + "twoStepLoginProviderEnabled": { + "message": "This two-step login provider is enabled on your account." + }, + "twoStepLoginAuthDesc": { + "message": "Enter your master password to modify two-step login settings." + }, + "twoStepAuthenticatorDesc": { + "message": "Follow these steps to set up two-step login with an authenticator app:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Download a two-step authenticator app" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Need a two-step authenticator app? Download one of the following" + }, + "iosDevices": { + "message": "iOS devices" + }, + "androidDevices": { + "message": "Android devices" + }, + "windowsDevices": { + "message": "Windows devices" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "These apps are recommended. However, other authenticator apps will also work." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scan this QR code with your authenticator app" + }, + "key": { + "message": "Key" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Enter the resulting 6 digit verification code from the app" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app." + }, + "twoStepDisableDesc": { + "message": "Are you sure you want to disable this two-step login provider?" + }, + "twoStepDisabled": { + "message": "Two-step login provider disabled." + }, + "twoFactorYubikeyAdd": { + "message": "Add a new YubiKey to your account" + }, + "twoFactorYubikeyPlugIn": { + "message": "Plug the YubiKey into your computer's USB port." + }, + "twoFactorYubikeySelectKey": { + "message": "Select the first empty YubiKey input field below." + }, + "twoFactorYubikeyTouchButton": { + "message": "Touch the YubiKey's button." + }, + "twoFactorYubikeySaveForm": { + "message": "Save the form." + }, + "twoFactorYubikeyWarning": { + "message": "Due to platform limitations, YubiKeys cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when YubiKeys cannot be used. Supported platforms:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile apps on a device with NFC capabilities or a USB port that can accept your YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC support" + }, + "twoFactorYubikeySupportsNfc": { + "message": "One of my keys supports NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "If one of your YubiKeys supports NFC (such as a YubiKey NEO), you will be prompted on mobile devices whenever NFC availability is detected." + }, + "yubikeysUpdated": { + "message": "YubiKeys updated" + }, + "disableAllKeys": { + "message": "Disable all keys" + }, + "twoFactorDuoDesc": { + "message": "Enter the Bitwarden application information from your Duo Admin panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration key" + }, + "twoFactorDuoSecretKey": { + "message": "Secret key" + }, + "twoFactorDuoApiHostname": { + "message": "API hostname" + }, + "twoFactorEmailDesc": { + "message": "Follow these steps to set up two-step login with email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enter the email that you wish to receive verification codes" + }, + "twoFactorEmailEnterCode": { + "message": "Enter the resulting 6 digit verification code from the email" + }, + "sendEmail": { + "message": "Send email" + }, + "twoFactorU2fAdd": { + "message": "Add a FIDO U2F security key to your account" + }, + "removeU2fConfirmation": { + "message": "Are you sure you want to remove this security key?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Read key" + }, + "keyCompromised": { + "message": "Key is compromised." + }, + "twoFactorU2fGiveName": { + "message": "Give the security key a friendly name to identify it." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Plug the security key into your computer's USB port and click the \"Read key\" button." + }, + "twoFactorU2fTouchButton": { + "message": "If the security key has a button, touch it." + }, + "twoFactorU2fSaveForm": { + "message": "Save the form." + }, + "twoFactorU2fWarning": { + "message": "Due to platform limitations, FIDO U2F cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when FIDO U2F cannot be used. Supported platforms:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorU2fWaiting": { + "message": "Waiting for you to touch the button on your security key" + }, + "twoFactorU2fClickSave": { + "message": "Click the \"Save\" button below to enable this security key for two-step login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Your Bitwarden two-step login recovery code" + }, + "twoFactorRecoveryNoCode": { + "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + }, + "printCode": { + "message": "Print code", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Reports" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Unsecured websites report" + }, + "unsecuredWebsitesReportDesc": { + "message": "Using unsecured websites with the http:// scheme can be dangerous. If the website allows, you should always access it using the https:// scheme so that your connection is encrypted." + }, + "unsecuredWebsitesFound": { + "message": "Unsecured websites found" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Inactive 2FA report" + }, + "inactive2faReportDesc": { + "message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication." + }, + "inactive2faFound": { + "message": "Logins without 2FA found" + }, + "inactive2faFoundDesc": { + "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No websites were found in your vault with a missing two-factor authentication configuration." + }, + "instructions": { + "message": "Instructions" + }, + "exposedPasswordsReport": { + "message": "Exposed passwords report" + }, + "exposedPasswordsReportDesc": { + "message": "Exposed passwords are passwords that have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers." + }, + "exposedPasswordsFound": { + "message": "Exposed passwords found" + }, + "exposedPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No items in your vault have passwords that have been exposed in known data breaches." + }, + "checkExposedPasswords": { + "message": "Check exposed passwords" + }, + "exposedXTimes": { + "message": "Exposed $COUNT$ time(s)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Weak passwords report" + }, + "weakPasswordsReportDesc": { + "message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords." + }, + "weakPasswordsFound": { + "message": "Weak passwords found" + }, + "weakPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "No items in your vault have weak passwords." + }, + "reusedPasswordsReport": { + "message": "Reused passwords report" + }, + "reusedPasswordsReportDesc": { + "message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service." + }, + "reusedPasswordsFound": { + "message": "Reused passwords found" + }, + "reusedPasswordsFoundDesc": { + "message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "No logins in your vault have passwords that are being reused." + }, + "reusedXTimes": { + "message": "Reused $COUNT$ times", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Data breach report" + }, + "breachDesc": { + "message": "A \"breach\" is an incident where a site's data has been illegally accessed by hackers and then released publicly. Review the types of data that were compromised (email addresses, passwords, credit cards etc.) and take appropriate action, such as changing passwords." + }, + "breachCheckUsernameEmail": { + "message": "Check any usernames or email addresses that you use." + }, + "checkBreaches": { + "message": "Check breaches" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ was not found in any known data breaches.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Good news", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Breached accounts found" + }, + "compromisedData": { + "message": "Compromised data" + }, + "website": { + "message": "Website" + }, + "affectedUsers": { + "message": "Affected users" + }, + "breachOccurred": { + "message": "Breach occurred" + }, + "breachReported": { + "message": "Breach reported" + }, + "reportError": { + "message": "An error occurred trying to load the report. Try again" + }, + "billing": { + "message": "Billing" + }, + "accountCredit": { + "message": "Account credit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Account balance", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Add credit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Amount", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Added credit will appear on your account after the payment has been fully processed. Some payment methods are delayed and can take longer to process than others." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + }, + "goPremium": { + "message": "Go premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "You've upgraded to premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Upgrade your account to a premium membership and unlock some great additional features." + }, + "premiumSignUpStorage": { + "message": "1 GB encrypted storage for file attachments." + }, + "premiumSignUpTwoStep": { + "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + }, + "premiumSignUpTotp": { + "message": "TOTP verification code (2FA) generator for logins in your vault." + }, + "premiumSignUpSupport": { + "message": "Priority customer support." + }, + "premiumSignUpFuture": { + "message": "All future premium features. More coming soon!" + }, + "premiumPrice": { + "message": "All for just $PRICE$ /year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Add-ons" + }, + "premiumAccess": { + "message": "Premium access" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organisation for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Additional storage (GB)" + }, + "additionalStorageGbDesc": { + "message": "# of additional GB" + }, + "additionalStorageIntervalDesc": { + "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Summary" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "year" + }, + "month": { + "message": "month" + }, + "monthAbbr": { + "message": "mon.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Your payment method will be charged immediately and then on a recurring basis each year. You may cancel at any time." + }, + "paymentCharged": { + "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Your plan comes with a free 7 day trial. Your payment method will not be charged until the trial has ended. Billing will occur on a recurring basis each $INTERVAL$. You may cancel at any time." + }, + "paymentInformation": { + "message": "Payment information" + }, + "billingInformation": { + "message": "Billing Information" + }, + "creditCard": { + "message": "Credit card" + }, + "paypalClickSubmit": { + "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + }, + "cancelSubscription": { + "message": "Cancel subscription" + }, + "subscriptionCanceled": { + "message": "The subscription has been cancelled." + }, + "pendingCancellation": { + "message": "Pending cancellation" + }, + "subscriptionPendingCanceled": { + "message": "The subscription has been marked for cancellation at the end of the current billing period." + }, + "reinstateSubscription": { + "message": "Reinstate subscription" + }, + "reinstateConfirmation": { + "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + }, + "reinstated": { + "message": "The subscription has been reinstated." + }, + "cancelConfirmation": { + "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + }, + "canceledSubscription": { + "message": "The subscription has been cancelled." + }, + "neverExpires": { + "message": "Never expires" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Next charge" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "Download licence" + }, + "updateLicense": { + "message": "Update licence" + }, + "updatedLicense": { + "message": "Updated licence" + }, + "manageSubscription": { + "message": "Manage subscription" + }, + "storage": { + "message": "Storage" + }, + "addStorage": { + "message": "Add storage" + }, + "removeStorage": { + "message": "Remove storage" + }, + "subscriptionStorage": { + "message": "Your subscription has a total of $MAX_STORAGE$ GB of encrypted file storage. You are currently using $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Payment method" + }, + "noPaymentMethod": { + "message": "No payment method on file." + }, + "addPaymentMethod": { + "message": "Add payment method" + }, + "changePaymentMethod": { + "message": "Change payment method" + }, + "invoices": { + "message": "Invoices" + }, + "noInvoices": { + "message": "No invoices." + }, + "paid": { + "message": "Paid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Unpaid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transactions", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "No transactions." + }, + "chargeNoun": { + "message": "Charge", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Refund", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Any charges will appear on your statement as $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB of storage to add" + }, + "gbStorageRemove": { + "message": "GB of storage to remove" + }, + "storageAddNote": { + "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "storageRemoveNote": { + "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedStorage": { + "message": "Adjusted $AMOUNT$ GB of storage.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contact Customer Support" + }, + "updatedPaymentMethod": { + "message": "Updated payment method." + }, + "purchasePremium": { + "message": "Purchase premium" + }, + "licenseFile": { + "message": "Licence file" + }, + "licenseFileDesc": { + "message": "Your licence file will be named something like $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "To upgrade your account to a premium membership you need to upload a valid licence file." + }, + "uploadLicenseFileOrg": { + "message": "To create an on-premises hosted organisation you need to upload a valid licence file." + }, + "accountEmailMustBeVerified": { + "message": "Your account's email address must be verified." + }, + "newOrganizationDesc": { + "message": "Organisations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company." + }, + "generalInformation": { + "message": "General information" + }, + "organizationName": { + "message": "Organisation name" + }, + "accountOwnedBusiness": { + "message": "This account is owned by a business." + }, + "billingEmail": { + "message": "Billing email" + }, + "businessName": { + "message": "Business name" + }, + "chooseYourPlan": { + "message": "Choose your plan" + }, + "users": { + "message": "Users" + }, + "userSeats": { + "message": "User seats" + }, + "additionalUserSeats": { + "message": "Additional user seats" + }, + "userSeatsDesc": { + "message": "# of user seats" + }, + "userSeatsAdditionalDesc": { + "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "How many user seats do you need? You can also add additional seats later if needed." + }, + "planNameFree": { + "message": "Free", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing or personal users to share with $COUNT$ other users.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Families" + }, + "planDescFamilies": { + "message": "For personal use, to share with family & friends." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "For businesses and other team organisations." + }, + "planNameEnterprise": { + "message": "Enterprise" + }, + "planDescEnterprise": { + "message": "For businesses and other large organisations." + }, + "freeForever": { + "message": "Free forever" + }, + "includesXUsers": { + "message": "includes $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Additional users" + }, + "costPerUser": { + "message": "$COST$ per user", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limited to $COUNT$ users (including you)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limited to $COUNT$ collections", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Add and share with up to $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Add and share with unlimited users" + }, + "createUnlimitedCollections": { + "message": "Create unlimited collections" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ encrypted file storage", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "On-premise hosting (optional)" + }, + "usersGetPremium": { + "message": "Users get access to premium features" + }, + "controlAccessWithGroups": { + "message": "Control user access with groups" + }, + "syncUsersFromDirectory": { + "message": "Sync your users and groups from a directory" + }, + "trackAuditLogs": { + "message": "Track user actions with audit logs" + }, + "enforce2faDuo": { + "message": "Enforce 2FA with Duo" + }, + "priorityCustomerSupport": { + "message": "Priority customer support" + }, + "xDayFreeTrial": { + "message": "$COUNT$ day free trial, cancel anytime", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Monthly" + }, + "annually": { + "message": "Annually" + }, + "basePrice": { + "message": "Base price" + }, + "organizationCreated": { + "message": "Organisation created" + }, + "organizationReadyToGo": { + "message": "Your new organisation is ready to go!" + }, + "organizationUpgraded": { + "message": "Your organisation has been upgraded." + }, + "leave": { + "message": "Leave" + }, + "leaveOrganizationConfirmation": { + "message": "Are you sure you want to leave this organisation?" + }, + "leftOrganization": { + "message": "You have left the organisation." + }, + "defaultCollection": { + "message": "Default collection" + }, + "getHelp": { + "message": "Get help" + }, + "getApps": { + "message": "Get the apps" + }, + "loggedInAs": { + "message": "Logged in as" + }, + "eventLogs": { + "message": "Event logs" + }, + "people": { + "message": "People" + }, + "policies": { + "message": "Policies" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Edit policy" + }, + "groups": { + "message": "Groups" + }, + "newGroup": { + "message": "New group" + }, + "addGroup": { + "message": "Add group" + }, + "editGroup": { + "message": "Edit group" + }, + "deleteGroupConfirmation": { + "message": "Are you sure you want to delete this group?" + }, + "removeUserConfirmation": { + "message": "Are you sure you want to remove this user?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "External ID" + }, + "externalIdDesc": { + "message": "The external ID can be used as a reference or to link this resource to an external system such as a user directory." + }, + "accessControl": { + "message": "Access control" + }, + "groupAccessAllItems": { + "message": "This group can access and modify all items." + }, + "groupAccessSelectedCollections": { + "message": "This group can access only the selected collections." + }, + "readOnly": { + "message": "Read only" + }, + "newCollection": { + "message": "New collection" + }, + "addCollection": { + "message": "Add collection" + }, + "editCollection": { + "message": "Edit collection" + }, + "deleteCollectionConfirmation": { + "message": "Are you sure you want to delete this collection?" + }, + "editUser": { + "message": "Edit user" + }, + "inviteUser": { + "message": "Invite user" + }, + "inviteUserDesc": { + "message": "Invite a new user to your organisation by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "inviteMultipleEmailDesc": { + "message": "You can invite up to $COUNT$ users at a time by comma separating a list of email addresses.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "This user is using two-step login to protect their account." + }, + "userAccessAllItems": { + "message": "This user can access and modify all items." + }, + "userAccessSelectedCollections": { + "message": "This user can access only the selected collections." + }, + "search": { + "message": "Search" + }, + "invited": { + "message": "Invited" + }, + "accepted": { + "message": "Accepted" + }, + "confirmed": { + "message": "Confirmed" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Owner" + }, + "ownerDesc": { + "message": "The highest access user that can manage all aspects of your organisation." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admins can access and manage all items, collections and users in your organisation." + }, + "user": { + "message": "User" + }, + "userDesc": { + "message": "A regular user with access to assigned collections in your organisation." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managers can access and manage assigned collections in your organisation." + }, + "all": { + "message": "All" + }, + "refresh": { + "message": "Refresh" + }, + "timestamp": { + "message": "Timestamp" + }, + "event": { + "message": "Event" + }, + "unknown": { + "message": "Unknown" + }, + "loadMore": { + "message": "Load more" + }, + "mobile": { + "message": "Mobile", + "description": "Mobile app" + }, + "extension": { + "message": "Extension", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Web vault" + }, + "loggedIn": { + "message": "Logged in." + }, + "changedPassword": { + "message": "Changed account password." + }, + "enabledUpdated2fa": { + "message": "Enabled/updated two-step login." + }, + "disabled2fa": { + "message": "Disabled two-step login." + }, + "recovered2fa": { + "message": "Recovered account from two-step login." + }, + "failedLogin": { + "message": "Login attempt failed with incorrect password." + }, + "failedLogin2fa": { + "message": "Login attempt failed with incorrect two-step login." + }, + "exportedVault": { + "message": "Exported vault." + }, + "exportedOrganizationVault": { + "message": "Exported organisation vault." + }, + "editedOrgSettings": { + "message": "Edited organisation settings." + }, + "createdItemId": { + "message": "Created item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Edited item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Sent item $ID$ to bin.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organisation.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Viewed item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Viewed password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Viewed hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Viewed security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Copied password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Copied hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Copied security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Auto-filled item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Created collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Edited collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Deleted collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Edited policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Created group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Edited group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Deleted group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Removed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Created attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Deleted attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Edited collections for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Invited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Confirmed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Edited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Edited groups for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Device" + }, + "view": { + "message": "View" + }, + "invalidDateRange": { + "message": "Invalid date range." + }, + "errorOccurred": { + "message": "An error has occurred." + }, + "userAccess": { + "message": "User access" + }, + "userType": { + "message": "User type" + }, + "groupAccess": { + "message": "Group access" + }, + "groupAccessUserDesc": { + "message": "Edit the groups that this user belongs to." + }, + "invitedUsers": { + "message": "Invited user(s)." + }, + "resendInvitation": { + "message": "Resend invitation" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ has been reinvited.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirm" + }, + "confirmUser": { + "message": "Confirm user" + }, + "hasBeenConfirmed": { + "message": "$USER$ has been confirmed.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirm users" + }, + "usersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organisation until they are confirmed." + }, + "startDate": { + "message": "Start date" + }, + "endDate": { + "message": "End date" + }, + "verifyEmail": { + "message": "Verify email" + }, + "verifyEmailDesc": { + "message": "Verify your account's email address to unlock access to all features." + }, + "verifyEmailFirst": { + "message": "Your account's email address must first be verified." + }, + "checkInboxForVerification": { + "message": "Check your email inbox for a verification link." + }, + "emailVerified": { + "message": "Your email has been verified." + }, + "emailVerifiedFailed": { + "message": "Unable to verify your email. Try sending a new verification email." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "Update browser" + }, + "updateBrowserDesc": { + "message": "You are using an unsupported web browser. The web vault may not function properly." + }, + "joinOrganization": { + "message": "Join organisation" + }, + "joinOrganizationDesc": { + "message": "You've been invited to join the organisation listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "inviteAccepted": { + "message": "Invitation accepted" + }, + "inviteAcceptedDesc": { + "message": "You can access this organisation once an administrator confirms your membership. We'll send you an email when that happens." + }, + "inviteAcceptFailed": { + "message": "Unable to accept invitation. Ask an organisation admin to send a new invitation." + }, + "inviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Remember email" + }, + "recoverAccountTwoStepDesc": { + "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + }, + "recoverAccountTwoStep": { + "message": "Recover account two-step login" + }, + "twoStepRecoverDisabled": { + "message": "Two-step login has been disabled on your account." + }, + "learnMore": { + "message": "Learn more" + }, + "deleteRecoverDesc": { + "message": "Enter your email address below to recover and delete your account." + }, + "deleteRecoverEmailSent": { + "message": "If your account exists, we've sent you an email with further instructions." + }, + "deleteRecoverConfirmDesc": { + "message": "You have requested to delete your Bitwarden account. Click the button below to confirm." + }, + "myOrganization": { + "message": "My organisation" + }, + "deleteOrganization": { + "message": "Delete organisation" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organisation deleted" + }, + "organizationDeletedDesc": { + "message": "The organisation and all associated data has been deleted." + }, + "organizationUpdated": { + "message": "Organisation updated" + }, + "taxInformation": { + "message": "Tax information" + }, + "taxInformationDesc": { + "message": "For customers within the US, ZIP code is required to satisfy sales tax requirements; for other countries you may optionally provide a tax identification number (VAT/GST) and/or address to appear on your invoices." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Change plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade your account to another plan by providing the information below. Please ensure that you have an active payment method added to the account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Invoice #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "View invoice" + }, + "downloadInvoice": { + "message": "Download invoice" + }, + "verifyBankAccount": { + "message": "Verify bank account" + }, + "verifyBankAccountDesc": { + "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." + }, + "verifyBankAccountInitialDesc": { + "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organisation's billing page to verify the bank account." + }, + "verifyBankAccountFailureWarning": { + "message": "Failure to verify the bank account will result in a missed payment and your subscription being disabled." + }, + "verifiedBankAccount": { + "message": "Bank account has been verified." + }, + "bankAccount": { + "message": "Bank account" + }, + "amountX": { + "message": "Amount $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Sort code", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Account number" + }, + "accountHolderName": { + "message": "Account holder name" + }, + "bankAccountType": { + "message": "Account type" + }, + "bankAccountTypeCompany": { + "message": "Company (business)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (personal)" + }, + "enterInstallationId": { + "message": "Enter your installation ID" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Add seats", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remove seats", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Your subscription allows for a total of $COUNT$ users.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seats to add" + }, + "seatsToRemove": { + "message": "Seats to remove" + }, + "seatsAddNote": { + "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "seatsRemoveNote": { + "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedSeats": { + "message": "Adjusted $AMOUNT$ user seats.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Key updated" + }, + "updateKeyTitle": { + "message": "Update key" + }, + "updateEncryptionKey": { + "message": "Update encryption key" + }, + "updateEncryptionKeyShortDesc": { + "message": "You are currently using an outdated encryption scheme." + }, + "updateEncryptionKeyDesc": { + "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, although this may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "Subscription" + }, + "loading": { + "message": "Loading" + }, + "upgrade": { + "message": "Upgrade" + }, + "upgradeOrganization": { + "message": "Upgrade organisation" + }, + "upgradeOrganizationDesc": { + "message": "This feature is not available for free organisations. Switch to a paid plan to unlock more features." + }, + "createOrganizationStep1": { + "message": "Create organisation: step 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Before creating your organisation, you first need to create a free personal account." + }, + "refunded": { + "message": "Refunded" + }, + "nothingSelected": { + "message": "You have not selected anything." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." + }, + "termsOfService": { + "message": "Terms of service" + }, + "privacyPolicy": { + "message": "Privacy policy" + }, + "filters": { + "message": "Filters" + }, + "vaultTimeout": { + "message": "Vault timeout" + }, + "vaultTimeoutDesc": { + "message": "Choose when your vault will timeout and perform the selected action." + }, + "oneMinute": { + "message": "1 minute" + }, + "fiveMinutes": { + "message": "5 minutes" + }, + "fifteenMinutes": { + "message": "15 minutes" + }, + "thirtyMinutes": { + "message": "30 minutes" + }, + "oneHour": { + "message": "1 hour" + }, + "fourHours": { + "message": "4 hours" + }, + "onRefresh": { + "message": "On browser refresh" + }, + "dateUpdated": { + "message": "Updated", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Password updated", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organisation is disabled." + }, + "licenseIsExpired": { + "message": "Licence is expired." + }, + "updatedUsers": { + "message": "Updated users" + }, + "selected": { + "message": "Selected" + }, + "ownership": { + "message": "Ownership" + }, + "whoOwnsThisItem": { + "message": "Who owns this item?" + }, + "strong": { + "message": "Strong", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Good", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Weak", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Very weak", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Weak master password" + }, + "weakMasterPasswordDesc": { + "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + }, + "rotateAccountEncKey": { + "message": "Also rotate my account's encryption key" + }, + "rotateEncKeyTitle": { + "message": "Rotate encryption key" + }, + "rotateEncKeyConfirmation": { + "message": "Are you sure you want to rotate your account's encryption key?" + }, + "attachmentsNeedFix": { + "message": "This item has old file attachments that need to be fixed." + }, + "attachmentFixDesc": { + "message": "This is an old file attachment the needs to be fixed. Click to learn more." + }, + "fix": { + "message": "Fix", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key." + }, + "yourAccountsFingerprint": { + "message": "Your account's fingerprint phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Don't ask to verify fingerprint phrase again", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Free", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API key" + }, + "apiKeyDesc": { + "message": "Your API key can be used to authenticate to the Bitwarden public API." + }, + "apiKeyRotateDesc": { + "message": "Rotating the API key will invalidate the previous key. You can rotate your API key if you believe that the current key is no longer safe to use." + }, + "apiKeyWarning": { + "message": "Your API key has full access to the organisation. It should be kept secret." + }, + "userApiKeyDesc": { + "message": "Your API key can be used to authenticate in the Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 client credentials", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "View API key" + }, + "rotateApiKey": { + "message": "Rotate API key" + }, + "selectOneCollection": { + "message": "You must select at least one collection." + }, + "couldNotChargeCardPayInvoice": { + "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + }, + "inAppPurchase": { + "message": "In-app purchase" + }, + "cannotPerformInAppPurchase": { + "message": "You cannot perform this action while using an in-app purchase payment method." + }, + "manageSubscriptionFromStore": { + "message": "You must manage your subscription from the store where your in-app purchase was made." + }, + "minLength": { + "message": "Minimum length" + }, + "clone": { + "message": "Clone" + }, + "masterPassPolicyDesc": { + "message": "Set minimum requirements for master password strength." + }, + "twoStepLoginPolicyDesc": { + "message": "Require users to set up two-step login on their personal accounts." + }, + "twoStepLoginPolicyWarning": { + "message": "Organisation members who do not have two-step login enabled for their personal account will be removed from the organisation and will receive an email notifying them about the change." + }, + "twoStepLoginPolicyUserWarning": { + "message": "You are a member of an organisation that requires two-step login to be enabled on your user account. If you disable all two-step login providers you will be automatically removed from these organisations." + }, + "passwordGeneratorPolicyDesc": { + "message": "Set minimum requirements for password generator configuration." + }, + "passwordGeneratorPolicyInEffect": { + "message": "One or more organisation policies are affecting your generator settings." + }, + "masterPasswordPolicyInEffect": { + "message": "One or more organisation policies require your master password to meet the following requirements:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum complexity score of $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum length of $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contain one or more uppercase characters" + }, + "policyInEffectLowercase": { + "message": "Contain one or more lowercase characters" + }, + "policyInEffectNumbers": { + "message": "Contain one or more numbers" + }, + "policyInEffectSpecial": { + "message": "Contain one or more of the following special characters $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Your new master password does not meet the policy requirements." + }, + "minimumNumberOfWords": { + "message": "Minimum number of words" + }, + "defaultType": { + "message": "Default type" + }, + "userPreference": { + "message": "User preference" + }, + "vaultTimeoutAction": { + "message": "Vault timeout action" + }, + "vaultTimeoutActionLockDesc": { + "message": "A locked vault requires that you re-enter your master password to access it again." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "A logged out vault requires that you re-authenticate to access it again." + }, + "lock": { + "message": "Lock", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Bin", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Search bin" + }, + "permanentlyDelete": { + "message": "Permanently delete" + }, + "permanentlyDeleteSelected": { + "message": "Permanently delete selected" + }, + "permanentlyDeleteItem": { + "message": "Permanently delete item" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Are you sure you want to permanently delete this item?" + }, + "permanentlyDeletedItem": { + "message": "Permanently deleted item" + }, + "permanentlyDeletedItems": { + "message": "Permanently deleted items" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Permanently deleted item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restore" + }, + "restoreSelected": { + "message": "Restore selected" + }, + "restoreItem": { + "message": "Restore item" + }, + "restoredItem": { + "message": "Restored item" + }, + "restoredItems": { + "message": "Restored items" + }, + "restoreItemConfirmation": { + "message": "Are you sure you want to restore this item?" + }, + "restoreItems": { + "message": "Restore items" + }, + "restoreSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Restored item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout action confirmation" + }, + "hidePasswords": { + "message": "Hide passwords" + }, + "countryPostalCodeRequiredDesc": { + "message": "We require this information for calculating sales tax and financial reporting only." + }, + "includeVAT": { + "message": "Include VAT/GST information (optional)" + }, + "taxIdNumber": { + "message": "VAT/GST tax ID" + }, + "taxInfoUpdated": { + "message": "Tax information updated." + }, + "setMasterPassword": { + "message": "Set master password" + }, + "ssoCompleteRegistration": { + "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + }, + "identifier": { + "message": "Identifier" + }, + "organizationIdentifier": { + "message": "Organisation identifier" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Log in using your organisation's single sign-on portal. Please enter your organisation's identifier to begin." + }, + "enterpriseSingleSignOn": { + "message": "Enterprise single sign-on" + }, + "ssoHandOff": { + "message": "You may now close this tab and continue in the extension." + }, + "includeAllTeamsFeatures": { + "message": "All Teams features, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO authentication via SAML2.0 and OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Enterprise policies" + }, + "ssoValidationFailed": { + "message": "SSO validation failed" + }, + "ssoIdentifierRequired": { + "message": "Organisation identifier is required." + }, + "unlinkSso": { + "message": "Unlink SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Link SSO" + }, + "singleOrg": { + "message": "Single Organization" + }, + "singleOrgDesc": { + "message": "Restrict users from being able to join any other organizations." + }, + "singleOrgBlockCreateMessage": { + "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + }, + "singleOrgPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + }, + "requireSso": { + "message": "Single Sign-On Authentication" + }, + "requireSsoPolicyDesc": { + "message": "Require users to log in with the Enterprise Single Sign-On method." + }, + "prerequisite": { + "message": "Prerequisite" + }, + "requireSsoPolicyReq": { + "message": "The Single Organization enterprise policy must be enabled before activating this policy." + }, + "requireSsoPolicyReqError": { + "message": "Single Organization policy not enabled." + }, + "requireSsoExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "sendTypeFile": { + "message": "File" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Create New Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edit Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Created Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Edited Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Deleted Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Delete Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Are you sure you want to delete this Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "What type of Send is this?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Deletion Date" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Expiration Date" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximum Access Count" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Current Access Count" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Disabled" + }, + "sendLink": { + "message": "Send Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copy Send Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remove Password" + }, + "removedPassword": { + "message": "Removed Password" + }, + "removePasswordConfirmation": { + "message": "Are you sure you want to remove the password?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "All Sends" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "expired": { + "message": "Expired" + }, + "searchSends": { + "message": "Search Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "This Send is protected with a password. Please type the password below to continue.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Download File" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "There are no Sends to list.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Emergency Access" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of a emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Request Access" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approve" + }, + "reject": { + "message": "Reject" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Disable Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Send options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organisation users that can manage the organisation's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organisation policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "Estimated tax" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Manage All Collections" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Manage Groups" + }, + "managePolicies": { + "message": "Manage Policies" + }, + "manageSso": { + "message": "Manage SSO" + }, + "manageUsers": { + "message": "Manage Users" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organization users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Learn more about", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Learn more", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "try it now", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "sign up", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "to try it today.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organisation policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organisation administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organisation to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organisation will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organisation will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Automatically enroll new users" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organisation has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organisation administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organisation Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/eo/messages.json b/apps/web/src/locales/eo/messages.json new file mode 100644 index 0000000000..e9dce0799c --- /dev/null +++ b/apps/web/src/locales/eo/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Reta Volbo", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Kia speco de ero estas ĉi tio?" + }, + "name": { + "message": "Nomo" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Nova URI" + }, + "username": { + "message": "Uzantnomo" + }, + "password": { + "message": "Pasvorto" + }, + "newPassword": { + "message": "Nova pasvorto" + }, + "passphrase": { + "message": "Pasfrazo" + }, + "notes": { + "message": "Notoj" + }, + "customFields": { + "message": "Propraj Kampoj" + }, + "cardholderName": { + "message": "Nomo de Kartposedanto" + }, + "number": { + "message": "Numero" + }, + "brand": { + "message": "Marko" + }, + "expiration": { + "message": "Finiĝo" + }, + "securityCode": { + "message": "Sekureca Kodo (CVV)" + }, + "identityName": { + "message": "Identeca Nomo" + }, + "company": { + "message": "Kompanio" + }, + "ssn": { + "message": "Socia Sekureca Numero" + }, + "passportNumber": { + "message": "Pasporta Numero" + }, + "licenseNumber": { + "message": "Permesila Numero" + }, + "email": { + "message": "Retpoŝto" + }, + "phone": { + "message": "Telefono" + }, + "january": { + "message": "januaro" + }, + "february": { + "message": "februaro" + }, + "march": { + "message": "marto" + }, + "april": { + "message": "aprilo" + }, + "may": { + "message": "majo" + }, + "june": { + "message": "junio" + }, + "july": { + "message": "julio" + }, + "august": { + "message": "aŭgusto" + }, + "september": { + "message": "septembro" + }, + "october": { + "message": "oktobro" + }, + "november": { + "message": "novembro" + }, + "december": { + "message": "decembro" + }, + "title": { + "message": "Titolo" + }, + "mr": { + "message": "S-ro" + }, + "mrs": { + "message": "Sinjorino" + }, + "ms": { + "message": "Sinjorino" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Finiĝa Monato" + }, + "expirationYear": { + "message": "Finiĝa Jaro" + }, + "authenticatorKeyTotp": { + "message": "Aŭtentiga Ŝlosilo (TOTP)" + }, + "folder": { + "message": "Dosierujo" + }, + "newCustomField": { + "message": "Nova Propra Kampo" + }, + "value": { + "message": "Valoro" + }, + "dragToSort": { + "message": "Trenu por ordigi" + }, + "cfTypeText": { + "message": "Teksto" + }, + "cfTypeHidden": { + "message": "Kaŝita" + }, + "cfTypeBoolean": { + "message": "Bulea" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Forigi" + }, + "unassigned": { + "message": "Neasignita" + }, + "noneFolder": { + "message": "Neniu dosierujo", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Aldoni dosierujon" + }, + "editFolder": { + "message": "Redakti dosierujon" + }, + "baseDomain": { + "message": "Baza domajno", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Gastiganto", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Ĝusta" + }, + "startsWith": { + "message": "Komencas per" + }, + "regEx": { + "message": "Regula esprimo", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Match Match", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Defaŭlta kongrua detekto", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Neniam" + }, + "toggleVisibility": { + "message": "Baskuli videblecon" + }, + "toggleCollapse": { + "message": "Baskuli Fali", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generi Pasvorton" + }, + "checkPassword": { + "message": "Kontrolu ĉu pasvorto estis elmontrita." + }, + "passwordExposed": { + "message": "Ĉi tiu pasvorto estis elmontrita $VALUE$ tempo (j) en datumaj rompoj. Vi devas ŝanĝi ĝin.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Ĉi tiu pasvorto ne troviĝis en iuj konataj rompo de datumoj. Ĝi estu sekure uzebla." + }, + "save": { + "message": "Konservi" + }, + "cancel": { + "message": "Nuligi" + }, + "canceled": { + "message": "Nuligita" + }, + "close": { + "message": "Fermi" + }, + "delete": { + "message": "Forigi" + }, + "favorite": { + "message": "Plej ŝatata" + }, + "unfavorite": { + "message": "Malfavoras" + }, + "edit": { + "message": "Redakti" + }, + "searchCollection": { + "message": "Serĉi Kolekton" + }, + "searchFolder": { + "message": "Serĉi dosierujon" + }, + "searchFavorites": { + "message": "Serĉi Favoratojn" + }, + "searchType": { + "message": "Serĉspeco", + "description": "Search item type" + }, + "searchVault": { + "message": "Serĉi Volbon" + }, + "allItems": { + "message": "Ĉiuj Eroj" + }, + "favorites": { + "message": "Ŝatataj" + }, + "types": { + "message": "Tipoj" + }, + "typeLogin": { + "message": "Ensaluti" + }, + "typeCard": { + "message": "Karto" + }, + "typeIdentity": { + "message": "Identeco" + }, + "typeSecureNote": { + "message": "Sekura Noto" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "Dosierujoj" + }, + "collections": { + "message": "Kolektoj" + }, + "firstName": { + "message": "Antaŭnomo" + }, + "middleName": { + "message": "Meza nomo" + }, + "lastName": { + "message": "Lasta nomo" + }, + "fullName": { + "message": "Full Name" + }, + "address1": { + "message": "Adreso 1" + }, + "address2": { + "message": "Adreso 2" + }, + "address3": { + "message": "Adreso 3" + }, + "cityTown": { + "message": "Urbo / Urbo" + }, + "stateProvince": { + "message": "Ŝtato / Provinco" + }, + "zipPostalCode": { + "message": "Poŝtkodo / Poŝtkodo" + }, + "country": { + "message": "Lando" + }, + "shared": { + "message": "Kunhavigita" + }, + "attachments": { + "message": "Aldonaĵoj" + }, + "select": { + "message": "Elektu" + }, + "addItem": { + "message": "Aldoni Artikolon" + }, + "editItem": { + "message": "Redakti Artikolon" + }, + "viewItem": { + "message": "Vidigi Artikolon" + }, + "ex": { + "message": "ekz.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Aliaj" + }, + "share": { + "message": "Kunhavigi" + }, + "moveToOrganization": { + "message": "Move to Organization" + }, + "valueCopied": { + "message": "$VALUE$ kopiita", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Kopii valoron", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Kopii pasvorton", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Kopii uzantnomon", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Kopii Numeron", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Kopiu Sekureckodon", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Kopii URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Mia Volbo" + }, + "vault": { + "message": "Volbo" + }, + "moveSelectedToOrg": { + "message": "Move Selected to Organization" + }, + "deleteSelected": { + "message": "Forigi Elektitajn" + }, + "moveSelected": { + "message": "Movi Elektitan" + }, + "selectAll": { + "message": "Elekti ĉiujn" + }, + "unselectAll": { + "message": "Malelekti ĉiujn" + }, + "launch": { + "message": "Lanĉo" + }, + "newAttachment": { + "message": "Aldoni Novan Aldonaĵon" + }, + "deletedAttachment": { + "message": "Forigita aldonaĵo" + }, + "deleteAttachmentConfirmation": { + "message": "Ĉu vi certe volas forigi ĉi tiun aldonaĵon?" + }, + "attachmentSaved": { + "message": "La aldonaĵo estas konservita." + }, + "file": { + "message": "Dosiero" + }, + "selectFile": { + "message": "Elektu dosieron." + }, + "maxFileSize": { + "message": "Maksimuma dosiergrandeco estas 500 MB." + }, + "updateKey": { + "message": "Vi ne povas uzi ĉi tiun funkcion antaŭ ol vi ĝisdatigos vian ĉifran ŝlosilon." + }, + "addedItem": { + "message": "Aldonita ero" + }, + "editedItem": { + "message": "Redaktita ero" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ moved to $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Selected items moved to $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Forigi Artikolon" + }, + "deleteFolder": { + "message": "Forigi dosierujon" + }, + "deleteAttachment": { + "message": "Forigi Aldonaĵon" + }, + "deleteItemConfirmation": { + "message": "Ĉu vi vere volas sendi al la rubujo?" + }, + "deletedItem": { + "message": "Artikolo sendita al rubujo" + }, + "deletedItems": { + "message": "Eroj senditaj al rubujo" + }, + "movedItems": { + "message": "Movitaj eroj" + }, + "overwritePasswordConfirmation": { + "message": "Ĉu vi certe volas anstataŭigi la nunan pasvorton?" + }, + "editedFolder": { + "message": "Redaktita dosierujo" + }, + "addedFolder": { + "message": "Aldonita dosierujo" + }, + "deleteFolderConfirmation": { + "message": "Ĉu vi certe volas forigi ĉi tiun dosierujon?" + }, + "deletedFolder": { + "message": "Forigita dosierujo" + }, + "loggedOut": { + "message": "Elsalutita" + }, + "loginExpired": { + "message": "Via ensaluta kunsido eksvalidiĝis." + }, + "logOutConfirmation": { + "message": "Ĉu vi certe volas elsaluti?" + }, + "logOut": { + "message": "Eliri" + }, + "ok": { + "message": "Bone" + }, + "yes": { + "message": "Jes" + }, + "no": { + "message": "Ne" + }, + "loginOrCreateNewAccount": { + "message": "Ensalutu aŭ kreu novan konton por aliri vian sekuran trezorejon." + }, + "createAccount": { + "message": "Krei konton" + }, + "logIn": { + "message": "Ensaluti" + }, + "submit": { + "message": "Sendu" + }, + "emailAddressDesc": { + "message": "Vi uzos vian retpoŝtan adreson por ensaluti." + }, + "yourName": { + "message": "Via nomo" + }, + "yourNameDesc": { + "message": "Kiel ni nomu vin?" + }, + "masterPass": { + "message": "Majstra Pasvorto" + }, + "masterPassDesc": { + "message": "La ĉefa pasvorto estas la pasvorto, kiun vi uzas por aliri vian trezorejon. Tre gravas, ke vi ne forgesu vian ĉefan pasvorton. Ne eblas retrovi la pasvorton, se vi forgesos ĝin." + }, + "masterPassHintDesc": { + "message": "Majstra pasvorta sugesto povas helpi vin memori vian pasvorton se vi forgesas ĝin." + }, + "reTypeMasterPass": { + "message": "Retajpu Majstran Pasvorton" + }, + "masterPassHint": { + "message": "Majstra Pasvorta Konsilo (nedeviga)" + }, + "masterPassHintLabel": { + "message": "Majstra Pasvorta Konsilo" + }, + "settings": { + "message": "Agordoj" + }, + "passwordHint": { + "message": "Pasvorta Konsilo" + }, + "enterEmailToGetHint": { + "message": "Enigu vian retpoŝtadreson por ricevi vian ĉefan pasvortan aludon." + }, + "getMasterPasswordHint": { + "message": "Akiru ĉefan pasvortan sugeston" + }, + "emailRequired": { + "message": "Retpoŝta adreso estas bezonata." + }, + "invalidEmail": { + "message": "Nevalida retpoŝta adreso." + }, + "masterPassRequired": { + "message": "Majstra pasvorto necesas." + }, + "masterPassLength": { + "message": "Majstra pasvorto devas havi almenaŭ 8 signojn." + }, + "masterPassDoesntMatch": { + "message": "Majstra pasvorta konfirmo ne kongruas." + }, + "newAccountCreated": { + "message": "Via nova konto kreiĝis! Vi nun povas ensaluti." + }, + "masterPassSent": { + "message": "Ni sendis al vi retpoŝton kun via ĉefa pasvorta sugesto." + }, + "unexpectedError": { + "message": "Neatendita eraro okazis." + }, + "emailAddress": { + "message": "Retpoŝta Adreso" + }, + "yourVaultIsLocked": { + "message": "Via trezorejo estas ŝlosita. Kontrolu vian ĉefan pasvorton por daŭrigi." + }, + "unlock": { + "message": "Malŝlosi" + }, + "loggedInAsEmailOn": { + "message": "Ensalutinta kiel $EMAIL$ ĉe $HOSTNAME $.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Nevalida majstra pasvorto" + }, + "lockNow": { + "message": "Ŝlosi Nun" + }, + "noItemsInList": { + "message": "Ne estas listigendaj eroj." + }, + "noCollectionsInList": { + "message": "Estas neniuj kolektoj listigeblaj." + }, + "noGroupsInList": { + "message": "Estas neniuj grupoj listigeblaj." + }, + "noUsersInList": { + "message": "Estas neniuj uzantoj listigeblaj." + }, + "noEventsInList": { + "message": "Ne estas eventoj listigeblaj." + }, + "newOrganization": { + "message": "Nova Organizo" + }, + "noOrganizationsList": { + "message": "Vi ne apartenas al iuj organizoj. Organizoj permesas al vi sekure dividi erojn kun aliaj uzantoj." + }, + "versionNumber": { + "message": "Versio $VERSION_NUMBER $", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Enigu la 6-ciferan konfirmkodon de via aŭtentikiga programo." + }, + "enterVerificationCodeEmail": { + "message": "Enigu la 6-ciferan konfirmkodon, kiu estis retpoŝta al $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Kontrola retpoŝto sendita al $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Memoru min" + }, + "sendVerificationCodeEmailAgain": { + "message": "Sendu retpoŝtan kontrol-kodon denove" + }, + "useAnotherTwoStepMethod": { + "message": "Uzu alian du-paŝan ensalutan metodon" + }, + "insertYubiKey": { + "message": "Enmetu vian YubiKey en la USB-havenon de via komputilo, tiam tuŝu ĝian butonon." + }, + "insertU2f": { + "message": "Enmetu vian sekurecan ŝlosilon en la USB-havenon de via komputilo. Se ĝi havas butonon, tuŝu ĝin." + }, + "loginUnavailable": { + "message": "Ensaluto Neatingebla" + }, + "noTwoStepProviders": { + "message": "Ĉi tiu konto havas du-paŝan ensaluton ebligita, tamen neniu el la agorditaj du-paŝaj provizantoj estas subtenata de ĉi tiu retumilo." + }, + "noTwoStepProviders2": { + "message": "Bonvolu uzi subtenatan tTT-legilon (kiel Chrome) kaj / aŭ aldoni pliajn provizantojn pli bone subtenatajn tra tTT-legiloj (kiel aŭtentikiga programo)." + }, + "twoStepOptions": { + "message": "Duŝtupaj Ensalutaj Elektoj" + }, + "recoveryCodeDesc": { + "message": "Ĉu vi perdis aliron al ĉiuj viaj du-faktoraj provizantoj? Uzu vian reakiran kodon por malŝalti ĉiujn du-faktorajn provizantojn de via konto." + }, + "recoveryCodeTitle": { + "message": "Rekuperiga Kodo" + }, + "authenticatorAppTitle": { + "message": "Aŭtentiga Programo" + }, + "authenticatorAppDesc": { + "message": "Uzu aŭtentikan programon (kiel Authy aŭ Google Authenticator) por generi tempokontrolajn kodojn.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "Sekureca Ŝlosilo de YubiKey OTP" + }, + "yubiKeyDesc": { + "message": "Uzu YubiKey por aliri vian konton. Funkcias kun YubiKey 4-serio, 5-serio kaj NEO-aparatoj." + }, + "duoDesc": { + "message": "Kontrolu per Duo-Sekureco per la Duo Mobile-programo, SMS, telefona alvoko aŭ U2F-sekureca ŝlosilo.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Kontrolu kun Duo Security por via organizo per la Duo Mobile-programo, SMS, telefona alvoko aŭ U2F-sekureca ŝlosilo.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Uzu iun ajn sekurecan ŝlosilon FIDO U2F por aliri vian konton." + }, + "u2fTitle": { + "message": "Sekureca Ŝlosilo FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "Retpoŝto" + }, + "emailDesc": { + "message": "Kontrolaj kodoj estos retpoŝtigitaj al vi." + }, + "continue": { + "message": "Daŭrigi" + }, + "organization": { + "message": "Organizo" + }, + "organizations": { + "message": "Organizoj" + }, + "moveToOrgDesc": { + "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organization that you wish to move these items to. Moving to an organization transfers ownership of the items to that organization. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "Redaktu la kolektojn kun kiuj ĉi tiu ero estas dividita. Nur organizaj uzantoj kun aliro al ĉi tiuj kolektoj povos vidi ĉi tiun eron." + }, + "deleteSelectedItemsDesc": { + "message": "Vi elektis $COUNT $eron (j) por forigi. Ĉu vi certe volas forigi ĉiujn ĉi tiujn erojn?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Elektu dosierujon al kiu vi ŝatus movi la elektitajn erojn $COUNT$.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organization, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Kontrola Kodo (TOTP)" + }, + "copyVerificationCode": { + "message": "Kopii Konfirman Kodon" + }, + "warning": { + "message": "Averto" + }, + "confirmVaultExport": { + "message": "Konfirmi Volbon-Eksportadon" + }, + "exportWarningDesc": { + "message": "Ĉi tiu eksportado enhavas viajn volbajn datumojn en neĉifrita formato. Vi ne devas stoki aŭ sendi la eksportitan dosieron per nesekuraj kanaloj (kiel retpoŝto). Forigu ĝin tuj post kiam vi finuzos ĝin." + }, + "encExportKeyWarningDesc": { + "message": "Ĉi tiu eksporto ĉifras viajn datumojn per la ĉifra ŝlosilo de via konto. Se vi iam turnos la ĉifran ŝlosilon de via konto, vi devas eksporti denove, ĉar vi ne povos deĉifri ĉi tiun eksportan dosieron." + }, + "encExportAccountWarningDesc": { + "message": "Kontaj ĉifraj ŝlosiloj estas unikaj por ĉiu Bitwarden-uzanto-konto, do vi ne povas importi ĉifritan eksportadon en alian konton." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "Eksporti Volbon" + }, + "fileFormat": { + "message": "Dosierformato" + }, + "exportSuccess": { + "message": "Viaj volbaj datumoj estis eksportitaj." + }, + "passwordGenerator": { + "message": "Pasvorta Generilo" + }, + "minComplexityScore": { + "message": "Minimuma Komplekseca Poentaro" + }, + "minNumbers": { + "message": "Minimumaj Nombroj" + }, + "minSpecial": { + "message": "Minimuma Specialaĵo", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Evitu Dusignajn Karakterojn" + }, + "regeneratePassword": { + "message": "Regeneri Pasvorton" + }, + "length": { + "message": "Longo" + }, + "numWords": { + "message": "Nombro de Vortoj" + }, + "wordSeparator": { + "message": "Vortdisigilo" + }, + "capitalize": { + "message": "Majuskligi", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Inkluzivi numeron" + }, + "passwordHistory": { + "message": "Pasvorta Historio" + }, + "noPasswordsInList": { + "message": "Ne estas listigitaj pasvortoj." + }, + "clear": { + "message": "Malplenigi", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Konto ĝisdatigita" + }, + "changeEmail": { + "message": "Ŝanĝi retpoŝton" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "Nova retpoŝto" + }, + "code": { + "message": "Kodo" + }, + "changeEmailDesc": { + "message": "Ni sendis retpoŝtan kontrolkodon al $EMAIL$. Bonvolu kontroli vian retpoŝton pri ĉi tiu kodo kaj enigu ĝin sube por fini la retpoŝtan adresŝanĝon.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Daŭrigi vin elsalutos de via nuna sesio, postulante vin denove ensaluti. Aktivaj sesioj sur aliaj aparatoj povas daŭre resti aktivaj ĝis unu horo." + }, + "emailChanged": { + "message": "Retpoŝto Ŝanĝis" + }, + "logBackIn": { + "message": "Bonvolu ensaluti denove." + }, + "logBackInOthersToo": { + "message": "Bonvolu ensaluti. Se vi uzas aliajn Bitwarden-programojn, elsalutu kaj reen al tiuj ankaŭ." + }, + "changeMasterPassword": { + "message": "Ŝanĝi Majstran Pasvorton" + }, + "masterPasswordChanged": { + "message": "Majstra pasvorto ŝanĝita" + }, + "currentMasterPass": { + "message": "Nuna Majstra Pasvorto" + }, + "newMasterPass": { + "message": "Nova Majstra Pasvorto" + }, + "confirmNewMasterPass": { + "message": "Konfirmi Novan Majstran Pasvorton" + }, + "encKeySettings": { + "message": "Agordoj de Ĉifroklavo" + }, + "kdfAlgorithm": { + "message": "KDF-Algoritmo" + }, + "kdfIterations": { + "message": "KDF-Ripetoj" + }, + "kdfIterationsDesc": { + "message": "Pli altaj KDF-ripetoj povas helpi protekti vian ĉefan pasvorton kontraŭ malpura devigo de atakanto. Ni rekomendas valoron de $VALUE$ aŭ pli.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Agordi viajn KDF-ripetojn tro alte povus rezultigi malbonan rendimenton kiam vi ensalutas (kaj malŝlosas) Bitwarden sur aparatoj kun pli malrapidaj CPUoj. Ni rekomendas, ke vi pliigu la valoron en pliigoj de $INCREMENT$ kaj poste provu ĉiujn viajn aparatojn. . ", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Ŝanĝi KDF" + }, + "encKeySettingsChanged": { + "message": "Ŝanĝaj Ŝlosilaj Agordoj Ŝanĝiĝis" + }, + "dangerZone": { + "message": "Danĝera Zono" + }, + "dangerZoneDesc": { + "message": "Atentu, ĉi tiuj agoj ne estas reigeblaj!" + }, + "deauthorizeSessions": { + "message": "Senrajtigi Sesiojn" + }, + "deauthorizeSessionsDesc": { + "message": "Ĉu vi zorgas pri tio, ke via konto estas ensalutinta sur alia aparato? Sekvu sube por senrajtigi ĉiujn komputilojn aŭ aparatojn, kiujn vi antaŭe uzis. Ĉi tiu sekureca paŝo rekomendas se vi antaŭe uzis publikan komputilon aŭ hazarde konservis vian pasvorton sur aparato, kiu ne estas via. Ĉi tiu paŝo ankaŭ malplenigos ĉiujn antaŭe memoritajn du-paŝajn ensalutajn sesiojn. " + }, + "deauthorizeSessionsWarning": { + "message": "La daŭrigo ankaŭ elsalutos vin de via nuna sesio, postulante vin denove ensaluti. Oni ankaŭ petos vin du-ŝtupa ensaluto, se ĝi estas ebligita. Aktivaj sesioj sur aliaj aparatoj povas daŭre resti aktivaj ĝis ĝis unu horo. " + }, + "sessionsDeauthorized": { + "message": "Ĉiuj Sesioj Neaŭtorizitaj" + }, + "purgeVault": { + "message": "Purigi Volbon" + }, + "purgedOrganizationVault": { + "message": "Purigita organizo-volbo." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Sekvu sube por forigi ĉiujn erojn kaj dosierujojn en via trezorejo. Eroj apartenantaj al organizo kun kiu vi dividas ne estos forigitaj." + }, + "purgeOrgVaultDesc": { + "message": "Sekvu sube por forigi ĉiujn erojn en la trezorejo de la organizo." + }, + "purgeVaultWarning": { + "message": "Purigi vian trezorejon estas konstanta. Ĝi ne povas esti malfarita." + }, + "vaultPurged": { + "message": "Via trezorejo estis elpurigita." + }, + "deleteAccount": { + "message": "Forigi konton" + }, + "deleteAccountDesc": { + "message": "Sekvu sube por forigi vian konton kaj ĉiujn rilatajn datumojn." + }, + "deleteAccountWarning": { + "message": "Forigi vian konton estas konstanta. Ĝi ne povas esti malfarita." + }, + "accountDeleted": { + "message": "Konto Forigita" + }, + "accountDeletedDesc": { + "message": "Via konto estis fermita kaj ĉiuj rilataj datumoj estis forigitaj." + }, + "myAccount": { + "message": "Mia Konto" + }, + "tools": { + "message": "Iloj" + }, + "importData": { + "message": "Importi Datumojn" + }, + "importError": { + "message": "Importa Eraro" + }, + "importErrorDesc": { + "message": "Estis problemo pri la datumoj, kiujn vi provis importi. Bonvolu solvi la erarojn listigitajn sube en via fontdosiero kaj reprovi." + }, + "importSuccess": { + "message": "Datumoj sukcese importiĝis en vian trezorejon." + }, + "importWarning": { + "message": "Vi importas datumojn al $ORGANIZATION$. Viaj datumoj povas esti dividitaj kun membroj de ĉi tiu organizo. Ĉu vi volas daŭrigi?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Datumoj ne estas ĝuste formatitaj. Bonvolu kontroli vian importan dosieron kaj reprovi." + }, + "importNothingError": { + "message": "Nenio estis importita." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "selectFormat": { + "message": "Elektu la formaton de la importa dosiero" + }, + "selectImportFile": { + "message": "Elektu la importan dosieron" + }, + "orCopyPasteFileContents": { + "message": "aŭ kopii / alglui la importan dosieron enhavon" + }, + "instructionsFor": { + "message": "Instrukcioj pri $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Opcioj" + }, + "optionsDesc": { + "message": "Agordu vian sperton pri retejo." + }, + "optionsUpdated": { + "message": "Opcioj ĝisdatigitaj" + }, + "language": { + "message": "Lingvo" + }, + "languageDesc": { + "message": "Ŝanĝi la lingvon uzatan de la retejo-volbo." + }, + "disableIcons": { + "message": "Malebligi retejajn piktogramojn" + }, + "disableIconsDesc": { + "message": "Retejaj piktogramoj donas rekoneblan bildon apud ĉiu ensaluta ero en via trezorejo." + }, + "enableGravatars": { + "message": "Ebligi Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Uzu avatarajn bildojn ŝarĝitajn de gravatar.com." + }, + "enableFullWidth": { + "message": "Ebligi plenan larĝan aranĝon", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Permesu al la arka volbo pligrandigi la tutan larĝon de la retumila fenestro." + }, + "default": { + "message": "Apriora" + }, + "domainRules": { + "message": "Regaj Reguloj" + }, + "domainRulesDesc": { + "message": "Se vi havas la saman ensaluton tra multaj malsamaj retejaj domajnoj, vi povas marki la retejon kiel \" ekvivalenta \". \" Tutmondaj \" domajnoj estas jam kreitaj por vi de Bitwarden." + }, + "globalEqDomains": { + "message": "Tutmondaj Ekvivalentaj Domajnoj" + }, + "customEqDomains": { + "message": "Propraj Ekvivalentaj Domajnoj" + }, + "exclude": { + "message": "Ekskludi" + }, + "include": { + "message": "Inkluzivi" + }, + "customize": { + "message": "Agordi" + }, + "newCustomDomain": { + "message": "Nova Propra Domajno" + }, + "newCustomDomainDesc": { + "message": "Enmetu liston de domajnoj apartigitaj per komoj. Nur domajnoj \" bazaj \" estas permesataj. Ne enmetu subdomajnojn. Ekzemple enigu \" google.com \"anstataŭ \" www.google.com \". Vi ankaŭ povas enigi \" androidapp: //package.name \"por asocii android-programon kun aliaj retejaj domajnoj." + }, + "customDomainX": { + "message": "Propra Domajno $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domajnoj ĝisdatigitaj" + }, + "twoStepLogin": { + "message": "Du-ŝtupa ensaluto" + }, + "twoStepLoginDesc": { + "message": "Sekurigu vian konton postulante plian paŝon kiam vi ensalutas." + }, + "twoStepLoginOrganizationDesc": { + "message": "Postuli du-paŝan ensaluton por la uzantoj de via organizo per agordo de provizantoj je la organiza nivelo." + }, + "twoStepLoginRecoveryWarning": { + "message": "Ebligi du-paŝan ensaluton povas konstante elŝlosi vin el via Bitwarden-konto. Rekuperiga kodo permesas vin aliri vian konton, se vi ne plu povas uzi vian normalan du-paŝan ensalutan provizanton (ekz. vi perdas Bitwarden-subteno ne povos helpi vin se vi perdos aliron al via konto. Ni rekomendas al vi skribi aŭ presi la reakiran kodon kaj konservi ĝin en sekura loko. " + }, + "viewRecoveryCode": { + "message": "Rigardi Rekuperan Kodon" + }, + "providers": { + "message": "Provizantoj", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Ebligi" + }, + "enabled": { + "message": "Enŝaltita" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Altkvalita Membreco" + }, + "premiumRequired": { + "message": "Supra Postulo" + }, + "premiumRequiredDesc": { + "message": "Altkvalita membreco necesas por uzi ĉi tiun funkcion." + }, + "youHavePremiumAccess": { + "message": "Vi havas superan aliron" + }, + "alreadyPremiumFromOrg": { + "message": "Vi jam havas aliron al superaj funkcioj pro organizo, en kiu vi membras." + }, + "manage": { + "message": "Administri" + }, + "disable": { + "message": "Malebligi" + }, + "twoStepLoginProviderEnabled": { + "message": "Ĉi tiu du-ŝtupa ensaluta provizanto estas ebligita en via konto." + }, + "twoStepLoginAuthDesc": { + "message": "Enigu vian ĉefan pasvorton por modifi du-paŝajn ensalutajn agordojn." + }, + "twoStepAuthenticatorDesc": { + "message": "Sekvu ĉi tiujn paŝojn por agordi du-paŝan ensaluton per aŭtentikiga programo:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Elŝuti du-paŝan aŭtentikigan programon" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Ĉu vi bezonas du-paŝan aŭtentikigan programon? Elŝutu unu el la jenaj" + }, + "iosDevices": { + "message": "iOS-aparatoj" + }, + "androidDevices": { + "message": "Android-aparatoj" + }, + "windowsDevices": { + "message": "Vindozaj aparatoj" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Ĉi tiuj programoj estas rekomendindaj, tamen ankaŭ aliaj aŭtentikigaj programoj funkcios." + }, + "twoStepAuthenticatorScanCode": { + "message": "Skani ĉi tiun QR-kodon per via aŭtentikiga programo" + }, + "key": { + "message": "Ŝlosilo" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Enigu la rezultan 6-ciferan konfirmkodon de la programo" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Se vi bezonas aldoni ĝin al alia aparato, sube estas la QR-kodo (aŭ ŝlosilo) postulita de via aŭtentikiga programo." + }, + "twoStepDisableDesc": { + "message": "Ĉu vi certas, ke vi volas malŝalti ĉi tiun du-paŝan ensalutan provizanton?" + }, + "twoStepDisabled": { + "message": "Du-ŝtupa ensaluta provizanto malŝaltita." + }, + "twoFactorYubikeyAdd": { + "message": "Aldoni novan YubiKey al via konto" + }, + "twoFactorYubikeyPlugIn": { + "message": "Enŝovu la YubiKey en la USB-havenon de via komputilo." + }, + "twoFactorYubikeySelectKey": { + "message": "Elektu la unuan malplenan enigan kampon YubiKey sube." + }, + "twoFactorYubikeyTouchButton": { + "message": "Tuŝu la butonon de YubiKey." + }, + "twoFactorYubikeySaveForm": { + "message": "Konservu la formularon." + }, + "twoFactorYubikeyWarning": { + "message": "Pro platformaj limigoj, YubiKeys ne povas esti uzata en ĉiuj Bitwarden-aplikaĵoj. Vi rajtigu alian du-paŝan ensalutan provizanton, por ke vi povu aliri vian konton kiam YubiKeys ne povas esti uzata. Subtenitaj platformoj:" + }, + "twoFactorYubikeySupportUsb": { + "message": "TTT-volbo, labortabla aplikaĵo, CLI kaj ĉiuj retumilaj etendaĵoj sur aparato kun USBa haveno, kiu povas akcepti vian YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Poŝtelefonaj programoj sur aparato kun NFC-kapabloj aŭ datuma haveno, kiu povas akcepti vian YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F-Ŝlosilo $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC-Subteno" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Unu el miaj klavoj subtenas NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Se unu el viaj YubiKeys subtenas NFC (kiel YubiKey NEO), vi estos instigita per poŝtelefonoj kiam ajn NFC-havebleco estas detektita." + }, + "yubikeysUpdated": { + "message": "YubiKeys ĝisdatigis" + }, + "disableAllKeys": { + "message": "Malebligi ĉiujn ŝlosilojn" + }, + "twoFactorDuoDesc": { + "message": "Enmetu la informojn pri Bitwarden-aplikaĵo de via panelo de Duo Admin." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integriĝa Ŝlosilo" + }, + "twoFactorDuoSecretKey": { + "message": "Sekreta Ŝlosilo" + }, + "twoFactorDuoApiHostname": { + "message": "API Gastiganta Nomo" + }, + "twoFactorEmailDesc": { + "message": "Sekvu ĉi tiujn paŝojn por agordi du-paŝan ensaluton per retpoŝto:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enigu la retpoŝton, ke vi volas ricevi kontrolajn kodojn" + }, + "twoFactorEmailEnterCode": { + "message": "Enigu la rezultan 6-ciferan konfirmkodon el la retpoŝto" + }, + "sendEmail": { + "message": "Sendi retpoŝton" + }, + "twoFactorU2fAdd": { + "message": "Aldonu sekurecan ŝlosilon FIDO U2F al via konto" + }, + "removeU2fConfirmation": { + "message": "Ĉu vi certe volas forigi ĉi tiun sekurecan ŝlosilon?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Legi Ŝlosilon" + }, + "keyCompromised": { + "message": "Ŝlosilo estas kompromitita." + }, + "twoFactorU2fGiveName": { + "message": "Donu al la sekureca ŝlosilo amikan nomon por identigi ĝin." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Enŝovu la sekurecan ŝlosilon en la USB-havenon de via komputilo kaj alklaku la butonon \" Legu Ŝlosilon \"." + }, + "twoFactorU2fTouchButton": { + "message": "Se la sekureca ŝlosilo havas butonon, tuŝu ĝin." + }, + "twoFactorU2fSaveForm": { + "message": "Konservu la formularon." + }, + "twoFactorU2fWarning": { + "message": "Pro platformaj limigoj, FIDO U2F ne povas esti uzata en ĉiuj Bitwarden-aplikaĵoj. Vi rajtigu alian du-paŝan ensalutan provizanton, por ke vi povu aliri vian konton kiam FIDO U2F ne povas esti uzata. Subtenitaj platformoj:" + }, + "twoFactorU2fSupportWeb": { + "message": "Reta volbo kaj retumilaj etendaĵoj sur labortablo / tekkomputilo kun U2F-ebligita retumilo (Chrome, Opera, Vivaldi aŭ Firefox kun FIDO U2F ebligita)." + }, + "twoFactorU2fWaiting": { + "message": "Atendante, ke vi tuŝu la butonon de via sekureca ŝlosilo" + }, + "twoFactorU2fClickSave": { + "message": "Alklaku la suban butonon \" Konservi \"por ebligi ĉi tiun sekurecan ŝlosilon por du-ŝtupa ensaluto." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Via Bitwarden-du-ŝtupa ensaluta reakiro-kodo" + }, + "twoFactorRecoveryNoCode": { + "message": "Vi ankoraŭ ne ebligis du-paŝajn ensalutajn provizantojn. Post kiam vi ebligis du-ŝtupan ensalut-provizanton, vi povas kontroli ĉi tie vian reakiran kodon." + }, + "printCode": { + "message": "Presi Kodon", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Raportoj" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Raporto pri Nesekurigitaj Retejoj" + }, + "unsecuredWebsitesReportDesc": { + "message": "Uzi nesekurigitajn retejojn kun la http: // skemo povas esti danĝera. Se la retejo permesas, vi ĉiam devas aliri ĝin per la skemo https: // tiel ke via konekto estas ĉifrita." + }, + "unsecuredWebsitesFound": { + "message": "Trovitaj Nesekurigitaj Retejoj" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Ni trovis $COUNT$ erojn en via trezorejo kun nesekurigitaj URI-oj. Vi devas ŝanĝi ilian URI-skemon al https: // se la retejo permesas ĝin.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Raporto 2FA neaktiva" + }, + "inactive2faReportDesc": { + "message": "Dufakta aŭtentokontrolo (2FA) estas grava sekureca agordo, kiu helpas sekurigi viajn kontojn. Se la retejo ofertas ĝin, vi devas ĉiam ebligi dufakturan aŭtentikigon." + }, + "inactive2faFound": { + "message": "Ensalutoj Sen 2FA Trovitaj" + }, + "inactive2faFoundDesc": { + "message": "Ni trovis $COUNT$ retejon (j) en via trezorejo, kiu eble ne estas agordita kun dufakta aŭtentokontrolo (laŭ 2fa.directory). Por plue protekti ĉi tiujn kontojn, vi devas ebligi dufaktoran aŭtentikigon.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Neniuj retejoj troviĝis en via trezorejo kun mankanta dufakta aŭtentiga agordo." + }, + "instructions": { + "message": "Instrukcioj" + }, + "exposedPasswordsReport": { + "message": "Raporto pri Malkaŝitaj Pasvortoj" + }, + "exposedPasswordsReportDesc": { + "message": "Malkaŝitaj pasvortoj estas pasvortoj malkovritaj en konataj datumrompoj publikigitaj aŭ venditaj en la malluma retejo de retpiratoj." + }, + "exposedPasswordsFound": { + "message": "Trovitaj Pasvortoj Trovitaj" + }, + "exposedPasswordsFoundDesc": { + "message": "Ni trovis $COUNT$ erojn en via trezorejo, kiuj havas pasvortojn elmontritajn en konataj rompo de datumoj. Vi devas ŝanĝi ilin por uzi novan pasvorton.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Neniuj eroj en via trezorejo havas pasvortojn elmontritajn en konataj rompo de datumoj." + }, + "checkExposedPasswords": { + "message": "Kontroli Malkaŝitajn Pasvortojn" + }, + "exposedXTimes": { + "message": "Elmontritaj $COUNT$ tempo (j)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Raporto pri Malfortaj Pasvortoj" + }, + "weakPasswordsReportDesc": { + "message": "Malfortaj pasvortoj facile diveneblas per retpiratoj kaj aŭtomataj iloj, kiuj estas uzataj por rompi pasvortojn. La Bitwarden-pasvorta generatoro povas helpi vin krei fortajn pasvortojn." + }, + "weakPasswordsFound": { + "message": "Malfortaj Pasvortoj Trovitaj" + }, + "weakPasswordsFoundDesc": { + "message": "Ni trovis $COUNT$ erojn en via trezorejo kun pasvortoj ne fortaj. Vi devas ĝisdatigi ilin por uzi pli fortajn pasvortojn.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Neniuj eroj en via trezorejo havas malfortajn pasvortojn." + }, + "reusedPasswordsReport": { + "message": "Raporto pri recikligitaj pasvortoj" + }, + "reusedPasswordsReportDesc": { + "message": "Se servo, kiun vi uzas, estas kompromitita, reuzi la saman pasvorton aliloke povas permesi al retpiratoj facile aliri al pli da viaj retaj kontoj. Vi devas uzi unikan pasvorton por ĉiu konto aŭ servo." + }, + "reusedPasswordsFound": { + "message": "Reuzitaj Pasvortoj Trovitaj" + }, + "reusedPasswordsFoundDesc": { + "message": "Ni trovis $COUNT$ pasvortojn reuzatajn en via trezorejo. Vi devas ŝanĝi ilin al unika valoro.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Neniuj ensalutoj en via trezorejo havas pasvortojn reuzatajn." + }, + "reusedXTimes": { + "message": "Reuzita $COUNT$ fojojn", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Raporto pri Malobservo de Datumoj" + }, + "breachDesc": { + "message": "\" breĉo \"estas okazaĵo, kie la datumoj de retejo estis kontraŭleĝe aliritaj de retpiratoj kaj poste publikigitaj publike. Revizii la tipojn de datumoj kompromititaj (retpoŝtadresoj, pasvortoj, kreditkartoj ktp.) taŭga ago, kiel ŝanĝi pasvortojn. " + }, + "breachCheckUsernameEmail": { + "message": "Kontrolu iujn ajn uzantnomojn aŭ retpoŝtadresojn, kiujn vi uzas." + }, + "checkBreaches": { + "message": "Kontroli breĉojn" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ ne estis trovita en iuj konataj rompo de datumoj.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Bonaj Novaĵoj", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ estis trovita en $COUNT$ malsamaj datumaj rompoj interrete.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Malobservitaj Kontoj Trovitaj" + }, + "compromisedData": { + "message": "Kompromisitaj datumoj" + }, + "website": { + "message": "Retejo" + }, + "affectedUsers": { + "message": "Afektitaj Uzantoj" + }, + "breachOccurred": { + "message": "Malobservo Okazis" + }, + "breachReported": { + "message": "Malobservo raportita" + }, + "reportError": { + "message": "Eraro okazis provante ŝarĝi la raporton. Provu denove" + }, + "billing": { + "message": "Fakturado" + }, + "accountCredit": { + "message": "Kredita Konto", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Konta Bilanco", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Aldoni Krediton", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Kvanto", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Aldonita kredito aperos en via konto post kiam la pago estos plene prilaborita. Iuj pagmanieroj malfruas kaj povas daŭri pli longe ol aliaj." + }, + "makeSureEnoughCredit": { + "message": "Bonvolu certigi, ke via konto havas sufiĉe da kredito havebla por ĉi tiu aĉeto. Se via konto ne havas sufiĉe da kredito havebla, via defaŭlta pagmaniero uzata por la diferenco. Vi povas aldoni krediton al via konto de la Faktura paĝo. " + }, + "creditAppliedDesc": { + "message": "La kredito de via konto povas esti uzata por aĉeti. Ĉiu havebla kredito aŭtomate aplikiĝos al fakturoj generitaj por ĉi tiu konto." + }, + "goPremium": { + "message": "Iru Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Vi ĝisdatigis al premio." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Altgradigu vian konton al supera membreco kaj malŝlosu iujn bonegajn aldonajn funkciojn." + }, + "premiumSignUpStorage": { + "message": "1 GB ĉifrita stokado por dosieraj aldonaĵoj." + }, + "premiumSignUpTwoStep": { + "message": "Pliaj du-paŝaj ensalutaj opcioj kiel YubiKey, FIDO U2F kaj Duo." + }, + "premiumSignUpEmergency": { + "message": "Kriza Aliro" + }, + "premiumSignUpReports": { + "message": "Raportoj pri pasvorta higieno, sanstato de kontoj kaj rompo de datumoj por protekti vian trezorejon." + }, + "premiumSignUpTotp": { + "message": "Generilo de TOTP-kontrola kodo (2FA) por ensalutoj en via trezorejo." + }, + "premiumSignUpSupport": { + "message": "Prioritata klienta subteno." + }, + "premiumSignUpFuture": { + "message": "Ĉiuj estontaj premiaj funkcioj. Pli baldaŭ!" + }, + "premiumPrice": { + "message": "Ĉio kontraŭ nur $PRICE$ / jaro!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Aldonaĵoj" + }, + "premiumAccess": { + "message": "Altkvalita Aliro" + }, + "premiumAccessDesc": { + "message": "Vi povas aldoni altkvalitan aliron al ĉiuj membroj de via organizo kontraŭ $PRICE$ / $INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Aldona Stokado (GB)" + }, + "additionalStorageGbDesc": { + "message": "Nombro da pliaj GB" + }, + "additionalStorageIntervalDesc": { + "message": "Via plano venas kun $SIZE$ da ĉifrita dosier-stokado. Vi povas aldoni plian stokadon kontraŭ $PRICE$ po GB / $INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Resumo" + }, + "total": { + "message": "Entute" + }, + "year": { + "message": "jaro" + }, + "month": { + "message": "monato" + }, + "monthAbbr": { + "message": "mo.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Via pagmaniero estos ŝargita tuj kaj poste ripetiĝante ĉiujare. Vi rajtas nuligi iam ajn." + }, + "paymentCharged": { + "message": "Via pagmaniero tuj estos ŝargita kaj poste ripetiĝante ĉiu $INTERVAL$. Vi rajtas nuligi iam ajn.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Via plano venas kun senpaga 7-taga provado. Via pagmaniero ne estos ŝargita ĝis la proceso finiĝos. Fakturado okazos ĉiufoje $INTERVAL$. Vi rajtas nuligi iam ajn." + }, + "paymentInformation": { + "message": "Pagaj Informoj" + }, + "billingInformation": { + "message": "Fakturaj Informoj" + }, + "creditCard": { + "message": "Kreditkarto" + }, + "paypalClickSubmit": { + "message": "Alklaku la butonon PayPal por ensaluti vian konton PayPal, poste alklaku la butonon Sendu sube por daŭrigi." + }, + "cancelSubscription": { + "message": "Nuligi Abonon" + }, + "subscriptionCanceled": { + "message": "La abono estis nuligita." + }, + "pendingCancellation": { + "message": "Atendanta Nuligo" + }, + "subscriptionPendingCanceled": { + "message": "La abono estis markita por nuligo ĉe la fino de la nuna faktura periodo." + }, + "reinstateSubscription": { + "message": "Reinstali Abonon" + }, + "reinstateConfirmation": { + "message": "Ĉu vi certe volas forigi la pritraktatan nuligan peton kaj reinstali vian abonon?" + }, + "reinstated": { + "message": "La abono estis reinstalita." + }, + "cancelConfirmation": { + "message": "Ĉu vi certas, ke vi volas nuligi? Vi perdos aliron al ĉiuj funkcioj de ĉi tiu abono fine de ĉi tiu faktura ciklo." + }, + "canceledSubscription": { + "message": "La abono estis nuligita." + }, + "neverExpires": { + "message": "Never Expires" + }, + "status": { + "message": "Stato" + }, + "nextCharge": { + "message": "Sekva Akuzo" + }, + "details": { + "message": "Detaloj" + }, + "downloadLicense": { + "message": "Elŝuti Permesilon" + }, + "updateLicense": { + "message": "Ĝisdatigi Permesilon" + }, + "updatedLicense": { + "message": "Ĝisdatigita permesilo" + }, + "manageSubscription": { + "message": "Administri Abonon" + }, + "storage": { + "message": "Stokado" + }, + "addStorage": { + "message": "Aldoni Stokadon" + }, + "removeStorage": { + "message": "Forigi Stokadon" + }, + "subscriptionStorage": { + "message": "Via abono havas entute $MAX_STORAGE$ GB da ĉifrita dosier-stokado. Vi nun uzas $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Pagmaniero" + }, + "noPaymentMethod": { + "message": "Neniu pagmaniero registrita." + }, + "addPaymentMethod": { + "message": "Aldoni Pagmanieron" + }, + "changePaymentMethod": { + "message": "Ŝanĝi Pagmanieron" + }, + "invoices": { + "message": "Fakturoj" + }, + "noInvoices": { + "message": "Neniuj fakturoj." + }, + "paid": { + "message": "Pagita", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Sensalajra", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transakcioj", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Sen transakcioj." + }, + "chargeNoun": { + "message": "Akuzo", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Repago", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Ĉiuj akuzoj aperos en via deklaro kiel $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "Aldoni GB-Stokadon" + }, + "gbStorageRemove": { + "message": "Forigi GB-Stokadon" + }, + "storageAddNote": { + "message": "Aldonado de stokado rezultigos ĝustigojn al viaj fakturaj sumoj kaj tuj ŝargos vian pagmanieron en dosiero. La unua ŝarĝo estos proporciigita por la resto de la aktuala faktura ciklo." + }, + "storageRemoveNote": { + "message": "Forigi stokadon rezultigos ĝustigojn al viaj fakturaj sumoj, kiuj estos proratigitaj kiel kreditoj al via sekva faktura ŝarĝo." + }, + "adjustedStorage": { + "message": "Ĝustigita $AMOUNT$ GB da stokado.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Kontakti Klientan Subtenon" + }, + "updatedPaymentMethod": { + "message": "Ĝisdatigita pagmaniero." + }, + "purchasePremium": { + "message": "Aĉetu Superpagon" + }, + "licenseFile": { + "message": "Permesila Dosiero" + }, + "licenseFileDesc": { + "message": "Via licenca dosiero nomiĝos kiel $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Por ĝisdatigi vian konton al altkvalita membreco vi devas alŝuti validan licencdosieron." + }, + "uploadLicenseFileOrg": { + "message": "Por krei lokan gastigitan organizon, vi devas alŝuti validan licencdosieron." + }, + "accountEmailMustBeVerified": { + "message": "La retpoŝta adreso de via konto devas esti kontrolita." + }, + "newOrganizationDesc": { + "message": "Organizoj permesas al vi dividi partojn de via trezorejo kun aliaj kaj administri rilatajn uzantojn por specifa ento kiel familio, malgranda teamo aŭ granda kompanio." + }, + "generalInformation": { + "message": "Ĝeneralaj Informoj" + }, + "organizationName": { + "message": "Organiza nomo" + }, + "accountOwnedBusiness": { + "message": "Ĉi tiu konto estas posedata de kompanio." + }, + "billingEmail": { + "message": "Faktura Retpoŝto" + }, + "businessName": { + "message": "Komerca nomo" + }, + "chooseYourPlan": { + "message": "Elektu Vian Planon" + }, + "users": { + "message": "Uzantoj" + }, + "userSeats": { + "message": "Uzantaj Sidlokoj" + }, + "additionalUserSeats": { + "message": "Pliaj Uzaj Lokoj" + }, + "userSeatsDesc": { + "message": "Nombro de uzantaj lokoj" + }, + "userSeatsAdditionalDesc": { + "message": "Via plano venas kun $BASE_SEATS$ uzanto-seĝoj. Vi povas aldoni pliajn uzantojn kontraŭ $SEAT_PRICE$ po uzanto / monato.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Kiom da uzantaj seĝoj vi bezonas? Vi ankaŭ povas aldoni pliajn seĝojn poste se necese." + }, + "planNameFree": { + "message": "Senpaga", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Por testado aŭ personaj uzantoj dividi kun $COUNT$ alia uzanto.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Familioj" + }, + "planDescFamilies": { + "message": "Por persona uzo, dividi kun familio kaj amikoj." + }, + "planNameTeams": { + "message": "Teamoj" + }, + "planDescTeams": { + "message": "Por entreprenoj kaj aliaj teamaj organizoj." + }, + "planNameEnterprise": { + "message": "Entrepreno" + }, + "planDescEnterprise": { + "message": "Por entreprenoj kaj aliaj grandaj organizoj." + }, + "freeForever": { + "message": "Senpaga Eterne" + }, + "includesXUsers": { + "message": "inkluzivas $COUN$ uzantojn", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Pliaj Uzantoj" + }, + "costPerUser": { + "message": "$COST$ por uzanto", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limigita al $COUNT$ uzantoj (inkluzive de vi)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limigita al $COUNT$ -kolektoj", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Aldoni kaj dividi kun ĝis $COUNT$ uzantoj", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Aldoni kaj dividi kun senlimaj uzantoj" + }, + "createUnlimitedCollections": { + "message": "Krei senlimajn Kolektojn" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ ĉifrita dosier-stokado", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Surloka gastigado (nedeviga)" + }, + "usersGetPremium": { + "message": "Uzantoj ricevas aliron al Premiaj Trajtoj" + }, + "controlAccessWithGroups": { + "message": "Kontroli la aliron de uzanto per Grupoj" + }, + "syncUsersFromDirectory": { + "message": "Sinkronigu viajn uzantojn kaj grupojn de dosierujo" + }, + "trackAuditLogs": { + "message": "Spuri agojn de uzanto per kontrolaj protokoloj" + }, + "enforce2faDuo": { + "message": "Devigi 2FA kun Duo" + }, + "priorityCustomerSupport": { + "message": "Prioritata klienta subteno" + }, + "xDayFreeTrial": { + "message": "$COUNT$ taga senpaga provo, nuligu iam ajn", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Monata" + }, + "annually": { + "message": "Ĉiujare" + }, + "basePrice": { + "message": "Baza Prezo" + }, + "organizationCreated": { + "message": "Organizo kreita" + }, + "organizationReadyToGo": { + "message": "Via nova organizo pretas!" + }, + "organizationUpgraded": { + "message": "Via organizo estis plibonigita." + }, + "leave": { + "message": "Foriri" + }, + "leaveOrganizationConfirmation": { + "message": "Ĉu vi certe volas forlasi ĉi tiun organizon?" + }, + "leftOrganization": { + "message": "Vi forlasis la organizon." + }, + "defaultCollection": { + "message": "Apriora Kolekto" + }, + "getHelp": { + "message": "Akiri Helpon" + }, + "getApps": { + "message": "Akiru la Programojn" + }, + "loggedInAs": { + "message": "Ensalutinta kiel" + }, + "eventLogs": { + "message": "Eventaj Registroj" + }, + "people": { + "message": "Homoj" + }, + "policies": { + "message": "Politikoj" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Redakti politikon" + }, + "groups": { + "message": "Grupoj" + }, + "newGroup": { + "message": "Nova Grupo" + }, + "addGroup": { + "message": "Aldoni grupon" + }, + "editGroup": { + "message": "Redakti grupon" + }, + "deleteGroupConfirmation": { + "message": "Ĉu vi certe volas forigi ĉi tiun grupon?" + }, + "removeUserConfirmation": { + "message": "Ĉu vi certe volas forigi ĉi tiun uzanton?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "Ekstera identigilo" + }, + "externalIdDesc": { + "message": "La ekstera identigilo povas esti uzata kiel referenco aŭ por ligi ĉi tiun rimedon al ekstera sistemo kiel uzantdosierujo." + }, + "accessControl": { + "message": "Alirkontrolo" + }, + "groupAccessAllItems": { + "message": "Ĉi tiu grupo povas aliri kaj modifi ĉiujn erojn." + }, + "groupAccessSelectedCollections": { + "message": "Ĉi tiu grupo povas aliri nur la elektitajn kolektojn." + }, + "readOnly": { + "message": "Nurlegebla" + }, + "newCollection": { + "message": "Nova Kolekto" + }, + "addCollection": { + "message": "Aldoni Kolekton" + }, + "editCollection": { + "message": "Redakti Kolekton" + }, + "deleteCollectionConfirmation": { + "message": "Ĉu vi certe volas forigi ĉi tiun kolekton?" + }, + "editUser": { + "message": "Redakti uzanton" + }, + "inviteUser": { + "message": "Inviti uzanton" + }, + "inviteUserDesc": { + "message": "Invitu novan uzanton al via organizo enigante ĉi-sube sian retpoŝtan adreson Bitwarden. Se ili ne havas Bitwarden-konton jam, ili estos petataj krei novan konton." + }, + "inviteMultipleEmailDesc": { + "message": "Vi povas inviti ĝis $COUNT$ uzantojn samtempe per komo apartigante liston de retpoŝtadresoj.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Ĉi tiu uzanto uzas du-paŝan ensaluton por protekti sian konton." + }, + "userAccessAllItems": { + "message": "Ĉi tiu uzanto povas aliri kaj modifi ĉiujn erojn." + }, + "userAccessSelectedCollections": { + "message": "Ĉi tiu uzanto povas aliri nur la elektitajn kolektojn." + }, + "search": { + "message": "Serĉi" + }, + "invited": { + "message": "Invitita" + }, + "accepted": { + "message": "Akceptita" + }, + "confirmed": { + "message": "Konfirmita" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Posedanto" + }, + "ownerDesc": { + "message": "La plej alt-alira uzanto, kiu povas administri ĉiujn aspektojn de via organizo." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Administranto" + }, + "adminDesc": { + "message": "Administrantoj povas aliri kaj administri ĉiujn erojn, kolektojn kaj uzantojn en via organizo." + }, + "user": { + "message": "Uzanto" + }, + "userDesc": { + "message": "Regula uzanto kun aliro al asignitaj kolektoj en via organizo." + }, + "manager": { + "message": "Administranto" + }, + "managerDesc": { + "message": "Administrantoj povas aliri kaj administri asignitajn kolektojn en via organizo." + }, + "all": { + "message": "Ĉiuj" + }, + "refresh": { + "message": "Refreŝigi" + }, + "timestamp": { + "message": "Horstampo" + }, + "event": { + "message": "Evento" + }, + "unknown": { + "message": "Nekonata" + }, + "loadMore": { + "message": "Ŝargi Pli" + }, + "mobile": { + "message": "Poŝtelefono", + "description": "Mobile app" + }, + "extension": { + "message": "Etendaĵo", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Labortablo", + "description": "Desktop app" + }, + "webVault": { + "message": "Reta Volbo" + }, + "loggedIn": { + "message": "Ensalutinta." + }, + "changedPassword": { + "message": "Ŝanĝis pasvorton de konto." + }, + "enabledUpdated2fa": { + "message": "Ebligita / ĝisdatigita du-ŝtupa ensaluto." + }, + "disabled2fa": { + "message": "Malebligita du-ŝtupa ensaluto." + }, + "recovered2fa": { + "message": "Rekuperita konto post du-ŝtupa ensaluto." + }, + "failedLogin": { + "message": "Ensaluta provo malsukcesis kun malĝusta pasvorto." + }, + "failedLogin2fa": { + "message": "Ensaluta provo malsukcesis kun malĝusta du-ŝtupa ensaluto." + }, + "exportedVault": { + "message": "Eksportita trezorejo." + }, + "exportedOrganizationVault": { + "message": "Eksportita organizo-volbo." + }, + "editedOrgSettings": { + "message": "Redaktitaj organizaj agordoj." + }, + "createdItemId": { + "message": "Kreita ero $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Redaktita ero $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Sendita ero $ID $al rubujo.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Vidita ero $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Vidita pasvorto por ero $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Vidita kaŝita kampo por ero $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Vidita sekureca kodo por ero $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Kopiita pasvorto por ero $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Kopiita kaŝita kampo por ero $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Kopiita sekureca kodo por ero $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Aŭtomate plenigita ero $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Kreita kolekto $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Redaktita kolekto $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Forigita kolekto $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Redaktita politiko $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Kreita grupo $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Redaktita grupo $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Forigita grupo $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Forigita uzanto $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Kreita aldonaĵo por ero $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Forigita aldonaĵo por ero $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Redaktitaj kolektoj por ero $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Invitita uzanto $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Konfirmita uzanto $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Redaktita uzanto $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Redaktitaj grupoj por uzanto $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Senligita SSO por uzanto $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Aparato" + }, + "view": { + "message": "Vidigi" + }, + "invalidDateRange": { + "message": "Nevalida datintervalo." + }, + "errorOccurred": { + "message": "Eraro okazis." + }, + "userAccess": { + "message": "Uzanto-Aliro" + }, + "userType": { + "message": "Uzanto-Tipo" + }, + "groupAccess": { + "message": "Grupaliro" + }, + "groupAccessUserDesc": { + "message": "Redaktu la grupojn al kiuj apartenas ĉi tiu uzanto." + }, + "invitedUsers": { + "message": "Invititaj uzantoj." + }, + "resendInvitation": { + "message": "Resendi Inviton" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ estis reenvitita.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Konfirmi" + }, + "confirmUser": { + "message": "Konfirmi uzanton" + }, + "hasBeenConfirmed": { + "message": "$USER$ estas konfirmita.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Konfirmi Uzantojn" + }, + "usersNeedConfirmed": { + "message": "Vi havas uzantojn, kiuj akceptis sian inviton, sed tamen devas esti konfirmitaj. Uzantoj ne havos aliron al la organizo antaŭ ol ili estos konfirmitaj." + }, + "startDate": { + "message": "Komenca dato" + }, + "endDate": { + "message": "Fina dato" + }, + "verifyEmail": { + "message": "Kontroli retpoŝton" + }, + "verifyEmailDesc": { + "message": "Kontrolu la retpoŝtadreson de via konto por malŝlosi aliron al ĉiuj funkcioj." + }, + "verifyEmailFirst": { + "message": "La retpoŝta adreso de via konto unue devas esti kontrolita." + }, + "checkInboxForVerification": { + "message": "Kontrolu vian retpoŝtan enirkeston por kontroli ligon." + }, + "emailVerified": { + "message": "Via retpoŝto estis kontrolita." + }, + "emailVerifiedFailed": { + "message": "Ne eblas kontroli vian retpoŝton. Provu sendi novan kontrolan retpoŝton." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "Ĝisdatigi retumilon" + }, + "updateBrowserDesc": { + "message": "Vi uzas nesubtenatan tTT-legilon. La ttt-volbo eble ne funkcias ĝuste." + }, + "joinOrganization": { + "message": "Aliĝi al Organizo" + }, + "joinOrganizationDesc": { + "message": "Vi estis invitita aliĝi al la organizo supre listigita. Por akcepti la inviton, vi devas ensaluti aŭ krei novan Bitwarden-konton." + }, + "inviteAccepted": { + "message": "Invito Akceptita" + }, + "inviteAcceptedDesc": { + "message": "Vi povas aliri ĉi tiun organizon post kiam administranto konfirmos vian membrecon. Ni sendos al vi retpoŝton kiam tio okazos." + }, + "inviteAcceptFailed": { + "message": "Ne eblas akcepti inviton. Petu administranton de organizo sendi novan inviton." + }, + "inviteAcceptFailedShort": { + "message": "Ne eblas akcepti inviton. $DESCRIPTION $", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Memoru retpoŝton" + }, + "recoverAccountTwoStepDesc": { + "message": "Se vi ne povas aliri vian konton per viaj normalaj du-ŝtupaj ensalutaj metodoj, vi povas uzi vian du-ŝtupan ensalutan rekuperan kodon por malŝalti ĉiujn du-ŝtupajn provizantojn en via konto." + }, + "recoverAccountTwoStep": { + "message": "Rekuperi Ensaluton Du-Paŝan" + }, + "twoStepRecoverDisabled": { + "message": "Du-ŝtupa ensaluto estas malŝaltita en via konto." + }, + "learnMore": { + "message": "Lernu pli" + }, + "deleteRecoverDesc": { + "message": "Enigu vian retpoŝtan adreson sube por rekuperi kaj forigi vian konton." + }, + "deleteRecoverEmailSent": { + "message": "Se via konto ekzistas, ni sendis al vi retpoŝton kun pliaj instrukcioj." + }, + "deleteRecoverConfirmDesc": { + "message": "Vi petis forigi vian Bitwarden-konton. Alklaku la butonon sube por konfirmi." + }, + "myOrganization": { + "message": "Mia Organizo" + }, + "deleteOrganization": { + "message": "Forigi Organizon" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organizo Forigita" + }, + "organizationDeletedDesc": { + "message": "La organizo kaj ĉiuj rilataj datumoj estis forigitaj." + }, + "organizationUpdated": { + "message": "Organizo ĝisdatigita" + }, + "taxInformation": { + "message": "Impostaj Informoj" + }, + "taxInformationDesc": { + "message": "Por klientoj en Usono, poŝtkodo necesas por plenumi vendimpostajn postulojn, por aliaj landoj vi rajtas laŭvole doni impostan identigan numeron (VAT / GST) kaj / aŭ adreson por aperi sur viaj fakturoj." + }, + "billingPlan": { + "message": "Plani", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Ŝanĝi Planon", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Ĝisdatigu vian konton al alia plano donante la informojn sube. Bonvolu certigi, ke vi havas aktivan pagmanieron aldonitan al la konto.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Fakturo # $NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Vidi Fakturon" + }, + "downloadInvoice": { + "message": "Elŝuti Fakturon" + }, + "verifyBankAccount": { + "message": "Kontroli bankan konton" + }, + "verifyBankAccountDesc": { + "message": "Ni faris du mikrodeponejojn al via banka konto (ĝi povas daŭri 1-2 labortagojn por aperi). Enigu ĉi tiujn sumojn por kontroli la bankan konton." + }, + "verifyBankAccountInitialDesc": { + "message": "Pago per banka konto disponeblas nur al klientoj en Usono. Vi devos kontroli vian bankan konton. Ni faros du mikro-deponejojn en la venontaj 1-2 labortagoj. Enigu ĉi tiujn sumojn en la faktura paĝo de la organizo por kontroli la bankan konton. " + }, + "verifyBankAccountFailureWarning": { + "message": "Malsukceso kontroli la bankan konton rezultigos mankan pagon kaj via abono malŝaltita." + }, + "verifiedBankAccount": { + "message": "Banka konto estas kontrolita." + }, + "bankAccount": { + "message": "Banka Konto" + }, + "amountX": { + "message": "Amount $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Numero de Vojo", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Konta Numero" + }, + "accountHolderName": { + "message": "Nomo de Konto-Posedanto" + }, + "bankAccountType": { + "message": "Kontospeco" + }, + "bankAccountTypeCompany": { + "message": "Kompanio (Komerco)" + }, + "bankAccountTypeIndividual": { + "message": "Individua (Persona)" + }, + "enterInstallationId": { + "message": "Enigu vian instalan identigilon" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Aldoni Sidlokojn", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Forigi Sidlokojn", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Via abono permesas entute $COUNT$ uzantojn.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Aldonaj Seĝoj" + }, + "seatsToRemove": { + "message": "Forigeblaj Seĝoj" + }, + "seatsAddNote": { + "message": "Aldoni uzantajn seĝojn rezultigos ĝustigojn al viaj fakturaj sumoj kaj tuj ŝargos vian pagmanieron en dosiero. La unua ŝarĝo estos proporciigita por la resto de la aktuala faktura ciklo." + }, + "seatsRemoveNote": { + "message": "Forigi uzantajn seĝojn rezultigos ĝustigojn al viaj fakturaj sumoj, kiuj estos proratigitaj kiel kreditoj al via sekva faktura kosto." + }, + "adjustedSeats": { + "message": "Ĝustigitaj $AMOUNT$ uzanto-seĝoj.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Ŝlosilo ĝisdatigita" + }, + "updateKeyTitle": { + "message": "Ĝisdatiga Ŝlosilo" + }, + "updateEncryptionKey": { + "message": "Ĝisdatigi Ĉifran Ŝlosilon" + }, + "updateEncryptionKeyShortDesc": { + "message": "Vi nun uzas malmodernan ĉifran skemon." + }, + "updateEncryptionKeyDesc": { + "message": "Ni transloĝiĝis al pli grandaj ĉifraj ŝlosiloj, kiuj donas pli bonan sekurecon kaj aliron al pli novaj funkcioj. Ĝisdatigi vian ĉifran ŝlosilon estas rapide kaj facile. Simple tajpu vian ĉefan pasvorton sube. Ĉi tiu ĝisdatigo fine fariĝos deviga." + }, + "updateEncryptionKeyWarning": { + "message": "Post ĝisdatigi vian ĉifradan ŝlosilon, vi devas elsaluti kaj reeniri al ĉiuj Bitwarden-aplikaĵoj, kiujn vi nun uzas (kiel la poŝtelefona programo aŭ retumila etendaĵoj). Malsukceso elsaluti kaj reeniri (kiu elŝutas via nova ĉifra ŝlosilo) povas rezultigi korupton de datumoj. Ni provos elsaluti vin aŭtomate, tamen ĝi eble prokrastos. " + }, + "updateEncryptionKeyExportWarning": { + "message": "Ĉiuj ĉifritaj eksportaĵoj, kiujn vi konservis, ankaŭ malvalidiĝos." + }, + "subscription": { + "message": "Abono" + }, + "loading": { + "message": "Ŝarĝante" + }, + "upgrade": { + "message": "Ĝisdatigi" + }, + "upgradeOrganization": { + "message": "Altgradiga Organizo" + }, + "upgradeOrganizationDesc": { + "message": "Ĉi tiu funkcio ne haveblas por senpagaj organizoj. Ŝanĝu al pagita plano por malŝlosi pli da funkcioj." + }, + "createOrganizationStep1": { + "message": "Krei Organizon: Paŝo 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Antaŭ ol krei vian organizon, vi unue devas krei senpagan personan konton." + }, + "refunded": { + "message": "Repagita" + }, + "nothingSelected": { + "message": "Vi elektis nenion." + }, + "acceptPolicies": { + "message": "Markante ĉi tiun keston vi konsentas pri jeno:" + }, + "acceptPoliciesError": { + "message": "Kondiĉoj pri Servo kaj Privateca Politiko ne estis agnoskitaj." + }, + "termsOfService": { + "message": "Kondiĉoj por Servo" + }, + "privacyPolicy": { + "message": "Privateca Politiko" + }, + "filters": { + "message": "Filtriloj" + }, + "vaultTimeout": { + "message": "Tempomezuro de Volbo" + }, + "vaultTimeoutDesc": { + "message": "Elektu kiam via trezorejo eksvalidiĝos kaj plenumos la elektitan agon." + }, + "oneMinute": { + "message": "1 minuto" + }, + "fiveMinutes": { + "message": "5 minutoj" + }, + "fifteenMinutes": { + "message": "15 minutoj" + }, + "thirtyMinutes": { + "message": "30 minutoj" + }, + "oneHour": { + "message": "1 horo" + }, + "fourHours": { + "message": "4 horoj" + }, + "onRefresh": { + "message": "Sur Retumila Aktualigo" + }, + "dateUpdated": { + "message": "Ĝisdatigita", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Pasvorto Ĝisdatigita", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organizo estas malŝaltita." + }, + "licenseIsExpired": { + "message": "Licenco eksvalidiĝis." + }, + "updatedUsers": { + "message": "Ĝisdatigitaj uzantoj" + }, + "selected": { + "message": "Elektita" + }, + "ownership": { + "message": "Posedo" + }, + "whoOwnsThisItem": { + "message": "Kiu posedas ĉi tiun eron?" + }, + "strong": { + "message": "Forta", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Bona", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Malforta", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Tre Malforta", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Malforta Majstra Pasvorto" + }, + "weakMasterPasswordDesc": { + "message": "La majstra pasvorto, kiun vi elektis, estas malforta. Vi devas uzi fortan majstran pasvorton (aŭ pasfrazon) por ĝuste protekti vian Bitwarden-konton. Ĉu vi certe volas uzi ĉi tiun ĉefan pasvorton?" + }, + "rotateAccountEncKey": { + "message": "Ankaŭ turnu la ĉifran ŝlosilon de mia konto" + }, + "rotateEncKeyTitle": { + "message": "Rotacii Ĉifran Ŝlosilon" + }, + "rotateEncKeyConfirmation": { + "message": "Ĉu vi certe volas turni la ĉifran ŝlosilon de via konto?" + }, + "attachmentsNeedFix": { + "message": "Ĉi tiu ero havas malnovajn dosierajn aldonaĵojn, kiujn necesas ripari." + }, + "attachmentFixDesc": { + "message": "Ĉi tio estas malnova riparenda dosiero, kiun necesas ripari. Alklaku por lerni pli." + }, + "fix": { + "message": "Ripari", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Estas malnovaj dosieraj aldonaĵoj en via trezorejo, kiuj devas esti riparitaj antaŭ ol vi povas turni la ĉifran ŝlosilon de via konto." + }, + "yourAccountsFingerprint": { + "message": "Fingrospuro de via konto", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Por certigi la integrecon de viaj ĉifradaj ŝlosiloj, bonvolu kontroli la fingrospuran frazon de la uzanto antaŭ ol daŭrigi.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Ne petu kontroli denove fingrospuran frazon", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Senpaga", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API-Ŝlosilo" + }, + "apiKeyDesc": { + "message": "Via API-ŝlosilo povas esti uzata por aŭtentikigi al la publika API de Bitwarden." + }, + "apiKeyRotateDesc": { + "message": "Rotacii la API-ŝlosilon nuligos la antaŭan ŝlosilon. Vi povas turni vian API-ŝlosilon se vi kredas, ke la nuna ŝlosilo ne plu estas sekura uzi." + }, + "apiKeyWarning": { + "message": "Via API-ŝlosilo havas plenan aliron al la organizo. Ĝi estu tenata sekreta." + }, + "userApiKeyDesc": { + "message": "Via API-ŝlosilo povas esti uzata por aŭtentikigi en la Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Via API-ŝlosilo estas alternativa aŭtentikiga me mechanismanismo. Ĝi devas esti sekretigita." + }, + "oauth2ClientCredentials": { + "message": "Klientaj Atestiloj de OAuth 2.0", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Vidi API-Ŝlosilon" + }, + "rotateApiKey": { + "message": "Rotacii API-Ŝlosilon" + }, + "selectOneCollection": { + "message": "Vi devas elekti almenaŭ unu kolekton." + }, + "couldNotChargeCardPayInvoice": { + "message": "Ni ne povis ŝargi vian karton. Bonvolu vidi kaj pagi la senpagitan fakturon listigitan sube." + }, + "inAppPurchase": { + "message": "En-aĉeta aĉeto" + }, + "cannotPerformInAppPurchase": { + "message": "Vi ne povas plenumi ĉi tiun agon dum vi uzas en-programan aĉetan pagmanieron." + }, + "manageSubscriptionFromStore": { + "message": "Vi devas administri vian abonon de la butiko, kie via aĉeta aĉeto estis farita." + }, + "minLength": { + "message": "Minimuma longeco" + }, + "clone": { + "message": "Kloni" + }, + "masterPassPolicyDesc": { + "message": "Agordi minimumajn postulojn por majstra pasvorta forto." + }, + "twoStepLoginPolicyDesc": { + "message": "Postuli uzantojn agordi du-ŝtupan ensaluton en siaj personaj kontoj." + }, + "twoStepLoginPolicyWarning": { + "message": "Organizaj membroj, kiuj ne estas Posedantoj aŭ Administrantoj kaj ne havas du-paŝan ensaluton ebligita por sia persona konto, estos forigitaj de la organizo kaj ricevos retpoŝton sciigantan ilin pri la ŝanĝo." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Vi estas membro de organizo, kiu bezonas du-paŝan ensaluton por esti ebligita en via uzantokonto. Se vi malŝaltas ĉiujn du-paŝajn ensalutajn provizantojn, vi aŭtomate estos forigita de ĉi tiuj organizoj." + }, + "passwordGeneratorPolicyDesc": { + "message": "Agordi minimumajn postulojn por agordi pasvortan generilon." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Unu aŭ pluraj organizaj politikoj influas viajn generatorajn agordojn." + }, + "masterPasswordPolicyInEffect": { + "message": "Unu aŭ pluraj organizaj politikoj postulas vian ĉefan pasvorton por plenumi la jenajn postulojn:" + }, + "policyInEffectMinComplexity": { + "message": "Minimuma kompleksa poentaro de $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimuma longo de $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Enhavas unu aŭ plurajn majusklajn literojn" + }, + "policyInEffectLowercase": { + "message": "Enhavas unu aŭ plurajn minusklojn" + }, + "policyInEffectNumbers": { + "message": "Enhavas unu aŭ plurajn numerojn" + }, + "policyInEffectSpecial": { + "message": "Enhavas unu aŭ pli el la jenaj specialaj signoj $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Via nova majstra pasvorto ne plenumas la politikajn postulojn." + }, + "minimumNumberOfWords": { + "message": "Minimuma Nombro de Vortoj" + }, + "defaultType": { + "message": "Apriora Tipo" + }, + "userPreference": { + "message": "Uzanta Prefero" + }, + "vaultTimeoutAction": { + "message": "Volta Tempolima Ago" + }, + "vaultTimeoutActionLockDesc": { + "message": "Ŝlosita trezorejo postulas, ke vi reenmetu vian ĉefan pasvorton por aliri ĝin denove." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Ensalutita volbo postulas, ke vi denove aŭtentikigu por aliri ĝin denove." + }, + "lock": { + "message": "Ŝlosi", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Rubujo", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Serĉi rubujon" + }, + "permanentlyDelete": { + "message": "Konstante Forigi" + }, + "permanentlyDeleteSelected": { + "message": "Permanently Delete Selected" + }, + "permanentlyDeleteItem": { + "message": "Konstante Forigi Artikolon" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Ĉu vi certe volas konstante forigi ĉi tiun eron?" + }, + "permanentlyDeletedItem": { + "message": "Konstante forigita ero" + }, + "permanentlyDeletedItems": { + "message": "Konstante Forigitaj Eroj" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Vi elektis $COUNT$ eron (j) por konstante forigi. Ĉu vi certas, ke vi volas forigi konstante ĉiujn ĉi tiujn erojn?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Konstante Forigita ero $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restarigi" + }, + "restoreSelected": { + "message": "Restarigi elektitajn" + }, + "restoreItem": { + "message": "Restarigi Artikolon" + }, + "restoredItem": { + "message": "Restarigita elemento" + }, + "restoredItems": { + "message": "Restarigitaj Eroj" + }, + "restoreItemConfirmation": { + "message": "Ĉu vi certe volas restarigi ĉi tiun eron?" + }, + "restoreItems": { + "message": "Restarigi erojn" + }, + "restoreSelectedItemsDesc": { + "message": "Vi elektis $COUNT$ eron (j) por restarigi. Ĉu vi certe volas restarigi ĉiujn ĉi tiujn erojn?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Restored item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Elsaluti forigos ĉian aliron al via trezorejo kaj postulas interretan aŭtentikigon post la limtempo. Ĉu vi certas, ke vi volas uzi ĉi tiun agordon?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Konfirmado de Tempolima Ago" + }, + "hidePasswords": { + "message": "Kaŝi Pasvortojn" + }, + "countryPostalCodeRequiredDesc": { + "message": "Ni postulas ĉi tiujn informojn nur por kalkuli vendimposton kaj financan raportadon." + }, + "includeVAT": { + "message": "Inkluzivi informojn pri VAT / GST (nedeviga)" + }, + "taxIdNumber": { + "message": "Imposta ID de VAT / GST" + }, + "taxInfoUpdated": { + "message": "Impostaj informoj ĝisdatigitaj." + }, + "setMasterPassword": { + "message": "Agordi Majstran Pasvorton" + }, + "ssoCompleteRegistration": { + "message": "Por kompletigi ensalutadon per SSO, bonvolu agordi ĉefan pasvorton por aliri kaj protekti vian trezorejon." + }, + "identifier": { + "message": "Identigilo" + }, + "organizationIdentifier": { + "message": "Organiza Identigilo" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Ensalutu per la unika ensaluta portalo de via organizo. Bonvolu enigi la identigilon de via organizo por komenci." + }, + "enterpriseSingleSignOn": { + "message": "Entreprena Ununura Ensaluto" + }, + "ssoHandOff": { + "message": "Vi povas nun fermi ĉi tiun langeton kaj daŭrigi en la etendaĵo." + }, + "includeAllTeamsFeatures": { + "message": "Ĉiuj funkcioj de teamoj, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO-Aŭtentikigo per SAML2.0 kaj OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Entreprenaj Politikoj" + }, + "ssoValidationFailed": { + "message": "SSO-Validado Malsukcesis" + }, + "ssoIdentifierRequired": { + "message": "Organiza Identigilo necesas." + }, + "unlinkSso": { + "message": "Malkonekti SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Ligi SSO" + }, + "singleOrg": { + "message": "Ununura Organizo" + }, + "singleOrgDesc": { + "message": "Limigi uzantojn povi aliĝi al iuj aliaj organizoj." + }, + "singleOrgBlockCreateMessage": { + "message": "Via nuna organizo havas politikon, kiu ne permesas vin aliĝi al pli ol unu organizo. Bonvolu kontakti administrantojn de via organizo aŭ registriĝi de alia Bitwarden-konto." + }, + "singleOrgPolicyWarning": { + "message": "Organizaj membroj, kiuj ne estas Posedantoj aŭ Administrantoj kaj jam estas membro de alia organizo, estos forigitaj de via organizo." + }, + "requireSso": { + "message": "Ununura Ensaluta Aŭtentikigo" + }, + "requireSsoPolicyDesc": { + "message": "Postuli uzantojn ensaluti per la entrepreno pri sola ensaluto." + }, + "prerequisite": { + "message": "Antaŭkondiĉo" + }, + "requireSsoPolicyReq": { + "message": "La entreprena politiko pri Ununura Organizo devas esti ebligita antaŭ ol aktivigi ĉi tiun politikon." + }, + "requireSsoPolicyReqError": { + "message": "Politiko pri Ununura Organizo ne ebligita." + }, + "requireSsoExemption": { + "message": "Organizaj Posedantoj kaj Administrantoj estas esceptitaj de la apliko de ĉi tiu politiko." + }, + "sendTypeFile": { + "message": "Dosiero" + }, + "sendTypeText": { + "message": "Teksto" + }, + "createSend": { + "message": "Krei novan sendon", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Redakti Sendu", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Kreita Sendo", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Redaktita Sendo", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Forigita Sendo", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Forigi Sendu", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Ĉu vi certe volas forigi ĉi tiun Sendon?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Kia Sendo estas ĉi tio?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Dato de Forigo" + }, + "deletionDateDesc": { + "message": "La Sendo estos definitive forigita en la specifaj dato kaj horo.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Findato" + }, + "expirationDateDesc": { + "message": "Se agordita, aliro al ĉi tiu Sendo eksvalidiĝos je la specifaj dato kaj horo.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maksimuma Aliro-Kalkulo" + }, + "maxAccessCountDesc": { + "message": "Se agordite, uzantoj ne plu povos aliri ĉi tiun sendon post kiam la maksimuma alira kalkulo estos atingita.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Nuna Alira Kalkulo" + }, + "sendPasswordDesc": { + "message": "Laŭvole postulas pasvorton por uzantoj aliri ĉi tiun Sendon.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Privataj notoj pri ĉi tiu Sendo.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Malebligita" + }, + "sendLink": { + "message": "Sendi ligon", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Kopii Sendu Ligilon", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Forigi pasvorton" + }, + "removedPassword": { + "message": "Forigita Pasvorto" + }, + "removePasswordConfirmation": { + "message": "Ĉu vi certe volas forigi la pasvorton?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Malŝalti ĉi tiun Sendon por ke neniu povu aliri ĝin.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Ĉiuj Sendoj" + }, + "maxAccessCountReached": { + "message": "Maksimuma alirnombro atingis", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Atendanta forigo" + }, + "expired": { + "message": "Eksvalidiĝis" + }, + "searchSends": { + "message": "Serĉaj Sendoj", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Ĉi tiu Sendo estas protektita per pasvorto. Bonvolu tajpi la pasvorton sube por daŭrigi.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Ĉu vi ne scias la pasvorton? Petu al la Sendinto la pasvorton bezonatan por aliri ĉi tiun Sendon.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Ĉi tiu sendado estas kaŝita defaŭlte. Vi povas ŝalti ĝian videblecon per la suba butono.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Elŝuti dosieron" + }, + "sendAccessUnavailable": { + "message": "La Sendo, kiun vi provas aliri, ne ekzistas aŭ ne plu haveblas.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "La dosiero asociita kun ĉi tiu Sendo ne estis trovebla.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Estas neniuj Sendoj por listigi.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Kriza Aliro" + }, + "emergencyAccessDesc": { + "message": "Donu kaj administru krizan aliron por fidindaj kontaktoj. Fidindaj kontaktoj povas peti aliron al aŭ Vidi aŭ Transpreni vian konton en kazo de krizo. Vizitu nian helpopaĝon por pliaj informoj kaj detaloj pri kiel funkcias nula scio-dividado." + }, + "emergencyAccessOwnerWarning": { + "message": "Vi estas Posedanto de unu aŭ pluraj organizoj. Se vi donas transprenan aliron al urĝa kontakto, ili povos uzi ĉiujn viajn permesojn kiel Posedanto post transpreno." + }, + "trustedEmergencyContacts": { + "message": "Fidindaj krizaj kontaktoj" + }, + "noTrustedContacts": { + "message": "Vi ankoraŭ ne aldonis krizajn kontaktojn, invitu fidindan kontakton por komenci." + }, + "addEmergencyContact": { + "message": "Aldoni krizan kontakton" + }, + "designatedEmergencyContacts": { + "message": "Elektita kiel kriz-kontakto" + }, + "noGrantedAccess": { + "message": "Vi ankoraŭ ne estis nomumita kiel urĝa kontakto por iu ajn." + }, + "inviteEmergencyContact": { + "message": "Inviti krizan kontakton" + }, + "editEmergencyContact": { + "message": "Redakti krizan kontakton" + }, + "inviteEmergencyContactDesc": { + "message": "Invitu novan krizan kontakton enigante sube sian retpoŝtan adreson Bitwarden. Se ili ne havas Bitwarden-konton jam, ili estos petataj krei novan konton." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Kriza Aliro Komencita" + }, + "emergencyAccessRecoveryApproved": { + "message": "Akutaliro aprobita" + }, + "viewDesc": { + "message": "Povas vidi ĉiujn erojn en via propra trezorejo." + }, + "takeover": { + "message": "Transpreno" + }, + "takeoverDesc": { + "message": "Povas reagordi vian konton per nova majstra pasvorto." + }, + "waitTime": { + "message": "Atendotempo" + }, + "waitTimeDesc": { + "message": "Tempo bezonata antaŭ ol aŭtomate doni aliron." + }, + "oneDay": { + "message": "1 tago" + }, + "days": { + "message": "$TAGOJ$ tagoj", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invitita uzanto." + }, + "acceptEmergencyAccess": { + "message": "Vi estis invitita fariĝi urĝa kontakto por la supre listigita uzanto. Por akcepti la inviton, vi devas ensaluti aŭ krei novan Bitwarden-konton." + }, + "emergencyInviteAcceptFailed": { + "message": "Ne eblas akcepti inviton. Petu la uzanton sendi novan inviton." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Ne eblas akcepti inviton. $DESCRIPTION $", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Vi povas aliri la krizajn eblojn por ĉi tiu uzanto post kiam via identeco estis konfirmita. Ni sendos al vi retpoŝton kiam tio okazos." + }, + "requestAccess": { + "message": "Peti Aliron" + }, + "requestAccessConfirmation": { + "message": "Ĉu vi certe volas peti krizan aliron? Vi ricevos aliron post $WAITTIME$ tago (j) aŭ kiam la uzanto mane aprobos la peton.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Kriza aliro petita por $USER $. Ni sciigos vin per retpoŝto kiam eblas daŭrigi.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Aprovi" + }, + "reject": { + "message": "Malakcepti" + }, + "approveAccessConfirmation": { + "message": "Ĉu vi certe volas aprobi krizan aliron? Ĉi tio permesos $USER$ al $ACTION$ via konto.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Akutaliro aprobita." + }, + "emergencyRejected": { + "message": "Krizaliro malakceptita" + }, + "passwordResetFor": { + "message": "Pasvorta restarigo por $USER $. Vi nun povas ensaluti per la nova pasvorto.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Persona Posedo" + }, + "personalOwnershipPolicyDesc": { + "message": "Postuli uzantojn konservi trezorejojn al organizo forigante la opcion pri persona posedo." + }, + "personalOwnershipExemption": { + "message": "Organizaj Posedantoj kaj Administrantoj estas esceptitaj de la apliko de ĉi tiu politiko." + }, + "personalOwnershipSubmitError": { + "message": "Pro entreprena politiko, vi ne rajtas konservi artikolojn al via persona trezorejo. Ŝanĝu la opcion Proprieto al organizo kaj elektu el disponeblaj Kolektoj." + }, + "disableSend": { + "message": "Malebligi Sendi" + }, + "disableSendPolicyDesc": { + "message": "Ne permesu al uzantoj krei aŭ redakti Bitwarden Sendon. Forigi ekzistantan Sendon estas ankoraŭ permesita.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organizaj uzantoj, kiuj povas administri la politikojn de la organizo, estas esceptitaj de la devigo de ĉi tiu politiko." + }, + "sendDisabled": { + "message": "Sendu malebligita", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Pro entreprena politiko, vi nur povas forigi ekzistantan Sendon.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modifita politiko $ID $.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plana prezo" + }, + "estimatedTax": { + "message": "Taksita imposto" + }, + "custom": { + "message": "Propra" + }, + "customDesc": { + "message": "Permesas pli detalan kontrolon de uzaj permesoj por progresintaj agordoj." + }, + "permissions": { + "message": "Permesoj" + }, + "accessEventLogs": { + "message": "Aliri Eventajn Registrojn" + }, + "accessImportExport": { + "message": "Aliri Importi / Eksporti" + }, + "accessReports": { + "message": "Aliraj Raportoj" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Administri ĉiujn kolektojn" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Administri Asignitajn Kolektojn" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Administri Grupojn" + }, + "managePolicies": { + "message": "Administri Politikojn" + }, + "manageSso": { + "message": "Administri SSO" + }, + "manageUsers": { + "message": "Administri Uzantojn" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Organiza politiko influas viajn posedopciojn." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Malebligi personan posedon por organizaj uzantoj" + }, + "textHiddenByDefault": { + "message": "Alirante la Sendon, kaŝu la tekston defaŭlte", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Amika nomo por priskribi ĉi tiun Sendon.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "La teksto, kiun vi volas sendi." + }, + "sendFileDesc": { + "message": "La dosiero, kiun vi volas sendi." + }, + "copySendLinkOnSave": { + "message": "Kopiu la ligon por dividi ĉi tion Sendu al mia tondujo post konservado." + }, + "sendLinkLabel": { + "message": "Sendi ligon", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Sendi", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transdonas sentemajn provizorajn informojn al aliaj facile kaj sekure.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Lernu pli pri", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Kunhavigi tekston aŭ dosierojn rekte kun iu ajn." + }, + "sendVaultCardLearnMore": { + "message": "Lernu pli", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "vidu", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "kiel ĝi funkcias", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "aŭ", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "provu ĝin nun", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "aŭ", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "aliĝi", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "provi ĝin hodiaŭ.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden-uzanto $USER_IDENTIFIER$ dividis la jenon kun vi", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "La donita eksvalidiĝa dato ne validas." + }, + "deletionDateIsInvalid": { + "message": "La forigita dato donita ne validas." + }, + "expirationDateAndTimeRequired": { + "message": "Eksvalidiĝa dato kaj horo necesas." + }, + "deletionDateAndTimeRequired": { + "message": "Forigo de dato kaj horo estas bezonataj." + }, + "dateParsingError": { + "message": "Estis eraro konservante viajn forigajn kaj eksvalidajn datojn." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organization policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organization administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/es/messages.json b/apps/web/src/locales/es/messages.json new file mode 100644 index 0000000000..de85c2d157 --- /dev/null +++ b/apps/web/src/locales/es/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Caja fuerte Web", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "¿Qué tipo de elemento es este?" + }, + "name": { + "message": "Nombre" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Nueva URI" + }, + "username": { + "message": "Usuario" + }, + "password": { + "message": "Contraseña" + }, + "newPassword": { + "message": "Nueva contraseña" + }, + "passphrase": { + "message": "Frase de contraseña" + }, + "notes": { + "message": "Notas" + }, + "customFields": { + "message": "Campos personalizados" + }, + "cardholderName": { + "message": "Nombre en la tarjeta" + }, + "number": { + "message": "Número" + }, + "brand": { + "message": "Marca" + }, + "expiration": { + "message": "Expiración" + }, + "securityCode": { + "message": "Código de seguridad (CVV)" + }, + "identityName": { + "message": "Nombre de la identidad" + }, + "company": { + "message": "Empresa" + }, + "ssn": { + "message": "Número de la seguridad social" + }, + "passportNumber": { + "message": "Número de pasaporte" + }, + "licenseNumber": { + "message": "Número de licencia" + }, + "email": { + "message": "Correo electrónico" + }, + "phone": { + "message": "Teléfono" + }, + "january": { + "message": "Enero" + }, + "february": { + "message": "Febrero" + }, + "march": { + "message": "Marzo" + }, + "april": { + "message": "Abril" + }, + "may": { + "message": "Mayo" + }, + "june": { + "message": "Junio" + }, + "july": { + "message": "Julio" + }, + "august": { + "message": "Agosto" + }, + "september": { + "message": "Septiembre" + }, + "october": { + "message": "Octubre" + }, + "november": { + "message": "Noviembre" + }, + "december": { + "message": "Diciembre" + }, + "title": { + "message": "Título" + }, + "mr": { + "message": "Sr" + }, + "mrs": { + "message": "Sra" + }, + "ms": { + "message": "Srta" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Mes de expiración" + }, + "expirationYear": { + "message": "Año de expiración" + }, + "authenticatorKeyTotp": { + "message": "Clave de autenticación (TOTP)" + }, + "folder": { + "message": "Carpeta" + }, + "newCustomField": { + "message": "Nuevo campo personalizado" + }, + "value": { + "message": "Valor" + }, + "dragToSort": { + "message": "Arrastra para ordenar" + }, + "cfTypeText": { + "message": "Texto" + }, + "cfTypeHidden": { + "message": "Oculto" + }, + "cfTypeBoolean": { + "message": "Booleano" + }, + "cfTypeLinked": { + "message": "Conectado", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Eliminar" + }, + "unassigned": { + "message": "No asignado" + }, + "noneFolder": { + "message": "Sin carpeta", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Añadir carpeta" + }, + "editFolder": { + "message": "Editar carpeta" + }, + "baseDomain": { + "message": "Dominio base", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Servidor", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exacta" + }, + "startsWith": { + "message": "Empieza con" + }, + "regEx": { + "message": "Expresión regular", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Tipo de detección", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Detección por defecto", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Nunca" + }, + "toggleVisibility": { + "message": "Alternar visibilidad" + }, + "toggleCollapse": { + "message": "Colapsar/Expandir", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generar contraseña" + }, + "checkPassword": { + "message": "Comprobar si la contraseña está comprometida." + }, + "passwordExposed": { + "message": "Esta contraseña fue encontrada $VALUE$ vez/veces en filtraciones de datos. Deberías cambiarla.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Esta contraseña no fue encontrada en ninguna filtración de datos conocida. Deberías poder utilizarla de forma segura." + }, + "save": { + "message": "Guardar" + }, + "cancel": { + "message": "Cancelar" + }, + "canceled": { + "message": "Cancelado" + }, + "close": { + "message": "Cerrar" + }, + "delete": { + "message": "Eliminar" + }, + "favorite": { + "message": "Favorito" + }, + "unfavorite": { + "message": "Eliminar favorito" + }, + "edit": { + "message": "Editar" + }, + "searchCollection": { + "message": "Buscar en colección" + }, + "searchFolder": { + "message": "Buscar en carpeta" + }, + "searchFavorites": { + "message": "Buscar en favoritos" + }, + "searchType": { + "message": "Buscar en tipo", + "description": "Search item type" + }, + "searchVault": { + "message": "Buscar en caja fuerte" + }, + "allItems": { + "message": "Todos los elementos" + }, + "favorites": { + "message": "Favoritos" + }, + "types": { + "message": "Tipos" + }, + "typeLogin": { + "message": "Inicio de sesión" + }, + "typeCard": { + "message": "Tarjeta" + }, + "typeIdentity": { + "message": "Identidad" + }, + "typeSecureNote": { + "message": "Nota segura" + }, + "typeLoginPlural": { + "message": "Inicios de sesión" + }, + "typeCardPlural": { + "message": "Tarjetas" + }, + "typeIdentityPlural": { + "message": "Identidades" + }, + "typeSecureNotePlural": { + "message": "Notas seguras" + }, + "folders": { + "message": "Carpetas" + }, + "collections": { + "message": "Colecciones" + }, + "firstName": { + "message": "Nombre" + }, + "middleName": { + "message": "2º nombre" + }, + "lastName": { + "message": "Apellido" + }, + "fullName": { + "message": "Nombre completo" + }, + "address1": { + "message": "Dirección 1" + }, + "address2": { + "message": "Dirección 2" + }, + "address3": { + "message": "Dirección 3" + }, + "cityTown": { + "message": "Ciudad / Pueblo" + }, + "stateProvince": { + "message": "Estado / Provincia" + }, + "zipPostalCode": { + "message": "Código postal" + }, + "country": { + "message": "País" + }, + "shared": { + "message": "Compartido" + }, + "attachments": { + "message": "Adjuntos" + }, + "select": { + "message": "Seleccionar" + }, + "addItem": { + "message": "Añadir elemento" + }, + "editItem": { + "message": "Editar elemento" + }, + "viewItem": { + "message": "Ver elemento" + }, + "ex": { + "message": "ej.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Otro" + }, + "share": { + "message": "Compartir" + }, + "moveToOrganization": { + "message": "Mover a la organización" + }, + "valueCopied": { + "message": "Valor de $VALUE$ copiado", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Copiar valor", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Copiar contraseña", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Copiar usuario", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Copiar número", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copiar código de seguridad", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Copiar URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Mi caja fuerte" + }, + "vault": { + "message": "Caja fuerte" + }, + "moveSelectedToOrg": { + "message": "Mover los seleccionados a la organización" + }, + "deleteSelected": { + "message": "Eliminar selección" + }, + "moveSelected": { + "message": "Mover selección" + }, + "selectAll": { + "message": "Seleccionar todo" + }, + "unselectAll": { + "message": "Deseleccionar todo" + }, + "launch": { + "message": "Iniciar" + }, + "newAttachment": { + "message": "Añadir nuevo adjunto" + }, + "deletedAttachment": { + "message": "Adjunto eliminado" + }, + "deleteAttachmentConfirmation": { + "message": "¿Estás seguro de querer eliminar este adjunto?" + }, + "attachmentSaved": { + "message": "El adjunto se ha guardado." + }, + "file": { + "message": "Archivo" + }, + "selectFile": { + "message": "Selecciona un archivo." + }, + "maxFileSize": { + "message": "El tamaño máximo de archivo es de 500MB." + }, + "updateKey": { + "message": "No puedes usar esta característica hasta que actualices tu clave de cifrado." + }, + "addedItem": { + "message": "Elemento añadido" + }, + "editedItem": { + "message": "Elemento editado" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ se desplazó a $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Elementos seleccionados movidos a $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Eliminar elemento" + }, + "deleteFolder": { + "message": "Borrar carpeta" + }, + "deleteAttachment": { + "message": "Eliminar archivo adjunto" + }, + "deleteItemConfirmation": { + "message": "¿Estás seguro de que quieres eliminar este elemento?" + }, + "deletedItem": { + "message": "Elemento eliminado" + }, + "deletedItems": { + "message": "Elementos eliminados" + }, + "movedItems": { + "message": "Elementos movidos" + }, + "overwritePasswordConfirmation": { + "message": "¿Estás seguro de que quieres sobreescribir la contraseña actual?" + }, + "editedFolder": { + "message": "Carpeta editada" + }, + "addedFolder": { + "message": "Carpeta añadida" + }, + "deleteFolderConfirmation": { + "message": "¿Estás seguro de querer eliminar esta carpeta?" + }, + "deletedFolder": { + "message": "Carpeta eliminada" + }, + "loggedOut": { + "message": "Sesión terminada" + }, + "loginExpired": { + "message": "Tu sesión ha expirado." + }, + "logOutConfirmation": { + "message": "¿Estás seguro de querer cerrar la sesión?" + }, + "logOut": { + "message": "Cerrar sesión" + }, + "ok": { + "message": "Aceptar" + }, + "yes": { + "message": "Sí" + }, + "no": { + "message": "No" + }, + "loginOrCreateNewAccount": { + "message": "Identifícate o crea una nueva cuenta para acceder a tu caja fuerte." + }, + "createAccount": { + "message": "Crear cuenta" + }, + "logIn": { + "message": "Identificarse" + }, + "submit": { + "message": "Enviar" + }, + "emailAddressDesc": { + "message": "Utilizarás tu correo electrónico para acceder." + }, + "yourName": { + "message": "Tu nombre" + }, + "yourNameDesc": { + "message": "¿Cómo deberíamos llamarte?" + }, + "masterPass": { + "message": "Contraseña maestra" + }, + "masterPassDesc": { + "message": "La contraseña maestra es la clave que utilizas para acceder a tu caja fuerte. Es muy importante que no olvides tu contraseña maestra. No hay forma de recuperarla si la olvidas." + }, + "masterPassHintDesc": { + "message": "Una pista de tu contraseña maestra puede ayudarte a recordarla en caso de que la olvides." + }, + "reTypeMasterPass": { + "message": "Vuelve a escribir tu contraseña maestra" + }, + "masterPassHint": { + "message": "Pista de contraseña maestra (opcional)" + }, + "masterPassHintLabel": { + "message": "Pista de contraseña maestra" + }, + "settings": { + "message": "Configuración" + }, + "passwordHint": { + "message": "Pista de contraseña" + }, + "enterEmailToGetHint": { + "message": "Introduce el correo electrónico de tu cuenta para recibir la pista de tu contraseña maestra." + }, + "getMasterPasswordHint": { + "message": "Obtener pista de la contraseña maestra" + }, + "emailRequired": { + "message": "Correo electrónico requerido." + }, + "invalidEmail": { + "message": "Correo electrónico no válido." + }, + "masterPassRequired": { + "message": "Contraseña maestra requerida." + }, + "masterPassLength": { + "message": "La contraseña maestra debe tener al menos 8 caracteres." + }, + "masterPassDoesntMatch": { + "message": "La confirmación de contraseña maestra no coincide." + }, + "newAccountCreated": { + "message": "¡Tu nueva cuenta ha sido creada! Ahora puedes acceder." + }, + "masterPassSent": { + "message": "Te hemos enviado un correo electrónico con la pista de tu contraseña maestra." + }, + "unexpectedError": { + "message": "Ha ocurrido un error inesperado." + }, + "emailAddress": { + "message": "Correo electrónico" + }, + "yourVaultIsLocked": { + "message": "Tu caja fuerte está bloqueada. Verifica tu contraseña maestra para continuar." + }, + "unlock": { + "message": "Desbloquear" + }, + "loggedInAsEmailOn": { + "message": "Conectado como $EMAIL$ en $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Contraseña maestra no válida" + }, + "lockNow": { + "message": "Bloquear" + }, + "noItemsInList": { + "message": "No hay elementos que listar." + }, + "noCollectionsInList": { + "message": "No hay colecciones que listar." + }, + "noGroupsInList": { + "message": "No hay grupos que listar." + }, + "noUsersInList": { + "message": "No hay usuarios que listar." + }, + "noEventsInList": { + "message": "No hay eventos que listar." + }, + "newOrganization": { + "message": "Nueva organización" + }, + "noOrganizationsList": { + "message": "No perteneces a ninguna organización. Las organizaciones te permiten compartir elementos con otros usuarios de forma segura." + }, + "versionNumber": { + "message": "Versión $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Introduce el código de verificación de 6 dígitos de tu aplicación autenticadora." + }, + "enterVerificationCodeEmail": { + "message": "Introduce el código de verificación de 6 dígitos que fue enviado a $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Correo de verificación enviado a $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Recordarme" + }, + "sendVerificationCodeEmailAgain": { + "message": "Reenviar código de verificación por correo electrónico" + }, + "useAnotherTwoStepMethod": { + "message": "Utilizar otro método de autenticación en dos pasos" + }, + "insertYubiKey": { + "message": "Inserta tu YubiKey en el puerto USB de tu equipo y posteriormente pulsa su botón." + }, + "insertU2f": { + "message": "Inserta tu llave de seguridad en el puerto USB de tu equipo. Si tiene un botón, púlsalo." + }, + "loginUnavailable": { + "message": "Entrada no disponible" + }, + "noTwoStepProviders": { + "message": "Esta cuenta tiene autenticación en dos pasos habilitado, pero ninguno de lo métodos configurados es soportado por este navegador web." + }, + "noTwoStepProviders2": { + "message": "Por favor, utiliza un navegador soportado (como Chrome) y/o añade métodos de autenticación adicionales que tengan mejor soporte en diferentes navegadores web (como una aplicación de autenticación)." + }, + "twoStepOptions": { + "message": "Opciones de la autenticación en dos pasos" + }, + "recoveryCodeDesc": { + "message": "¿Has perdido el acceso a todos tus métodos de autenticación en dos pasos? Utiliza tu código de recuperación para deshabilitar todos los métodos de autenticación en dos pasos de tu cuenta." + }, + "recoveryCodeTitle": { + "message": "Código de recuperación" + }, + "authenticatorAppTitle": { + "message": "Aplicación de autenticación" + }, + "authenticatorAppDesc": { + "message": "Utiliza una aplicación de autenticación (como Authy o Google Authenticator) para generar código de verificación basados en tiempo.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "Llave de seguridad YubiKey OTP" + }, + "yubiKeyDesc": { + "message": "Usa un Yubikey para acceder a tu cuenta. Funciona con YubiKey 4, 4 Nano, 4C y dispositivos NEO." + }, + "duoDesc": { + "message": "Verificar con Duo Security usando la aplicación Duo Mobile, SMS, llamada telefónica o llave de seguridad U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verificar con Duo Security para tu organización usando la aplicación Duo Mobile, SMS, llamada telefónica o llave de seguridad U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Usa cualquier llave de seguridad FIDO U2F habilitada para acceder a tu cuenta." + }, + "u2fTitle": { + "message": "Llave de seguridad FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Utilice cualquier clave de seguridad WebAuthn habilitada para acceder a su cuenta." + }, + "webAuthnMigrated": { + "message": "(Migrado del FIDO)" + }, + "emailTitle": { + "message": "Correo electrónico" + }, + "emailDesc": { + "message": "Los códigos de verificación te serán enviados por correo electrónico." + }, + "continue": { + "message": "Continuar" + }, + "organization": { + "message": "Organización" + }, + "organizations": { + "message": "Organizaciones" + }, + "moveToOrgDesc": { + "message": "Elige una organización a la que deseas mover este objeto. Moviendo a una organización transfiere la propiedad del objeto a esa organización. Ya no serás el dueño directo de este objeto una vez que haya sido movido." + }, + "moveManyToOrgDesc": { + "message": "Elija una organización a la que desea mover estos elementos. Moviendo a una organización transfiere la propiedad de los elementos a esa organización. Ya no serás el dueño directo de estos objetos una vez que hayan sido movidos." + }, + "collectionsDesc": { + "message": "Elige las colecciones con la que este elemento va a ser compartido. Solo los miembros de la organización que puedan acceder a esas colecciones podrán ver el elemento." + }, + "deleteSelectedItemsDesc": { + "message": "Has seleccionado $COUNT$ elementos a eliminar. ¿Estás seguro de que quieres eliminar todos estos elementos?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Selecciona una carpeta a la que quieras mover los $COUNT$ elementos seleccionados.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Ha seleccionado $COUNT$ elemento(s). $MOVEABLE_COUNT$ elemento(s) pueden ser movidos a una organización, $NONMOVEABLE_COUNT$ no puede.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Código de verificación (TOTP)" + }, + "copyVerificationCode": { + "message": "Copiar código de verificación" + }, + "warning": { + "message": "Advertencia" + }, + "confirmVaultExport": { + "message": "Confirmar la exportación de la bóveda" + }, + "exportWarningDesc": { + "message": "Esta exportación contiene los datos de tu caja fuerte en un formato no cifrado. No deberías almacenar o enviar el archivo exportado por canales no seguros (como el correo electrónico). Elimínalo inmediatamente cuando termines de utilizarlo." + }, + "encExportKeyWarningDesc": { + "message": "Esta exportación encripta sus datos usando la clave de cifrado de su cuenta. Si alguna vez gira la clave de cifrado de su cuenta debe volver a exportar, ya que no podrá descifrar este archivo de exportación." + }, + "encExportAccountWarningDesc": { + "message": "Las claves de cifrado de cuenta son únicas para cada cuenta de usuario de Bitwarden, por lo que no puede importar una exportación cifrada a una cuenta diferente." + }, + "export": { + "message": "Exportar" + }, + "exportVault": { + "message": "Exportar caja fuerte" + }, + "fileFormat": { + "message": "Formato de archivo" + }, + "exportSuccess": { + "message": "El contenido de tu caja fuerte ha sido exportado." + }, + "passwordGenerator": { + "message": "Generador de contraseñas" + }, + "minComplexityScore": { + "message": "Puntuación de Complejidad Mínima" + }, + "minNumbers": { + "message": "Mínimo de caracteres numéricos" + }, + "minSpecial": { + "message": "Mínimo de caracteres especiales", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Evitar caracteres ambiguos" + }, + "regeneratePassword": { + "message": "Regenerar contraseña" + }, + "length": { + "message": "Longitud" + }, + "numWords": { + "message": "Número de palabras" + }, + "wordSeparator": { + "message": "Separador de palabras" + }, + "capitalize": { + "message": "Mayúsculas iniciales", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Incluir número" + }, + "passwordHistory": { + "message": "Historial de contraseñas" + }, + "noPasswordsInList": { + "message": "No hay contraseñas que listar." + }, + "clear": { + "message": "Limpiar", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Cuenta actualizada" + }, + "changeEmail": { + "message": "Cambiar correo electrónico" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceder cambiará la dirección de correo electrónico de su cuenta. No cambiará la dirección de correo electrónico utilizada para la autenticación de dos factores. Puede cambiar esta dirección de correo electrónico en la configuración de inicio de sesión en dos pasos." + }, + "newEmail": { + "message": "Nuevo correo electrónico" + }, + "code": { + "message": "Código" + }, + "changeEmailDesc": { + "message": "Te hemos enviado un código de verificación a $EMAIL$. Por favor, comprueba tu correo electrónico e introduce el código abajo para finalizar el cambio de cuenta de correo electrónico.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceder cerrará tu sesión actual, requiriendo que vuelvas a acceder. Las sesiones activas en otros dispositivos pueden seguir activas hasta dentro de una hora." + }, + "emailChanged": { + "message": "Correo electrónico cambiado" + }, + "logBackIn": { + "message": "Por favor, vuelve a acceder." + }, + "logBackInOthersToo": { + "message": "Por favor, vuelve a acceder. Si estás utilizando otras aplicaciones de Bitwarden, cierra sesión y vuelva a acceder en ellas también." + }, + "changeMasterPassword": { + "message": "Cambiar contraseña maestra" + }, + "masterPasswordChanged": { + "message": "Contraseña maestra cambiada" + }, + "currentMasterPass": { + "message": "Contraseña maestra actual" + }, + "newMasterPass": { + "message": "Nueva contraseña maestra" + }, + "confirmNewMasterPass": { + "message": "Confirma la nueva contraseña maestra" + }, + "encKeySettings": { + "message": "Configuración de clave de cifrado" + }, + "kdfAlgorithm": { + "message": "Algoritmo KDF" + }, + "kdfIterations": { + "message": "Iteraciones de KDF" + }, + "kdfIterationsDesc": { + "message": "Mientras más iteraciones KDF, mejor la protección a su contraseña maestra de ser descubierta por un ataque de fuerza bruta. Recomendamos un valor de $VALUE$ o más.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Establecer las iteraciones KDF con un valor muy alto, podría resultar en un rendimiento pobre al ingresar, y/o desbloquear Bitwarden en dispositivos con CPUs lentos. Recomendamos que aumente el valor en incrementos de $INCREMENT$ y luego pruebe en todos sus dispositivos.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Modificar KDF" + }, + "encKeySettingsChanged": { + "message": "Se cambió la configuración de clave de cifrado" + }, + "dangerZone": { + "message": "Zona peligrosa" + }, + "dangerZoneDesc": { + "message": "¡Cuidado, estas acciones no son reversibles!" + }, + "deauthorizeSessions": { + "message": "Desautorizar sesiones" + }, + "deauthorizeSessionsDesc": { + "message": "¿Te preocupa que tu cuenta esté identificada en otro dispositivo? Utiliza la opción de abajo para desautorizar otros equipos o dispositivos que hayas usado anteriormente. Este paso es recomendable si anteriormente has utilizando un equipo pública o has guardado tu contraseña por error en un dispositivo que no es tuyo. Esto también eliminará cualquier autenticación en dos pasos anteriormente recordada." + }, + "deauthorizeSessionsWarning": { + "message": "Proceder también cerrará tu sesión actual, requiriendo que vuelvas a identificarte. También se te pedirá nuevamente tu autenticación en dos pasos en caso de que la tengas habilitada. Las sesiones activas en otros dispositivos pueden mantenerse activas hasta una hora más." + }, + "sessionsDeauthorized": { + "message": "Desautorizadas todas las sesiones" + }, + "purgeVault": { + "message": "Caja fuerte purgada" + }, + "purgedOrganizationVault": { + "message": "Caja fuerte de organización purgada." + }, + "vaultAccessedByProvider": { + "message": "Caja fuerte a la que accede el proveedor." + }, + "purgeVaultDesc": { + "message": "Proceder eliminará todos los elementos y carpetas de tu caja fuerte. Los elementos que pertenezcan a una organización con la que compartes contenido, no serán eliminados." + }, + "purgeOrgVaultDesc": { + "message": "Proceder para eliminar todos los elementos de la caja fuerte de la organización." + }, + "purgeVaultWarning": { + "message": "Purgar tu caja fuerte es permanente. No se puede deshacer." + }, + "vaultPurged": { + "message": "Tu caja fuerte ha sido purgada." + }, + "deleteAccount": { + "message": "Eliminar cuenta" + }, + "deleteAccountDesc": { + "message": "Proceder eliminará tu cuenta y todo el contenido asociado a ella." + }, + "deleteAccountWarning": { + "message": "Eliminar tu cuenta es permanente. No se puede deshacer." + }, + "accountDeleted": { + "message": "Cuenta eliminada" + }, + "accountDeletedDesc": { + "message": "Tu cuenta ha sido cerrada y toda la información asociada ha sido eliminada." + }, + "myAccount": { + "message": "Mi cuenta" + }, + "tools": { + "message": "Herramientas" + }, + "importData": { + "message": "Importar datos" + }, + "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." + }, + "importSuccess": { + "message": "La información ha sido importada correctamente en tu caja fuerte." + }, + "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": "El formato de la información no es correcto. Por favor, comprueba el fichero y prueba 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 exporta los datos." + }, + "selectFormat": { + "message": "Selecciona el formato del fichero a importar" + }, + "selectImportFile": { + "message": "Seleccionar el fichero a importar" + }, + "orCopyPasteFileContents": { + "message": "o copia/pega el contenido del fichero a importar" + }, + "instructionsFor": { + "message": "Instrucciones para $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Opciones" + }, + "optionsDesc": { + "message": "Personaliza tu caja fuerte." + }, + "optionsUpdated": { + "message": "Opciones actualizadas" + }, + "language": { + "message": "Idioma" + }, + "languageDesc": { + "message": "Cambiar el idioma utilizado en la caja fuerte web." + }, + "disableIcons": { + "message": "Deshabilitar iconos de sitios web" + }, + "disableIconsDesc": { + "message": "Los iconos de sitios web añaden una imagen reconocible al lado de cada entrada de tu caja fuerte." + }, + "enableGravatars": { + "message": "Habilitar Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Usa imágenes de avatares cargadas desde gravatar.com." + }, + "enableFullWidth": { + "message": "Habilitar diseño de ancho completo", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Permite que la caja fuerte web se amplíe al ancho completo de la ventana del navegador." + }, + "default": { + "message": "Por defecto" + }, + "domainRules": { + "message": "Reglas de dominios" + }, + "domainRulesDesc": { + "message": "Si tienes los mismos datos de acceso en diferentes dominios de una página web, puedes marcar esa web como \"equivalente\". Los dominios \"globales\" son equivalencias que Bitwarden ha creado por ti." + }, + "globalEqDomains": { + "message": "Dominios equivalentes globales" + }, + "customEqDomains": { + "message": "Dominios equivalentes personalizados" + }, + "exclude": { + "message": "Excluir" + }, + "include": { + "message": "Incluir" + }, + "customize": { + "message": "Personalizar" + }, + "newCustomDomain": { + "message": "Nuevo dominio personalizado" + }, + "newCustomDomainDesc": { + "message": "Introduce una lista de dominios separados por comas. Solo se permiten dominios \"base\". No introduzcas subdominios. Por ejemplo, introduce \"google.com\" en vez de \"www.google.com\". También puedes introducir \"androidapp://package.name\" para asociar una aplicación de android con otros dominios web." + }, + "customDomainX": { + "message": "Dominio personalizado $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Dominios actualizados" + }, + "twoStepLogin": { + "message": "Autenticación en dos pasos" + }, + "twoStepLoginDesc": { + "message": "Protege tu cuenta requiriendo un paso adicional a la hora de acceder." + }, + "twoStepLoginOrganizationDesc": { + "message": "Requiere autenticación en dos pasos para los usuarios de tu organización configurando los proveedores a nivel de organización." + }, + "twoStepLoginRecoveryWarning": { + "message": "Habilitar la autenticación en dos pasos puede impedirte acceder permanentemente a tu cuenta de Bitwarden. Un código de recuperación te permite acceder a la cuenta en caso de que no puedas usar más tu proveedor de autenticación en dos pasos (ej. si pierdes tu dispositivo). El soporte de Bitwarden no será capaz de asistirte si pierdes acceso a tu cuenta. Te recomendamos que escribas o imprimas este código y lo guardes en un lugar seguro." + }, + "viewRecoveryCode": { + "message": "Ver código de recuperación" + }, + "providers": { + "message": "Proveedores", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Activar" + }, + "enabled": { + "message": "Activado" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Suscripción Premium" + }, + "premiumRequired": { + "message": "Premium requerido" + }, + "premiumRequiredDesc": { + "message": "Se quiere membrasía Premium para poder utilizar esta característica." + }, + "youHavePremiumAccess": { + "message": "Tienes acceso premium" + }, + "alreadyPremiumFromOrg": { + "message": "Ya tienes acceso a las características premium, debido a que eres miembro de una organización." + }, + "manage": { + "message": "Gestionar" + }, + "disable": { + "message": "Desactivar" + }, + "twoStepLoginProviderEnabled": { + "message": "Este proveedor de autenticación en dos pasos está habilitado para tu cuenta." + }, + "twoStepLoginAuthDesc": { + "message": "Introduce tu contraseña maestra para modificar las opciones de autenticación en dos pasos." + }, + "twoStepAuthenticatorDesc": { + "message": "Sigue estos pasos para configurar la autenticación en dos pasos con una aplicación autenticadora:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Descarga una aplicación autenticadora en dos pasos" + }, + "twoStepAuthenticatorNeedApp": { + "message": "¿Necesitas una aplicación de autenticación en dos pasos? Descarga una de las siguientes" + }, + "iosDevices": { + "message": "Dispositivos iOS" + }, + "androidDevices": { + "message": "Dispositivos Android" + }, + "windowsDevices": { + "message": "Dispositivos Windows" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Estas aplicaciones son recomendadas, sin embargo, otras aplicaciones autenticadoras también funcionarán." + }, + "twoStepAuthenticatorScanCode": { + "message": "Escanea este código QR con tu aplicación de autenticación" + }, + "key": { + "message": "Clave" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Introduzca el código de verificación de 6 dígitos generado en la aplicación de autentificación" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "En caso de que necesite agregarlo a otro dispositivo, a continuación se indica el código QR (o clave) requerido por su aplicación autenticadora." + }, + "twoStepDisableDesc": { + "message": "¿Estás seguro de que desea deshabilitar este proveedor de autenticación en dos pasos?" + }, + "twoStepDisabled": { + "message": "Proveedor de autenticación ee dos pasos deshabilitado." + }, + "twoFactorYubikeyAdd": { + "message": "Añade un nuevo YubiKey a tu cuenta" + }, + "twoFactorYubikeyPlugIn": { + "message": "Conecta la YubiKey (NEO o serie 4) al puerto USB de tu ordenador." + }, + "twoFactorYubikeySelectKey": { + "message": "Elije el primer campo de entrada vacío de YubiKey de abajo." + }, + "twoFactorYubikeyTouchButton": { + "message": "Toca el botón del YubiKey." + }, + "twoFactorYubikeySaveForm": { + "message": "Guarda el formulario." + }, + "twoFactorYubikeyWarning": { + "message": "Debido a las limitaciones de la plataforma, YubiKeys no pueden ser utilizadas en todas las aplicaciones Bitwarden. Debes habilitar otro proveedor de autenticación en pasos para que puedas tener acceso a tu cuenta cuando no se puedan utilizar YubiKeys. Plataformas soportadas:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Caja fuerte Web, aplicación de escritorio, CLI y todas las extensiones de navegador en un dispositivo con un puerto USB que pueden aceptar tu YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Aplicaciones móviles en un dispositivo con capacidades NFC o un puerto USB que puede aceptar su YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "Llave U2F $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "Soporte NFC" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Una de mis llaves soporta NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Si uno de tus YubiKeys es compatible con NFC (como un YubiKey NEO), se te requerirá en dispositivos móviles cuando se detecte la disponibilidad de NFC." + }, + "yubikeysUpdated": { + "message": "YubiKeys actualizado" + }, + "disableAllKeys": { + "message": "Deshabilitar todas las llaves" + }, + "twoFactorDuoDesc": { + "message": "Introduce la información de la aplicación Bitwarden de tu panel de administración Duo." + }, + "twoFactorDuoIntegrationKey": { + "message": "Clave de integración" + }, + "twoFactorDuoSecretKey": { + "message": "Clave secreta" + }, + "twoFactorDuoApiHostname": { + "message": "Nombre de host de API" + }, + "twoFactorEmailDesc": { + "message": "Sigue estos pasos para configurar la autenticación en dos pasos con una aplicación autenticadora:" + }, + "twoFactorEmailEnterEmail": { + "message": "Introduce el correo electrónico donde deseas recibir los códigos de verificación" + }, + "twoFactorEmailEnterCode": { + "message": "Introduce el código de verificación de 6 dígitos enviado a tu correo electrónico" + }, + "sendEmail": { + "message": "Enviar correo electrónico" + }, + "twoFactorU2fAdd": { + "message": "Agregar una clave de seguridad U2F FIDO a tu cuenta" + }, + "removeU2fConfirmation": { + "message": "¿Estás seguro de que quieres eliminar esta clave de seguridad?" + }, + "twoFactorWebAuthnAdd": { + "message": "Añadir una clave de seguridad WebAuthn a tu cuenta" + }, + "readKey": { + "message": "Leer llave" + }, + "keyCompromised": { + "message": "La clave está comprometida." + }, + "twoFactorU2fGiveName": { + "message": "Asigna un nombre descriptivo a la llave de seguridad." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Conecta la llave de seguridad al puerto USB de tu ordenador y haz clic en el botón \"Leer llave\"." + }, + "twoFactorU2fTouchButton": { + "message": "Si la clave de seguridad tiene un botón, tócalo." + }, + "twoFactorU2fSaveForm": { + "message": "Guardar el formulario." + }, + "twoFactorU2fWarning": { + "message": "Debido a limitaciones de la plataforma, FIDO U2F no puede ser usado en todas las aplicaciones de Bitwarden. Deberías habilitar otro proveedor de inicio de sesión de dos pasos, para que puedas acceder a tu cuenta cuando FIDO U2F no pueda ser utilizado. Plataformas soportadas:" + }, + "twoFactorU2fSupportWeb": { + "message": "Caja fuerte web y extensiones de navegador en un escritorio/portátil con un navegador compatible con U2F (Chrome, Opera, Vivaldi, o Firefox con FIDO U2F activado)." + }, + "twoFactorU2fWaiting": { + "message": "Esperando a que toques el botón de tu llave de seguridad" + }, + "twoFactorU2fClickSave": { + "message": "Haz clic en el botón \"guardar\" para habilitar esta llave de seguridad para el inicio de sesión de dos pasos." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Hubo un problema al leer la llave de seguridad. Inténtalo de nuevo." + }, + "twoFactorWebAuthnWarning": { + "message": "Debido a las limitaciones de la plataforma, WebAuthn no puede ser utilizado en todas las aplicaciones de Bitwarden. Debería habilitar otro proveedor de inicio de sesión en dos-pasos para que pueda acceder a su cuenta cuando WebAuthn no pueda ser usado. Plataformas soportadas:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Bóveda web y extensiones de navegador en un escritorio/portátil con un navegador WebAuthn habilitado (Chrome, Opera, Vivaldi o Firefox con FIDO U2F habilitado)." + }, + "twoFactorRecoveryYourCode": { + "message": "Tu código de recuperación de inicio de sesión de dos pasos de Bitwarden" + }, + "twoFactorRecoveryNoCode": { + "message": "Aún no has habilitado ningún proveedor de inicio de sesión en dos pasos. Después de haber habilitado un proveedor de inicio de sesión en dos pasos, puedes volver aquí para ver el código de recuperación." + }, + "printCode": { + "message": "Imprimir código", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Informes" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Informes de sitios web no seguros" + }, + "unsecuredWebsitesReportDesc": { + "message": "Usar sitios web no seguros con el esquema http:// puede ser peligroso. Si el sitio web lo permite, se debe acceder siempre usando el esquema https:// para que la conexión esté cifrada." + }, + "unsecuredWebsitesFound": { + "message": "Sitios web no seguros encontrados" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Hemos encontrado $COUNT$ elemento(s) en su caja fuerte con URIs no seguras. Si el sitio web lo permite debe cambiar su esquema URI a https://.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No hay elementos en su caja fuerte con URIs no seguras." + }, + "inactive2faReport": { + "message": "Informe 2FA inactivo" + }, + "inactive2faReportDesc": { + "message": "La autenticación de dos factores (2FA) es una configuración de seguridad importante que ayuda a proteger sus cuentas. Si el sitio web lo ofrece, siempre debe habilitar la autenticación de dos factores." + }, + "inactive2faFound": { + "message": "Inicios de sesión sin 2FA encontrados" + }, + "inactive2faFoundDesc": { + "message": "Hemos encontrado $COUNT$ sitio(s) web en su caja fuerte que no pueden ser configuradas con autenticación de dos factores (según twofactorauth.org). Para proteger estas cuentas, debe habilitar autenticación de dos factores.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No se han encontrado sitios web en su caja fuerte sin una configuración de autenticación de dos factores." + }, + "instructions": { + "message": "Instrucciones" + }, + "exposedPasswordsReport": { + "message": "Infome de contraseñas expuestas" + }, + "exposedPasswordsReportDesc": { + "message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers." + }, + "exposedPasswordsFound": { + "message": "Contraseñas expuestas encontradas" + }, + "exposedPasswordsFoundDesc": { + "message": "Hemos encontrado $COUNT$ elementos en su caja fuerte que tienen contraseñas que fueron expuestas en violaciones de datos conocidas. Debe cambiarlos para utilizar una contraseña nueva.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No hay elementos en su caja fuerte que tengan contraseñas que hayan sido expuestas en violaciones de datos conocidas." + }, + "checkExposedPasswords": { + "message": "Compruebe las contraseñas expuestas" + }, + "exposedXTimes": { + "message": "Expuestas $COUNT$ vez/veces", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Informe de contraseñas débiles" + }, + "weakPasswordsReportDesc": { + "message": "Contraseñas débiles pueden ser fácilmente adivinadas por hackers y herramientas automatizadas que se utilizan para descifrar contraseñas- El generador de contraseñas de Bitwarden puede ayudarle a crear contraseñas fuertes." + }, + "weakPasswordsFound": { + "message": "Contraseñas débiles encontradas" + }, + "weakPasswordsFoundDesc": { + "message": "Hemos encontrado $COUNT$ elemento(s) en su caja fuerte con contraseñas que no son fuertes. Se deben actualizar para usar contraseñas más fuertes.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "No hay elementos en su caja fuerte que tengan contraseñas débiles." + }, + "reusedPasswordsReport": { + "message": "Informe de contraseñas reutilizadas" + }, + "reusedPasswordsReportDesc": { + "message": "Si un servicio que usa está comprometido, reutilizar la misma contraseña en otros lugares puede permitir que los hackers accedan fácilmente a más de sus cuentas en línea. Debe utilizar una contraseña única para cada cuenta o servicio." + }, + "reusedPasswordsFound": { + "message": "Contraseñas reutilizadas encontradas" + }, + "reusedPasswordsFoundDesc": { + "message": "Hemos encontrado $COUNT$ contraseña(s) que están siendo reutilizadas en su caja fuerte. Debe cambiarlas a un valor único.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "No hay inicios de sesión en su caja fuerte que tengan contraseñas que esten siendo reutilizadas." + }, + "reusedXTimes": { + "message": "Reutilizada $COUNT$ vez/veces", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Informe de violación de datos" + }, + "breachDesc": { + "message": "Una \"filtración\" es un incidente en el que los delincuentes informáticos han accedido ilegalmente a los datos de un sitio y los han hecho públicos. Revisa los tipos de datos que fueron comprometidos (direcciones de correo electrónico, contraseñas, tarjetas de crédito, etc.) y toma las medidas apropiadas, como cambiar las contraseñas." + }, + "breachCheckUsernameEmail": { + "message": "Verifica cualquier nombre de usuario o dirección de correo electrónico que utilices." + }, + "checkBreaches": { + "message": "Comprobar filtraciones" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ no se encontró en ninguna filtración de datos conocida.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Buenas Noticias", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ fue encontrado en $COUNT$ filtración/es de datos en línea.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Cuentas comprometidas encontradas" + }, + "compromisedData": { + "message": "Datos comprometidos" + }, + "website": { + "message": "Página web" + }, + "affectedUsers": { + "message": "Usuarios afectados" + }, + "breachOccurred": { + "message": "Se ha producido una filtración" + }, + "breachReported": { + "message": "Filtración reportada" + }, + "reportError": { + "message": "Se ha producido un error al intentar cargar el informe. Vuelve a intentarlo" + }, + "billing": { + "message": "Facturación" + }, + "accountCredit": { + "message": "Crédito de la cuenta", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Saldo de la Cuenta", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Agregar crédito", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Importe", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "El crédito añadido aparecerá en tu cuenta después de que el pago haya sido procesado por completo. Algunos métodos de pago se retrasan y pueden tomar más tiempo para procesar que otros." + }, + "makeSureEnoughCredit": { + "message": "Por favor, asegúrese de que su cuenta tiene suficiente crédito disponible para esta compra. Si su cuenta no tiene suficiente crédito disponible, su método de pago por defecto se utilizará para la diferencia. Puede agregar crédito a su cuenta desde la página de facturación." + }, + "creditAppliedDesc": { + "message": "El crédito de su cuenta puede utilizarse para realizar compras. Cualquier crédito disponible se aplicará automáticamente a las facturas generadas para esta cuenta." + }, + "goPremium": { + "message": "Hazte Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Has actualizado a premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Actualice su cuenta a una membresía premium y desbloquee estupendas características adicionales." + }, + "premiumSignUpStorage": { + "message": "1 GB de almacenamiento de archivos cifrados." + }, + "premiumSignUpTwoStep": { + "message": "Opciones adicionales de inicio de sesión de dos pasos como YubiKey, Fido U2F y Duo." + }, + "premiumSignUpEmergency": { + "message": "Acceso de emergencia" + }, + "premiumSignUpReports": { + "message": "Higiene de contraseña, salud de la cuenta e informes de violaciones de datos para mantener su caja fuerte segura." + }, + "premiumSignUpTotp": { + "message": "Generador de código de verificación TOTP (2FA) para iniciar sesión en su caja fuerte." + }, + "premiumSignUpSupport": { + "message": "Atención prioritaria al cliente." + }, + "premiumSignUpFuture": { + "message": "Acceso a nuevas características premium en el futuro. ¡Hay más en camino!" + }, + "premiumPrice": { + "message": "Todo por sólo $PRICE$ /año!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Complementos" + }, + "premiumAccess": { + "message": "Acceso Premium" + }, + "premiumAccessDesc": { + "message": "Puede Agregar acceso premium a todos los miembros de su organización por $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Almacenamiento adicional (GB)" + }, + "additionalStorageGbDesc": { + "message": "# de GB adicional" + }, + "additionalStorageIntervalDesc": { + "message": "Su plan viene con $SIZE$ de almacenamiento de archivos cifrados. Puede agregar almacenamiento adicional por $PRICE$ por GB/$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Resumen" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "año" + }, + "month": { + "message": "mes" + }, + "monthAbbr": { + "message": "mo.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Your payment method will be charged immediately and on a recurring basis each year. You may cancel at any time." + }, + "paymentCharged": { + "message": "Tu método de pago será cobrado inmediatamente y luego de forma recurrente cada $INTERVAL$. Puedes cancelar en cualquier momento.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Your plan comes with a free 7 day trial. Your card will not be charged until the trial has ended and on a recurring basis each $INTERVAL$. You may cancel at any time." + }, + "paymentInformation": { + "message": "Información de pago" + }, + "billingInformation": { + "message": "Información de Facturación" + }, + "creditCard": { + "message": "Tarjeta de crédito" + }, + "paypalClickSubmit": { + "message": "Pulse el botón PayPal para iniciar sesión en su cuenta PayPal y, a continuación, pulse el botón Enviar para continuar." + }, + "cancelSubscription": { + "message": "Cancelar suscripción" + }, + "subscriptionCanceled": { + "message": "La suscripción ha sido cancelada." + }, + "pendingCancellation": { + "message": "Cancelación pendiente" + }, + "subscriptionPendingCanceled": { + "message": "La suscripción ha sido marcada para cancelación al final del período de facturación actual." + }, + "reinstateSubscription": { + "message": "Restablecer la suscripción" + }, + "reinstateConfirmation": { + "message": "¿Está seguro de que desea eliminar la solicitud de cancelación pendiente y restablecer su suscripción?" + }, + "reinstated": { + "message": "La suscripción ha sido restablecida." + }, + "cancelConfirmation": { + "message": "¿Estás seguro de que quieres cancelar? Perderá el acceso a todas las funciones de esta suscripción al final de este ciclo de facturación." + }, + "canceledSubscription": { + "message": "La suscripción ha sido cancelada." + }, + "neverExpires": { + "message": "Nunca caduca" + }, + "status": { + "message": "Estado" + }, + "nextCharge": { + "message": "Cargo siguiente" + }, + "details": { + "message": "Detalles" + }, + "downloadLicense": { + "message": "Descargar licencia" + }, + "updateLicense": { + "message": "Actualizar Licencia" + }, + "updatedLicense": { + "message": "Licencia actualizada" + }, + "manageSubscription": { + "message": "Administrar suscripción" + }, + "storage": { + "message": "Almacenamiento" + }, + "addStorage": { + "message": "Añadir almacenamiento" + }, + "removeStorage": { + "message": "Eliminar almacenamiento" + }, + "subscriptionStorage": { + "message": "Su suscripción tiene un total de $MAX_STORAGE$ GB de almacenamiento de archivos cifrados. Actualmente está utilizando $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Método de Pago" + }, + "noPaymentMethod": { + "message": "No hay ningún método de pago en el archivo." + }, + "addPaymentMethod": { + "message": "Añadir método de pago" + }, + "changePaymentMethod": { + "message": "Cambiar Método de Pago" + }, + "invoices": { + "message": "Facturas" + }, + "noInvoices": { + "message": "Sin facturas." + }, + "paid": { + "message": "Pagado", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "No pagado", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transacciones", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Sin transacciones." + }, + "chargeNoun": { + "message": "Cargo", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Reembolso", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Cualquier cargo aparecerá en su estado de cuenta como $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB de almacenamiento que añadir" + }, + "gbStorageRemove": { + "message": "GB de almacenamiento a eliminar" + }, + "storageAddNote": { + "message": "Agregar almacenamiento dará como resultado ajustes en sus totales de facturación e inmediatamente cargará su método de pago en el archivo. El primer cargo será prorrateado por el resto del ciclo de facturación actual." + }, + "storageRemoveNote": { + "message": "Al eliminar el almacenamiento, se realizarán ajustes en los totales de facturación que se prorratearán como créditos para su próximo cargo de facturación." + }, + "adjustedStorage": { + "message": "$AMOUNT$ GB de almacenamiento ajustado.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Póngase en contacto con el servicio de atención al cliente" + }, + "updatedPaymentMethod": { + "message": "Método de pago actualizado." + }, + "purchasePremium": { + "message": "Comprar Premium" + }, + "licenseFile": { + "message": "Archivo de licencia" + }, + "licenseFileDesc": { + "message": "El nombre de tu archivo del licecncia será algo como $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Para actualizar tu cuenta a una membresía premium necesitas subir un archivo de licencia válido." + }, + "uploadLicenseFileOrg": { + "message": "Para crear una organización en un alojamiento propio necesitas subir un archivo de licencia válido." + }, + "accountEmailMustBeVerified": { + "message": "El correo electrónico de tu cuenta debe ser verificado." + }, + "newOrganizationDesc": { + "message": "Las organizaciones te permiten compartir partes de tu caja fuerte con otras personas así como gestionar que usuarios están relacionado con una entidad concreta como familia, un pequeño equipo o una gran empresa." + }, + "generalInformation": { + "message": "Información general" + }, + "organizationName": { + "message": "Nombre de la organización" + }, + "accountOwnedBusiness": { + "message": "Esta cuenta es propiedad de una empresa." + }, + "billingEmail": { + "message": "Correo electrónico de facturación" + }, + "businessName": { + "message": "Nombre de la empresa" + }, + "chooseYourPlan": { + "message": "Elige tu plan" + }, + "users": { + "message": "Usuarios" + }, + "userSeats": { + "message": "Puestos" + }, + "additionalUserSeats": { + "message": "Puestos adicionales" + }, + "userSeatsDesc": { + "message": "# de puestos" + }, + "userSeatsAdditionalDesc": { + "message": "Tu plan viene con $BASE_SEATS$ puestos. Puedes añadir puestos adicionales por $SEAT_PRICE$ por usuario/mes.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "¿Cuantos puestos necesitas? Puedes añadir más puestos más adelante si es necesario." + }, + "planNameFree": { + "message": "Gratis", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Para usuarios de prueba o personales, permite compartir con $COUNT$ usuario más.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Familias" + }, + "planDescFamilies": { + "message": "Para uso personal, compartir con la familia o con amigos." + }, + "planNameTeams": { + "message": "Equipos" + }, + "planDescTeams": { + "message": "Para empresas u otros equipos organizados." + }, + "planNameEnterprise": { + "message": "Empresas" + }, + "planDescEnterprise": { + "message": "Para empresas u otras organizaciones grandes." + }, + "freeForever": { + "message": "Gratis para siempre" + }, + "includesXUsers": { + "message": "incluye $COUNT$ usuarios", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Usuarios adicionales" + }, + "costPerUser": { + "message": "$COST$ por usuario", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limitado a $COUNT$ usuarios (incluyéndote a ti)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limitado a $COUNT$ colecciones", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Añade y comparte hasta con $COUNT$ usuarios", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Añade y comparte con usuarios ilimitados" + }, + "createUnlimitedCollections": { + "message": "Crea colecciones ilimitadas" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ de almacenamiento de archivos cifrado", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Alojamiento propio (opcional)" + }, + "usersGetPremium": { + "message": "Los usuarios obtienen acceso a las características de una membresía premium" + }, + "controlAccessWithGroups": { + "message": "Control el acceso de usuarios con grupos" + }, + "syncUsersFromDirectory": { + "message": "Sincroniza tus usuarios y grupos desde un directorio" + }, + "trackAuditLogs": { + "message": "Rastrea acciones de usuarios con logs de auditoría" + }, + "enforce2faDuo": { + "message": "Forzar uso de 2FA con Duo" + }, + "priorityCustomerSupport": { + "message": "Soporte prioritario" + }, + "xDayFreeTrial": { + "message": "$COUNT$ días de prueba, cancela en cualquier momento", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Mensual" + }, + "annually": { + "message": "Anual" + }, + "basePrice": { + "message": "Precio base" + }, + "organizationCreated": { + "message": "Organización creada" + }, + "organizationReadyToGo": { + "message": "¡Tu nueva organización está lista para comenzar!" + }, + "organizationUpgraded": { + "message": "Tu organización ha sido actualizada." + }, + "leave": { + "message": "Salir" + }, + "leaveOrganizationConfirmation": { + "message": "¿Estás seguro de que quieres dejar esta organización?" + }, + "leftOrganization": { + "message": "Usted ha dejado la organización." + }, + "defaultCollection": { + "message": "Colección por defecto" + }, + "getHelp": { + "message": "Consigue ayuda" + }, + "getApps": { + "message": "Consigue las apps" + }, + "loggedInAs": { + "message": "Conectado como" + }, + "eventLogs": { + "message": "Registro de Eventos" + }, + "people": { + "message": "Personas" + }, + "policies": { + "message": "Políticas" + }, + "singleSignOn": { + "message": "Inicio de sesión único" + }, + "editPolicy": { + "message": "Editar política" + }, + "groups": { + "message": "Grupos" + }, + "newGroup": { + "message": "Nuevo Grupo" + }, + "addGroup": { + "message": "Añadir grupo" + }, + "editGroup": { + "message": "Editar grupo" + }, + "deleteGroupConfirmation": { + "message": "¿Estás seguro de que deseas eliminar este grupo?" + }, + "removeUserConfirmation": { + "message": "¿Estás seguro de que deseas eliminar a este usuario?" + }, + "removeUserConfirmationKeyConnector": { + "message": "¡Advertencia! Este usuario requiere Conector de Clave para administrar su cifrado. Eliminar a este usuario de tu organización deshabilitará permanentemente su cuenta. Esta acción no se puede deshacer. ¿Quieres continuar?" + }, + "externalId": { + "message": "Id externo" + }, + "externalIdDesc": { + "message": "El Id externo puede ser usado como una referencia o para enlazar este recurso a un sistema externo, por ejemplo, un directorio de usuario." + }, + "accessControl": { + "message": "Control de Acceso" + }, + "groupAccessAllItems": { + "message": "Este grupo puede acceder y modificar todos los elementos." + }, + "groupAccessSelectedCollections": { + "message": "Este grupo sólo puede acceder a las colecciones seleccionadas." + }, + "readOnly": { + "message": "Sólo lectura" + }, + "newCollection": { + "message": "Nueva colección" + }, + "addCollection": { + "message": "Añadir colección" + }, + "editCollection": { + "message": "Editar colección" + }, + "deleteCollectionConfirmation": { + "message": "¿Seguro que quieres eliminar esta colección?" + }, + "editUser": { + "message": "Editar usuario" + }, + "inviteUser": { + "message": "Invitar usuario" + }, + "inviteUserDesc": { + "message": "Invite a un nuevo usuario a su organización introduciendo la dirección de correo electrónico de su cuenta Bitwarden a continuación. Si aún no tienen una cuenta Bitwarden, se les pedirá que creen una nueva cuenta." + }, + "inviteMultipleEmailDesc": { + "message": "Puede invitar hasta $COUNT$ usuarios a la vez separando por comas las direcciones de correo electrónico.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Este usuario está usando autenticación de dos pasos para proteger su cuenta." + }, + "userAccessAllItems": { + "message": "Este usuario puede acceder y modificar todos los elementos." + }, + "userAccessSelectedCollections": { + "message": "Este usuario sólo puede acceder a las colecciones seleccionadas." + }, + "search": { + "message": "Buscar" + }, + "invited": { + "message": "Invitado" + }, + "accepted": { + "message": "Aceptado" + }, + "confirmed": { + "message": "Confirmado" + }, + "clientOwnerEmail": { + "message": "Correo electrónico del propietario del cliente" + }, + "owner": { + "message": "Propietario" + }, + "ownerDesc": { + "message": "El usuario de acceso más alto que puede administrar todos los aspectos de su organización." + }, + "clientOwnerDesc": { + "message": "Este usuario debe ser independiente del Proveedor. Si el Proveedor está desasociado con la organización, este usuario mantendrá la propiedad de la organización." + }, + "admin": { + "message": "Administrador" + }, + "adminDesc": { + "message": "Los administradores pueden acceder y gestionar todos los elementos, colecciones y usuarios de la organización." + }, + "user": { + "message": "Usuario" + }, + "userDesc": { + "message": "Un usuario regular con acceso a las colecciones de su organización." + }, + "manager": { + "message": "Gestor" + }, + "managerDesc": { + "message": "Los gestores pueden acceder y gestionar colecciones asignadas en tu organización." + }, + "all": { + "message": "Todo" + }, + "refresh": { + "message": "Actualizar" + }, + "timestamp": { + "message": "Marca de tiempo" + }, + "event": { + "message": "Evento" + }, + "unknown": { + "message": "Desconocido" + }, + "loadMore": { + "message": "Cargar más" + }, + "mobile": { + "message": "Móvil", + "description": "Mobile app" + }, + "extension": { + "message": "Extensión", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Escritorio", + "description": "Desktop app" + }, + "webVault": { + "message": "Caja fuerte Web" + }, + "loggedIn": { + "message": "Identificado." + }, + "changedPassword": { + "message": "Contraseña de la cuenta cambiada." + }, + "enabledUpdated2fa": { + "message": "Autenticación en dos pasos habilitado/actualizado." + }, + "disabled2fa": { + "message": "Autenticación en dos pasos deshabilitada." + }, + "recovered2fa": { + "message": "Cuenta recuperada de autenticación en dos pasos." + }, + "failedLogin": { + "message": "Intento de acceso fallido con contraseña incorrecta." + }, + "failedLogin2fa": { + "message": "Intento de acceso fallido con autenticación en dos pasos incorrecta." + }, + "exportedVault": { + "message": "Caja fuerte exportada." + }, + "exportedOrganizationVault": { + "message": "Caja fuerte de organización exportada." + }, + "editedOrgSettings": { + "message": "Ajustes de la organización editados." + }, + "createdItemId": { + "message": "Elemento $ID$ creado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Elemento $ID$ editado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Elemento $ID$ eliminado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Se ha movido el elemento $ID$ a una organización.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Elemento $ID$ visto.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Contraseña para el elemento $ID$ vista.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Campo oculto para el elemento $ID$ visto.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Código de seguridad para el elemento $ID$ visto.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Contraseña para el elemento $ID$ copiada.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Campo oculto para el elemento $ID$ copiado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Código de seguridad para el elemento $ID$ copiado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Elemento $ID$ autorrellenado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Colección $ID$ creada.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Colección $ID$ editada.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Colección $ID$ eliminada.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Política $ID$ editada.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Grupo $ID$ creado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Grupo $ID$ editado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Grupo $ID$ eliminado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Usuario $ID$ eliminado.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Adjunto del elemento $ID$ creado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Adjunto del elemento $ID$ eliminado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Colecciones del elemento $ID$ editadas.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Usuario $ID$ invitado.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Usuario $ID$ confirmado.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Usuario $ID$ editado.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Grupos del usuario $ID$ editados.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "SSO desvinculado para el usuario $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Organización $ID$ creada.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Organización $ID$ añadida.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Organización $ID$ eliminada.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Se ha accedido a la caja fuerte de la organización $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Dispositivo" + }, + "view": { + "message": "Ver" + }, + "invalidDateRange": { + "message": "Rango de datos no válido." + }, + "errorOccurred": { + "message": "Ha ocurrido un error." + }, + "userAccess": { + "message": "Acceso del usuario" + }, + "userType": { + "message": "Tipo de usuario" + }, + "groupAccess": { + "message": "Acceso del grupo" + }, + "groupAccessUserDesc": { + "message": "Edita los grupos a los que pertenece este usuario." + }, + "invitedUsers": { + "message": "Usuario(s) invitados." + }, + "resendInvitation": { + "message": "Reenviar invitación" + }, + "resendEmail": { + "message": "Reenviar correo" + }, + "hasBeenReinvited": { + "message": "El usuario $USER$ ha sido reinvitado.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirmar" + }, + "confirmUser": { + "message": "Confirmar usuario" + }, + "hasBeenConfirmed": { + "message": "El usuario $USER$ ha sido confirmado.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirmar usuarios" + }, + "usersNeedConfirmed": { + "message": "Tienes usuarios que han aceptado su invitación pero necesitan ser confirmados. Los usuarios no tendrán acceso a la organización hasta que estén confirmados." + }, + "startDate": { + "message": "Fecha de inicio" + }, + "endDate": { + "message": "Fecha de finalización" + }, + "verifyEmail": { + "message": "Verificar correo electrónico" + }, + "verifyEmailDesc": { + "message": "Verifica el correo electrónico de tu cuenta para desbloquear todas estas características." + }, + "verifyEmailFirst": { + "message": "El correo electrónico de tu cuenta debe ser verificado primero." + }, + "checkInboxForVerification": { + "message": "Comprueba el enlace de verificación en tu cuenta de correo." + }, + "emailVerified": { + "message": "Tu cuenta de correo ha sido verificada." + }, + "emailVerifiedFailed": { + "message": "No se ha podido verificar tu cuenta de correo electrónico. Prueba a enviar un nuevo correo de verificación." + }, + "emailVerificationRequired": { + "message": "Verificación de correo electrónico requerida" + }, + "emailVerificationRequiredDesc": { + "message": "Debes verificar tu correo electrónico para usar esta característica." + }, + "updateBrowser": { + "message": "Actualizar navegador" + }, + "updateBrowserDesc": { + "message": "Está utilizando un navegador web no compatible. Es posible que la caja fuerte web no funcione correctamente." + }, + "joinOrganization": { + "message": "Únete a la organización" + }, + "joinOrganizationDesc": { + "message": "Usted ha sido invitado a unirse a la organización mencionada anteriormente. Para aceptar la invitación, debe iniciar sesión o crear una nueva cuenta de Bitwarden." + }, + "inviteAccepted": { + "message": "Invitación Aceptada" + }, + "inviteAcceptedDesc": { + "message": "Puede acceder a esta organización una vez que un administrador confirme su membresía. Te enviaremos un correo electrónico cuando eso suceda." + }, + "inviteAcceptFailed": { + "message": "No se puede aceptar la invitación. Pida a un administrador de la organización que envíe una nueva invitación." + }, + "inviteAcceptFailedShort": { + "message": "No se puede aceptar la invitación. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Recordar correo electrónico" + }, + "recoverAccountTwoStepDesc": { + "message": "Si no puedes acceder a tu cuenta utilizando tus métodos normales de autenticación en dos pasos, puedes utilizar el código de recuperación de autenticación en dos pasos para deshabilitar todos los proveedores de tu cuenta." + }, + "recoverAccountTwoStep": { + "message": "Recuperar autenticación en dos pasos" + }, + "twoStepRecoverDisabled": { + "message": "La autenticación en dos pasos ha sido deshabilitada para tu cuenta." + }, + "learnMore": { + "message": "Más información" + }, + "deleteRecoverDesc": { + "message": "Introduce tu correo electrónico debajo para recuperar y eliminar tu cuenta." + }, + "deleteRecoverEmailSent": { + "message": "Si tu cuenta existe, enviaremos un correo electrónico con más instrucciones." + }, + "deleteRecoverConfirmDesc": { + "message": "Has solicitado eliminar tu cuenta de Bitwarden. Pulsa en el botón inferior para confirmar." + }, + "myOrganization": { + "message": "Mi organización" + }, + "deleteOrganization": { + "message": "Eliminar organización" + }, + "deletingOrganizationContentWarning": { + "message": "Introduzca la contraseña maestra para confirmar la eliminación de $ORGANIZATION$ y todos los datos asociados. Los datos de la bóveda de $ORGANIZATION$ incluyen:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Las cuentas de usuario permanecerán activas después de la eliminación, pero ya no estarán asociadas a esta organización." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "La eliminación de $ORGANIZATION$ es permanente y irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organización eliminada" + }, + "organizationDeletedDesc": { + "message": "La organización y todo el contenido asociado ha sido eliminado." + }, + "organizationUpdated": { + "message": "Organización actualizada" + }, + "taxInformation": { + "message": "Información sobre impuestos" + }, + "taxInformationDesc": { + "message": "Para los clientes dentro de los Estados Unidos, el código postal es necesario para satisfacer los requisitos de impuestos sobre las ventas. para otros países usted puede proporcionar opcionalmente un número de identificación fiscal (IVA/GST) y/o dirección para que aparezca en sus facturas." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Cambiar plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Actualiza tu cuenta a otro plan proporcionando la información de abajo. Por favor, asegúrate de que tienes un método de pago activo añadido a la cuenta.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Factura $NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Ver Factura" + }, + "downloadInvoice": { + "message": "Descargar Factura" + }, + "verifyBankAccount": { + "message": "Verificar cuenta bancaria" + }, + "verifyBankAccountDesc": { + "message": "Hemos hecho dos pequeños cargos en tu cuenta bancaria (pueden tardar de 1 a 2 días laborables en aparecer). Introduce esas cantidades para verificar tu cuenta bancaria." + }, + "verifyBankAccountInitialDesc": { + "message": "El pago con cuenta bancaria solo está disponible para clientes en los Estados Unidos. Tendrá que verificar su cuenta bancaria. Realizaremos dos pequeños cargos en los siguientes 1-2 días laborables. Introduzca esas cantidades en la página de facturación de la organización para verificar la cuenta bancaria." + }, + "verifyBankAccountFailureWarning": { + "message": "Si falla la verificación de la cuenta bancaria, como resultado se saltará el pago y tu suscripción será deshabilitada." + }, + "verifiedBankAccount": { + "message": "La cuenta bancaria ha sido verificada." + }, + "bankAccount": { + "message": "Cuenta bancaria" + }, + "amountX": { + "message": "Cantidad $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Número de ruta bancaria", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Número de cuenta" + }, + "accountHolderName": { + "message": "Nombre del titular de la cuenta" + }, + "bankAccountType": { + "message": "Tipo de cuenta" + }, + "bankAccountTypeCompany": { + "message": "Compañia (Empresa)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Personal)" + }, + "enterInstallationId": { + "message": "Introduce tu ID de instalación" + }, + "limitSubscriptionDesc": { + "message": "Establezca un límite de asientos para su suscripción. Una vez alcanzado este límite, no podrá invitar a nuevos usuarios." + }, + "maxSeatLimit": { + "message": "Límite máximo de asientos (opcional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Coste potencial máximo del asiento" + }, + "addSeats": { + "message": "Añadir puestos", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Quitar puestos", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Los ajustes a su suscripción provocarán cambios prorrateados en su facturación total. Si los usuarios recién invitados exceden sus asientos de suscripción, recibirá inmediatamente un cargo prorrateado para los usuarios adicionales." + }, + "subscriptionUserSeats": { + "message": "Tu suscripción permite un total de $COUNT$ usuarios.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limitar suscripción (opcional)" + }, + "subscriptionSeats": { + "message": "Asientos de suscripción" + }, + "subscriptionUpdated": { + "message": "Suscripción actualizada" + }, + "additionalOptions": { + "message": "Opciones adicionales" + }, + "additionalOptionsDesc": { + "message": "Para ayuda adicional en la gestión de tu suscripción, por favor contacta con Atención al Cliente." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Los ajustes a su suscripción provocarán cambios prorrateados en su facturación total. Si los usuarios recién invitados exceden sus asientos de suscripción, recibirá inmediatamente un cargo prorrateado para los usuarios adicionales." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Los ajustes a su suscripción provocarán cambios prorrateados en su facturación total. Si los usuarios recién invitados exceden sus asientos de suscripción, recibirás inmediatamente un cargo prorrateado para los usuarios adicionales hasta que alcances tu límite de $MAX$ asientos.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "No puedes invitar a más de $COUNT$ usuarios sin actualizar tu plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "No puede invitar a más de $COUNT$ usuarios sin actualizar su plan. Póngase en contacto con el Servicio de Atención al Cliente para actualizarlo.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Su suscripción permite un total de $COUNT$ usuarios. Su plan es patrocinado y facturado a una organización externa.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Los ajustes de tu suscripción darán como resultado cambios prorrateados en tus facturación total. No puedes invitar a más de $COUNT$ usuarios sin aumentar tus asientos de suscripción.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Puesto a añadir" + }, + "seatsToRemove": { + "message": "Puestos a quitar" + }, + "seatsAddNote": { + "message": "Añadir puestos hará ajustes en el total de tu facturación y se realizará un cargo sobre tu método de pago inmediatamente. El primer cargo se prorrateará por el número de días restantes del ciclo de facturación actual." + }, + "seatsRemoveNote": { + "message": "Quitar puestos hará cambios en el total de tu facturación que será prorratada como creditos de cara al siguiente cargo." + }, + "adjustedSeats": { + "message": "Ajustados $AMOUNT$ puestos.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Clave actualizada" + }, + "updateKeyTitle": { + "message": "Actualizar clave" + }, + "updateEncryptionKey": { + "message": "Actualizar clave de cifrado" + }, + "updateEncryptionKeyShortDesc": { + "message": "Actualmente utilizas un esquema de cifrado desactualizado." + }, + "updateEncryptionKeyDesc": { + "message": "Hemos cambiado a unas claves de cifrado más grandes para ofrecer una mayor seguridad y acceso a nuevas características. Actualizar tu clave de cifrado actual es fácil y rápido. Solo necesitas escribir tu contraseña maestra debajo. Esta actualización en algún momento se volverá obligatoria." + }, + "updateEncryptionKeyWarning": { + "message": "Una vez actualices tu clave de cifrado, será necesario que cierres sesión y vuelvas a identificarte en todas las aplicaciones de Bitwarden que estés utilizando (como la aplicación móvil o la extensión de navegador). Si la reautenticación falla (la cual descargaría la nueva clave de cifrad) puede producirse corrupción de datos. Intentaremos cerrar tu sesión automáticamente, pero puede tardar un tiempo." + }, + "updateEncryptionKeyExportWarning": { + "message": "Cualquier exportación cifrada que hayas guardado también será inválida." + }, + "subscription": { + "message": "Suscripción" + }, + "loading": { + "message": "Cargando" + }, + "upgrade": { + "message": "Mejorar" + }, + "upgradeOrganization": { + "message": "Mejorar organización" + }, + "upgradeOrganizationDesc": { + "message": "Esta características no está disponible para organizaciones gratuitas. Cambiar a una organización de pago para desbloquear más características." + }, + "createOrganizationStep1": { + "message": "Crear organización: Paso 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Antes de crear tu organización, necesitas tener una cuenta gratuita de uso personal." + }, + "refunded": { + "message": "Reembolsado" + }, + "nothingSelected": { + "message": "No has seleccionado nada." + }, + "acceptPolicies": { + "message": "Al seleccionar esta casilla, acepta lo siguiente:" + }, + "acceptPoliciesError": { + "message": "Todavía no has aceptado los términos del servicio y la política de privacidad." + }, + "termsOfService": { + "message": "Términos y condiciones del servicio" + }, + "privacyPolicy": { + "message": "Política de privacidad" + }, + "filters": { + "message": "Filtros" + }, + "vaultTimeout": { + "message": "Tiempo de espera de la bóveda" + }, + "vaultTimeoutDesc": { + "message": "Elije cuando se agotará el tiempo de espera de tu caja fuerte y se ejecutará la acción seleccionada." + }, + "oneMinute": { + "message": "1 minuto" + }, + "fiveMinutes": { + "message": "5 minutos" + }, + "fifteenMinutes": { + "message": "15 minutos" + }, + "thirtyMinutes": { + "message": "30 minutos" + }, + "oneHour": { + "message": "1 hora" + }, + "fourHours": { + "message": "4 horas" + }, + "onRefresh": { + "message": "Al recargar la página" + }, + "dateUpdated": { + "message": "Actualizada", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Contraseña actualizada", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "La organización está desactivada." + }, + "licenseIsExpired": { + "message": "Licencia expirada." + }, + "updatedUsers": { + "message": "Usuarios actualizados" + }, + "selected": { + "message": "Seleccionado" + }, + "ownership": { + "message": "Propiedad" + }, + "whoOwnsThisItem": { + "message": "¿Quién posee este elemento?" + }, + "strong": { + "message": "Fuerte", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Bueno", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Débil", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Muy débil", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Contraseña maestra débil" + }, + "weakMasterPasswordDesc": { + "message": "La contraseña maestra que ha elegido es débil. Debe usar una contraseña maestra fuerte (o una frase de contraseña) para proteger adecuadamente su cuenta de Bitwarden. ¿Está seguro de que desea utilizar esta contraseña maestra?" + }, + "rotateAccountEncKey": { + "message": "También rotar la clave de encriptación de mi cuenta" + }, + "rotateEncKeyTitle": { + "message": "Rotar clave de encriptación" + }, + "rotateEncKeyConfirmation": { + "message": "¿Está seguro de que desea rotar la clave de encriptación de su cuenta?" + }, + "attachmentsNeedFix": { + "message": "Este elemento tiene archivos adjuntos antiguos que deben ser corregidos." + }, + "attachmentFixDesc": { + "message": "Este es un archivo adjunto antiguo que necesita ser corregido. Haga clic para obtener más información." + }, + "fix": { + "message": "Arreglar", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Hay archivos adjuntos antiguos en la caja fuerte que necesitan ser corregidos antes de poder rotar la clave de encriptación de su cuenta." + }, + "yourAccountsFingerprint": { + "message": "Frase de la huella digital de su cuenta", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Para asegurar la integridad de sus claves de encriptación, por favor verifique la frase de la huella digital del usuario antes de continuar.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "No pida verificar la frase de la huella dactilar de nuevo", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Gratis", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "Clave API" + }, + "apiKeyDesc": { + "message": "Su clave API puede ser usada para autenticar la API pública de Bitwarden." + }, + "apiKeyRotateDesc": { + "message": "Rotar la clave API invalidará la clave anterior. Puede rotar la clave API si cree que la clave actual ya no es segura de usar." + }, + "apiKeyWarning": { + "message": "Su clave API tiene acceso completo a la organización. Debe mantenerse en secreto." + }, + "userApiKeyDesc": { + "message": "Su clave API puede ser usada para autenticarse en el CLI de Bitwarden." + }, + "userApiKeyWarning": { + "message": "Su clave API es un mecanismo alternativo de autenticación. Debe mantenerse en secreto." + }, + "oauth2ClientCredentials": { + "message": "Credenciales de cliente OAuth 2.0", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Ver Clave API" + }, + "rotateApiKey": { + "message": "Rotar clave API" + }, + "selectOneCollection": { + "message": "Debes seleccionar al menos una colección." + }, + "couldNotChargeCardPayInvoice": { + "message": "No pudimos realizar el cobro a su tarjeta de crédito. Por favor, vea y pague la factura no pagada que se indica a continuación." + }, + "inAppPurchase": { + "message": "Compra desde la aplicación" + }, + "cannotPerformInAppPurchase": { + "message": "No puedes realizar esta acción mientras usas un método de pago de compra en la aplicación." + }, + "manageSubscriptionFromStore": { + "message": "Debes administrar tu suscripción desde la tienda donde se hizo tu compra en la aplicación." + }, + "minLength": { + "message": "Longitud mínima" + }, + "clone": { + "message": "Clonar" + }, + "masterPassPolicyDesc": { + "message": "Establecer requisitos mínimos para la fortaleza de la contraseña maestra." + }, + "twoStepLoginPolicyDesc": { + "message": "Requiere que los usuarios establezcan un inicio de sesión en dos pasos en sus cuentas personales." + }, + "twoStepLoginPolicyWarning": { + "message": "Los miembros de la organización que no tengan habilitado el inicio de sesión en dos pasos para su cuenta personal serán eliminados de la organización y recibirán un correo electrónico notificándoles del cambio." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Usted es miembro de una organización que requiere que el inicio de sesión en dos pasos esté habilitado en su cuenta de usuario. Si desactiva todos los proveedores de inicio de sesión en dos pasos, será automáticamente eliminado de estas organizaciones." + }, + "passwordGeneratorPolicyDesc": { + "message": "Establecer requisitos mínimos para la configuración del generador de contraseñas." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Una o más políticas de la organización están afectando su configuración del generador." + }, + "masterPasswordPolicyInEffect": { + "message": "Una o más políticas de la organización requieren que su contraseña maestra cumpla con los siguientes requisitos:" + }, + "policyInEffectMinComplexity": { + "message": "Puntuación de complejidad mínima $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Longitud mínima $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contiene uno o más caracteres en mayúsculas" + }, + "policyInEffectLowercase": { + "message": "Contiene uno o más caracteres en minúsculas" + }, + "policyInEffectNumbers": { + "message": "Contiene uno o más números" + }, + "policyInEffectSpecial": { + "message": "Contienen uno o más de los siguientes caracteres especiales $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Su nueva contraseña maestra no cumple con los requisitos de la política." + }, + "minimumNumberOfWords": { + "message": "Número mínimo de palabras" + }, + "defaultType": { + "message": "Tipo por defecto" + }, + "userPreference": { + "message": "Preferencia de usuario" + }, + "vaultTimeoutAction": { + "message": "Acción de tiempo de espera de la caja fuerte" + }, + "vaultTimeoutActionLockDesc": { + "message": "Una bóveda bloqueada requiere que introduzcas de nuevo tu contraseña maestra para acceder nuevamente." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Cerrar sesión en la bóveda requiere que vuelvas a autenticarte para acceder nuevamente a ella." + }, + "lock": { + "message": "Bloquear", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Papelera", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Buscar en la Papelera" + }, + "permanentlyDelete": { + "message": "Eliminar de forma permanente" + }, + "permanentlyDeleteSelected": { + "message": "Eliminar selecciones de forma permanente" + }, + "permanentlyDeleteItem": { + "message": "Eliminar elemento de forma permanente" + }, + "permanentlyDeleteItemConfirmation": { + "message": "¿Estás seguro de eliminar de forma permanente este elemento?" + }, + "permanentlyDeletedItem": { + "message": "Elemento eliminado de forma permanente" + }, + "permanentlyDeletedItems": { + "message": "Elementos eliminados de forma permanente" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Has seleccionado $COUNT$ elemento(s) a eliminar de forma permanente. ¿Estás seguro de que quieres eliminar de forma permanente todos estos elementos?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Elemento $ID$ eliminado de forma permanente.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restaurar" + }, + "restoreSelected": { + "message": "Restaurar seleccionados" + }, + "restoreItem": { + "message": "Restaurar elemento" + }, + "restoredItem": { + "message": "Elemento restaurado" + }, + "restoredItems": { + "message": "Elementos restaurados" + }, + "restoreItemConfirmation": { + "message": "¿Estás seguro de que quieres restaurar este elemento?" + }, + "restoreItems": { + "message": "Restaurar elementos" + }, + "restoreSelectedItemsDesc": { + "message": "Has seleccionado $COUNT$ elemento(s) para restaurar. ¿Estás seguro de que quieres restaurar todos estos elementos?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Elemento $ID$ restaurado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Cerrar sesión eliminará todo el acceso a su bóveda y requiere autenticación en línea después del período de espera. ¿Estás seguro de que quieres usar esta configuración?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Confirmación de periodo de espera" + }, + "hidePasswords": { + "message": "Ocultar contraseñas" + }, + "countryPostalCodeRequiredDesc": { + "message": "Requerimos esta información sólo para calcular el impuesto sobre las ventas y la información financiera." + }, + "includeVAT": { + "message": "Incluye información IVA/GST (opcional)" + }, + "taxIdNumber": { + "message": "ID impuesto IVA/GST" + }, + "taxInfoUpdated": { + "message": "Información fiscal actualizada." + }, + "setMasterPassword": { + "message": "Establecer contraseña maestra" + }, + "ssoCompleteRegistration": { + "message": "Para completar el inicio de sesión con SSO, por favor establezca una contraseña maestra para acceder y proteger su caja fuerte." + }, + "identifier": { + "message": "Identificador" + }, + "organizationIdentifier": { + "message": "Identificador de la organización" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Inicie sesión utilizando el portal de inicio de sesión único de su organización. Introduzca el identificador de su organización para comenzar." + }, + "enterpriseSingleSignOn": { + "message": "Inicio de sesión único empresarial" + }, + "ssoHandOff": { + "message": "Ya puedes cerrar esta pestaña y continuar en la extensión." + }, + "includeAllTeamsFeatures": { + "message": "Todas las características de Equipos y además:" + }, + "includeSsoAuthentication": { + "message": "Autenticación SSO vía SAML2.0 y OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Políticas empresariales" + }, + "ssoValidationFailed": { + "message": "Error de validación SSO" + }, + "ssoIdentifierRequired": { + "message": "Se requiere un identificador de organización." + }, + "unlinkSso": { + "message": "Desenlazar SSO" + }, + "unlinkSsoConfirmation": { + "message": "¿Está seguro que desea desvincular SSO para esta organización?" + }, + "linkSso": { + "message": "Enlazar SSO" + }, + "singleOrg": { + "message": "Organización única" + }, + "singleOrgDesc": { + "message": "Restringir a los usuarios de ser capaces de unirse a otras organizaciones." + }, + "singleOrgBlockCreateMessage": { + "message": "Su organización actual tiene una política que no le permite unirse a más de una organización. Póngase en contacto con los administradores de su organización o acceda desde una cuenta de Bitwarden diferente." + }, + "singleOrgPolicyWarning": { + "message": "Los miembros de la organización que no son dueños o administradores y que ya son miembros de otra organización serán eliminados de su organización." + }, + "requireSso": { + "message": "Autenticación de inicio de sesión único" + }, + "requireSsoPolicyDesc": { + "message": "Requiere que los usuarios inicien sesión con el método Enterprise Single Sign-On." + }, + "prerequisite": { + "message": "Prerequisito" + }, + "requireSsoPolicyReq": { + "message": "Es necesario habilitar la política de empresa de la Organización Única antes de activar esta política." + }, + "requireSsoPolicyReqError": { + "message": "Política de organización única no habilitada." + }, + "requireSsoExemption": { + "message": "Los propietarios y administradores de la organización están exentos de la aplicación de esta política." + }, + "sendTypeFile": { + "message": "Archivo" + }, + "sendTypeText": { + "message": "Texto" + }, + "createSend": { + "message": "Crear nuevo Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Editar Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send creado", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Send editado", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send eliminado", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Eliminar Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "¿Estás seguro de eliminar este Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "¿Qué tipo de Send es este?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Fecha de eliminación" + }, + "deletionDateDesc": { + "message": "El envío se eliminará permanentemente en la fecha y hora especificadas.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Fecha de Expiración" + }, + "expirationDateDesc": { + "message": "Si se establece, el acceso a este envío caducará en la fecha y hora especificadas.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Número máximo de accesos" + }, + "maxAccessCountDesc": { + "message": "Si se establece, los usuarios ya no podrán acceder a este envío una vez que se alcance el número máximo de accesos.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Número de accesos actuales" + }, + "sendPasswordDesc": { + "message": "Opcionalmente se requiere una contraseña para que los usuarios accedan a este Envío.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Notas privadas sobre este Envío.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Deshabilitado" + }, + "sendLink": { + "message": "Enlace Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copiar enlace Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Eliminar contraseña" + }, + "removedPassword": { + "message": "Contraseña Eliminada" + }, + "removePasswordConfirmation": { + "message": "¿Está seguro que desea eliminar la contraseña?" + }, + "hideEmail": { + "message": "Ocultar mi dirección de correo electrónico a los destinatarios." + }, + "disableThisSend": { + "message": "Deshabilita este envío para que nadie pueda acceder a él.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Todos los Sends" + }, + "maxAccessCountReached": { + "message": "Número máximo de accesos alcanzado", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Borrado pendiente" + }, + "expired": { + "message": "Caducado" + }, + "searchSends": { + "message": "Buscar Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Este Send está protegido con una contraseña. Por favor, escriba la contraseña abajo para continuar.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "¿No conoce la contraseña? Pídele al remitente la contraseña necesaria para acceder a este enviar.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Este Send está oculto por defecto. Puede cambiar su visibilidad usando el botón de abajo.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Descargar archivo" + }, + "sendAccessUnavailable": { + "message": "El envío al que está intentando acceder no existe o ya no está disponible.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "No se pudo encontrar el archivo asociado con este Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "No hay Sends que listar.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Acceso de emergencia" + }, + "emergencyAccessDesc": { + "message": "Conceder y administrar el acceso de emergencia para los contactos de confianza. Los contactos de confianza pueden solicitar acceso a Ver o Tomar su cuenta en caso de emergencia. Visite nuestra página de ayuda para obtener más información y detalles sobre cómo funciona el intercambio de conocimiento cero." + }, + "emergencyAccessOwnerWarning": { + "message": "Usted es un propietario de una o más organizaciones. Si concede acceso a la adquisición de un contacto de emergencia, podrán utilizar todos sus permisos como propietario después de una adquisición." + }, + "trustedEmergencyContacts": { + "message": "Contactos de emergencia confiables" + }, + "noTrustedContacts": { + "message": "Aún no has añadido ningún contacto de emergencia, invita a un contacto de confianza para empezar." + }, + "addEmergencyContact": { + "message": "Añadir contacto de emergencia" + }, + "designatedEmergencyContacts": { + "message": "Diseñado como contacto de emergencia" + }, + "noGrantedAccess": { + "message": "Aún no has sido designado como un contacto de emergencia para nadie." + }, + "inviteEmergencyContact": { + "message": "Invitar contacto de emergencia" + }, + "editEmergencyContact": { + "message": "Editar contacto de emergencia" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a un nuevo contacto de emergencia introduciendo su dirección de correo electrónico de su cuenta de Bitwarden. Si no tienen una cuenta de Bitwarden, se les pedirá que creen una cuenta." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Acceso de emergencia iniciado" + }, + "emergencyAccessRecoveryApproved": { + "message": "Acceso de emergencia aprobado" + }, + "viewDesc": { + "message": "Puede ver todos los elementos en su propia bóveda." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Puede restablecer su cuenta con una nueva contraseña maestra." + }, + "waitTime": { + "message": "Tiempo de espera" + }, + "waitTimeDesc": { + "message": "Tiempo requerido antes de conceder el acceso automáticamente." + }, + "oneDay": { + "message": "1 día" + }, + "days": { + "message": "$DAYS$ días", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Usuario invitado." + }, + "acceptEmergencyAccess": { + "message": "Has sido invitado a ser un contacto de emergencia para el usuario mencionado anteriormente. Para aceptar la invitación, necesitas iniciar sesión o crear una cuenta de Bitwarden." + }, + "emergencyInviteAcceptFailed": { + "message": "No se puede aceptar la invitación. Pídele al usuario que envíe una nueva invitación." + }, + "emergencyInviteAcceptFailedShort": { + "message": "No se puede aceptar la invitación. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Puedes acceder a las opciones de emergencia de este usuario después de que tu identidad haya sido confirmada. Te enviaremos un correo electrónico cuando eso suceda." + }, + "requestAccess": { + "message": "Solicitar acceso" + }, + "requestAccessConfirmation": { + "message": "¿Está seguro que desea solicitar acceso de emergencia? Se le proporcionará acceso después de $WAITTIME$ día(s) o cuando el usuario apruebe manualmente la solicitud.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Acceso de emergencia solicitado para $USER$. Te avisaremos por correo electrónico cuando sea posible continuar.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Aprobar" + }, + "reject": { + "message": "Rechazar" + }, + "approveAccessConfirmation": { + "message": "¿Estás seguro de que quieres aprobar el acceso de emergencia? Esto permitirá a $USER$ a $ACTION$ tu cuenta.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Acceso de emergencia aprobado." + }, + "emergencyRejected": { + "message": "Acceso de emergencia rechazado" + }, + "passwordResetFor": { + "message": "Restablecimiento de contraseña para $USER$. Ahora puede iniciar sesión usando la nueva contraseña.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Propiedad personal" + }, + "personalOwnershipPolicyDesc": { + "message": "Requiere que los usuarios guarden los elementos de la bóveda en una organización por eliminando la opción de propiedad personal." + }, + "personalOwnershipExemption": { + "message": "Los propietarios y administradores de la organización están exentos de esta política." + }, + "personalOwnershipSubmitError": { + "message": "Debido a una política empresarial, usted está restringido a guardar artículos en su bóveda personal. Cambie la opción Propiedad a una organización y elija de entre las colecciones disponibles." + }, + "disableSend": { + "message": "Desactivar envío" + }, + "disableSendPolicyDesc": { + "message": "No permitir a los usuarios crear o editar un Send de Bitwarden. Eliminar un Send existente todavía está permitido.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Los usuarios de la organización que pueden administrar las políticas de la organización están exentos de esta política." + }, + "sendDisabled": { + "message": "Enviar desactivado", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Debido a una política empresarial, sólo puede eliminar un Send existente.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Opciones del Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Establecer opciones para crear y editar los Send.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Los usuarios de la organización que pueden administrar las políticas de la organización están exentos del cumplimiento de esta política." + }, + "disableHideEmail": { + "message": "No permitir a los usuarios ocultar su dirección de correo electrónico a los destinatarios al crear o editar un Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Las siguientes políticas de organización están actualmente en vigor:" + }, + "sendDisableHideEmailInEffect": { + "message": "Los usuarios no pueden ocultar su dirección de correo electrónico a los destinatarios al crear o editar un Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Política modificada $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Precio del plan" + }, + "estimatedTax": { + "message": "Impuesto estimado" + }, + "custom": { + "message": "Personalizado" + }, + "customDesc": { + "message": "Permite un control más granulado de los permisos de usuario para configuraciones avanzadas." + }, + "permissions": { + "message": "Permisos" + }, + "accessEventLogs": { + "message": "Acceder a los registros de eventos" + }, + "accessImportExport": { + "message": "Acceso importar/exportar" + }, + "accessReports": { + "message": "Informes de acceso" + }, + "missingPermissions": { + "message": "No tiene los permisos necesarios para realizar esta acción." + }, + "manageAllCollections": { + "message": "Administrar todas las colecciones" + }, + "createNewCollections": { + "message": "Crear nuevas colecciones" + }, + "editAnyCollection": { + "message": "Editar cualquier colección" + }, + "deleteAnyCollection": { + "message": "Eliminar cualquier colección" + }, + "manageAssignedCollections": { + "message": "Administrar colecciones asignadas" + }, + "editAssignedCollections": { + "message": "Editar colecciones asignadas" + }, + "deleteAssignedCollections": { + "message": "Eliminar colecciones asignadas" + }, + "manageGroups": { + "message": "Administrar grupos" + }, + "managePolicies": { + "message": "Administrar políticas" + }, + "manageSso": { + "message": "Gestionar SSO" + }, + "manageUsers": { + "message": "Administrar usuarios" + }, + "manageResetPassword": { + "message": "Gestionar restablecimiento de contraseña" + }, + "disableRequiredError": { + "message": "Debe deshabilitar manualmente la política $POLICYNAME$ antes de que esta política pueda ser deshabilitada.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Una política de organización está afectando sus opciones de propiedad." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "Una política de organización ha desactivado la importación de elementos en su caja fuerte personal." + }, + "personalOwnershipCheckboxDesc": { + "message": "Desactivar la propiedad personal para los usuarios de la organización" + }, + "textHiddenByDefault": { + "message": "Al acceder al Enviar, oculta el texto por defecto", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Un nombre amigable para describir este Envío.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "El texto que desea enviar." + }, + "sendFileDesc": { + "message": "El archivo que desea enviar." + }, + "copySendLinkOnSave": { + "message": "Copia el enlace para compartir este envío a mi portapapeles al guardar." + }, + "sendLinkLabel": { + "message": "Enviar enlace", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Enviar", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmite información sensible y temporal a otros de forma fácil y segura.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Aprende más sobre", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Compartir texto o archivos directamente con cualquiera." + }, + "sendVaultCardLearnMore": { + "message": "Aprende más", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "ver", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "cómo funciona", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "o", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "pruébalo ahora", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "o", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "registrarse", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "pruébalo hoy.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Usuario $USER_IDENTIFIER$ de Bitwarden compartió contigo", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "El usuario Bitwarden que creó este Send ha elegido ocultar su dirección de correo electrónico. Deberías asegurarte de que confías en la fuente de este enlace antes de usar o descargar su contenido.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "La fecha de caducidad proporcionada no es válida." + }, + "deletionDateIsInvalid": { + "message": "La fecha de eliminación proporcionada no es válida." + }, + "expirationDateAndTimeRequired": { + "message": "Se requiere una fecha y hora de caducidad." + }, + "deletionDateAndTimeRequired": { + "message": "Se requiere una fecha y hora de eliminación." + }, + "dateParsingError": { + "message": "Hubo un error al guardar las fechas de eliminación y caducidad." + }, + "webAuthnFallbackMsg": { + "message": "Para verificar su 2FA por favor haga clic en el botón de abajo." + }, + "webAuthnAuthenticate": { + "message": "Autenticar WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn no es compatible con este navegador." + }, + "webAuthnSuccess": { + "message": "¡WebAuthn verificado con éxito! Puede cerrar esta pestaña." + }, + "hintEqualsPassword": { + "message": "La pista de su contraseña no puede ser la misma que la contraseña." + }, + "enrollPasswordReset": { + "message": "Inscribirse en el restablecimiento de contraseña" + }, + "enrolledPasswordReset": { + "message": "Inscrito en el restablecimiento de contraseña" + }, + "withdrawPasswordReset": { + "message": "Retirar del restablecimiento de contraseña" + }, + "enrollPasswordResetSuccess": { + "message": "Inscripción exitosa!" + }, + "withdrawPasswordResetSuccess": { + "message": "¡Retiro exitoso!" + }, + "eventEnrollPasswordReset": { + "message": "Usuario $ID$ inscrito en la asistencia para restablecer contraseña.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "El usuario $ID$ se retiró de la asistencia para restablecer contraseña.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Contraseña maestra restablecida para el usuario $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Restablecer enlace de Inicio de Sesión Único para el usuario $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ ha iniciado sesión usando SSO por primera vez", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Restablecer contraseña" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceder cerrará la sesión de $NAME$ de su sesión actual, obligándoles a volver a iniciar sesión. Las sesiones activas en otros dispositivos pueden seguir estando activas durante hasta una hora.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "este usuario" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Una o más políticas de organización requieren la contraseña maestra para cumplir con los siguientes requisitos:" + }, + "resetPasswordSuccess": { + "message": "¡Contraseña restablecida!" + }, + "resetPasswordEnrollmentWarning": { + "message": "La inscripción permitirá a los administradores de la organización cambiar su contraseña maestra. ¿Está seguro de que desea inscribirse?" + }, + "resetPasswordPolicy": { + "message": "Restablecer contraseña maestra" + }, + "resetPasswordPolicyDescription": { + "message": "Permitir a los administradores de la organización restablecer la contraseña maestra de los usuarios de la organización." + }, + "resetPasswordPolicyWarning": { + "message": "Los usuarios de la organización tendrán que autoinscribirse o estar inscritos antes de que los administradores puedan restablecer su contraseña maestra." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Inscripción automática" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Todos los usuarios se inscribirán automáticamente en el restablecimiento de contraseña una vez que se acepte su invitación." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Los usuarios que ya están en la organización no estarán inscritos de forma retroactiva en el restablecimiento de contraseña. Necesitarán autoinscribirse antes de que los administradores puedan restablecer su contraseña maestra." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Inscribir nuevos usuarios automáticamente" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Esta organización tiene una política empresarial que lo inscribirá automáticamente en el restablecimiento de contraseña. La inscripción permitirá a los administradores de la organización cambiar su contraseña maestra." + }, + "resetPasswordOrgKeysError": { + "message": "La respuesta de las claves de la organización es nula" + }, + "resetPasswordDetailsError": { + "message": "Resetear los detalles de la contraseña es nulo" + }, + "trashCleanupWarning": { + "message": "Los artículos que han estado en la papelera de más de 30 días se eliminarán automáticamente." + }, + "trashCleanupWarningSelfHosted": { + "message": "Los elementos que han estado en la papelera durante un tiempo se eliminarán automáticamente." + }, + "passwordPrompt": { + "message": "Volver a preguntar contraseña maestra" + }, + "passwordConfirmation": { + "message": "Confirmación de contraseña maestra" + }, + "passwordConfirmationDesc": { + "message": "Esta acción está protegida. Para continuar, vuelva a introducir su contraseña maestra para verificar su identidad." + }, + "reinviteSelected": { + "message": "Reenviar invitaciones" + }, + "noSelectedUsersApplicable": { + "message": "Esta acción no es aplicable a ninguno de los usuarios seleccionados." + }, + "removeUsersWarning": { + "message": "¿Está seguro que desea eliminar los siguientes usuarios? El proceso puede tardar unos segundos en completarse y no puede interrumpirse o cancelarse." + }, + "theme": { + "message": "Tema" + }, + "themeDesc": { + "message": "Elige un tema para tu caja fuerte web." + }, + "themeSystem": { + "message": "Usar tema del sistema" + }, + "themeDark": { + "message": "Oscuro" + }, + "themeLight": { + "message": "Claro" + }, + "confirmSelected": { + "message": "Confirmar Seleccionado" + }, + "bulkConfirmStatus": { + "message": "Estado de acción masiva" + }, + "bulkConfirmMessage": { + "message": "Confirmada con éxito." + }, + "bulkReinviteMessage": { + "message": "Reinvitado con éxito." + }, + "bulkRemovedMessage": { + "message": "Eliminado con éxito" + }, + "bulkFilteredMessage": { + "message": "Excluido, no aplicable a esta acción." + }, + "fingerprint": { + "message": "Huella digital" + }, + "removeUsers": { + "message": "Eliminar usuarios" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Administrar usuarios también debe estar habilitado con el permiso de Gestionar Contraseña Restablecer" + }, + "setupProvider": { + "message": "Configurador del proveedor" + }, + "setupProviderLoginDesc": { + "message": "Ha sido invitado a configurar un nuevo proveedor. Para continuar, debe iniciar sesión o crear una nueva cuenta en Bitwarden." + }, + "setupProviderDesc": { + "message": "Por favor, introduzca los siguientes datos para completar la configuración del proveedor. Si tiene alguna duda, le rogamos se ponga en contacto con el servicio de atención al cliente." + }, + "providerName": { + "message": "Nombre del proveedor" + }, + "providerSetup": { + "message": "El proveedor ha sido configurado." + }, + "clients": { + "message": "Clientes" + }, + "providerAdmin": { + "message": "Administrador del Proveedor" + }, + "providerAdminDesc": { + "message": "El usuario de mayor rango que puede gestionar todos los aspectos de su proveedor, así como acceder y gestionar las organizaciones de los clientes." + }, + "serviceUser": { + "message": "Usuario del servicio" + }, + "serviceUserDesc": { + "message": "Los usuarios del servicio pueden acceder y gestionar todas las organizaciones de clientes." + }, + "providerInviteUserDesc": { + "message": "Invite a un nuevo usuario a su proveedor, introduciendo la dirección de correo electrónico con la que éste se registró en Bitwarden. Si no tiene una cuenta en Bitwarden, se le pedirá que creen una." + }, + "joinProvider": { + "message": "Únase al proveedor" + }, + "joinProviderDesc": { + "message": "Ha sido invitado a unirte al proveedor que aparece indicado en la parte superior. Para aceptar la invitación, debe iniciar sesión o crear una nueva cuenta de Bitwarden." + }, + "providerInviteAcceptFailed": { + "message": "No se puede aceptar la invitación. Pide a un administrador del proveedor que le envíe una nueva invitación." + }, + "providerInviteAcceptedDesc": { + "message": "Podrá acceder a este proveedor una vez que un administrador confirme su registro. Le enviaremos un correo electrónico cuando esto suceda." + }, + "providerUsersNeedConfirmed": { + "message": "Dispone de usuarios que han aceptado su invitación, pero que aún deben ser confirmados. Los usuarios no tendrán acceso al proveedor hasta que estén confirmados." + }, + "provider": { + "message": "Proveedor" + }, + "newClientOrganization": { + "message": "Nueva organización del cliente" + }, + "newClientOrganizationDesc": { + "message": "Cree una nueva organización de clientes que estará asociada a usted como proveedor. Usted poddrá acceder y gestionar esta organización." + }, + "addExistingOrganization": { + "message": "Añadir una organización existente" + }, + "myProvider": { + "message": "Mi proveedor" + }, + "addOrganizationConfirmation": { + "message": "¿Está seguro que quiere añadir $ORGANIZATION$ como cliente a $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "La organización se ha añadido con éxito al proveedor" + }, + "accessingUsingProvider": { + "message": "Acceso a la organización mediante el proveedor $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "El servicio está desactivado." + }, + "providerUpdated": { + "message": "Proveedor actualizado" + }, + "yourProviderIs": { + "message": "Su proveedor es $PROVIDER$. Ellos tienen privilegios administrativos y de facturación para su organización.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "La organización $ORGANIZATION$ ha sido separada de su proveedor.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "¿Está seguro que desea separar esta organización? La organización continuará existiendo pero ya no será administrada por el proveedor." + }, + "add": { + "message": "Añadir" + }, + "updatedMasterPassword": { + "message": "Contraseña maestra actualizada" + }, + "updateMasterPassword": { + "message": "Actualizar contraseña maestra" + }, + "updateMasterPasswordWarning": { + "message": "Su contraseña maestra ha sido cambiada recientemente por un administrador de su organización. Para acceder a la bóveda, debe actualizar su contraseña maestra ahora. Proceder le desconectará de su sesión actual, requiriendo que vuelva a iniciar sesión. Las sesiones activas en otros dispositivos pueden seguir estando activas durante hasta una hora." + }, + "masterPasswordInvalidWarning": { + "message": "Su contraseña maestra no cumple con los requisitos de la política de esta organización. Para unirse a la organización, debe actualizar su contraseña maestra ahora. Proceder le desconectará de su sesión actual, requiriendo que vuelva a iniciar sesión. Las sesiones activas en otros dispositivos pueden seguir estando activas durante hasta una hora." + }, + "maximumVaultTimeout": { + "message": "Tiempo de espera de la bóveda" + }, + "maximumVaultTimeoutDesc": { + "message": "Configurar un de tiempo de espera máximo para la bóveda de todos los usuarios." + }, + "maximumVaultTimeoutLabel": { + "message": "Tiempo de espera máximo de la bóveda" + }, + "invalidMaximumVaultTimeout": { + "message": "Tiempo de espera máximo de la bóveda inválido." + }, + "hours": { + "message": "Horas" + }, + "minutes": { + "message": "Minutos" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Las políticas de tu organización están afectando el tiempo de espera de tu bóveda. El máximo permitido de espera es de $HOURS$ hora(s) y de $MINUTES$ minuto(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Tiempo de espera personalizado para la bóveda" + }, + "vaultTimeoutToLarge": { + "message": "El tiempo de espera de tu bóveda excede la restricción establecida por tu organización." + }, + "disablePersonalVaultExport": { + "message": "Desactivar exportación de bóveda personal" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohíbe a los usuarios exportar sus datos privados de bóveda." + }, + "vaultExportDisabled": { + "message": "Exportación de bóveda desactivada" + }, + "personalVaultExportPolicyInEffect": { + "message": "Una o más políticas de tu organización te impiden exportar tu bóveda personal." + }, + "selectType": { + "message": "Seleccionar tipo de SSO" + }, + "type": { + "message": "Tipo" + }, + "openIdConnectConfig": { + "message": "Configuración de OpenID Connect" + }, + "samlSpConfig": { + "message": "Configuración del proveedor de servicios SAML" + }, + "samlIdpConfig": { + "message": "Configuración del proveedor de identidad SAML" + }, + "callbackPath": { + "message": "Ruta de llamada" + }, + "signedOutCallbackPath": { + "message": "Ruta de devolución de llamada cerrada" + }, + "authority": { + "message": "Autoridad" + }, + "clientId": { + "message": "ID de cliente" + }, + "clientSecret": { + "message": "Secreto de cliente" + }, + "metadataAddress": { + "message": "Dirección de metadatos" + }, + "oidcRedirectBehavior": { + "message": "Comportamiento de la redirección de OIDC" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "El plan de Bitwarden para familias incluye" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Acceso Premium para hasta 6 usuarios" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "No se puede aceptar la oferta. Por favor, reenvíe el correo electrónico de la oferta desde su cuenta de empresa e inténtelo de nuevo." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "No se puede aceptar la oferta. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Aceptar Familias Bitwarden gratuito" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "La oferta de Familias Bitwarden gratis ha sido canjeada con éxito" + }, + "redeemed": { + "message": "Canjeado" + }, + "redeemedAccount": { + "message": "Cuenta canjeada" + }, + "revokeAccount": { + "message": "Revocar cuenta $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Reenviar correo electrónico de patrocinios a $NAME$ apadrinamiento", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Plan Familias Gratuito" + }, + "redeemNow": { + "message": "Canjear ahora" + }, + "recipient": { + "message": "Destinatario" + }, + "removeSponsorship": { + "message": "Eliminar patrocinio" + }, + "removeSponsorshipConfirmation": { + "message": "Después de eliminar un patrocinio, usted será responsable de esta suscripción y las facturas relacionadas. ¿Está seguro de que desea continuar?" + }, + "sponsorshipCreated": { + "message": "Patrocinio creado" + }, + "revoke": { + "message": "Revocar" + }, + "emailSent": { + "message": "Correo electrónico enviado" + }, + "revokeSponsorshipConfirmation": { + "message": "Después de eliminar esta cuenta, el propietario de la organización familiar será responsable de esta suscripción y de las facturas relacionadas. ¿Está seguro de que desea continuar?" + }, + "removeSponsorshipSuccess": { + "message": "Patrocinio eliminado" + }, + "ssoKeyConnectorUnavailable": { + "message": "No se puede conectar con el Conector de Claves, inténtelo de nuevo más tarde." + }, + "keyConnectorUrl": { + "message": "URL del Conector de Claves" + }, + "sendVerificationCode": { + "message": "Envía un código de verificación a su correo electrónico" + }, + "sendCode": { + "message": "Enviar código" + }, + "codeSent": { + "message": "Código enviado" + }, + "verificationCode": { + "message": "Código de verificación" + }, + "confirmIdentity": { + "message": "Confirme su identidad para continuar." + }, + "verificationCodeRequired": { + "message": "El código de verificación es requerido." + }, + "invalidVerificationCode": { + "message": "Código de verificación no válido" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ está usando SSO con un servidor de claves autoalojado. Una contraseña maestra ya no es necesaria para iniciar sesión para los miembros de esta organización.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Abandonar organización" + }, + "removeMasterPassword": { + "message": "Eliminar contraseña maestra" + }, + "removedMasterPassword": { + "message": "Contraseña maestra eliminada." + }, + "allowSso": { + "message": "Permitir autenticación SSO" + }, + "allowSsoDesc": { + "message": "Una vez configurado, su configuración será guardada y los miembros podrán autenticarse usando sus credenciales de proveedor de identidad." + }, + "ssoPolicyHelpStart": { + "message": "Activar el", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "Política de autenticación SSO", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "para requerir que todos los miembros inicien sesión con SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "Se requieren políticas de autenticación de SSO y de una Única Organización para configurar el descifrado del Conector de Claves." + }, + "memberDecryptionOption": { + "message": "Opciones de descifrado de miembros" + }, + "memberDecryptionPassDesc": { + "message": "Una vez autenticados, los miembros descifrarán los datos de la bóveda usando sus contraseñas maestras." + }, + "keyConnector": { + "message": "Conector de claves" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Conecte el inicio de sesión con SSO a su servidor de claves de descifrado autoalojado. Usando esta opción, los miembros no necesitarán usar sus contraseñas maestras para descifrar datos de bóveda. Póngase en contacto con el soporte de Bitwarden para asistencia en la configuración." + }, + "keyConnectorPolicyRestriction": { + "message": "Está habilitado \"Iniciar sesión con SSO y el descifrado del Conectore de claves\" Esta política sólo se aplicará a propietarios y administradores." + }, + "enabledSso": { + "message": "SSO habilitado" + }, + "disabledSso": { + "message": "SSO desactivado" + }, + "enabledKeyConnector": { + "message": "Conector de claves habilitado" + }, + "disabledKeyConnector": { + "message": "Conector de claves desactivado" + }, + "keyConnectorWarning": { + "message": "Una vez que los miembros comiencen a usar el Conector de claves, su Organización no puede revertir a la descifración de Contraseña Maestra. Proceda sólo si está cómodamente desplegando y gestionando un servidor clave." + }, + "migratedKeyConnector": { + "message": "Migrado al Conector de Clave" + }, + "paymentSponsored": { + "message": "Por favor, proporcione un método de pago para asociar con la organización. No se preocupe, no le cobraremos nada a menos que elija características adicionales o que su patrocinio expire. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "La oferta de patrocinio ha caducado. Puede eliminar la organización creada para evitar un cargo al final de su prueba de 7 días. De lo contrario, puede cerrar esta petición para mantener la organización y asumir la responsabilidad de facturar." + }, + "newFamiliesOrganization": { + "message": "Nueva organización de familias" + }, + "acceptOffer": { + "message": "Aceptar oferta" + }, + "sponsoringOrg": { + "message": "Organización patrocinadora" + }, + "keyConnectorTest": { + "message": "Probar" + }, + "keyConnectorTestSuccess": { + "message": "¡Éxito! Conector de clave alcanzado." + }, + "keyConnectorTestFail": { + "message": "No se puede acceder al conector de clave. Compruebe la URL." + }, + "sponsorshipTokenHasExpired": { + "message": "La oferta de patrocinio expiró." + }, + "freeWithSponsorship": { + "message": "GRATIS con patrocinio" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Su sesión ha expirado. Por favor, vuelva e intente iniciar sesión de nuevo." + }, + "exportingPersonalVaultTitle": { + "message": "Exportando bóveda personal" + }, + "exportingOrganizationVaultTitle": { + "message": "Exportando bóveda de organización" + }, + "exportingPersonalVaultDescription": { + "message": "Solo se exportarán los elementos de la bóveda personal asociados con $EMAIL$. Los elementos de la bóveda de la organización no se incluirán.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Solo se exportará la bóveda de la organización asociada con $ORGANIZATION$. No se incluirán objetos y elementos personales de otras organizaciones.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/et/messages.json b/apps/web/src/locales/et/messages.json new file mode 100644 index 0000000000..6e2aea1195 --- /dev/null +++ b/apps/web/src/locales/et/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Veebihoidla", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Mis tüüpi kirje see on?" + }, + "name": { + "message": "Nimi" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Uus URI" + }, + "username": { + "message": "Kasutajanimi" + }, + "password": { + "message": "Parool" + }, + "newPassword": { + "message": "Uus Parool" + }, + "passphrase": { + "message": "Paroolifraas" + }, + "notes": { + "message": "Märkmed" + }, + "customFields": { + "message": "Kohandatud väljad" + }, + "cardholderName": { + "message": "Kaardiomaniku nimi" + }, + "number": { + "message": "Kaardi number" + }, + "brand": { + "message": "Väljastaja" + }, + "expiration": { + "message": "Aegumiskuupäev" + }, + "securityCode": { + "message": "Kaardi turvakood (CVV)" + }, + "identityName": { + "message": "Identiteedi nimi" + }, + "company": { + "message": "Ettevõte" + }, + "ssn": { + "message": "Isikukood" + }, + "passportNumber": { + "message": "Passi number" + }, + "licenseNumber": { + "message": "Litsentsi number" + }, + "email": { + "message": "E-post" + }, + "phone": { + "message": "Telefoninumber" + }, + "january": { + "message": "Jaanuar" + }, + "february": { + "message": "Veebruar" + }, + "march": { + "message": "Märts" + }, + "april": { + "message": "Aprill" + }, + "may": { + "message": "Mai" + }, + "june": { + "message": "Juuni" + }, + "july": { + "message": "Juuli" + }, + "august": { + "message": "August" + }, + "september": { + "message": "September" + }, + "october": { + "message": "Oktoober" + }, + "november": { + "message": "November" + }, + "december": { + "message": "Detsember" + }, + "title": { + "message": "Pealkiri" + }, + "mr": { + "message": "Hr" + }, + "mrs": { + "message": "Mrs" + }, + "ms": { + "message": "Pr" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Aegumise kuu" + }, + "expirationYear": { + "message": "Aegumise aasta" + }, + "authenticatorKeyTotp": { + "message": "Autentimise võti (TOTP)" + }, + "folder": { + "message": "Kaust" + }, + "newCustomField": { + "message": "Uus kohandatud väli" + }, + "value": { + "message": "Väärtus" + }, + "dragToSort": { + "message": "Lohista sorteerimiseks" + }, + "cfTypeText": { + "message": "Tekst" + }, + "cfTypeHidden": { + "message": "Peidetud" + }, + "cfTypeBoolean": { + "message": "Boolean" + }, + "cfTypeLinked": { + "message": "Ühenduses", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Eemalda" + }, + "unassigned": { + "message": "Määramata" + }, + "noneFolder": { + "message": "Kaust puudub", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Kausta lisamine" + }, + "editFolder": { + "message": "Muuda kausta" + }, + "baseDomain": { + "message": "Baasdomeen", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domeeni nimi", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Täpne" + }, + "startsWith": { + "message": "Algab" + }, + "regEx": { + "message": "RegEx", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Sobivuse tuvastamine", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Tavaline sobivuse tuvastamine", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Ära tuvasta" + }, + "toggleVisibility": { + "message": "Näita sisu" + }, + "toggleCollapse": { + "message": "Ava", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Loo parool" + }, + "checkPassword": { + "message": "Vaata, kas parool on lekkinud." + }, + "passwordExposed": { + "message": "See parool on erinevates andmeleketes kokku $VALUE$ korda lekkinud. Peaksid selle ära muutma.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Seda parooli ei õnnestu andmeleketest leida. Parooli edasi kasutamine peaks olema turvaline." + }, + "save": { + "message": "Salvesta" + }, + "cancel": { + "message": "Tühista" + }, + "canceled": { + "message": "Tühistatud" + }, + "close": { + "message": "Sulge" + }, + "delete": { + "message": "Kustuta" + }, + "favorite": { + "message": "Lemmik" + }, + "unfavorite": { + "message": "Eemalda lemmikutest" + }, + "edit": { + "message": "Muuda" + }, + "searchCollection": { + "message": "Otsi kogumikku" + }, + "searchFolder": { + "message": "Otsi andmeid" + }, + "searchFavorites": { + "message": "Otsi lemmikute hulgast" + }, + "searchType": { + "message": "Otsingu tüüp", + "description": "Search item type" + }, + "searchVault": { + "message": "Otsi hoidlast" + }, + "allItems": { + "message": "Kõik kirjed" + }, + "favorites": { + "message": "Lemmikud" + }, + "types": { + "message": "Tüübid" + }, + "typeLogin": { + "message": "Kasutajakonto andmed" + }, + "typeCard": { + "message": "Pangakaart" + }, + "typeIdentity": { + "message": "Identiteet" + }, + "typeSecureNote": { + "message": "Turvaline märkus" + }, + "typeLoginPlural": { + "message": "Kontod" + }, + "typeCardPlural": { + "message": "Kaardid" + }, + "typeIdentityPlural": { + "message": "Identiteedid" + }, + "typeSecureNotePlural": { + "message": "Turvalised märkmed" + }, + "folders": { + "message": "Kaustad" + }, + "collections": { + "message": "Kogumikud" + }, + "firstName": { + "message": "Eesnimi" + }, + "middleName": { + "message": "Teine eesnimi" + }, + "lastName": { + "message": "Perekonnanimi" + }, + "fullName": { + "message": "Täisnimi" + }, + "address1": { + "message": "Aadress 1" + }, + "address2": { + "message": "Aadress 2" + }, + "address3": { + "message": "Aadress 3" + }, + "cityTown": { + "message": "Linn / asula" + }, + "stateProvince": { + "message": "Maakond / vald" + }, + "zipPostalCode": { + "message": "Postiindeks" + }, + "country": { + "message": "Riik" + }, + "shared": { + "message": "Jagatud" + }, + "attachments": { + "message": "Manused" + }, + "select": { + "message": "Vali" + }, + "addItem": { + "message": "Lisa kirje" + }, + "editItem": { + "message": "Kirje muutmine" + }, + "viewItem": { + "message": "Kirje vaatamine" + }, + "ex": { + "message": "nt.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Muu" + }, + "share": { + "message": "Jaga" + }, + "moveToOrganization": { + "message": "Teisalda organisatsiooni" + }, + "valueCopied": { + "message": "$VALUE$ on kopeeritud", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Kopeeri kirje", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Kopeeri parool", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Kopeeri kasutajanimi", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Kopeeri number", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Kopeeri turvakood", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Kopeeri URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Minu hoidla" + }, + "vault": { + "message": "Hoidla" + }, + "moveSelectedToOrg": { + "message": "Teisalda valitud organisatsiooni" + }, + "deleteSelected": { + "message": "Kustuta valitud" + }, + "moveSelected": { + "message": "Liiguta valitud" + }, + "selectAll": { + "message": "Vali kõik" + }, + "unselectAll": { + "message": "Tühista valik" + }, + "launch": { + "message": "Ava" + }, + "newAttachment": { + "message": "Lisa uus manus" + }, + "deletedAttachment": { + "message": "Manus on kustutatud" + }, + "deleteAttachmentConfirmation": { + "message": "Oled kindel, et soovid manuse kustutada?" + }, + "attachmentSaved": { + "message": "Manus on salvestatud." + }, + "file": { + "message": "Fail" + }, + "selectFile": { + "message": "Vali fail." + }, + "maxFileSize": { + "message": "Maksimaalne faili suurus on 500 MB." + }, + "updateKey": { + "message": "Seda funktsiooni ei saa enne krüpteerimise võtme uuendamist kasutada." + }, + "addedItem": { + "message": "Kirje on lisatud" + }, + "editedItem": { + "message": "Kirje on muudetud" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ teisaldati $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Valitud kirjed teisaldati $ORGNAME$-le", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Kustuta kirje" + }, + "deleteFolder": { + "message": "Kustuta kaust" + }, + "deleteAttachment": { + "message": "Kustuta manus" + }, + "deleteItemConfirmation": { + "message": "Soovid tõesti selle kirje kustutada?" + }, + "deletedItem": { + "message": "Kirje on prügikasti teisaldatud" + }, + "deletedItems": { + "message": "Kirjed on prügikasti teisaldatud" + }, + "movedItems": { + "message": "Kirjed on teisaldatud" + }, + "overwritePasswordConfirmation": { + "message": "Oled kindel, et soovid olemas olevat parooli üle kirjutada?" + }, + "editedFolder": { + "message": "Kaust on muudetud" + }, + "addedFolder": { + "message": "Kaust on lisatud" + }, + "deleteFolderConfirmation": { + "message": "Oled kindel, et soovid seda kausta kustutada?" + }, + "deletedFolder": { + "message": "Kaust on kustutatud" + }, + "loggedOut": { + "message": "Välja logitud" + }, + "loginExpired": { + "message": "Sessioon on aegunud." + }, + "logOutConfirmation": { + "message": "Oled kindel, et soovid välja logida?" + }, + "logOut": { + "message": "Logi välja" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Jah" + }, + "no": { + "message": "Ei" + }, + "loginOrCreateNewAccount": { + "message": "Logi sisse või loo uus konto." + }, + "createAccount": { + "message": "Konto loomine" + }, + "logIn": { + "message": "Logi sisse" + }, + "submit": { + "message": "Kinnita" + }, + "emailAddressDesc": { + "message": "E-posti aadressi kasutatakse sisselogimiseks." + }, + "yourName": { + "message": "Sinu nimi" + }, + "yourNameDesc": { + "message": "Kuidas me sind kutsume?" + }, + "masterPass": { + "message": "Ülemparool" + }, + "masterPassDesc": { + "message": "Ülemparooliga pääsed oma kontole ligi. On äärmiselt tähtis, et ülemparool ei ununeks. Selle parooli taastamine ei ole mingil moel võimalik." + }, + "masterPassHintDesc": { + "message": "Vihje võib abiks olla olukorras, kui oled ülemparooli unustanud." + }, + "reTypeMasterPass": { + "message": "Sisesta ülemparool uuesti" + }, + "masterPassHint": { + "message": "Ülemparooli vihje (ei ole kohustuslik)" + }, + "masterPassHintLabel": { + "message": "Ülemparooli vihje" + }, + "settings": { + "message": "Seaded" + }, + "passwordHint": { + "message": "Parooli vihje" + }, + "enterEmailToGetHint": { + "message": "Ülemparooli vihje saamiseks sisesta oma konto e-posti aadress." + }, + "getMasterPasswordHint": { + "message": "Tuleta ülemparooli vihjega meelde" + }, + "emailRequired": { + "message": "E-posti aadress on nõutud." + }, + "invalidEmail": { + "message": "Vigane e-posti aadress." + }, + "masterPassRequired": { + "message": "Vajalik on ülemparooli sisestamine." + }, + "masterPassLength": { + "message": "Ülemparool peab olema vähemalt 8 tähemärgi pikkune." + }, + "masterPassDoesntMatch": { + "message": "Ülemparoolid ei ühti." + }, + "newAccountCreated": { + "message": "Sinu konto on loodud! Saad nüüd sellesse sisse logida." + }, + "masterPassSent": { + "message": "Ülemparooli vihje saadeti sinu e-posti aadressile." + }, + "unexpectedError": { + "message": "Tekkis ootamatu viga." + }, + "emailAddress": { + "message": "E-posti aadress" + }, + "yourVaultIsLocked": { + "message": "Hoidla on lukus. Jätkamiseks sisesta ülemparool." + }, + "unlock": { + "message": "Lukusta lahti" + }, + "loggedInAsEmailOn": { + "message": "Sisse logitud kontosse $EMAIL$ aadressil $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Vale ülemparool" + }, + "lockNow": { + "message": "Lukusta paroolihoidla" + }, + "noItemsInList": { + "message": "Puuduvad kirjed, mida kuvada." + }, + "noCollectionsInList": { + "message": "Puuduvad kollektsioonid, mida kuvada." + }, + "noGroupsInList": { + "message": "Puuduvad grupid, mida kuvada." + }, + "noUsersInList": { + "message": "Puuduvad kasutajad, keda kuvada." + }, + "noEventsInList": { + "message": "Puuduvad sündmused, mida kuvada." + }, + "newOrganization": { + "message": "Uus organisatsioon" + }, + "noOrganizationsList": { + "message": "Sa ei kuulu ühessegi organisatsiooni. Organisatsioonid võimaldavad sul kirjeid turvaliselt teiste kasutajatega jagada." + }, + "versionNumber": { + "message": "Versioon $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Sisesta autentimise rakendusest 6 kohaline number." + }, + "enterVerificationCodeEmail": { + "message": "Sisesta 6 kohaline number, mis saadeti e-posti aadressile $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Kinnituskood saadeti e-posti aadressile $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Jäta mind meelde" + }, + "sendVerificationCodeEmailAgain": { + "message": "Saada e-postile uus kinnituskood" + }, + "useAnotherTwoStepMethod": { + "message": "Kasuta teist kaheastmelist sisselogimise meetodit" + }, + "insertYubiKey": { + "message": "Sisesta oma YubiKey arvuti USB porti ja kliki sellele nupule." + }, + "insertU2f": { + "message": "Sisesta oma turvaline võti arvuti USB porti. Kui sellel on nupp, siis vajuta seda." + }, + "loginUnavailable": { + "message": "Sisselogimine ei ole saadaval" + }, + "noTwoStepProviders": { + "message": "Sellel kontol on aktiveeritud kaheastmeline kinnitus. Siiski ei toeta konkreetne brauser ühtegi aktiveeritud kaheastmelise kinnitamise teenust." + }, + "noTwoStepProviders2": { + "message": "Palun kasuta ühilduvat brauserit (näiteks Chrome) ja/või lisa uus kaheastmelise teenuse pakkuja, mis töötab rohkemates brauserites (näiteks mõni autentimise rakendus)." + }, + "twoStepOptions": { + "message": "Kaheastmelise sisselogimise valikud" + }, + "recoveryCodeDesc": { + "message": "Sul ei ole ligipääsu ühelegi kaheastmelise kinnitamise teenusele? Kasuta taastamise koodi, et kaheastmeline kinnitamine oma kontol välja lülitada." + }, + "recoveryCodeTitle": { + "message": "Taastamise kood" + }, + "authenticatorAppTitle": { + "message": "Autentimise rakendus" + }, + "authenticatorAppDesc": { + "message": "Kasuta autentimise rakendust (näiteks Authy või Google Authenticator), et kasutada sisselogimiseks ajal baseeruvat kinnituskoodi.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP Turvaline võti" + }, + "yubiKeyDesc": { + "message": "Kasuta kontole ligipääsemiseks YubiKey-d. See töötab YubiKey 4, 5 ja NEO seadmetega." + }, + "duoDesc": { + "message": "Kinnita Duo Security abil, kasutades selleks Duo Mobile rakendust, SMS-i, telefonikõnet või U2F turvavõtit.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Kinnita organisatsiooni jaoks Duo Security abil, kasutades selleks Duo Mobile rakendust, SMS-i, telefonikõnet või U2F turvavõtit.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Kasuta mistahes FIDO U2F toetavat turvalist võtit, et oma kontole ligi pääseda." + }, + "u2fTitle": { + "message": "FIDO U2F Turvaline võti" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Kasuta kontole ligipääsemiseks mistahes WebAuthn toetavat turvalist võtit." + }, + "webAuthnMigrated": { + "message": "(pärineb FIDO'lt)" + }, + "emailTitle": { + "message": "E-post" + }, + "emailDesc": { + "message": "Kinnituskoodid saadetakse e-postiga." + }, + "continue": { + "message": "Jätka" + }, + "organization": { + "message": "Organisatsioon" + }, + "organizations": { + "message": "Organisatsioon" + }, + "moveToOrgDesc": { + "message": "Vali organisatsioon, kuhu soovid seda kirjet teisaldada. Teisaldamisega saab kirje omanikuks organisatsioon. Pärast kirje teisaldamist ei ole sa enam selle otsene omanik." + }, + "moveManyToOrgDesc": { + "message": "Vali organisatsioon, kuhu soovid seda kirjet teisaldada. Teisaldamisega saab kirje omanikuks organisatsioon. Pärast kirje teisaldamist ei ole sa enam selle otsene omanik." + }, + "collectionsDesc": { + "message": "Muuda kollektsioone, millega seda kirjet jagatakse. Seda kirjet näevad üksnes organisatsiooni kasutajad, kes omavad nendele kollektsioonidele ligipääsu." + }, + "deleteSelectedItemsDesc": { + "message": "Oled kustutamiseks valinud $COUNT$ kirjet. Oled kindel, et soovid kõik need kirjed kustutada?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Vali kaust, kuhu soovid need $COUNT$ kirjet liigutada.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Valisid $COUNT$ kirje(t). $MOVEABLE_COUNT$ kirje(t) saab teisaldada organisatsiooni, $NONMOVEABLE_COUNT$ ei saa.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Kinnituskood (TOTP)" + }, + "copyVerificationCode": { + "message": "Kopeeri kinnituskood" + }, + "warning": { + "message": "Hoiatus" + }, + "confirmVaultExport": { + "message": "Hoidla eksportimise kinnitamine" + }, + "exportWarningDesc": { + "message": "Eksporditav fail on krüpteeringuta ja sisaldab hoidla sisu. Seda faili ei tohiks kaua käidelda ning mitte mingil juhul ebaturvaliselt saata (näiteks e-postiga). Kustuta see koheselt pärast kasutamist." + }, + "encExportKeyWarningDesc": { + "message": "Eksporditavate andmete krüpteerimiseks kasutatakse kontol olevat krüpteerimisvõtit. Kui sa peaksid seda krüpteerimise võtit roteerima, ei saa sa järgnevalt eksporditavaid andmeid enam dekrüpteerida." + }, + "encExportAccountWarningDesc": { + "message": "Iga Bitwardeni kasutaja krüpteerimisvõti on unikaalne. Eksporditud andmeid ei saa importida teise Bitwardeni kasutajakontosse." + }, + "export": { + "message": "Ekspordi" + }, + "exportVault": { + "message": "Hoidla sisu eksportimine" + }, + "fileFormat": { + "message": "Failivorming" + }, + "exportSuccess": { + "message": "Hoidla on eksporditud." + }, + "passwordGenerator": { + "message": "Parooli genereerimine" + }, + "minComplexityScore": { + "message": "Minimaalne keerulisuse skoor" + }, + "minNumbers": { + "message": "Vähim arv numbreid" + }, + "minSpecial": { + "message": "Vähim arv spetsiaalmärke", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Väldi ebamääraseid kirjamärke" + }, + "regeneratePassword": { + "message": "Genereeri parool uuesti" + }, + "length": { + "message": "Pikkus" + }, + "numWords": { + "message": "Sõnade arv" + }, + "wordSeparator": { + "message": "Sõna eraldaja" + }, + "capitalize": { + "message": "Suurtäht", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Lisa number" + }, + "passwordHistory": { + "message": "Paroolide ajalugu" + }, + "noPasswordsInList": { + "message": "Puuduvad paroolid, mida kuvada." + }, + "clear": { + "message": "Tühjenda", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Konto uuendatud" + }, + "changeEmail": { + "message": "E-posti aadressi muutmine" + }, + "changeEmailTwoFactorWarning": { + "message": "Jätkamisel muudetakse konto e-posti aadress. Pane tähele, et see ei muuda kaheastmeliseks kinnitamiseks kasutatavat e-posti aadressi. Selle e-posti aadressi muutmine on võimalik kaheastmelise kinnitamise seadetes." + }, + "newEmail": { + "message": "Uus e-posti aadress" + }, + "code": { + "message": "Kood" + }, + "changeEmailDesc": { + "message": "Kinnituskood on saadetud e-postile $EMAIL$. Kontrolli oma e-posti ning sisesta see kood allolevasse kasti, et e-posti aadressi muutmine lõpule viia.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Jätkates logitakse sind praegusest sessioonis välja, mistõttu pead kontosse uuesti sisse logima. Teised kontoga ühendatud seadmed võivad jääda sisselogituks kuni üheks tunniks." + }, + "emailChanged": { + "message": "E-post on muudetud" + }, + "logBackIn": { + "message": "Palun logi uuesti sisse." + }, + "logBackInOthersToo": { + "message": "Palun logi uuesti sisse. Kui kasutad teisi Bitwardeni rakendusi, pead ka nendes uuesti sisse logima." + }, + "changeMasterPassword": { + "message": "Muuda ülemparooli" + }, + "masterPasswordChanged": { + "message": "Ülemparool on muudetud" + }, + "currentMasterPass": { + "message": "Praegune ülemparool" + }, + "newMasterPass": { + "message": "Uus ülemparool" + }, + "confirmNewMasterPass": { + "message": "Kinnita uus ülemparool" + }, + "encKeySettings": { + "message": "Krüpteerimise võtme seaded" + }, + "kdfAlgorithm": { + "message": "KDF algoritm" + }, + "kdfIterations": { + "message": "KDF iteratsioonid" + }, + "kdfIterationsDesc": { + "message": "Suuremad KDF iteratsioonid aitavad ülemparooli paremini jõhkra jõu rünnete vastu kaitsta. Soovitame kasutada väärtust $VALUE$ või suuremat.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Seadistades KDF-i liiga pikaks, võib Bitwardenisse sisselogimisel (ja lahtilukustamisel) tekkida jõudlusprobleeme ja hangumisi. Seda eriti aeglasemate protsessoritega seadmetes. Soovitame kasutada pikkust ligikaudu $INCREMENT$ ja testida jõudlust kõikides oma seadmetes.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Muuda KDF-i" + }, + "encKeySettingsChanged": { + "message": "Krüpteerimise võtme seaded on muudetud" + }, + "dangerZone": { + "message": "Ohtlik tsoon" + }, + "dangerZoneDesc": { + "message": "Ettevaatust, neid toiminguid ei saa tagasi võtta!" + }, + "deauthorizeSessions": { + "message": "Sessioonide tühistamine" + }, + "deauthorizeSessionsDesc": { + "message": "Muretsed, et sinu kontosse on võõra seadme alt sisse logitud? Kasuta allolevat valikut, et kõikidest seadmetest välja logida. See võib olla kasulik näiteks juhtudel, kus oled kasutanud avalikku arvutit või salvestasid kogemata parooli seadmes, mis ei kuulu sinule. Samuti nullib see tegevus kõik varasemad kaheastmelise kinnitamise poolt meelde jäetud seadmed." + }, + "deauthorizeSessionsWarning": { + "message": "Jätkatest logitakse sind ka käimasolevast sessioonist välja, mistõttu pead kontosse uuesti sisse logima. Lisaks võidakse küsida kaheastmelist kinnitust, kui see on sisse lülitatud. Teised kontoga ühendatud seadmed võivad jääda sisselogituks kuni üheks tunniks." + }, + "sessionsDeauthorized": { + "message": "Kõikidest seadmetest on välja logitud" + }, + "purgeVault": { + "message": "Likvideeri Hoidla" + }, + "purgedOrganizationVault": { + "message": "Organisatsiooni hoidla on likvideeritud." + }, + "vaultAccessedByProvider": { + "message": "Teenuse osutaja vaatas hoidla sisu." + }, + "purgeVaultDesc": { + "message": "Jätkates kustutatakse kõik hoidlas olevad kirjed ja kaustad. Andmed, mis kuuluvad organisatsioonile, jäävad puutumata." + }, + "purgeOrgVaultDesc": { + "message": "Jätka allpool, et kõik organisatsiooni kirjed hoidlast likvideerida." + }, + "purgeVaultWarning": { + "message": "Hoidla likvideerimine on ühekordne tegevus. Seda ei saa tagasi võtta." + }, + "vaultPurged": { + "message": "Hoidla on likvideeritud." + }, + "deleteAccount": { + "message": "Kustuta konto" + }, + "deleteAccountDesc": { + "message": "Jätkates kustutatakse sinu konto ja kõik sellega seonduvad andmed." + }, + "deleteAccountWarning": { + "message": "Konto kustutamine on ühekordne tegevus. Seda ei saa tagasi võtta." + }, + "accountDeleted": { + "message": "Konto on kustutatud" + }, + "accountDeletedDesc": { + "message": "Konto on suletud ja kõik sellega seonduvad andmed on kustutatud." + }, + "myAccount": { + "message": "Minu konto" + }, + "tools": { + "message": "Tööriistad" + }, + "importData": { + "message": "Andmete importimine" + }, + "importError": { + "message": "Viga importimisel" + }, + "importErrorDesc": { + "message": "Andmete importimisel ilmnes tõrge. Paranda originaalfailis olevad vead (kuvatud all) ning proovi uuesti." + }, + "importSuccess": { + "message": "Andmed on edukalt hoidlasse imporditud." + }, + "importWarning": { + "message": "Impordid andmeid organisatsiooni $ORGANIZATION$. Imporditavaid andmeid võidakse jagada teiste organisatsiooni liikmetega. Soovid jätkata?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Andmed ei ole korrektse vorminguga. Palun kontrolli imporditavat faili ja proovi uuesti." + }, + "importNothingError": { + "message": "Midagi ei imporditud." + }, + "importEncKeyError": { + "message": "Eksporditud faili dekrüpteerimine nurjus. Sinu krüpteerimisvõti ei ühti selle võtmega, mida kasutati andmete eksportimisel." + }, + "selectFormat": { + "message": "Vali imporditava faili vorming" + }, + "selectImportFile": { + "message": "Vali imporditav fail" + }, + "orCopyPasteFileContents": { + "message": "või kopeeri/kleebi imporditava faili sisu" + }, + "instructionsFor": { + "message": "$NAME$ Kasutusjuhend", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Valikud" + }, + "optionsDesc": { + "message": "Siit leiad erinevad Veebihoidla kohandamise valikud." + }, + "optionsUpdated": { + "message": "Muudatused on rakendatud" + }, + "language": { + "message": "Keel" + }, + "languageDesc": { + "message": "Siin saab veebihoidla keelt muuta." + }, + "disableIcons": { + "message": "Lülita veebisaidi ikoonid välja" + }, + "disableIconsDesc": { + "message": "Veebisaidi ikoonid aitavad hoidlas olevaid kontosid paremini eristada." + }, + "enableGravatars": { + "message": "Luba Gravatarid", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Luba avatari pildid, mida laaditakse lehelt gravatar.com." + }, + "enableFullWidth": { + "message": "Lülita sisse veebihoidla laiem vaade", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "See valik muudab veebihoidla laiust selliselt, et see ulatuks üle terve brauseri." + }, + "default": { + "message": "Vaikimisi" + }, + "domainRules": { + "message": "Domeeni reeglid" + }, + "domainRulesDesc": { + "message": "Kui sul on erinevatel domeenidel samade andmetega kontod, võid need domeenid märkida \"võrdväärseteks\". \"Globaalsed\" domeenid on need, mille Bitwarden juba eelseadistanud on." + }, + "globalEqDomains": { + "message": "Globaalsed võrdväärsed domeenid" + }, + "customEqDomains": { + "message": "Teised võrdväärsed domeenid" + }, + "exclude": { + "message": "Jäta välja" + }, + "include": { + "message": "Kaasa" + }, + "customize": { + "message": "Kohanda" + }, + "newCustomDomain": { + "message": "Uus võrdväärne domeen" + }, + "newCustomDomainDesc": { + "message": "Sisesta domeenid, eraldades need komadega. Lubatud on ainult \"põhi\" domeenid. Ära sisesta alamdomeene. Nt: sisesta \"google.com\", aga mitte \"www.google.com\". Võid ka sisestada \"androidapp://package.name\", et seostada Androidi äpp mistahes veebilehtede domeenidega." + }, + "customDomainX": { + "message": "Kohandatud domeeni $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domeenid on uuendatud" + }, + "twoStepLogin": { + "message": "Kaheastmeline kinnitamine" + }, + "twoStepLoginDesc": { + "message": "Kaitse oma kontot, nõudes sisselogimisel lisakinnitust." + }, + "twoStepLoginOrganizationDesc": { + "message": "Nõua organisatsiooni liikmetelt kaheastmelist kinnitamist, seadistades taolise teenuse pakkujad organisatsiooni tasemel." + }, + "twoStepLoginRecoveryWarning": { + "message": "Kaheastmelise kinnitamine aktiveerimine võib luua olukorra, kus sul on võimatu oma Bitwardeni kontosse sisse logida. Näiteks kui kaotad oma nutiseadme. Taastamise kood võimaldab aga kontole ligi pääseda ka olukorras, kus kaheastmelist kinnitamist ei ole võimalik läbi viia. Sellistel juhtudel ei saa ka Bitwardeni klienditugi sinu kontole ligipääsu taastada. Selle tõttu soovitame taastekoodi välja printida ja seda turvalises kohas hoida." + }, + "viewRecoveryCode": { + "message": "Vaata taastamise koodi" + }, + "providers": { + "message": "Teenused", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Lülita sisse" + }, + "enabled": { + "message": "Sisselülitatud" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium versioon" + }, + "premiumRequired": { + "message": "Nõutav on Premium konto" + }, + "premiumRequiredDesc": { + "message": "Selle funktsiooni kasutamiseks on vajalik premium kontot omada." + }, + "youHavePremiumAccess": { + "message": "Sul on premium ligipääs" + }, + "alreadyPremiumFromOrg": { + "message": "Organisatsiooni kuulumise tõttu on sul juba juurdepääs premium funktsioonidele." + }, + "manage": { + "message": "Haldus" + }, + "disable": { + "message": "Keela" + }, + "twoStepLoginProviderEnabled": { + "message": "See kaheastmelise kinnitamise teenus on sinu kontol sisse lülitatud." + }, + "twoStepLoginAuthDesc": { + "message": "Kaheastmelise kinnitamise seadete muutmiseks pead sisestama ülemparooli." + }, + "twoStepAuthenticatorDesc": { + "message": "Järgnevad juhised aitavad sul kaheastmelise kinnituse äpi ära seadistada:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Laadi kaheastmelise kinnitamise äpp alla" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Vajad kaheastmelise kinnitamise äppi? Proovi mõnda järgnevatest" + }, + "iosDevices": { + "message": "iOS seadmed" + }, + "androidDevices": { + "message": "Android seadmed" + }, + "windowsDevices": { + "message": "Windows seadmed" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Need äpid on soovituslikud. Saad ka teisi autentimise äppe kasutada." + }, + "twoStepAuthenticatorScanCode": { + "message": "Skaneeri seda QR koodi oma autentimisrakendusega" + }, + "key": { + "message": "Võti" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Sisesta äpi kuvatav 6 kohaline kinnituskood" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Kui soovid lisada veel seadmeid, siis all on kuvatud QR kood (ehk võti), mida autentimisrakendusega kasutada saad." + }, + "twoStepDisableDesc": { + "message": "Oled kindel, et soovid selle kaheastmelise kinnitamise teenuse välja lülitada?" + }, + "twoStepDisabled": { + "message": "Kaheastmelise sisselogimise teenus on keelatud." + }, + "twoFactorYubikeyAdd": { + "message": "Lisa oma kontole uus YubiKey" + }, + "twoFactorYubikeyPlugIn": { + "message": "Sisesta YubiKey (NEO või 4. seeria) arvuti USB pessa." + }, + "twoFactorYubikeySelectKey": { + "message": "Vali esimene tühi YubiKey sisendväli allpool." + }, + "twoFactorYubikeyTouchButton": { + "message": "Puuduta YubiKey nuppu." + }, + "twoFactorYubikeySaveForm": { + "message": "Salvesta vorm." + }, + "twoFactorYubikeyWarning": { + "message": "Mõnede platvormi piirangute tõttu ei saa YubiKeysid kõikide Bitwardeni rakendustega kasutada. Võiksid kaaluda teise kaheastmelise kinnitamise aktiveerimist olukordadeks, kus YubiKeyde kasutamine ei ole võimalik. Toetatud platvormid:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Veebihoidla, töölaua rakendus, CLI ja kõikide brauserite laiendid seadmes, mille USB port võimaldab YubiKeyd kasutada." + }, + "twoFactorYubikeySupportMobile": { + "message": "NFC toega seadmel olevad äpid või USB port, mis võimaldab YubiKeyd kasutada." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F võtme $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn võti $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC tugi" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Üks minu võtmetest toetab NFC-d." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Kui üks sinu YubiKeydest (nt YubiKey Neo) toetab NFC-d, küsitakse sinult seda nutitelefonis, kui NFC olemasolu tuvastatakse." + }, + "yubikeysUpdated": { + "message": "YubiKeyd on uuendatud" + }, + "disableAllKeys": { + "message": "Blokeeri kõik Võtmed" + }, + "twoFactorDuoDesc": { + "message": "Sisesta oma Bitwardeni rakenduse informatsioon Duo admini paneelist." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integratsiooni võti" + }, + "twoFactorDuoSecretKey": { + "message": "Salajane võti" + }, + "twoFactorDuoApiHostname": { + "message": "API hostinimi" + }, + "twoFactorEmailDesc": { + "message": "Järgi allolevaid juhiseid, et võimaldada kaheastmeline kinnitamine e-posti teel:" + }, + "twoFactorEmailEnterEmail": { + "message": "Sisesta e-post, kuhu soovid kinnituskoode saada" + }, + "twoFactorEmailEnterCode": { + "message": "Sisesta e-postile saadetud 6 kohaline kinnituskood" + }, + "sendEmail": { + "message": "Saada e-kiri" + }, + "twoFactorU2fAdd": { + "message": "Lisa oma kontole FIDO U2F turvavõti" + }, + "removeU2fConfirmation": { + "message": "Oled kindel, et soovid selle turvavõtme eemaldada?" + }, + "twoFactorWebAuthnAdd": { + "message": "Lisa oma kontole WebAuthn turvavõti" + }, + "readKey": { + "message": "Loe võtit" + }, + "keyCompromised": { + "message": "Võti on ohus." + }, + "twoFactorU2fGiveName": { + "message": "Anna turvavõtmele lihtne nimi, et seda oleks lihtsam ära tunda." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Sisesta turvavõti arvuti USB pessa ning kliki \"Loe võtit\" nupul." + }, + "twoFactorU2fTouchButton": { + "message": "Kui turvavõtmel on nupp, siis vajuta seda." + }, + "twoFactorU2fSaveForm": { + "message": "Salvesta vorm." + }, + "twoFactorU2fWarning": { + "message": "Mõnede platvormi piirangute tõttu ei saa FIDO U2F-i kõikide Bitwardeni rakendustega kasutada. Võiksid kaaluda teise kaheastmelise kinnitamise aktiveerimist olukordadeks, kus FIDO U2F-i ei saa kasutada. Toetatud platvormid:" + }, + "twoFactorU2fSupportWeb": { + "message": "Veebihoidla- ja brauseri laiendused laua- ja sülearvutis, kus on U2F toega brauser (Chrome, Opera, Vivaldi või Firefox, kus on FIDO U2F sisse lülitatud)." + }, + "twoFactorU2fWaiting": { + "message": "Ootame, kuni puudutad turvavõtmel olevat nuppu" + }, + "twoFactorU2fClickSave": { + "message": "Kliki all olevale \"Salvesta\" nupule, et kaheastmeline kinnitamine läbi selle turvavõtme sisse lülitada." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Turvavõtme lugemisel tekkis tõrge. Proovi uuesti." + }, + "twoFactorWebAuthnWarning": { + "message": "Mõnede platvormi piirangute tõttu ei saa WebAuthn'i kõikide Bitwardeni rakendustega kasutada. Võiksid kaaluda teise kaheastmelise kinnitamise aktiveerimist olukordadeks, kus WebAuthn'i ei saa kasutada. Toetatud platvormid:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Veebihoidla- ja brauseri laiendused laua- ja sülearvutis, kus on WebAuthn toega brauser (Chrome, Opera, Vivaldi või Firefox, kus on FIDO U2F sisse lülitatud)." + }, + "twoFactorRecoveryYourCode": { + "message": "Bitwardeni kaheastmelise logimise varukood" + }, + "twoFactorRecoveryNoCode": { + "message": "Sa ei ole veel ühtegi kaheastmelise kinnituse teenust sisse lülitanud. Tule siia lehele pärast kaheastmelise kinnitamise sisselülitamist tagasi. Siis näed siin ka varukoodi, millega saad hädakorral kaheastmelise kinnitamise välja lülitada." + }, + "printCode": { + "message": "Prindi kood", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Raportid" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Ebaturvalise veebilehtede raport" + }, + "unsecuredWebsitesReportDesc": { + "message": "Ebaturvalise (http://) veebilehte kasutamine võib olla ohtlik. Kui veebileht seda võimaldab, siis soovitame tungivalt kasutada https:// versioon. Nii on ühendus ja saadetavad andmed krüpteeringuga kaitstud. " + }, + "unsecuredWebsitesFound": { + "message": "Leiti ebaturvalisi veebilehti" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Leidsime hoidlast $COUNT$ ebaturvalist veebilehte.\nKui võimalik, soovitame nende veebilehtede alguse tungivalt https:// -ks muuta. ", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Hoidlas olevad kirjed ei kasuta ebaturvalisi URI-sid." + }, + "inactive2faReport": { + "message": "Sisselülitamata 2FA raport" + }, + "inactive2faReportDesc": { + "message": "Kaheastmeline kinnitamine (2FA) on tähtis turvalisust lisav seadistus, mis aitab kontoandmeid kaitsta. Kui veebileht seda võimaldab, soovitame tungivalt kaheastmelise kinnituse sisse lülitada." + }, + "inactive2faFound": { + "message": "Kaheastmelise kinnituseta kontod" + }, + "inactive2faFoundDesc": { + "message": "Leidsime sinu hoidlast $COUNT$ veebilehte, kus kaheastmeline kinnitamine ei pruugi olla sisselülitatud (kontrolliks kasutatakse twofactorauth.org). Nende kontode paremaks kaitsmiseks soovitame kaheastmelise kinnitamise sisse lülitada.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Hoidlast ei leitud kontosid, kus kaheastmelise kinnitamise seadistus on välja lülitatud." + }, + "instructions": { + "message": "Juhised" + }, + "exposedPasswordsReport": { + "message": "Lekkinud paroolide raport" + }, + "exposedPasswordsReportDesc": { + "message": "Lekkinud paroolid on paroolid, mis pärinevad andmeleketest. Neid paroole võidakse müüa tumeveebis ning samuti võidakse nende kaudu ligi pääseda sinu teistesse kontodesse." + }, + "exposedPasswordsFound": { + "message": "Avastatud on lekkinud paroole" + }, + "exposedPasswordsFoundDesc": { + "message": "Leidsime sinu hoidlast $COUNT$ kirjet, millede paroolid on teadaolevate andmelekete tagajärjel avalikustatud. Soovitame tungivalt need paroolid ära vahetada.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Hoidlast ei leitud kirjeid, mis oleksid teadaolevate andmelekete kaudu avalikustatud." + }, + "checkExposedPasswords": { + "message": "Kontrolli lekkinud paroole" + }, + "exposedXTimes": { + "message": "Lekkinud $COUNT$ korda", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Nõrkade paroolide raport" + }, + "weakPasswordsReportDesc": { + "message": "Nõrgad paroolid on häkkerite poolt vägagi lihtsasti lahtimurtavad, sest selleks kasutatakse automatiseeritud tööriistu. Bitwardeni parooli genereerija aitab sul luua paroole, mida on märksa keerulisem lahti murda." + }, + "weakPasswordsFound": { + "message": "Avastatud on nõrgad paroolid" + }, + "weakPasswordsFoundDesc": { + "message": "Leidsime sinu hoidlast $COUNT$ kirjet, milledel on nõrgad paroolid. Soovitame tungivalt need paroolid tugevamate vastu välja vahetada.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Hoidlas olevatest kirjetest ei leitud nõrku paroole." + }, + "reusedPasswordsReport": { + "message": "Korduvate paroolide raport" + }, + "reusedPasswordsReportDesc": { + "message": "Kui sinu poolt kasutatav teenus või veebileht langeb rünnaku ohvriks, võib samasuguse parooli kasutamine anda häkkeritele ligipääsu sinu teistesse kasutajakontodesse. Soovitame tungivalt igas teenuses või kasutajakontos unikaalset parooli kasutada." + }, + "reusedPasswordsFound": { + "message": "Leiti korduvalt kasutatud paroole" + }, + "reusedPasswordsFoundDesc": { + "message": "Leidsime sinu hoidlast $COUNT$ parooli, mis on kasutusel rohkem kui üks kord Soovitame need paroolid unikaalseteks muuta.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Hoidlas puuduvad paroolid, mida kasutatakse rohkem kui üks kord." + }, + "reusedXTimes": { + "message": "Kasutusel $COUNT$ korral.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Andmelekke raport" + }, + "breachDesc": { + "message": "Andmeleke on intsident, kus sinu kasutajakonto andmed on lekkinud või häkkerite poolt varastatud. Soovitame tungivalt üle kontrollida lekkinud andmed (e-posti aadress, paroolid, krediitkaardi andmed jne) ning võtta kasutusele meetmed nende turvamiseks. Näiteks paroolivahetus." + }, + "breachCheckUsernameEmail": { + "message": "Kontrollitakse mistahes kasutajanimesid või e-posti aadresse, mida kontodes kasutatakse." + }, + "checkBreaches": { + "message": "Kontrolli lekkeid" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ ei leitud ühestki teadaolevast andmelekkest.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Head uudised!", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ esineb kokku $COUNT$ erinevas andmelekkes.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Lekkinud kontod" + }, + "compromisedData": { + "message": "Ohus olevad andmed" + }, + "website": { + "message": "Veebileht" + }, + "affectedUsers": { + "message": "Mõjutatud kasutajad" + }, + "breachOccurred": { + "message": "Leke toimus" + }, + "breachReported": { + "message": "Lekkest teatati" + }, + "reportError": { + "message": "Raporti laadimisel ilmes viga. Proovi uuesti" + }, + "billing": { + "message": "Maksmine" + }, + "accountCredit": { + "message": "Konto krediit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Kontojääk", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Krediidi lisamine", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Summa", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Lisatav krediit ilmub nähtavale pärast makse kinnitamist. Mõned maksemeetodid võivad olla aeglasemad ning nende kinnitamine võib võtta natukene aega." + }, + "makeSureEnoughCredit": { + "message": "Veendu, et kontol on selle ostu tegemiseks piisavalt krediiti. Ebapiisava krediidi puhul võetakse puuduolev summa teiselt (vaike) maksemeetodilt. Kontole saab krediiti lisada \"Maksmine\" menüü alt." + }, + "creditAppliedDesc": { + "message": "Konto krediiti saab kasutada maksete tegemiseks. Uue arve laekumisel kasutatakse selle tasumiseks esmajärjekorras kontol olevat krediiti." + }, + "goPremium": { + "message": "Hangi Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Oled nüüd Premium konto omanik." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Muuda oma konto premium kontoks ning saa osa paljudest lisahüvedest, mis sellega kaasnevad." + }, + "premiumSignUpStorage": { + "message": "1 GB ulatuses krüpteeritud salvestusruum." + }, + "premiumSignUpTwoStep": { + "message": "Lisavõimalused kaheastmeliseks kinnitamiseks, näiteks YubiKey, FIDO U2F ja Duo." + }, + "premiumSignUpEmergency": { + "message": "Hädaolukorra ligipääs" + }, + "premiumSignUpReports": { + "message": "Paroolide seisukorra ülevaade ja andmelekete raportid aitavad hoidla sisu turvalisena hoida." + }, + "premiumSignUpTotp": { + "message": "TOTP kinnituskoodide (2FA) genereerija hoidlas olevatele kasutajakontodele." + }, + "premiumSignUpSupport": { + "message": "Kiirem klienditugi." + }, + "premiumSignUpFuture": { + "message": "Kõik tulevased premium funktsioonid - tasuta!" + }, + "premiumPrice": { + "message": "Kõik see ainult $PRICE$ / aastas!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Lisad" + }, + "premiumAccess": { + "message": "Premium ligipääs" + }, + "premiumAccessDesc": { + "message": "Saad kõikidele organisatsiooni liikmetele anda ligipääsu premium funktsioonidele - hinnaga $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Lisaruum (GB)" + }, + "additionalStorageGbDesc": { + "message": "# lisa GB" + }, + "additionalStorageIntervalDesc": { + "message": "Sul on kasutada $SIZE$ krüpteeritud failiruumi. Soovi korral saad osta lisaruumi hinnaga $PRICE$ GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Kokkuvõte" + }, + "total": { + "message": "Kokku" + }, + "year": { + "message": "aasta" + }, + "month": { + "message": "kuu" + }, + "monthAbbr": { + "message": "kuu", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Makse sooritatakse kohe pärast tellimuse esitamist. Järgmine makse toimub aasta pärast. Tellimust on võimalik igal ajal tühistada." + }, + "paymentCharged": { + "message": "Esimene makse sooritatakse kohe pärast tellimuse esitamist. Järgmine makse toimub iga $INTERVAL$. Tellimust on võimalik igal ajal tühistada.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Valitud pakett sisaldab 7 päevast prooviperioodi. Krediitkaardilt ei võeta raha enne, kui prooviperiood läbi saab. Väljatoodud summa debiteeritakse iga $INTERVAL$. Tellimust on võimalik igal ajal tühistada." + }, + "paymentInformation": { + "message": "Maksemeetod" + }, + "billingInformation": { + "message": "Arveldusandmed" + }, + "creditCard": { + "message": "Krediitkaart" + }, + "paypalClickSubmit": { + "message": "Kliki PayPali nupul. Seejärel logi oma PayPali kontosse sisse ning kliki jätkamiseks \"Submit/Saada\" nupul." + }, + "cancelSubscription": { + "message": "Tühista tellimus" + }, + "subscriptionCanceled": { + "message": "Tellimus on tühistatud." + }, + "pendingCancellation": { + "message": "Tühistamise ootel" + }, + "subscriptionPendingCanceled": { + "message": "Tellimus on märgitud tühistatuks. Tellimus tühistatakse lõplikult käimasoleva arveperioodi lõpus." + }, + "reinstateSubscription": { + "message": "Tellimuse uuesti aktiveerimine" + }, + "reinstateConfirmation": { + "message": "Oled kindel, et soovid tühistamise tagasi võtta ja tellimuse uuesti aktiveerida?" + }, + "reinstated": { + "message": "Tellimus on uuesti aktiveeritud." + }, + "cancelConfirmation": { + "message": "Oled kindel, et soovid tellimuse tühistada? Kaotad sellega arveperioodi lõpus kõik tellimisega kaasnevad eelised." + }, + "canceledSubscription": { + "message": "Tellimus on tühistatud." + }, + "neverExpires": { + "message": "Ei aegu kunagi" + }, + "status": { + "message": "Olek" + }, + "nextCharge": { + "message": "Järgmine makse" + }, + "details": { + "message": "Andmed" + }, + "downloadLicense": { + "message": "Laadi litsents alla" + }, + "updateLicense": { + "message": "Uuenda litsentsi" + }, + "updatedLicense": { + "message": "Litsents on uuendatud" + }, + "manageSubscription": { + "message": "Tellimuse haldamine" + }, + "storage": { + "message": "Salvestusruum" + }, + "addStorage": { + "message": "Lisa ruumi" + }, + "removeStorage": { + "message": "Vähenda salvestusruumi" + }, + "subscriptionStorage": { + "message": "Sinu tellimus lubab kasutada maksimaalselt $MAX_STORAGE$ GB krüpteeritud salvestusruumi. Praegu on kasutusel $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Makseviis" + }, + "noPaymentMethod": { + "message": "Makseviisid puuduvad." + }, + "addPaymentMethod": { + "message": "Lisa makseviis" + }, + "changePaymentMethod": { + "message": "Muuda makseviisi" + }, + "invoices": { + "message": "Arved" + }, + "noInvoices": { + "message": "Arved puuduvad." + }, + "paid": { + "message": "Makstud", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Tasumata", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Tehingud", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Tehingud puuduvad." + }, + "chargeNoun": { + "message": "Makse", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Tagasimakse", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Mistahes maksed ilmuvad väljavõttes nimega $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "Lisatav GB hulk" + }, + "gbStorageRemove": { + "message": "Eemaldatav GB hulk" + }, + "storageAddNote": { + "message": "Salvestusruumi suurendamisel võetakse kehtiva maksemeetodi vahendusel koheselt selle eest ka tasu. Esimene makse tehakse proportsionaalselt koos järelejäänud summaga, mis sel arveldusperioodil tasuda tuleb." + }, + "storageRemoveNote": { + "message": "Salvestusmahu vähendamisel arvestatakse järelejäänud summa järgmisest maksest krediidina maha." + }, + "adjustedStorage": { + "message": "Kohandati $AMOUNT$ GB salvestusruumi.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Võta klienditoega ühendust" + }, + "updatedPaymentMethod": { + "message": "Maksemeetod on muudetud." + }, + "purchasePremium": { + "message": "Osta Premium" + }, + "licenseFile": { + "message": "Litsentsifail" + }, + "licenseFileDesc": { + "message": "Litsentsi nimi on sarnane $FILE_NAME$-le", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Muutmaks oma konto premiumiks, pead üles laadima kehtiva litsentsifaili." + }, + "uploadLicenseFileOrg": { + "message": "Loomaks asutusesiseseselt majutatud organisatsiooni, pead üles laadima kehtiva litsentsifaili." + }, + "accountEmailMustBeVerified": { + "message": "Vajalik on konto e-posti aadressi kinnitamine." + }, + "newOrganizationDesc": { + "message": "Organisatsioonid võimaldavad hoidla sisu osaliselt või täielikult jagada. Lisaks on võimalik kõiki kasutajaid liigitada näiteks perekonda, väiksesse meeskonda või suurde ettevõttesse." + }, + "generalInformation": { + "message": "Üldine Informatsioon" + }, + "organizationName": { + "message": "Organisatsiooni nimi" + }, + "accountOwnedBusiness": { + "message": "Seda kontot omab ettevõte." + }, + "billingEmail": { + "message": "Arve saaja e-posti aadress" + }, + "businessName": { + "message": "Ettevõtte nimi" + }, + "chooseYourPlan": { + "message": "Vali pakett" + }, + "users": { + "message": "Kasutajad" + }, + "userSeats": { + "message": "Kasutajad" + }, + "additionalUserSeats": { + "message": "Lisakasutajad" + }, + "userSeatsDesc": { + "message": "# kasutajaid" + }, + "userSeatsAdditionalDesc": { + "message": "Sinu pakett sisaldab $BASE_SEATS$ kasutajat. Soovi korral saad lisada kasutajaid juurde hinnaga $SEAT_PRICE$ kasutaja / kuus.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Vali vajalik arv kasutajaid. Neid on võimalik iga kell juurde lisada või eemaldada." + }, + "planNameFree": { + "message": "Tasuta", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Testimiseks ja isiklikuks kasutamiseks, jagamaks $COUNT$ teise Bitwardeni kasutajaga.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Perekond" + }, + "planDescFamilies": { + "message": "Isiklikuks kasutamiseks, jagamaks sõprade ja perega." + }, + "planNameTeams": { + "message": "Meeskond" + }, + "planDescTeams": { + "message": "Ettevõtetele ja teistele meeskondadele ja organisatsioonidele." + }, + "planNameEnterprise": { + "message": "Suurettevõte" + }, + "planDescEnterprise": { + "message": "Suurtele ettevõtetele ja organisatsioonidele." + }, + "freeForever": { + "message": "Igavesti tasuta" + }, + "includesXUsers": { + "message": "sisaldab $COUNT$ kasutajat", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Lisakasutajad" + }, + "costPerUser": { + "message": "$COST$ kasutaja kohta", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limiit $COUNT$ kasutajat (sh sina)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limiit $COUNT$ kollektsiooni", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Lisa ja jaga kuni $COUNT$ kasutajaga", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Lisa ja jaga kirjeid piiramatul hulgal kasutajatega" + }, + "createUnlimitedCollections": { + "message": "Loo piiramatul hulgal kollektsioone" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ ulatuses krüpteeritud salvestusruumi", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Ise majutamise võimalus (valikuline)" + }, + "usersGetPremium": { + "message": "Liikmed saavad automaatse juurdepääsu premium funktsioonidele" + }, + "controlAccessWithGroups": { + "message": "Halda gruppide abil kasutajate ligipääsu õigusi" + }, + "syncUsersFromDirectory": { + "message": "Sünkroniseeri kasutajaid ja gruppe kataloogist" + }, + "trackAuditLogs": { + "message": "Jälgi kasutaja tegevusi auditi logidega" + }, + "enforce2faDuo": { + "message": "Jõusta 2FA Duo-ga" + }, + "priorityCustomerSupport": { + "message": "Kiirem klienditugi" + }, + "xDayFreeTrial": { + "message": "$COUNT$ päevane prooviversioon, mida saab iga kell tühistada", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Igakuiselt" + }, + "annually": { + "message": "Tasumine aasta kaupa" + }, + "basePrice": { + "message": "Baashind" + }, + "organizationCreated": { + "message": "Organisatsioon on loodud" + }, + "organizationReadyToGo": { + "message": "Uus organisatsioon on kasutamiseks valmis!" + }, + "organizationUpgraded": { + "message": "Organisatsioon on täiendatud." + }, + "leave": { + "message": "Lahku" + }, + "leaveOrganizationConfirmation": { + "message": "Kas oled kindel, et soovid sellest organisatsioonist lahkuda?" + }, + "leftOrganization": { + "message": "Oled organisatsioonist lahkunud." + }, + "defaultCollection": { + "message": "Vaikekogumik" + }, + "getHelp": { + "message": "Klienditugi" + }, + "getApps": { + "message": "Hangi rakendused" + }, + "loggedInAs": { + "message": "Sisse logitud kui" + }, + "eventLogs": { + "message": "Sündmuste logid" + }, + "people": { + "message": "Liikmed" + }, + "policies": { + "message": "Poliitikad" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Muuda poliitikat" + }, + "groups": { + "message": "Grupid" + }, + "newGroup": { + "message": "Uus grupp" + }, + "addGroup": { + "message": "Lisa grupp" + }, + "editGroup": { + "message": "Muuda gruppi" + }, + "deleteGroupConfirmation": { + "message": "Tahad kindlasti selle grupi kustutada?" + }, + "removeUserConfirmation": { + "message": "Tahad kindlasti selle kasutaja eemaldada?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "Väline ID" + }, + "externalIdDesc": { + "message": "Välist Id-d kasutatakse viitena või näiteks selleks, et siduda need ressursid välise süsteemiga, nagu näites kasutaja kataloog." + }, + "accessControl": { + "message": "Ligipääsu haldamine" + }, + "groupAccessAllItems": { + "message": "See grupp pääseb ligi ja saab muuta kõiki kirjeid." + }, + "groupAccessSelectedCollections": { + "message": "See grupp pääseb ligi ainult valitud kirjetele." + }, + "readOnly": { + "message": "Saab ainult lugeda" + }, + "newCollection": { + "message": "Uus kogumik" + }, + "addCollection": { + "message": "Lisa kogumik" + }, + "editCollection": { + "message": "Muuda kogumikku" + }, + "deleteCollectionConfirmation": { + "message": "Oled kindel, et soovid selle kogumiku kustutada?" + }, + "editUser": { + "message": "Kasutaja muutmine" + }, + "inviteUser": { + "message": "Kutsu kasutaja" + }, + "inviteUserDesc": { + "message": "Kutsu organisatsiooni uusi kasutajaid, sisestades alla nende Bitwardeni konto e-posti aadressid. Kui neil ei ole veel Bitwardeni kontot, pakutakse neile võimalus see luua." + }, + "inviteMultipleEmailDesc": { + "message": "Saad kutsuda kuni $COUNT$ kasutajat. Eralda nende e-posti aadressid komaga.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Sellel kasutajal on kaheastmeline kinnitamine sisse lülitatud." + }, + "userAccessAllItems": { + "message": "See kasutaja pääseb ligi ja saab muuta kõiki kirjeid." + }, + "userAccessSelectedCollections": { + "message": "See kasutaja pääseb ligi ja saab muuta ainult valitud kollektsioone." + }, + "search": { + "message": "Otsi" + }, + "invited": { + "message": "Kutsutud" + }, + "accepted": { + "message": "Nõustunud" + }, + "confirmed": { + "message": "Kinnitatud" + }, + "clientOwnerEmail": { + "message": "Kliendist omaniku e-post" + }, + "owner": { + "message": "Omanik" + }, + "ownerDesc": { + "message": "Kõige suurema ligipääsuga kasutaja, kes saab hallata kõike organisatsiooniga seonduvat." + }, + "clientOwnerDesc": { + "message": "See kasutaja peaks olema teenuse osutajast erinev. Kui teenuse osutaja ei kuulu enam organisatsiooni, jääb see kasutaja organisatsiooni omanikuks." + }, + "admin": { + "message": "Administraator" + }, + "adminDesc": { + "message": " Administraatorid pääsevad ligi ja haldavad kõiki organisatsiooni kirjeid, kollektsioone ja kasutajaid." + }, + "user": { + "message": "Kasutaja" + }, + "userDesc": { + "message": "Tavaline kasutaja, kel on ligipääsu organisatsiooni kirjetele." + }, + "manager": { + "message": "Haldaja" + }, + "managerDesc": { + "message": "Administraatorid pääsevad ligi ja saavad hallata organisatsiooni poolt määratud kollektsioone." + }, + "all": { + "message": "Kõik" + }, + "refresh": { + "message": "Värskenda" + }, + "timestamp": { + "message": "Ajatempel" + }, + "event": { + "message": "Sündmus" + }, + "unknown": { + "message": "Tundmatu" + }, + "loadMore": { + "message": "Laadi veel" + }, + "mobile": { + "message": "Mobiil", + "description": "Mobile app" + }, + "extension": { + "message": "Laiendus", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Töölaud", + "description": "Desktop app" + }, + "webVault": { + "message": "Veebihoidla" + }, + "loggedIn": { + "message": "Logis sisse." + }, + "changedPassword": { + "message": "Muuda konto parooli." + }, + "enabledUpdated2fa": { + "message": "Lülitasime sisse/uuendasime kaheastmelist kinnitamist." + }, + "disabled2fa": { + "message": "Keela kaheastmeline kinnitamine." + }, + "recovered2fa": { + "message": "Konto on taastatud kaheastmelisest kinnitamisest." + }, + "failedLogin": { + "message": "Sisselogimine nurjus vale parooli tõttu." + }, + "failedLogin2fa": { + "message": "Sisselogimine nurjus vale kaheastmelise kinnituse tõttu." + }, + "exportedVault": { + "message": "Eksportis hoidla." + }, + "exportedOrganizationVault": { + "message": "Eksportis organisatsiooni hoidla." + }, + "editedOrgSettings": { + "message": "Organisatsiooni seaded on muudetud." + }, + "createdItemId": { + "message": "Lõi kirje $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Muutis kirjet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Kustutas kirje $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Kirje $ID$ on teisaldatud organisatsiooni.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Vaatas kirjet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Vaatas kirje $ID$ parooli.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Vaatas kirje $ID$ peidetud välja.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Vaatas kirje $ID$ turvakoodi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Kopeeris kirje $ID$ parooli.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Kopeeris kirje $ID$ peidetud välja.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Kopeeris kirje $ID$ turvakoodi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Sisestas kirje $ID$ automaatselt.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Lõi kollektsiooni $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Muutis kollektsiooni $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Kustutas kollektsiooni $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Muutis poliitikat $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Lõi grupi $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Muutis gruppi $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Kustutas grupi $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Kasutaja $ID$ on eemaldatud.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Lisas kirjele $ID$ manuse.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Kustutas kirje $ID$ manuse.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Muutis kirje $ID$ kollektsioone.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Kutsus kasutaja $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Kinnitas kasutaja $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Muutis kasutajat $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Muutis kasutaja $ID$ gruppe.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Kasutaja $ID$ SSO on eemaldatud.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Lõi organisatsiooni $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Lisas organisatsiooni $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Eemaldas organisatsiooni $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Vaatas organisatsiooni $ID$ hoidlat.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Seade" + }, + "view": { + "message": "Vaata" + }, + "invalidDateRange": { + "message": "Vale andmevahemik." + }, + "errorOccurred": { + "message": "Ilmnes viga." + }, + "userAccess": { + "message": "Kasutaja ligipääs" + }, + "userType": { + "message": "Kasutaja tüüp" + }, + "groupAccess": { + "message": "Grupi ligipääs" + }, + "groupAccessUserDesc": { + "message": "Muuda gruppe, kuhu see kasutaja kuulub." + }, + "invitedUsers": { + "message": "Kutse on saadetud." + }, + "resendInvitation": { + "message": "Saada kutse uuesti" + }, + "resendEmail": { + "message": "Saada e-kiri uuesti" + }, + "hasBeenReinvited": { + "message": "$USER$ on uuesti kutsutud.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Kinnita" + }, + "confirmUser": { + "message": "Kinnita kasutaja" + }, + "hasBeenConfirmed": { + "message": "Kasutaja $USER$ on kinnitatud.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Kasutajate kinnitamine" + }, + "usersNeedConfirmed": { + "message": "Osad kasutajad on küll organisatsiooniga liitunud, aga vajavad veel eraldi kinnitamist. Kasutajad ei pääse organisatsiooni kirjetele ligi enne, kui nad on kinnitatud." + }, + "startDate": { + "message": "Alguskuupäev" + }, + "endDate": { + "message": "Lõpukuupäev" + }, + "verifyEmail": { + "message": "E-posti aadressi kinnitamine" + }, + "verifyEmailDesc": { + "message": "Kõikide funktsioonide kasutamiseks pead oma konto e-posti aadressi kinnitama." + }, + "verifyEmailFirst": { + "message": "Esmalt pead kinnitama konto e-poesti aadressi." + }, + "checkInboxForVerification": { + "message": "E-posti aadressile saadeti kinnituslink." + }, + "emailVerified": { + "message": "E-posti aadress on kinnitatud." + }, + "emailVerifiedFailed": { + "message": "E-posti kinnitamine nurjus. Proovi uut kinnituskirja saata." + }, + "emailVerificationRequired": { + "message": "Vajalik on e-posti kinnitamine" + }, + "emailVerificationRequiredDesc": { + "message": "Enne selle funktsiooni kasutamist pead oma e-posti kinnitama." + }, + "updateBrowser": { + "message": "Uuenda brauserit" + }, + "updateBrowserDesc": { + "message": "Kasutad brauserit, mida ei toetata. Veebihoidla ei pruugi hästi töötada." + }, + "joinOrganization": { + "message": "Liitu organisatsiooniga" + }, + "joinOrganizationDesc": { + "message": "Sind on kutsutud ülal oleva organisatsiooniga liituma. Liitumise kinnitamiseks pead oma Bitwardeni kontosse sisse logima. Kui sul ei ole veel kontot, saad selle luua." + }, + "inviteAccepted": { + "message": "Kutse on vastu võetud" + }, + "inviteAcceptedDesc": { + "message": "Pääsed organisatsiooni kirjetele ligi niipea, kui administraator sinu liikmelisuse kinnitab. Teavitame sind sellest e-posti teel." + }, + "inviteAcceptFailed": { + "message": "Kutse vastuvõtmine nurjus. Palu organisatsiooni administraatoril uus kutse saata." + }, + "inviteAcceptFailedShort": { + "message": "Kutset ei õnnestu vastu võtta. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Pea e-posti aadressi meeles" + }, + "recoverAccountTwoStepDesc": { + "message": "Kui sa ei pääse oma kontole ühegi kaheastmeliste kinnitamise meetodi abiga ligi, saad selle välja lülitada. Selleks kasuta kaheastmelise kinnitamise tühistamise koodi." + }, + "recoverAccountTwoStep": { + "message": "Taasta kaheastmelise kinnitamise ligipääs" + }, + "twoStepRecoverDisabled": { + "message": "Sinu konto kaheastmeline kinnitamine on välja lülitatud." + }, + "learnMore": { + "message": "Rohkem teavet" + }, + "deleteRecoverDesc": { + "message": "Sisesta e-posti aadress oma konto taastamiseks ja kustutamiseks." + }, + "deleteRecoverEmailSent": { + "message": "Kui sinu konto eksisteerib, saatsime e-postile edasised juhised." + }, + "deleteRecoverConfirmDesc": { + "message": "Oled avaldanud soovi oma Bitwardeni konto kustutamiseks. Selle kinnitamiseks kliki allolevale nupule." + }, + "myOrganization": { + "message": "Minu organisatsioon" + }, + "deleteOrganization": { + "message": "Kustuta organisatsioon" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organisatsioon on kustutatud" + }, + "organizationDeletedDesc": { + "message": "Organisatsioon ja kõik sellega seonduvad andmed on kustutatud." + }, + "organizationUpdated": { + "message": "Organisatsiooni on uuendatud" + }, + "taxInformation": { + "message": "Käibemaksu info" + }, + "taxInformationDesc": { + "message": "Käibemaksu informatsiooni uuendamiseks võta ühendust klienditoega." + }, + "billingPlan": { + "message": "Pakett", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Muuda paketti", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Vii oma konto järgmisele tasemele, sisestades selleks all nõutud info. Enne selle tegemist veendu, et kontol on olemas toimiv maksemeetod.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Arve #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Vaata arvet" + }, + "downloadInvoice": { + "message": "Laadi arve alla" + }, + "verifyBankAccount": { + "message": "Pangakonto kinnitamine" + }, + "verifyBankAccountDesc": { + "message": "Tegime sinu pangakontole kaks väikest ülekannet (nende kohalejõudmine võib võtta 1-2 tööpäeva). Selleks, et pangakonto kinnitada, sisesta need summad siia." + }, + "verifyBankAccountInitialDesc": { + "message": "Pangaülekandega tasumine on saadaval ainult Ameerika Ühendriikide klientidele. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organization's billing page to verify the bank account." + }, + "verifyBankAccountFailureWarning": { + "message": "Pangakonto mittekinnitamine tähendab seda, et makset ei toimu ning konto kaotab oma tellimusega kaasnevad eelised." + }, + "verifiedBankAccount": { + "message": "Pangakonto on kinnitatud." + }, + "bankAccount": { + "message": "Pangakontoga" + }, + "amountX": { + "message": "Summa $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Account Number" + }, + "accountHolderName": { + "message": "Account Holder Name" + }, + "bankAccountType": { + "message": "Konto tüüp" + }, + "bankAccountTypeCompany": { + "message": "Ettevõte (äri)" + }, + "bankAccountTypeIndividual": { + "message": "Eraisik (personaalne)" + }, + "enterInstallationId": { + "message": "Sisesta oma paigalduse id" + }, + "limitSubscriptionDesc": { + "message": "Määra maksimaalne kasutajate limiit. Limiidi täitumisel ei saa enam uusi kasutajaid kutsuda." + }, + "maxSeatLimit": { + "message": "Maksimaalne kasutajate limiit (valikuline)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Lisa kasutajaid", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Eemalda kasutajaid", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Sinu tellimus lubab kasutada/luua kokku $COUNT$ kasutajakontot.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Lisatavad kasutajad" + }, + "seatsToRemove": { + "message": "Eemaldatavad kasutajad" + }, + "seatsAddNote": { + "message": "Kasutajate hulga suurendamisel võetakse kehtiva maksemeetodi vahendusel selle eest koheselt ka tasu. Esimene makse tehakse proportsionaalselt koos järelejäänud summaga, mis sel arveldusperioodil tasuda tuleb." + }, + "seatsRemoveNote": { + "message": "Kasutajate eemaldamisel arvestatakse järelejäänud summa järgmisest maksest krediidina maha." + }, + "adjustedSeats": { + "message": "Kohandas $AMOUNT$ kasutaja kohta.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Võti on uuendatud" + }, + "updateKeyTitle": { + "message": "Uuenda võtit" + }, + "updateEncryptionKey": { + "message": "Uuenda krüpteerimisvõtit" + }, + "updateEncryptionKeyShortDesc": { + "message": "Kasutad hetkeseisuga aegunud krüpteerimise skeemi." + }, + "updateEncryptionKeyDesc": { + "message": "Oleme kasutusele võtnud suuremad krüpteerimise võtmed, mis pakuvad paremat turvalisust ja uusi funktsioone. Krüpteerimisvõtmete uuendamine on lihtne ja kiire. Piisab ainult ülemparooli sisestamisest. See uuendus on möödapääsmatu ja tuleb ära teha." + }, + "updateEncryptionKeyWarning": { + "message": "Pärast krüpteerimisvõtme uuendamist pead kõikides seadmetes, kus Bitwardeni rakendust kasutad, oma kontosse uuesti sisse logima (nt nutitelefonis ja brauseris). Välja- ja sisselogimise (mis ühtlasi laadib ka uue krüpteerimisvõtme) nurjumine võib tingida andmete riknemise. Üritame sinu seadmetest ise välja logida, aga see võib võtta natukene aega." + }, + "updateEncryptionKeyExportWarning": { + "message": "Mistahes krüpteeritud, eksporditud andmed muutuvad samuti vigaseks." + }, + "subscription": { + "message": "Tellimus" + }, + "loading": { + "message": "Laadimine" + }, + "upgrade": { + "message": "Täienda" + }, + "upgradeOrganization": { + "message": "Täienda organisatsiooni" + }, + "upgradeOrganizationDesc": { + "message": "See funktsioon ei ole tasuta organisatsioonidele saadaval. Hangi tasuline versioon, mis sisaldab rohkem funktsioone." + }, + "createOrganizationStep1": { + "message": "Organisatsiooni loomine: Samm 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Enne organisatsiooni loomist pead registreerima tasuta konto." + }, + "refunded": { + "message": "Tagasi makstud" + }, + "nothingSelected": { + "message": "Midagi pole valitud." + }, + "acceptPolicies": { + "message": "Märkeruudu markeerimisel nõustud järgnevaga:" + }, + "acceptPoliciesError": { + "message": "Kasutustingimuste ja Privaatsuspoliitikaga pole nõustutud." + }, + "termsOfService": { + "message": "Kasutustingimused" + }, + "privacyPolicy": { + "message": "Privaatsuspoliitika" + }, + "filters": { + "message": "Filtrid" + }, + "vaultTimeout": { + "message": "Hoidla ajalõpp" + }, + "vaultTimeoutDesc": { + "message": "Vali aeg, peale mida sooritatakse allpool valitud tegevus." + }, + "oneMinute": { + "message": "1 minuti pärast" + }, + "fiveMinutes": { + "message": "5 minuti pärast" + }, + "fifteenMinutes": { + "message": "15 minuti pärast" + }, + "thirtyMinutes": { + "message": "30 minuti pärast" + }, + "oneHour": { + "message": "1 tunni pärast" + }, + "fourHours": { + "message": "4 tunni pärast" + }, + "onRefresh": { + "message": "Brauseri sulgemisel" + }, + "dateUpdated": { + "message": "Uuendatud", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Parool on uuendatud", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organisatsioon on välja lülitatud." + }, + "licenseIsExpired": { + "message": "Litsents on aegunud." + }, + "updatedUsers": { + "message": "Kasutajad on uuendatud" + }, + "selected": { + "message": "Valitud" + }, + "ownership": { + "message": "Omanik" + }, + "whoOwnsThisItem": { + "message": "Kes on selle kirje omanik?" + }, + "strong": { + "message": "Tugev", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Hea", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Nõrk", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Väga nõrk", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Nõrk ülemparool" + }, + "weakMasterPasswordDesc": { + "message": "Valitud ülemparool on nõrk. Oma Bitwardeni konto paremaks kaitsmiseks peaksid kasutama tugevamat parooli. Oled kindel, et soovid valitud parooli ülemparoolina kasutada?" + }, + "rotateAccountEncKey": { + "message": "Roteeri ka minu konto krüpteerimise võtit" + }, + "rotateEncKeyTitle": { + "message": "Roteeri krüpteerimise võtit" + }, + "rotateEncKeyConfirmation": { + "message": "Oled kindel, et soovid oma konto krüpteerimise võtit roteerida?" + }, + "attachmentsNeedFix": { + "message": "Sellel kirjel on vanu manuseid, mille peab parandama." + }, + "attachmentFixDesc": { + "message": "See on vana failimanus, mille peab parandama. Rohkema teabe saamiseks kliki siia." + }, + "fix": { + "message": "Paranda", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Hoidlas on vanu failimanuseid, mida peab enne konto krüpteerimise võtme roteerimist parandama." + }, + "yourAccountsFingerprint": { + "message": "Konto sõrmejälje fraas", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Selleks, et sinu krüpteeringu terviklikkus säiliks, pead jätkamiseks kinnitama kasutaja sõrmejälje fraasi.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Ära enam sõrmejälje fraasi kinnitamist küsi", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Tasuta", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API võti" + }, + "apiKeyDesc": { + "message": "Sinu API võtit saab kasutada Bitwardeni avalikus API-s autentimiseks." + }, + "apiKeyRotateDesc": { + "message": "API roteerimine muudab eelmise võtme kehtetuks. API võtme roteerimine on kasulik olukordades, kus on oht, et aktiivne võti ei pruugi enam turvaline olla." + }, + "apiKeyWarning": { + "message": "Sinu API võtmel on täielik ligipääs organisatsioonile. Seda võtit peab salajas hoidma ja kaitsma." + }, + "userApiKeyDesc": { + "message": "Sinu API võtit saab kasutada Bitwardeni CLI-s autentimiseks." + }, + "userApiKeyWarning": { + "message": "API võti on alternatiivne autentimise mehhanism. Seda tuleks salajas hoida." + }, + "oauth2ClientCredentials": { + "message": "OAuthi 2.0 kliendi tunnistus", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Vaata API võtit" + }, + "rotateApiKey": { + "message": "API võtme roteerimine" + }, + "selectOneCollection": { + "message": "Pead valima vähemalt ühe kollektsiooni." + }, + "couldNotChargeCardPayInvoice": { + "message": "Meil ei õnnestunud kaardil olevat raha kasutada. Palun vaata all olevat arvet ja maksa see käsitsi." + }, + "inAppPurchase": { + "message": "Äpi sisene maksmine" + }, + "cannotPerformInAppPurchase": { + "message": "Seda tegevust ei saa sooritada, sest kasutad äpi sisest maksemeetodit." + }, + "manageSubscriptionFromStore": { + "message": "Saad oma tellimust hallata poest, kust äpi sisese ostu sooritasid." + }, + "minLength": { + "message": "Minimaalne pikkus" + }, + "clone": { + "message": "Klooni" + }, + "masterPassPolicyDesc": { + "message": "Määra minimaalsed ülemparooli tugevuse tingimused." + }, + "twoStepLoginPolicyDesc": { + "message": "Nõua, et kasutajad seadistaksid oma kontodes kaheastmelise kinnituse." + }, + "twoStepLoginPolicyWarning": { + "message": "Organisatsiooni liikmed, kel pole kaheastmeline kinnitamine sisse lülitatud, eemaldatakse organisatsioonist ning neile saadetakse sellekohane e-kiri." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Kuulud organisatsiooni, mis nõuab kontol kaheastmelise kinnitamise sisselülitamist.\nKui lülitad välja kõik Kaheastmelise kinnitamise valikud, eemaldatakse sind organisatsioonist." + }, + "passwordGeneratorPolicyDesc": { + "message": "Määra parooli genereerija konfiguratsiooni tingimused." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Organisatsiooni seaded mõjutavad parooli genereerija sätteid." + }, + "masterPasswordPolicyInEffect": { + "message": "Üks või enam organisatsiooni eeskirja nõuavad, et ülemparool vastaks nendele nõudmistele:" + }, + "policyInEffectMinComplexity": { + "message": "Minimaalne keerulisuse skoor peab olema $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimaalne pikkus peab olema $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Sisaldab üht või enamat suurtähte" + }, + "policyInEffectLowercase": { + "message": "Sisaldab üht või enamat väiketähte" + }, + "policyInEffectNumbers": { + "message": "Sisaldab üht või rohkem numbreid" + }, + "policyInEffectSpecial": { + "message": "Sisaldab üht või enamat järgnevatest märkidest: $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Uus ülemparool ei vasta eeskirjades väljatoodud tingimustele." + }, + "minimumNumberOfWords": { + "message": "Minimaalne sõnade arv" + }, + "defaultType": { + "message": "Vaiketüüp" + }, + "userPreference": { + "message": "Kasutaja eelistus" + }, + "vaultTimeoutAction": { + "message": "Sooritatav tegevus" + }, + "vaultTimeoutActionLockDesc": { + "message": "Lukustamisel nõutakse hoidlale uuesti ligi pääsemiseks ülemparooli." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Väljalogimisel nõutakse hoidlale uuesti ligi pääsemiseks autentimist." + }, + "lock": { + "message": "Lukusta", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Prügikast", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Otsi prügikastist" + }, + "permanentlyDelete": { + "message": "Kustuta kirje jäädavalt" + }, + "permanentlyDeleteSelected": { + "message": "Kustuta valitud jäädavalt" + }, + "permanentlyDeleteItem": { + "message": "Kustuta kirje jäädavalt" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Oled kindel, et soovid selle kirje jäädavalt kustutada?" + }, + "permanentlyDeletedItem": { + "message": "Kirje on jäädavalt kustutatud" + }, + "permanentlyDeletedItems": { + "message": "Kirjed on jäädavalt kustutatud" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Oled valinud jäädavaks kustutamiseks $COUNT$ kirje(t). Oled kindel, et soovid need kirjed jäädavalt kustutada?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "$ID$ kirjet on jäädavalt kustutatud.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Taasta" + }, + "restoreSelected": { + "message": "Taasta valitud" + }, + "restoreItem": { + "message": "Taasta kirje" + }, + "restoredItem": { + "message": "Kirje on taastatud" + }, + "restoredItems": { + "message": "Kirjed on taastatud" + }, + "restoreItemConfirmation": { + "message": "Oled kindel, et soovid selle kirje taastada?" + }, + "restoreItems": { + "message": "Taasta kirjed" + }, + "restoreSelectedItemsDesc": { + "message": "Oled taastamiseks valinud $COUNT$ kirje(t). Oled kindel, et soovid kõik need kirjed taastada?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Taastas kirje $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Väljalogimine tähendab, et hoidlale ei pääse enam ligi ning sisselogimiseks peab konto uuesti autentima. Oled kindel, et soovid seda valikut kasutada?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Ajalõpu tegevuse kinnitamine" + }, + "hidePasswords": { + "message": "Peida paroolid" + }, + "countryPostalCodeRequiredDesc": { + "message": "Vajame seda informatsiooni ainult käibemaksu arvutamiseks ja finantsraportite jaoks." + }, + "includeVAT": { + "message": "Lisa KM andmed (valikuline)" + }, + "taxIdNumber": { + "message": "KMKR nr" + }, + "taxInfoUpdated": { + "message": "Käibemaksu informatsioon on uuendatud." + }, + "setMasterPassword": { + "message": "Määra ülemparool" + }, + "ssoCompleteRegistration": { + "message": "SSO-ga sisselogimise kinnitamiseks tuleb määrata ülemparool. See kaitseb sinu hoidlat ning võimaldab sellele ligi pääseda." + }, + "identifier": { + "message": "Identifikaator" + }, + "organizationIdentifier": { + "message": "Organisatsiooni identifikaator" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Sisselogimine läbi organisatsiooni ühekordse sisselogimise portaali. Jätkamiseks sisesta ettevõtte identifikaator." + }, + "enterpriseSingleSignOn": { + "message": "Ettevõtte Single Sign-On" + }, + "ssoHandOff": { + "message": "Võid nüüd selle vahelehe sulgeda ning jätkata brauseri laienduses." + }, + "includeAllTeamsFeatures": { + "message": "Kõik Meeskonna funktsioonid, lisaks:" + }, + "includeSsoAuthentication": { + "message": "SSO autentimine läbi SAML2.0 ja OpenID Connect-i" + }, + "includeEnterprisePolicies": { + "message": "Ettevõtte poliitikate rakendamine" + }, + "ssoValidationFailed": { + "message": "SSO kinnitamine nurjus" + }, + "ssoIdentifierRequired": { + "message": "Nõutud on organisatsioon identifikaator." + }, + "unlinkSso": { + "message": "Ühenda SSO lahti" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Ühenda SSO" + }, + "singleOrg": { + "message": "Üksainus organisatsioon" + }, + "singleOrgDesc": { + "message": "Keela kasutajatel teiste organisatsioonidega liitumine." + }, + "singleOrgBlockCreateMessage": { + "message": "Sinu praeguse organisatsiooni poliitika kohaselt ei saa sa olla rohkem kui ühe organisatsiooni liige. Palun kontakteeru oma praeguse organisatsiooni administraatoritega või kasuta liitumiseks teist Bitwardeni kontot." + }, + "singleOrgPolicyWarning": { + "message": "Sisselülitamisel eemaldatakse organisatsioonist liikmed, kes on juba mõne teise organisatsiooniga liitunud. See ei puuduta liikmeid, kelle staatus on Omanik või Administraator." + }, + "requireSso": { + "message": "Single Sign-On autentimine" + }, + "requireSsoPolicyDesc": { + "message": "Nõua kasutajatelt sisselogimist läbi Ettevõtte Single Sign-On meetodi." + }, + "prerequisite": { + "message": "Eeltingimus" + }, + "requireSsoPolicyReq": { + "message": "Selle poliitika aktiveerimise eelduseks on valiku „Üksainus organisatsioon“ sisselülitamine." + }, + "requireSsoPolicyReqError": { + "message": "Poliitika „Üksainus organisatsioon“ ei ole sisse lülitatud." + }, + "requireSsoExemption": { + "message": "Selle poliitika rakendamine ei puuduta Omanikke ega Administraatoreid." + }, + "sendTypeFile": { + "message": "Fail" + }, + "sendTypeText": { + "message": "Tekst" + }, + "createSend": { + "message": "Loo uus Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Muuda Sendi", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send on loodud", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Muutis Sendi", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Kustutas Sendi", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Kustuta Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Soovid tõesti selle Sendi kustutada?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Mis tüüpi Send see on?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Kustutamise kuupäev" + }, + "deletionDateDesc": { + "message": "Send kustutatakse määratud kuupäeval ja kellaajal jäädavalt.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Aegumiskuupäev" + }, + "expirationDateDesc": { + "message": "Selle valimisel ei pääse sellele Sendile enam pärast määratud kuupäeva ligi.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maksimaalne ligipääsude arv" + }, + "maxAccessCountDesc": { + "message": "Selle valimisel ei saa kasutajad pärast maksimaalse ligipääsude arvu saavutamist sellele Sendile enam ligi.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Hetkeline ligipääsude arv" + }, + "sendPasswordDesc": { + "message": "Soovi korral nõua parooli, millega Sendile ligi pääseb.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Privaatne märkus selle Sendi kohta.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Keelatud" + }, + "sendLink": { + "message": "Sendi link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Kopeeri Sendi link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Eemalda parool" + }, + "removedPassword": { + "message": "Eemaldas parooli" + }, + "removePasswordConfirmation": { + "message": "Soovid kindlasti selle parooli eemaldada?" + }, + "hideEmail": { + "message": "Ära näita saajatele minu e-posti aadressi." + }, + "disableThisSend": { + "message": "Keela see Send, et keegi ei pääseks sellele ligi.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Kõik Sendid" + }, + "maxAccessCountReached": { + "message": "Maksimaalne ligipääsude arv on saavutatud", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Kustutamise ootel" + }, + "expired": { + "message": "Aegunud" + }, + "searchSends": { + "message": "Otsi Sende", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "See Send on parooliga kaitstud. Jätkamiseks sisesta parool allolevale väljale.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Sa ei tea parooli? Küsi seda konkreetse Sendi saatjalt.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "See Send on vaikeseades peidetud. Saad selle nähtavust alloleva nupu abil seadistada.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Laadi fail alla" + }, + "sendAccessUnavailable": { + "message": "Send, millele üritad ligi pääseda, ei eksisteeri või see pole enam saadaval.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Sendiga seotud faili ei suudetud leida.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Puuduvad Sendid, mida kuvada.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Hädaolukorra ligipääs" + }, + "emergencyAccessDesc": { + "message": "Siin saad hallata ning seadistada usaldusväärseid kontakte, kes saavad hädaolukorral sinu Hoidla sisu kas Vaadata või Üle võtta. Rohkema info saamiseks vaata meie abilehekülge. Tegemist on turvalise ja „zero-knowledge“ lahendusega." + }, + "emergencyAccessOwnerWarning": { + "message": "Oled ühe või enama organisatsiooni omanik. Andes ligipääsu hädaolukorra kontaktile, saab ta pärast konto ülevõtmist ka Organisatsiooni õiguseid kasutada." + }, + "trustedEmergencyContacts": { + "message": "Usaldusväärsed hädaolukorra kontaktid" + }, + "noTrustedContacts": { + "message": "Hetkel pole ühtei kontakti määratud. Alustamiseks saada usaldusväärsele kontaktile kutse." + }, + "addEmergencyContact": { + "message": "Lisa hädaolukorra kontakt" + }, + "designatedEmergencyContacts": { + "message": "Oled järgnevate kontode hädaolukorra kontakt" + }, + "noGrantedAccess": { + "message": "Sind ei ole hetkel ühelegi kontole hädaolukorra kontaktiks määratud." + }, + "inviteEmergencyContact": { + "message": "Hädaolukorra kontakti loomine" + }, + "editEmergencyContact": { + "message": "Hädaolukorra kontakti muutmine" + }, + "inviteEmergencyContactDesc": { + "message": "Kutsu oma hädaolukorra kontaktiks usaldusväärne kasutaja. Selleks sisestades alla tema Bitwardeni konto e-posti aadress. Kui tal ei ole veel Bitwardeni kontot, pakutakse talle võimalus see luua." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Hädaolukorra ligipääs on käivitatud" + }, + "emergencyAccessRecoveryApproved": { + "message": "Hädaolukorra ligipääs on kinnitatud" + }, + "viewDesc": { + "message": "Saab vaadata sinu Hoidla täit sisu." + }, + "takeover": { + "message": "Ülevõtmine" + }, + "takeoverDesc": { + "message": "Saab määrata kontole uue ülemparooli." + }, + "waitTime": { + "message": "Ooteaeg" + }, + "waitTimeDesc": { + "message": "Aeg, peale mida võimaldatakse määratud isikule automaatne ligipääs." + }, + "oneDay": { + "message": "1 päev" + }, + "days": { + "message": "$DAYS$ päeva", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Kasutaja on kutsutud." + }, + "acceptEmergencyAccess": { + "message": "Sind on kutsutud ülal oleva kasutaja hädaolukorra kontaktiks. Liitumise kinnitamiseks pead oma Bitwardeni kontosse sisse logima. Kui sul ei ole veel kontot, saad selle luua." + }, + "emergencyInviteAcceptFailed": { + "message": "Kutse vastuvõtmine nurjus. Palu kasutajal uus kutse saata." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Kutset ei õnnestu vastu võtta. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Selle kasutaja hädaolukorra valikutele ligipääsuks on vajalik identiteedi kinnitamine. Pärast kinnitamist saadame sulle vastavasisulise e-kirja." + }, + "requestAccess": { + "message": "Taotle ligipääsu" + }, + "requestAccessConfirmation": { + "message": "Oled kindel, et soovid esitada hädaolukorra ligipääsu taotluse? Ligipääsu võimaldatakse pärast $WAITTIME$ päev(a) või niipea, kui teine kasutaja sinu selle heaks kiidab.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Kasutajale $USER$ on saadet hädaolukorra ligipääsu kutse. Anname e-kirjaga märku, kui saad selle seadistamisega edasi minna.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Kinnita" + }, + "reject": { + "message": "Keeldu" + }, + "approveAccessConfirmation": { + "message": "Oled kindel, et soovid hädaolukorra ligipääsu päringu heaks kiita? See võimaldab kasutajal $USER$ sinu kontoga teha järgnevat: $ACTION$.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Hädaolukorra ligipääs on kinnitatud." + }, + "emergencyRejected": { + "message": "Hädaolukorra ligipääsust keelduti" + }, + "passwordResetFor": { + "message": "$USER$ parool on lähtestatud. Saad nüüd uue parooliga sisse logida.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personaalne salvestamine" + }, + "personalOwnershipPolicyDesc": { + "message": "Nõua kasutajatelt andmete salvestamist organisatsiooni hoidlasse, eemaldades personaalse hoidla valiku." + }, + "personalOwnershipExemption": { + "message": "Selle poliitika rakendamine ei puuduta Omanikke ega Administraatoreid." + }, + "personalOwnershipSubmitError": { + "message": "Ettevõtte poliitika tõttu ei saa sa andmeid oma personaalsesse Hoidlasse salvestada. Vali Omanikuks organisatsioon ja vali mõni saadavaolevatest Kogumikest." + }, + "disableSend": { + "message": "Keela Send" + }, + "disableSendPolicyDesc": { + "message": "Ära võimalda kasutajatel Bitwardeni Sende luua või muuta. Olemasolevate Sendide kustutamise võimalikkus säilib.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "See muudatus ei mõjuta neid organisatsiooni liikmeid, kes saavad hallata organisatsiooni poliitikaid." + }, + "sendDisabled": { + "message": "Send on väljalülitatud", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Ettevõtte poliitika kohaselt saad ainult olemasolevat Sendi kustutada.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Sendi valikud", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Määra valikud Sendi loomiseks ja muutmiseks.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "See muudatus ei mõjuta neid organisatsiooni liikmeid, kes saavad hallata organisatsiooni poliitikaid." + }, + "disableHideEmail": { + "message": "Ära luba kasutajatel Sendi loomisel või muutmisel oma e-posti aadressi saajate eest peita.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Hetkel on kehtivad järgmised organisatsiooni poliitikad:" + }, + "sendDisableHideEmailInEffect": { + "message": "Kasutajatel pole lubatud Sendi loomisel või muutmisel oma e-posti aadressi saajate eest peita.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Muutis poliitikat $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Hind" + }, + "estimatedTax": { + "message": "Eeldatavad maksud" + }, + "custom": { + "message": "Kohandatud" + }, + "customDesc": { + "message": "Pakub kasutajate haldamiseks ja õiguste määramiseks rohkem võimalusi." + }, + "permissions": { + "message": "Õigused" + }, + "accessEventLogs": { + "message": "Ligipääs sündmuste logile" + }, + "accessImportExport": { + "message": "Ligipääs impordile/ekspordile" + }, + "accessReports": { + "message": "Ligipääs raportitele" + }, + "missingPermissions": { + "message": "Sul pole selle toimingu tegemiseks luba." + }, + "manageAllCollections": { + "message": "Saab hallata kõiki kollektsioone" + }, + "createNewCollections": { + "message": "Luua uusi kollektsioone" + }, + "editAnyCollection": { + "message": "Muuta mistahes kollektsiooni" + }, + "deleteAnyCollection": { + "message": "Kustutada mistahes kollektsiooni" + }, + "manageAssignedCollections": { + "message": "Saab hallata määratud kollektsioone" + }, + "editAssignedCollections": { + "message": "Hallata määratud kollektsioone" + }, + "deleteAssignedCollections": { + "message": "Kustutada määratud kollektsioone" + }, + "manageGroups": { + "message": "Gruppide haldamine" + }, + "managePolicies": { + "message": "Poliitikate haldamine" + }, + "manageSso": { + "message": "SSO haldamine" + }, + "manageUsers": { + "message": "Kasutajate haldamine" + }, + "manageResetPassword": { + "message": "Parooli lähtestamise haldamine" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Organisatsiooni poliitika on seadnud omaniku valikutele piirangu." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Keela organisatsiooni liikmetel paroolide salvestamine isiklikku Hoidlasse" + }, + "textHiddenByDefault": { + "message": "Sendi avamisel peida tekst automaatselt", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Sisesta Sendi nimi (kohustuslik).", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Tekst, mida soovid saata." + }, + "sendFileDesc": { + "message": "Fail, mida soovid saata." + }, + "copySendLinkOnSave": { + "message": "Salvestamisel kopeeri Sendi jagamise link lõikepuhvrisse." + }, + "sendLinkLabel": { + "message": "Sendi link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwardeni Send võimaldab sensitiivset, ajutist informatsiooni hõlpsasti ning turvaliselt edastada.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Rohkem infot", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Jaga tekste või faile ükskõik kellega." + }, + "sendVaultCardLearnMore": { + "message": "Rohkem infot", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "vaata", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "kuidas see töötab", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "või", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "proovi ise järele", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "või", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "loo konto,", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "et seda ise proovida.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwardeni kasutaja $USER_IDENTIFIER$ jagas sinuga järgnevat", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Selle Sendi looja ei soovi oma e-posti aadressi avaldada. Palun veendu, et see pärineb usaldusväärsest allikast, enne kui asud selle sisu kasutama või faile alla laadima.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Valitud aegumiskuupäev ei ole õige." + }, + "deletionDateIsInvalid": { + "message": "Valitud kustutamise kuupäev ei ole õige." + }, + "expirationDateAndTimeRequired": { + "message": "Nõutav on aegumiskuupäev ja kellaaeg." + }, + "deletionDateAndTimeRequired": { + "message": "Nõutav on kustutamise kuupäev ja kellaaeg." + }, + "dateParsingError": { + "message": "Kustutamis- ja aegumiskuupäevade salvestamisel ilmnes tõrge." + }, + "webAuthnFallbackMsg": { + "message": "2FA kinnitamiseks kliki alloleval nupul." + }, + "webAuthnAuthenticate": { + "message": "WebAuthn kinnitamine" + }, + "webAuthnNotSupported": { + "message": "Sinu brauser ei toeta WebAuthn'i." + }, + "webAuthnSuccess": { + "message": "WebAuthn on edukalt kinnitatud! Võid selle vahelehe sulgeda." + }, + "hintEqualsPassword": { + "message": "Parooli vihje ei saa olla sama mis parool ise." + }, + "enrollPasswordReset": { + "message": "Liitu parooli lähtestamise valikuga" + }, + "enrolledPasswordReset": { + "message": "Liitusid parooli lähtestamise valikuga" + }, + "withdrawPasswordReset": { + "message": "Tühista nõusolek parooli lähtestamiseks" + }, + "enrollPasswordResetSuccess": { + "message": "Liitumine õnnestus!" + }, + "withdrawPasswordResetSuccess": { + "message": "Tühistamine õnnestus!" + }, + "eventEnrollPasswordReset": { + "message": "Kasutaja $ID$ liitus parooli lähtestamise valikuga.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Kasutaja $ID$ tühistas parooli taastamise valiku nõusuoleku.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Kasutaja $ID$ ülemparool on lähtestatud.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logis esimest korda läbi SSO sisse", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Lähtesta parool" + }, + "resetPasswordLoggedOutWarning": { + "message": "Jätkates logitakse $NAME$ praegusest sessioonis välja, mistõttu peavad nad kontosse uuesti sisse logima. Teised kontoga ühendatud seadmed võivad jääda sisselogituks kuni üheks tunniks.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "see kasutaja" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Üks või enam organisatsiooni eeskirja nõuavad, et ülemparool vastaks nendele nõudmistele:" + }, + "resetPasswordSuccess": { + "message": "Parool on edukalt lähtestatud!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Liitumine võimaldab organisatsiooni administraatoritel sinu ülemparooli muuta. Oled kindel, et soovid liituda?" + }, + "resetPasswordPolicy": { + "message": "Ülemparooli lähtestamine" + }, + "resetPasswordPolicyDescription": { + "message": "Võimalda organisatsiooni administraatoritel kasutajate ülemparooli lähtestada." + }, + "resetPasswordPolicyWarning": { + "message": "Organisatsiooni kuuluvad kasutajad peavad ise liituma või nad liidetakse automaatselt, enne kui nende ülemparooli lähtestada saab." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automaatne liitumine" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Kõik kasutajad, kes aktsepteerivad kutse, liidetakse automaatselt parooli lähtestamise funktsiooniga." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Kasutajad, kes on juba organisatsiooni liikmed, liidetakse parooli lähtestamise valikuga tagasiulatuvalt. Nad peavad selle ise üle kinnitama, enne kui administraatoritel tekib võimalus nende paroole lähtestada." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Liida uued kasutajad automaatselt" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Selle organisatsiooni poliitika kohaselt liidetakse sind automaatselt ülemparooli lähtestamise funktsiooniga. Liitumisel saavad organisatsiooni administraatorid sinu ülemparooli muuta." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Salakirjad, mis on olnud prügikastis enam kui 30 päeva, kustutatakse automaatselt." + }, + "trashCleanupWarningSelfHosted": { + "message": "Salakirjad, mis on olnud mõnda aega prügikastis, kustutatakse automaatselt." + }, + "passwordPrompt": { + "message": "Nõutav on ülemparool" + }, + "passwordConfirmation": { + "message": "Ülemparooli kinnitamine" + }, + "passwordConfirmationDesc": { + "message": "See tegevus on kaitstud. Jätkamiseks sisesta oma ülemparool." + }, + "reinviteSelected": { + "message": "Saada kutsed uuesti" + }, + "noSelectedUsersApplicable": { + "message": "See valik rakendub mistahes valitud kasutajatele." + }, + "removeUsersWarning": { + "message": "Oled kindel, et soovid järgnevaid kasutajaid eemaldada? See tegevus võib võtta paar sekundit ning seda ei saa katkestada." + }, + "theme": { + "message": "Teema" + }, + "themeDesc": { + "message": "Vali oma veebihoidlale teema." + }, + "themeSystem": { + "message": "Kasuta süsteemi teemat" + }, + "themeDark": { + "message": "Tume" + }, + "themeLight": { + "message": "Hele" + }, + "confirmSelected": { + "message": "Kinnita valitud" + }, + "bulkConfirmStatus": { + "message": "Masstegevuse staatus" + }, + "bulkConfirmMessage": { + "message": "Edukalt kinnitatud." + }, + "bulkReinviteMessage": { + "message": "Edukalt uuesti kutsutud." + }, + "bulkRemovedMessage": { + "message": "Edukalt eemaldatud" + }, + "bulkFilteredMessage": { + "message": "Välja jäetud, ei rakendu sellel tegevuse puhul." + }, + "fingerprint": { + "message": "Sõrmejälg" + }, + "removeUsers": { + "message": "Kasutajate eemaldamine" + }, + "error": { + "message": "Viga" + }, + "resetPasswordManageUsers": { + "message": "\"Parooli lähtestamise haldamine\" nõuab ka valiku \"Kasutajate haldamine\" sisselülitamist" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Lisa" + }, + "updatedMasterPassword": { + "message": "Uuendas ülemparooli" + }, + "updateMasterPassword": { + "message": "Ülemparooli uuendamine" + }, + "updateMasterPasswordWarning": { + "message": "Organisatsiooni administraator muutis hiljuti sinu ülemparooli. Hoidlale ligi pääsemiseks pead ülemparooli uuendama. Jätkates logitakse sind käimasolevast sessioonist välja, misjärel nõutakse uuesti sisselogimist. Teistes seadmetes olevad aktiivsed sessioonid jäävad aktiivseks kuni üheks tunniks." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Hoidla ajalõpp" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Tundi" + }, + "minutes": { + "message": "Minutit" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Organisatsiooni poliitikad mõjutavad sinu hoidla ajalõppu. Maksimaalne lubatud hoidla ajalõpp on $HOURS$ tund(i) ja $MINUTES$ minut(it)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "E-kiri on saadetud" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Ühenduse loomine Key Connectoriga ebaõnnestus. Proovi hiljem uuesti." + }, + "keyConnectorUrl": { + "message": "Key Connectori URL" + }, + "sendVerificationCode": { + "message": "Saada kinnituskood oma e-postile" + }, + "sendCode": { + "message": "Saada kood" + }, + "codeSent": { + "message": "Kood on saadetud" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Jätkamiseks kinnita oma identiteet." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Testi" + }, + "keyConnectorTestSuccess": { + "message": "Õnnestus! Key Connectoriga saadi ühendust." + }, + "keyConnectorTestFail": { + "message": "Key Connectoriga ei saa ühendust. Kontrolli URL-i." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/fi/messages.json b/apps/web/src/locales/fi/messages.json new file mode 100644 index 0000000000..b47697bb92 --- /dev/null +++ b/apps/web/src/locales/fi/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$-verkkoholvi", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Minkä tyyppinen kohde tämä on?" + }, + "name": { + "message": "Nimi" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Uusi URI" + }, + "username": { + "message": "Käyttäjätunnus" + }, + "password": { + "message": "Salasana" + }, + "newPassword": { + "message": "Uusi salasana" + }, + "passphrase": { + "message": "Salauslauseke" + }, + "notes": { + "message": "Merkinnät" + }, + "customFields": { + "message": "Lisäkentät" + }, + "cardholderName": { + "message": "Kortinhaltijan nimi" + }, + "number": { + "message": "Numero" + }, + "brand": { + "message": "Merkki" + }, + "expiration": { + "message": "Erääntymisaika" + }, + "securityCode": { + "message": "Turvakoodi (CVC/CVV)" + }, + "identityName": { + "message": "Henkilöllisyyden nimi" + }, + "company": { + "message": "Yritys" + }, + "ssn": { + "message": "Henkilötunnus" + }, + "passportNumber": { + "message": "Passin numero" + }, + "licenseNumber": { + "message": "Ajokortin numero" + }, + "email": { + "message": "Sähköpostiosoite" + }, + "phone": { + "message": "Puhelinnumero" + }, + "january": { + "message": "Tammikuu" + }, + "february": { + "message": "Helmikuu" + }, + "march": { + "message": "Maaliskuu" + }, + "april": { + "message": "Huhtikuu" + }, + "may": { + "message": "Toukokuu" + }, + "june": { + "message": "Kesäkuu" + }, + "july": { + "message": "Heinäkuu" + }, + "august": { + "message": "Elokuu" + }, + "september": { + "message": "Syyskuu" + }, + "october": { + "message": "Lokakuu" + }, + "november": { + "message": "Marraskuu" + }, + "december": { + "message": "Joulukuu" + }, + "title": { + "message": "Titteli" + }, + "mr": { + "message": "Hra" + }, + "mrs": { + "message": "Rva" + }, + "ms": { + "message": "Nti" + }, + "dr": { + "message": "Tri" + }, + "expirationMonth": { + "message": "Erääntymiskuukausi" + }, + "expirationYear": { + "message": "Erääntymisvuosi" + }, + "authenticatorKeyTotp": { + "message": "Todennusmenetelmän avain (TOTP)" + }, + "folder": { + "message": "Kansio" + }, + "newCustomField": { + "message": "Uusi lisäkenttä" + }, + "value": { + "message": "Arvo" + }, + "dragToSort": { + "message": "Järjestele raahaamalla" + }, + "cfTypeText": { + "message": "Teksti" + }, + "cfTypeHidden": { + "message": "Piilotettu" + }, + "cfTypeBoolean": { + "message": "Totuusarvo" + }, + "cfTypeLinked": { + "message": "Linkitetty", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Poista" + }, + "unassigned": { + "message": "Määrittämätön" + }, + "noneFolder": { + "message": "Ei kansiota", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Lisää kansio" + }, + "editFolder": { + "message": "Muokkaa kansiota" + }, + "baseDomain": { + "message": "Pääverkkotunnus", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Verkkotunnus", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Isäntä", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Tarkka" + }, + "startsWith": { + "message": "Alkaa" + }, + "regEx": { + "message": "Säännöllinen lauseke", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Tunnistustapa", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Tunnistuksen oletustapa", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Ei koskaan" + }, + "toggleVisibility": { + "message": "Näytä tai piilota" + }, + "toggleCollapse": { + "message": "Laajenna tai pienennä", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Luo salasana" + }, + "checkPassword": { + "message": "Tarkasta, onko salasana paljastunut." + }, + "passwordExposed": { + "message": "Salasana on paljastunut $VALUE$ tietovuodossa ja se tulisi vaihtaa.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Salasanaa ei löytynyt tunnetuista tietovuodoista ja sen pitäisi olla turvallinen." + }, + "save": { + "message": "Tallenna" + }, + "cancel": { + "message": "Peruuta" + }, + "canceled": { + "message": "Peruttu" + }, + "close": { + "message": "Sulje" + }, + "delete": { + "message": "Poista" + }, + "favorite": { + "message": "Suosikki" + }, + "unfavorite": { + "message": "Poista suosikeista" + }, + "edit": { + "message": "Muokkaa" + }, + "searchCollection": { + "message": "Hae kokoelmasta" + }, + "searchFolder": { + "message": "Hae kansiosta" + }, + "searchFavorites": { + "message": "Hae suosikeista" + }, + "searchType": { + "message": "Hae tyypeistä", + "description": "Search item type" + }, + "searchVault": { + "message": "Hae holvista" + }, + "allItems": { + "message": "Kaikki kohteet" + }, + "favorites": { + "message": "Suosikit" + }, + "types": { + "message": "Tyypit" + }, + "typeLogin": { + "message": "Käyttäjätunnus" + }, + "typeCard": { + "message": "Kortti" + }, + "typeIdentity": { + "message": "Henkilöllisyys" + }, + "typeSecureNote": { + "message": "Salattu muistio" + }, + "typeLoginPlural": { + "message": "Kirjautumistiedot" + }, + "typeCardPlural": { + "message": "Kortit" + }, + "typeIdentityPlural": { + "message": "Henkilöllisyydet" + }, + "typeSecureNotePlural": { + "message": "Salatut muistiot" + }, + "folders": { + "message": "Kansiot" + }, + "collections": { + "message": "Kokoelmat" + }, + "firstName": { + "message": "Etunimi" + }, + "middleName": { + "message": "Toinen nimi" + }, + "lastName": { + "message": "Sukunimi" + }, + "fullName": { + "message": "Koko nimi" + }, + "address1": { + "message": "Osoite 1" + }, + "address2": { + "message": "Osoite 2" + }, + "address3": { + "message": "Osoite 3" + }, + "cityTown": { + "message": "Paikkakunta" + }, + "stateProvince": { + "message": "Osavaltio/maakunta" + }, + "zipPostalCode": { + "message": "Postinumero" + }, + "country": { + "message": "Maa" + }, + "shared": { + "message": "Jaettu" + }, + "attachments": { + "message": "Liitteet" + }, + "select": { + "message": "Valitse" + }, + "addItem": { + "message": "Lisää kohde" + }, + "editItem": { + "message": "Muokkaa kohdetta" + }, + "viewItem": { + "message": "Näytä kohde" + }, + "ex": { + "message": "esim.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Muut" + }, + "share": { + "message": "Jaa" + }, + "moveToOrganization": { + "message": "Siirrä organisaatiolle" + }, + "valueCopied": { + "message": "$VALUE$ kopioitu", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Kopioi arvo", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Kopioi salasana", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Kopioi käyttäjätunnus", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Kopioi numero", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Kopioi turvakoodi", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Kopioi URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Oma holvi" + }, + "vault": { + "message": "Holvi" + }, + "moveSelectedToOrg": { + "message": "Siirrä valitut organisaatiolle" + }, + "deleteSelected": { + "message": "Poista valitut" + }, + "moveSelected": { + "message": "Siirrä valitut" + }, + "selectAll": { + "message": "Valitse kaikki" + }, + "unselectAll": { + "message": "Tyhjennä valinnat" + }, + "launch": { + "message": "Avaa" + }, + "newAttachment": { + "message": "Lisää uusi tiedostoliite" + }, + "deletedAttachment": { + "message": "Tiedostoliite poistettu" + }, + "deleteAttachmentConfirmation": { + "message": "Haluatko varmasti poistaa liitteen?" + }, + "attachmentSaved": { + "message": "Tiedostoliite tallennettu." + }, + "file": { + "message": "Tiedosto" + }, + "selectFile": { + "message": "Valitse tiedosto." + }, + "maxFileSize": { + "message": "Tiedoston enimmäiskoko on 500 Mt." + }, + "updateKey": { + "message": "Et voi käyttää tätä toimintoa ennen kuin päivität salausavaimesi." + }, + "addedItem": { + "message": "Kohde lisätty" + }, + "editedItem": { + "message": "Kohdetta muokattu" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ siirrettiin organisaatiolle $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Valitut kohteet siirrettiin organisaatiolle $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Poista kohde" + }, + "deleteFolder": { + "message": "Poista kansio" + }, + "deleteAttachment": { + "message": "Poista tiedostoliite" + }, + "deleteItemConfirmation": { + "message": "Haluatko varmasti siirtää kohteen roskakoriin?" + }, + "deletedItem": { + "message": "Kohde siirrettiin roskakoriin" + }, + "deletedItems": { + "message": "Kohteet siirrettiin roskakoriin" + }, + "movedItems": { + "message": "Kohteet siirretty" + }, + "overwritePasswordConfirmation": { + "message": "Haluatko varmasti korvata nykyisen salasanan?" + }, + "editedFolder": { + "message": "Kansiota muokattu" + }, + "addedFolder": { + "message": "Kansio lisätty" + }, + "deleteFolderConfirmation": { + "message": "Haluatko varmasti poistaa kansion?" + }, + "deletedFolder": { + "message": "Kansio poistettu" + }, + "loggedOut": { + "message": "Kirjauduttu ulos" + }, + "loginExpired": { + "message": "Kirjautumisistuntosi on erääntynyt." + }, + "logOutConfirmation": { + "message": "Haluatko varmasti kirjautua ulos?" + }, + "logOut": { + "message": "Kirjaudu ulos" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Kyllä" + }, + "no": { + "message": "Ei" + }, + "loginOrCreateNewAccount": { + "message": "Kirjaudu sisään tai luo uusi tili päästäksesi salattuun holviisi." + }, + "createAccount": { + "message": "Luo tili" + }, + "logIn": { + "message": "Kirjaudu sisään" + }, + "submit": { + "message": "Jatka" + }, + "emailAddressDesc": { + "message": "Käytät sähköpostiosoitettasi sisäänkirjautumiseen." + }, + "yourName": { + "message": "Nimesi" + }, + "yourNameDesc": { + "message": "Millä nimellä meidän tulee kutsua sinua?" + }, + "masterPass": { + "message": "Pääsalasana" + }, + "masterPassDesc": { + "message": "Pääsalasanalla pääset käsiksi holviisi. On erittäin tärkeää, että muistat pääsalasanasi, koska sen palautus ei ole mahdollista, jos unohdat sen." + }, + "masterPassHintDesc": { + "message": "Pääsalasanan vihje voi auttaa sinua muistamaan unohtamasi salasanan." + }, + "reTypeMasterPass": { + "message": "Syötä pääsalasana uudelleen" + }, + "masterPassHint": { + "message": "Pääsalasanan vihje (valinnainen)" + }, + "masterPassHintLabel": { + "message": "Pääsalasanan vihje" + }, + "settings": { + "message": "Asetukset" + }, + "passwordHint": { + "message": "Salasanavihje" + }, + "enterEmailToGetHint": { + "message": "Syötä tilisi sähköpostiosoite saadaksesi pääsalasanasi vihjeen." + }, + "getMasterPasswordHint": { + "message": "Pyydä pääsalasanan vihjettä" + }, + "emailRequired": { + "message": "Sähköpostiosoite vaaditaan." + }, + "invalidEmail": { + "message": "Virheellinen sähköpostiosoite." + }, + "masterPassRequired": { + "message": "Pääsalasana vaaditaan." + }, + "masterPassLength": { + "message": "Pääsalasanan on oltava vähintään 8 merkkiä pitkä." + }, + "masterPassDoesntMatch": { + "message": "Pääsalasanan vahvistus ei täsmää." + }, + "newAccountCreated": { + "message": "Uusi käyttäjätilisi on luotu! Voit nyt kirjautua sisään." + }, + "masterPassSent": { + "message": "Lähetimme pääsalasanasi vihjeen sähköpostitse." + }, + "unexpectedError": { + "message": "Tapahtui odottamaton virhe." + }, + "emailAddress": { + "message": "Sähköpostiosoite" + }, + "yourVaultIsLocked": { + "message": "Holvisi on lukittu. Syötä pääsalasana jatkaaksesi." + }, + "unlock": { + "message": "Avaa" + }, + "loggedInAsEmailOn": { + "message": "Kirjautuneena tunnuksella $EMAIL$ palveluun $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Virheellinen pääsalasana" + }, + "lockNow": { + "message": "Lukitse nyt" + }, + "noItemsInList": { + "message": "Ei näytettäviä kohteita." + }, + "noCollectionsInList": { + "message": "Ei näytettäviä kokoelmia." + }, + "noGroupsInList": { + "message": "Ei näytettäviä ryhmiä." + }, + "noUsersInList": { + "message": "Ei näytettäviä käyttäjiä." + }, + "noEventsInList": { + "message": "Ei näytettäviä tapahtumia." + }, + "newOrganization": { + "message": "Uusi organisaatio" + }, + "noOrganizationsList": { + "message": "Et kuulu mihinkään organisaatioon. Organisaatioiden avulla voit jakaa kohteita turvallisesti muiden käyttäjien kanssa." + }, + "versionNumber": { + "message": "Versio $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Syötä 6-numeroinen todennuskoodi todennussovelluksestasi." + }, + "enterVerificationCodeEmail": { + "message": "Syötä 6-numeroinen todennuskoodi, joka lähetettiin sähköpostitse osoitteeseen $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Todennussähköposti lähetettiin osoitteeseen $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Muista minut" + }, + "sendVerificationCodeEmailAgain": { + "message": "Lähetä todennuskoodi sähköpostitse uudelleen" + }, + "useAnotherTwoStepMethod": { + "message": "Käytä eri kaksivaiheisen kirjautumisen todennusmenetelmää" + }, + "insertYubiKey": { + "message": "Kytke YubiKey-todennuslaitteesi tietokoneen USB-porttiin ja paina sen painiketta." + }, + "insertU2f": { + "message": "Kytke todennuslaitteesi tietokoneen USB-porttiin ja jos laitteessa on painike, paina sitä." + }, + "loginUnavailable": { + "message": "Kirjautuminen ei ole käytettävissä" + }, + "noTwoStepProviders": { + "message": "Tilillä on käytössä kaksivaiheinen kirjautuminen, mutta tämä selain ei tue käytettävissä olevia todentajia." + }, + "noTwoStepProviders2": { + "message": "Käytä tuettua selainta (kuten Chrome) ja lisää/tai ota käyttöön laajemmin tuettu todentaja (kuten todennussovellus)." + }, + "twoStepOptions": { + "message": "Kaksivaiheisen kirjautumisen asetukset" + }, + "recoveryCodeDesc": { + "message": "Etkö pysty käyttämään kaksivaiheisen kirjautumisen todentajiasi? Poista kaikki tilisi menetelmät käytöstä palautuskoodillasi." + }, + "recoveryCodeTitle": { + "message": "Palautuskoodi" + }, + "authenticatorAppTitle": { + "message": "Todennussovellus" + }, + "authenticatorAppDesc": { + "message": "Käytä todennussovellusta (kuten Authy tai Google/Microsoft Authenticator) luodaksesi aikarajallisia todennuskoodeja.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP" + }, + "yubiKeyDesc": { + "message": "Käytä YubiKey-todennuslaitetta tilisi avaukseen. Toimii YubiKey 4 ja 5 -sarjojen sekä NEO -laitteiden kanssa." + }, + "duoDesc": { + "message": "Vahvista kirjautuminen Duo Securityn avulla käyttäen Duo Mobile ‑sovellusta, tekstiviestiä, puhelua tai U2F-todennuslaitetta.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Vahvista kirjautuminen organisaatiollesi Duo Securityn avulla käyttäen Duo Mobile ‑sovellusta, tekstiviestiä, puhelua tai U2F-todennuslaitetta.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Käytä tilisi avaukseen mitä tahansa FIDO U2F ‑yhteensopivaa todennuslaitetta." + }, + "u2fTitle": { + "message": "FIDO U2F ‑todennuslaite" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Käytä mitä tahansa WebAuthn‑yhteensopivaa todennuslaitetta päästäksesi käsiksi tiliisi." + }, + "webAuthnMigrated": { + "message": "(siirretty FIDO:sta)" + }, + "emailTitle": { + "message": "Sähköpostiosoite" + }, + "emailDesc": { + "message": "Todennuskoodit lähetetään sinulle sähköpostitse." + }, + "continue": { + "message": "Jatka" + }, + "organization": { + "message": "Organisaatio" + }, + "organizations": { + "message": "Organisaatiot" + }, + "moveToOrgDesc": { + "message": "Valitse organisaatio, jolle haluat siirtää kohteen. Tämä siirtää kohteen organisaation omistukseen, etkä tämän jälkeen ole enää sen suora omistaja." + }, + "moveManyToOrgDesc": { + "message": "Valitse organisaatio, jolle haluat siirtää kohteet. Tämä siirtää kohteet organisaation omistukseen, etkä tämän jälkeen ole enää niiden suora omistaja." + }, + "collectionsDesc": { + "message": "Muokkaa kokoelmia, joihin tämä kohde on jaettu. Kohteen näkevät vain ne organisaation käyttäjät, joilla on käyttöoikeus näihin kokoelmiin." + }, + "deleteSelectedItemsDesc": { + "message": "Olet valinnut $COUNT$ kohdetta poistettavaksi. Haluatko varmasti poistaa ne kaikki?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Valitse kansio, johon haluat siirtää $COUNT$ kohdetta.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Olet valinnut $COUNT$ kohdetta. $MOVEABLE_COUNT$ kohdetta voidaan siirtää organisaatioon, $NONMOVEABLE_COUNT$ ei.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Todennuskoodi (TOTP)" + }, + "copyVerificationCode": { + "message": "Kopioi todennuskoodi" + }, + "warning": { + "message": "Varoitus" + }, + "confirmVaultExport": { + "message": "Vahvista holvin vienti" + }, + "exportWarningDesc": { + "message": "Vienti sisältää holvisi tiedot salaamattomassa muodossa. Sinun ei tulisi säilyttää tai lähettää vietyä tiedostoa suojaamattomien kanavien (kuten sähköpostin) välityksellä. Poista se välittömästi kun sille ei enää ole käyttöä." + }, + "encExportKeyWarningDesc": { + "message": "Vienti salaa tietosi käyttäen tilisi salausavainta. Jos joskus uudistat tilisi salausavaimen, tulisi vienti suorittaa uudelleen, koska et voi enää purkaa nyt viedyn tiedoston salausta." + }, + "encExportAccountWarningDesc": { + "message": "Tilin salausavaimet ovat ainutlaatuisia jokaiselle Bitwarden-käyttäjätilille, joten et voi tuoda salattua vientitiedostoa toiselle tilille." + }, + "export": { + "message": "Vie" + }, + "exportVault": { + "message": "Vie holvi" + }, + "fileFormat": { + "message": "Tiedostomuoto" + }, + "exportSuccess": { + "message": "Holvisi tiedot on viety." + }, + "passwordGenerator": { + "message": "Salasanageneraattori" + }, + "minComplexityScore": { + "message": "Monimutkaisuuden vähimmäispistemäärä" + }, + "minNumbers": { + "message": "Numeroita vähintään" + }, + "minSpecial": { + "message": "Erikoismerkkejä vähintään", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Vältä epäselviä merkkejä" + }, + "regeneratePassword": { + "message": "Luo uusi salasana" + }, + "length": { + "message": "Pituus" + }, + "numWords": { + "message": "Sanojen määrä" + }, + "wordSeparator": { + "message": "Sanojen erotin" + }, + "capitalize": { + "message": "Sanat isoilla alkukirjaimilla", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Sisällytä numero" + }, + "passwordHistory": { + "message": "Salasanahistoria" + }, + "noPasswordsInList": { + "message": "Ei näytettäviä salasanoja." + }, + "clear": { + "message": "Tyhjennä", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Tili päivitetty" + }, + "changeEmail": { + "message": "Vaihda sähköpostiosoite" + }, + "changeEmailTwoFactorWarning": { + "message": "Jatkamalla tilisi sähköpostiosoite vaihtuu, muttei kaksivaiheiseen kirjautumiseen käytettävä osoite. Sen voit vaihtaa kaksivaiheisen kirjautumisen asetuksista." + }, + "newEmail": { + "message": "Uusi sähköpostiosoite" + }, + "code": { + "message": "Koodi" + }, + "changeEmailDesc": { + "message": "Olemme lähettäneet todennuskoodin sähköpostitse osoitteeseen $EMAIL$. Tarkasta sähköpostisi ja syötä koodi alle viimeistelläksesi sähköpostiosoitteen vaihdon.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Jatkamalla kirjaudut ulos nykyisestä istunnostasi ja joudut kirjautumaan uudelleen. Aktiiviset istunnot toisilla laitteilla saattavat pysyä aktiivisina vielä tunnin ajan." + }, + "emailChanged": { + "message": "Sähköpostiosoite vaihdettu" + }, + "logBackIn": { + "message": "Kirjaudu sisään uudelleen." + }, + "logBackInOthersToo": { + "message": "Kirjaudu uudelleen sisään. Jos käytät muita Bitwarden-sovelluksia, kirjaudu myös niihin uudelleen." + }, + "changeMasterPassword": { + "message": "Vaihda pääsalasana" + }, + "masterPasswordChanged": { + "message": "Pääsalasana vaihdettu" + }, + "currentMasterPass": { + "message": "Nykyinen pääsalasana" + }, + "newMasterPass": { + "message": "Uusi pääsalasana" + }, + "confirmNewMasterPass": { + "message": "Vahvista uusi pääsalasana" + }, + "encKeySettings": { + "message": "Salausavaimen asetukset" + }, + "kdfAlgorithm": { + "message": "KDF-algoritmi" + }, + "kdfIterations": { + "message": "KDF-toistot" + }, + "kdfIterationsDesc": { + "message": "Korkeampi KDF-toistojen määrä suojaa sinua raakaa laskentatehoa hyväksikäyttäviltä murtoyrityksiltä. Suosittelemme arvoksi vähintään $VALUE$.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Liian korkea KDF-toistojen määrä saattaa hidastaa kirjautumista ja holvin avausta heikkotehoisilla laitteilla. Suosittelemme toistomäärän nostoa $INCREMENT$ välein ja muutosten koekäyttöä kaikilla laitteillasi.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Vaihda KDF-asetuksia" + }, + "encKeySettingsChanged": { + "message": "Salausavaimen asetukset muutettu" + }, + "dangerZone": { + "message": "Vaaravyöhyke" + }, + "dangerZoneDesc": { + "message": "Ole varovainen, näiden toimintojen peruminen ei ole mahdollista!" + }, + "deauthorizeSessions": { + "message": "Mitätöi kaikki istunnot" + }, + "deauthorizeSessionsDesc": { + "message": "Oletko huolissasi, että tilisi on kirjautuneena muissa laitteissa? Jatka alla kirjataksesi ulos kaikki aiemmin käyttämäsi tietokoneet ja muut laitteet. Tämä turvallisuustoimenpide on suositeltava, jos olet aiemmin käyttänyt esimerkiksi julkista tietokonetta tai vahingossa tallentanut kirjautumisesi laitteeseen, joka ei ole sinun. Tämä mitätöi myös kaikki aiemmin muistetut kaksivaiheiset kirjautumiset." + }, + "deauthorizeSessionsWarning": { + "message": "Jatkamalla kirjaudut ulos nykyisestä istunnostasi ja joudut kirjautumaan uudelleen. Myös kaksivaiheinen kirjautuminen on tehtävä uudelleen. Aktiiviset istunnot toisilla laitteilla saattavat pysyä aktiivisina vielä tunnin ajan." + }, + "sessionsDeauthorized": { + "message": "Kaikki istunnot mitätöity" + }, + "purgeVault": { + "message": "Tyhjennä holvi" + }, + "purgedOrganizationVault": { + "message": "Organisaation holvi tyhjennetty." + }, + "vaultAccessedByProvider": { + "message": "Todentaja on käyttänyt holvia." + }, + "purgeVaultDesc": { + "message": "Jatka alla poistaaksesi kaikki holvisi kohteet ja kansiot. Kohteita, jotka on jaettu ja kuuluvat organisaatiolle, ei poisteta." + }, + "purgeOrgVaultDesc": { + "message": "Jatka alla poistaaksesi kaikki organisaatiosi holvissa olevat kohteet." + }, + "purgeVaultWarning": { + "message": "Tilin poisto on pysyvä toimenpide, eikä sen peruminen ole mahdollista." + }, + "vaultPurged": { + "message": "Holvisi tiedot on tyhjennetty." + }, + "deleteAccount": { + "message": "Poista tili" + }, + "deleteAccountDesc": { + "message": "Jatka alla poistaaksesi tilisi ja kaikki siihen liittyvät tiedot." + }, + "deleteAccountWarning": { + "message": "Tilin poisto on pysyvä toimenpide, eikä sen peruminen ole mahdollista." + }, + "accountDeleted": { + "message": "Tili poistettu" + }, + "accountDeletedDesc": { + "message": "Tilisi on suljettu ja kaikki siihen liittyvät tiedot on poistettu." + }, + "myAccount": { + "message": "Oma tili" + }, + "tools": { + "message": "Työkalut" + }, + "importData": { + "message": "Tuo tietoja" + }, + "importError": { + "message": "Tuontivirhe" + }, + "importErrorDesc": { + "message": "Tiedoissa, joita yritit tuoda, havaittiin ongelma. Korjaa alla listatut virheet lähdetiedostosta ja yritä uudelleen." + }, + "importSuccess": { + "message": "Tietojen tuonti holviisi onnistui." + }, + "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." + }, + "selectFormat": { + "message": "Valitse tuotavan tiedoston muoto" + }, + "selectImportFile": { + "message": "Valitse tuotava tiedosto" + }, + "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)" + } + } + }, + "options": { + "message": "Asetukset" + }, + "optionsDesc": { + "message": "Muokkaa verkkoholvisi käyttökokemusta." + }, + "optionsUpdated": { + "message": "Asetukset päivitetty" + }, + "language": { + "message": "Kieli" + }, + "languageDesc": { + "message": "Vaihda verkkoholvissa käytettävää kieltä." + }, + "disableIcons": { + "message": "Älä näytä sivustokuvakkeita" + }, + "disableIconsDesc": { + "message": "Kirjautumistietojen vieressä näytettävät sivustojen kuvakkeet helpottavat kohteiden tunnistusta." + }, + "enableGravatars": { + "message": "Käytä Gravatareja", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Käytä avatar-profiilikuvia Gravatar.com-palvelusta." + }, + "enableFullWidth": { + "message": "Käytä täyden leveyden asettelua", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Salli verkkoholvin laajentua selainikkunan koko leveydelle." + }, + "default": { + "message": "Oletus" + }, + "domainRules": { + "message": "Verkkotunnusten vastaavuudet" + }, + "domainRulesDesc": { + "message": "Jos kirjautumistietosi ovat samat useille verkkotunnuksille, voit merkata sivustot vastaavanlaisiksi. Bitwarden on luonut sinulle valmiiksi joitakin globaaleja verkkotunnuksia." + }, + "globalEqDomains": { + "message": "Globaalit verkkotunnusten vastaavuudet" + }, + "customEqDomains": { + "message": "Omat verkkotunnusten vastaavuudet" + }, + "exclude": { + "message": "Älä käytä sääntöä" + }, + "include": { + "message": "Käytä sääntöä" + }, + "customize": { + "message": "Muokkaa sääntöä" + }, + "newCustomDomain": { + "message": "Lisää oma verkkotunnus" + }, + "newCustomDomainDesc": { + "message": "Syötä verkkotunnukset pilkulla eroteltuina. Vain \"juuritason\" verkkotunnukset sallitaan, ei aliverkkotunnuksia. Eli syötä esimerkiksi \"www.google.com\" sijasta \"google.com\". Voit syöttää myös \"androidapp://package.name\" -muotoisia osoitteita yhdistääksesi Android-sovelluksia verkkotunnuksiin." + }, + "customDomainX": { + "message": "Oma verkkotunnus $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Verkkotunnukset päivitetty" + }, + "twoStepLogin": { + "message": "Kaksivaiheinen kirjautuminen" + }, + "twoStepLoginDesc": { + "message": "Suojaa tilisi vaatimalla sisäänkirjautumiseen toinen todennusvaihe." + }, + "twoStepLoginOrganizationDesc": { + "message": "Vaadi kaksivaiheinen kirjautuminen organisaatiosi käyttäjille määrittämällä todentajat organisaation tasolla." + }, + "twoStepLoginRecoveryWarning": { + "message": "Kaksivaiheisen kirjautumisen käyttöönotto voi lukita sinut pysyvästi ulos Bitwaren-tililtäsi. Palautuskoodi mahdollistaa pääsyn tilillesi myös silloin, kun et voi käyttää normaaleja kaksivaiheisen kirjautumisen todentajiasi (esim. hävität todennuslaitteesi tai se varastetaan). Myöskään Bitwardenin tuki ei voi auttaa sinua, jos menetät pääsyn tillesi. Suosittelemme, että kirjoitat muistiin tai tulostat palautuskoodin ja pidät sen tallessa turvallisessa paikassa (esim. kassakaapissa tai pankin tallelokerossa)." + }, + "viewRecoveryCode": { + "message": "Näytä palautuskoodi" + }, + "providers": { + "message": "Todennustarjoajat", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Ota käyttöön" + }, + "enabled": { + "message": "Käytössä" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium-jäsenyys" + }, + "premiumRequired": { + "message": "Premium vaaditaan" + }, + "premiumRequiredDesc": { + "message": "Käyttääksesi tätä toimintoa tarvitset Premium-jäsenyyden." + }, + "youHavePremiumAccess": { + "message": "Sinulla on Premium-käyttöoikeus" + }, + "alreadyPremiumFromOrg": { + "message": "Premium-toiminnot ovat jo käytettävissäsi, johtuen organisaatiosta, jonka jäsen olet." + }, + "manage": { + "message": "Hallinnoi" + }, + "disable": { + "message": "Poista käytöstä" + }, + "twoStepLoginProviderEnabled": { + "message": "Tämä kaksivaiheisen kirjautumisen todentaja on käytössä tililläsi." + }, + "twoStepLoginAuthDesc": { + "message": "Syötä pääsalasana muokataksesi kaksivaiheisen kirjautumisen asetuksia." + }, + "twoStepAuthenticatorDesc": { + "message": "Seuraa näitä vaiheita ottaaksesi käyttöön kaksivaiheisen kirjautumisen todennussovelluksella:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Lataa kaksivaiheisen kirjautumisen todennussovellus" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Tarvitsetko todennussovelluksen kaksivaiheista kirjautumista varten? Lataa jokin seuraavista" + }, + "iosDevices": { + "message": "iOS-laitteet" + }, + "androidDevices": { + "message": "Android-laitteet" + }, + "windowsDevices": { + "message": "Windows-laitteet" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Näitä sovelluksia suositellaan, mutta myös muut todennussovellukset toimivat." + }, + "twoStepAuthenticatorScanCode": { + "message": "Skannaa tämä QR-koodi todennussovelluksellasi" + }, + "key": { + "message": "Avain" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Syötä 6-numeroinen todennuskoodi todennussovelluksesta" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Jos sinun on lisättävä tai siirrettävä todennus toiseen laitteeseen, löydät alta todennussovelluksesi tarvitseman QR-koodin (tai avaimen)." + }, + "twoStepDisableDesc": { + "message": "Haluatko varmasti poistaa kaksivaiheisen kirjautumisen todentajan käytöstä?" + }, + "twoStepDisabled": { + "message": "Kaksivaiheisen kirjautumisen todentaja on poistettu käytöstä." + }, + "twoFactorYubikeyAdd": { + "message": "Lisää tilillesi YubiKey-todennuslaite" + }, + "twoFactorYubikeyPlugIn": { + "message": "Kytke YubiKey-todennuslaitteesi tietokoneesi USB-porttiin." + }, + "twoFactorYubikeySelectKey": { + "message": "Valitse alta ensimmäinen tyhjä YubiKey-syöttökenttä." + }, + "twoFactorYubikeyTouchButton": { + "message": "Paina YubiKey-todennuslaitteen painiketta." + }, + "twoFactorYubikeySaveForm": { + "message": "Tallenna lomake." + }, + "twoFactorYubikeyWarning": { + "message": "Alustan rajoitusten vuoksi, YubiKey-todennuslaitteen käyttö ei ole mahdollista kaikissa Bitwarden-sovelluksissa. Sinun tulisi ottaa käyttöön eri kaksivaiheisen kirjautumisen todentaja, jotta pääset tilillesi myös silloin kun YubiKey-laitteen käyttö ei onnistu. Tuetut alustat:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Verkkoholvi, työpöytäsovellus, CLI ja kaikki selainlaajennukset laitteessa, jossa on YubiKey-todennuslaitteen käyttöön soveltuva USB-portti." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobiilisovellukset laitteessa, jossa on NFC-ominaisuus tai YubiKey-todennuslaitteen kanssa yhteensopiva tietoliikenneportti." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn-todennuslaite $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC-tuki" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Jokin laitteeni tukee NFC-tekniikkaa." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Jos jokin YubiKey-todennuslaitteesi tukee NFC-tekniikkaa (kuten YubiKey NEO), näytetään mobiililaitteissa kehote NFC:n ollessa käytettävissä." + }, + "yubikeysUpdated": { + "message": "YubiKey-todennuslaitteet päivitetty" + }, + "disableAllKeys": { + "message": "Poista kaikki todennuslaitteet käytöstä" + }, + "twoFactorDuoDesc": { + "message": "Syötä Bitwarden-sovelluksen tiedot Duo Security -tilisi hallintapaneelista." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration Key" + }, + "twoFactorDuoSecretKey": { + "message": "Secret Key" + }, + "twoFactorDuoApiHostname": { + "message": "API Hostname" + }, + "twoFactorEmailDesc": { + "message": "Seuraa näitä vaiheita ottaaksesi käyttöön kaksivaiheisen kirjautumisen todennuksen sähköpostitse:" + }, + "twoFactorEmailEnterEmail": { + "message": "Syötä sähköpostiosoite, johon haluat vastaanottaa todennuskoodit" + }, + "twoFactorEmailEnterCode": { + "message": "Syötä 6-numeroinen todennuskoodi sähköpostista" + }, + "sendEmail": { + "message": "Lähetä sähköposti" + }, + "twoFactorU2fAdd": { + "message": "Lisää tilillesi FIDO U2F -todennuslaite" + }, + "removeU2fConfirmation": { + "message": "Haluatko varmasti poistaa todennuslaitteen?" + }, + "twoFactorWebAuthnAdd": { + "message": "Lisää tilillesi WebAuthn-todennuslaite" + }, + "readKey": { + "message": "Lue todennuslaite" + }, + "keyCompromised": { + "message": "Avain on vaarantunut." + }, + "twoFactorU2fGiveName": { + "message": "Anna todennuslaitteelle helposti tunnistettava nimi." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Kytke todennuslaitteesi tietokoneen USB-porttiin ja klikkaa \"Lue todennuslaite\" -painiketta." + }, + "twoFactorU2fTouchButton": { + "message": "Jos todennuslaitteessa on painike, paina sitä." + }, + "twoFactorU2fSaveForm": { + "message": "Tallenna lomake." + }, + "twoFactorU2fWarning": { + "message": "Alustan rajoitusten vuoksi, FIDO U2F -todennuslaitteen käyttö ei ole mahdollista kaikissa Bitwarden-sovelluksissa. Sinun tulisi ottaa käyttöön eri kaksivaiheisen kirjautumisen todentaja, jotta pääset tilillesi myös silloin kun FIDO U2F -laitteen käyttö ei onnistu. Tuetut alustat:" + }, + "twoFactorU2fSupportWeb": { + "message": "Verkkoholvi ja selainlaajennukset pöytäkoneissa/kannettavissa, joissa on U2F-tekniikkaa tukeva selain (Chrome, Opera, Vivaldi tai Firefox FIDO U2F käyttöön otettuna)." + }, + "twoFactorU2fWaiting": { + "message": "Odotetaan, että painat todennuslaitteesi painiketta" + }, + "twoFactorU2fClickSave": { + "message": "Klikkaa alta \"Tallenna\" käyttääksesi tätä todennuslaitetta kaksivaiheiseen kirjautumiseen." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Todennuslaittetta luettaessa havaittiin ongelma. Yritä uudelleen." + }, + "twoFactorWebAuthnWarning": { + "message": "Alustan rajoitusten vuoksi, WebAuthn-todennuslaitteen käyttö ei ole mahdollista kaikissa Bitwarden-sovelluksissa. Sinun tulisi ottaa käyttöön eri kaksivaiheisen kirjautumisen todentaja, jotta pääset tilillesi myös silloin kun WebAuthn-laitteen käyttö ei onnistu. Tuetut alustat:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Verkkoholvi ja selainlaajennukset pöytäkoneissa/kannettavissa, joissa on WebAuthn-tekniikkaa tukeva selain (Chrome, Opera, Vivaldi tai Firefox FIDO U2F käyttöön otettuna)." + }, + "twoFactorRecoveryYourCode": { + "message": "Bitwardenin kaksivaiheisen kirjautumisen palautuskoodisi" + }, + "twoFactorRecoveryNoCode": { + "message": "Et ole vielä ottanut käyttöön yhtään kaksivaiheisen kirjautumisen tadentajaa. Otettuasi todennusmenetelmän käyttöön, löydät palautuskoodin täältä." + }, + "printCode": { + "message": "Tulosta koodi", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Raportit" + }, + "reportsDesc": { + "message": "Tunnista ja paikkaa verkkopalvelutunnustesi tietoturva-aukkoja painamalla alla olevia raportteja." + }, + "unsecuredWebsitesReport": { + "message": "Suojaamattomat sivustot" + }, + "unsecuredWebsitesReportDesc": { + "message": "Osoitteet, jotka alkavat http://, eivät hyödynnä parasta mahdollista salausta. Vaihda tällaiset kirjatumisosoitteet https://-muotoisiksi turvallisempaa selausta varten." + }, + "unsecuredWebsitesFound": { + "message": "Suojaamattomia verkkosivustoja löytyi" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Löysimme holvistasi $COUNT$ kohdetta suojaamattomilla URI-osoitteilla. Sinun tulisi muuttaa niiden URI suojattuun \"https://\" -muotoon, jos sivusto tukee sitä.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Holviisi tallennetuista kirjautumistiedoista ei löydetty suojaamattomia URI-osoitteita." + }, + "inactive2faReport": { + "message": "Tunnusten 2FA-tila" + }, + "inactive2faReportDesc": { + "message": "Kaksivaiheinen kirjautuminen (2FA) lisää tileillesi yhden suojaustason. Voit käyttää kaksivaiheiseen kirjautumiseen Bitwarden-todentajaa tai vaihtoehtoisia menetelmiä." + }, + "inactive2faFound": { + "message": "Tunnuksia ilman kaksivaiheista kirjautumista löytyi" + }, + "inactive2faFoundDesc": { + "message": "Löysimme holvistasi $COUNT$ sivustoa, joita ei ehkä ole määritetty käyttämään kaksivaiheista kirjautumista (2fa.directory -sivuston mukaan). Suojataksesi nämä tilit paremmin, sinun tulisi ottaa kaksivaiheinen kirjautuminen käyttöön.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Holvistasi ei löytynyt sivustoja, joille ei ole määritetty kaksivaiheista kirjautumista." + }, + "instructions": { + "message": "Ohjeet" + }, + "exposedPasswordsReport": { + "message": "Paljastuneet salasanat" + }, + "exposedPasswordsReportDesc": { + "message": "Tietovuodoissa paljastuneet salasanat ovat helppoja kohteita hyökkääjille. Vaihda nämä salasanat estääksesi mahdolliset murrot." + }, + "exposedPasswordsFound": { + "message": "Paljastuneita salasanoja löytyi" + }, + "exposedPasswordsFoundDesc": { + "message": "Löysimme holvistasi $COUNT$ kohdetta, jotka sisältävät tunnetuissa tietovuodoissa paljastuneita salasanoja. Näiden palveluiden salasanat tulisi vaihtaa.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Holviisi tallennetuista kirjautumistiedoista ei löydetty tunnetuissa tietovuodoissa paljastuneita salasanoja." + }, + "checkExposedPasswords": { + "message": "Tarkasta paljastuneet salasanat" + }, + "exposedXTimes": { + "message": "Paljastunut $COUNT$ kertaa", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Heikot salasanat" + }, + "weakPasswordsReportDesc": { + "message": "Heikot salasanat ovat hyökkääjien helposti arvattavissa. Bitwardenin salasanageneraattorin avulla voit luoda vahvoja salasanoja." + }, + "weakPasswordsFound": { + "message": "Heikkoja salasanoja löytyi" + }, + "weakPasswordsFoundDesc": { + "message": "Löysimme holvistasi $COUNT$ kohdetta, joiden salasanat eivät ole vahvoja. Nämä tulisi korvata vahvemmilla salasanoilla.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Holviisi tallennetuista kirjautumistiedoista ei löydetty heikkoja salasanoja." + }, + "reusedPasswordsReport": { + "message": "Toistuvat salasanat" + }, + "reusedPasswordsReportDesc": { + "message": "Samojen salasanojen toistuva käyttö helpottaa hakkereiden pääsyä useille käyttäjätileille. Vaihda kaikki nämä salasanat yksilöllisiksi." + }, + "reusedPasswordsFound": { + "message": "Toistuvia salasanoja löytyi" + }, + "reusedPasswordsFoundDesc": { + "message": "Löysimme holvistasi $COUNT$ toistuvasti käytettyä salasanaa. Ne tulisi vaihtaa yksilöllisiksi.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Holvissasi ei ole toistuvasti käytettyjä salasanoja." + }, + "reusedXTimes": { + "message": "Käytetty toistuvasti $COUNT$ kertaa", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Tietovuodot" + }, + "breachDesc": { + "message": "Murretut tilit saattavat paljastaa henkilötietosi. Suojaa tilit kaksivaiheisella todennuksella tai vahvemmilla salasanoilla." + }, + "breachCheckUsernameEmail": { + "message": "Tarkista kaikki käyttämäsi käyttäjätunnukset tai sähköpostiosoitteet." + }, + "checkBreaches": { + "message": "Tarkasta tietovuodot" + }, + "breachUsernameNotFound": { + "message": "Käyttäjätunnusta $USERNAME$ ei löytynyt yhdestäkään tunnetusta tietovuodosta.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Hyviä uutisia", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "Käyttäjätunnus $USERNAME$ löytyi $COUNT$ tapahtuneesta tietovuodosta.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Vuotaneita kirjautumistietoja löytyi" + }, + "compromisedData": { + "message": "Vaarantuneet tiedot" + }, + "website": { + "message": "Verkkosivusto" + }, + "affectedUsers": { + "message": "Koskee käyttäjiä" + }, + "breachOccurred": { + "message": "Tietovuoto tapahtui" + }, + "breachReported": { + "message": "Tietovuoto paljastui" + }, + "reportError": { + "message": "Raporttia ladatessa tapahtui virhe. Yritä uudelleen" + }, + "billing": { + "message": "Laskutus" + }, + "accountCredit": { + "message": "Tilin saldo", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Tilin saldo", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Lisää saldoa", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Summa", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Lisätty saldo näkyy tililläsi kun maksu on käsitelty loppuun. Joissakin maksutavoissa on viivettä ja niiden käsittely saattaa kestää kauemmin muita maksutapoja pidempään." + }, + "makeSureEnoughCredit": { + "message": "Varmista, että tililläsi on riittävästi saldoa tälle ostolle. Jos tililläsi ei ole tarpeeksi saldoa, voidaan erotus veloittaa tallennettua oletusmaksutapaa käyttäen. Voit lisätä tilillesi saldoa \"Laskutus\" -sivulta." + }, + "creditAppliedDesc": { + "message": "Tilisi saldoa voidaan käyttää ostoksiin. Kaikki käytettävissä oleva saldo kohdistetaan automaattisesti tälle tilille luotuihin laskuihin." + }, + "goPremium": { + "message": "Päivitä Premiumiin", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Olet päivittänyt Premiumiin." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Päivitä tilisi Premium-jäsenyyteen ja avaa joitakin hienoja lisäominaisuuksia." + }, + "premiumSignUpStorage": { + "message": "1 Gt salattua tallennustilaa tiedostoliitteille." + }, + "premiumSignUpTwoStep": { + "message": "Muita kaksivaiheisen kirjautumisen todentajia, kuten YubiKey, FIDO U2F ja Duo Security." + }, + "premiumSignUpEmergency": { + "message": "Varmuuskäyttö" + }, + "premiumSignUpReports": { + "message": "Salasanahygienian, tilin terveyden ja tietovuotojen raportointitoiminnot pitävät holvisi turvassa." + }, + "premiumSignUpTotp": { + "message": "Kaksivaiheisen kirjautumisen (2FA) TOTP-todennuskoodien generaattori holvisi kirjautumistiedoille." + }, + "premiumSignUpSupport": { + "message": "Ensisijainen asiakastuki." + }, + "premiumSignUpFuture": { + "message": "Kaikki tulossa olevat Premium-ominaisuudet. Lisää tulossa pian!" + }, + "premiumPrice": { + "message": "Kaikki tämä vain $PRICE$/vuosi!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Laajennukset" + }, + "premiumAccess": { + "message": "Premium-käyttöoikeus" + }, + "premiumAccessDesc": { + "message": "Voit lisätä Premium-käyttöoikeuden kaikille organisaatiosi jäsenille $PRICE$/$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Lisää tallennustilaa (Gt)" + }, + "additionalStorageGbDesc": { + "message": "Gigatavujen määrä" + }, + "additionalStorageIntervalDesc": { + "message": "Tilaukseesi sisältyy $SIZE$ salattua tallennustilaa. Voit saada lisätilaa $PRICE$ per Gt/$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Yhteenveto" + }, + "total": { + "message": "Yhteensä" + }, + "year": { + "message": "vuosi" + }, + "month": { + "message": "kuukausi" + }, + "monthAbbr": { + "message": "kk", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Maksutapaasi veloitetaan välittömästi ja jatkossa kerran vuodessa. Voit irtisanoa tilauksen koska tahansa." + }, + "paymentCharged": { + "message": "Maksutapaasi veloitetaan välittömästi ja jatkossa joka $INTERVAL$. Voit irtisanoa tilauksen koska tahansa.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Tilauksesi sisältää ilmaisen 7 päivän kokeilujakson. Maksutapaasi ei veloiteta ennen kokeilujakson päättymistä. Voit irtisanoa tilauksen koska tahansa." + }, + "paymentInformation": { + "message": "Maksutiedot" + }, + "billingInformation": { + "message": "Laskutustiedot" + }, + "creditCard": { + "message": "Maksukortti" + }, + "paypalClickSubmit": { + "message": "Klikkaa PayPal-painiketta kirjautuaksesi PayPal-tilillesi ja sen jälkeen alta \"Jatka\"." + }, + "cancelSubscription": { + "message": "Irtisano tilaus" + }, + "subscriptionCanceled": { + "message": "Tilaus on irtisanottu." + }, + "pendingCancellation": { + "message": "Odottaa irtisanomista" + }, + "subscriptionPendingCanceled": { + "message": "Tilaus on merkitty päättymään kuluvan laskutuskauden lopussa." + }, + "reinstateSubscription": { + "message": "Palauta tilaus voimaan" + }, + "reinstateConfirmation": { + "message": "Haluatko varmasti poistaa odottavan irtisanomispyynnön ja pitää tilauksesi voimassa?" + }, + "reinstated": { + "message": "Tilauksesi on palautettu voimaan." + }, + "cancelConfirmation": { + "message": "Haluatko varmasti irtisanoa tilauksen? Menetät pääsyn kaikkiin tilauksen tarjoamiin ominaisuuksiin kuluvan laskutuskauden lopussa." + }, + "canceledSubscription": { + "message": "Tilaus on irtisanottu." + }, + "neverExpires": { + "message": "Ei eräänny koskaan" + }, + "status": { + "message": "Tila" + }, + "nextCharge": { + "message": "Seuraava veloitus" + }, + "details": { + "message": "Tiedot" + }, + "downloadLicense": { + "message": "Lataa lisenssi" + }, + "updateLicense": { + "message": "Päivitä lisenssi" + }, + "updatedLicense": { + "message": "Lisenssi päivitetty" + }, + "manageSubscription": { + "message": "Hallinnoi tilausta" + }, + "storage": { + "message": "Tallennustila" + }, + "addStorage": { + "message": "Kasvata tallennustilaa" + }, + "removeStorage": { + "message": "Pienennä tallennustilaa" + }, + "subscriptionStorage": { + "message": "Tilaukseesi sisältyy $MAX_STORAGE$ Gt salattua tallennustilaa, josta $USED_STORAGE$ on tällä hetkellä käytössä.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Maksutapa" + }, + "noPaymentMethod": { + "message": "Maksutapoja ei ole tallennettu." + }, + "addPaymentMethod": { + "message": "Lisää maksutapa" + }, + "changePaymentMethod": { + "message": "Vaihda maksutapaa" + }, + "invoices": { + "message": "Laskut" + }, + "noInvoices": { + "message": "Laskuja ei ole." + }, + "paid": { + "message": "Maksettu", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Ei maksettu", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Tapahtumat", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Tapahtumia ei ole." + }, + "chargeNoun": { + "message": "Veloitus", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Hyvitys", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Mahdolliset kulut näkyvät tiliotteessasi nimellä $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "Lisättävän tallennustilan määrä (Gt)" + }, + "gbStorageRemove": { + "message": "Poistettava tallennustila, Gt" + }, + "storageAddNote": { + "message": "Tallennuskapasiteetin lisäys muuttaa kokonaislaskutustasi ja korotus veloitetaan tilillesi tallennetulta maksutavalta välittömästi. Ensimmäinen veloitus sovitetaan nykyisen laskutuskautesi jäljellä olevalle ajalle." + }, + "storageRemoveNote": { + "message": "Tallennuskapasiteetin vähennys muuttaa kokonaislaskutustasi ja tämä huomioidaan seuraavan veloituksen yhteydessä." + }, + "adjustedStorage": { + "message": "Tallennustilaa muutettiin $AMOUNT$ Gt.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Ota yhteyttä asiakaspalveluun" + }, + "updatedPaymentMethod": { + "message": "Maksutapa päivitetty." + }, + "purchasePremium": { + "message": "Osta Premium" + }, + "licenseFile": { + "message": "Lisenssitiedosto" + }, + "licenseFileDesc": { + "message": "Lisenssitiedostosi nimeksi tulee $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Päivittääksesi tilisi Premium-jäsenyyteen, on sinun ladattava voimassa oleva lisenssitiedosto." + }, + "uploadLicenseFileOrg": { + "message": "Luodaksesi omassa palvelinympäristössäsi isännöitävän organisaation, on sinun ladattava voimassa oleva lisenssitiedosto." + }, + "accountEmailMustBeVerified": { + "message": "Tilisi sähköpostiosoite tulee vahvistaa." + }, + "newOrganizationDesc": { + "message": "Organisaatioiden avulla voit jakaa osia holvisi sisällöstä muiden kanssa sekä hallita yhteisöihin kuuluvia käyttäjiä kuten perhettä, pientä tiimiä tai suurta yritystä." + }, + "generalInformation": { + "message": "Yleiset tiedot" + }, + "organizationName": { + "message": "Organisaation nimi" + }, + "accountOwnedBusiness": { + "message": "Tlin omistaa yritys." + }, + "billingEmail": { + "message": "Laskutuksen sähköpostiosoite" + }, + "businessName": { + "message": "Yrityksen nimi" + }, + "chooseYourPlan": { + "message": "Valitse tilaustyyppi" + }, + "users": { + "message": "Käyttäjät" + }, + "userSeats": { + "message": "Käyttäjäpaikat" + }, + "additionalUserSeats": { + "message": "Lisättävät käyttäjäpaikat" + }, + "userSeatsDesc": { + "message": "Käyttäjäpaikkojen määrä" + }, + "userSeatsAdditionalDesc": { + "message": "Tilaukseesi kuuluu $BASE_SEATS$ käyttäjäpaikkaa. Voit lisätä käyttäjäpaikkoja hintaan $SEAT_PRICE$ per käyttäjä/kuukausi.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Kuinka monta käyttäjäpaikkaa tarvitset? Voit myös hankkia paikkoja tarvittaessa lisää myöhemmin." + }, + "planNameFree": { + "message": "Ilmainen", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Koekäyttöön tai yksityiseen käyttöön jaettavaksi $COUNT$ käyttäjän kanssa.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Perheille" + }, + "planDescFamilies": { + "message": "Henkilökohtaiseen käyttöön, jaettavaksi perheen ja ystävien kanssa." + }, + "planNameTeams": { + "message": "Tiimit" + }, + "planDescTeams": { + "message": "Yrityksille ja muille yhteisöille." + }, + "planNameEnterprise": { + "message": "Yritykset" + }, + "planDescEnterprise": { + "message": "Yrityksille ja muille suurille organisaatioille." + }, + "freeForever": { + "message": "Ilmainen ikuisesti" + }, + "includesXUsers": { + "message": "sisältää $COUNT$ käyttäjää", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Lisättävät käyttäjät" + }, + "costPerUser": { + "message": "$COST$ per käyttäjä", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Rajoitettu $COUNT$ käyttäjään (sinut mukaanlukien)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Rajoitettu $COUNT$ kokoelmaan", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Lisää ja jaa enintään $COUNT$ käyttäjän kanssa", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Lisää ja jaa rajattoman käyttäjämäärän kanssa" + }, + "createUnlimitedCollections": { + "message": "Luo rajattomasti kokoelmia" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ salattua tallennustilaa", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Suoritus omassa palvelinympäristössä (valinnainen)" + }, + "usersGetPremium": { + "message": "Käyttäjät saavat Premium-ominaisuuksien käyttöoikeuden" + }, + "controlAccessWithGroups": { + "message": "Hallinnoi käyttäjien oikeuksia ryhmillä" + }, + "syncUsersFromDirectory": { + "message": "Synkronoi käyttäjät ja ryhmät käyttäjähakemistosta" + }, + "trackAuditLogs": { + "message": "Seuraa käyttäjien toimia auditointilokeilla" + }, + "enforce2faDuo": { + "message": "Pakota kaksivaiheinen kirjautuminen Duo Securityn kautta" + }, + "priorityCustomerSupport": { + "message": "Ensisijainen asiakastuki" + }, + "xDayFreeTrial": { + "message": "$COUNT$ päivän ilmainen kokeilujakso, irtisano koska tahansa", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Kuukausittainen" + }, + "annually": { + "message": "Vuotuinen" + }, + "basePrice": { + "message": "Lähtöhinta" + }, + "organizationCreated": { + "message": "Organisaatio luotu" + }, + "organizationReadyToGo": { + "message": "Uusi organisaatiosi on valmis käyttöön!" + }, + "organizationUpgraded": { + "message": "Organisaatiosi tilausta on päivitetty." + }, + "leave": { + "message": "Eroa" + }, + "leaveOrganizationConfirmation": { + "message": "Haluatko varmasti erota organisaatiosta?" + }, + "leftOrganization": { + "message": "Olet poistunut organisaatiosta." + }, + "defaultCollection": { + "message": "Oletuskokoelma" + }, + "getHelp": { + "message": "Hanki apua" + }, + "getApps": { + "message": "Hanki sovellukset" + }, + "loggedInAs": { + "message": "Kirjautuneena käyttäjänä" + }, + "eventLogs": { + "message": "Tapahtumalokit" + }, + "people": { + "message": "Ihmiset" + }, + "policies": { + "message": "Käytännöt" + }, + "singleSignOn": { + "message": "Kertakirjautuminen" + }, + "editPolicy": { + "message": "Muokkaa käytäntöä" + }, + "groups": { + "message": "Ryhmät" + }, + "newGroup": { + "message": "Uusi ryhmä" + }, + "addGroup": { + "message": "Lisää ryhmä" + }, + "editGroup": { + "message": "Muokkaa ryhmää" + }, + "deleteGroupConfirmation": { + "message": "Haluatko varmasti poistaa ryhmän?" + }, + "removeUserConfirmation": { + "message": "Haluatko varmasti poistaa käyttäjän?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Varoitus! Tämä käyttäjä tarvitsee salauksensa hallintaan Key Connectoria. Käyttäjän poistaminen organisaatiostasi poistaa heidän tilinsä käytöstä pysvästi. Toimenpide on pysyvä, eikä sen peruminen ole mahdollista. Haluatko jatkaa?" + }, + "externalId": { + "message": "Ulkoinen ID" + }, + "externalIdDesc": { + "message": "Ulkoista ID-tunnusta voidaan käyttää viitteenä tai linkittää tämä resurssi ulkoiseen järjestelmään, kuten käyttäjähakemistoon." + }, + "accessControl": { + "message": "Käyttöoikeuden laajuus" + }, + "groupAccessAllItems": { + "message": "Tällä ryhmällä on käyttö- ja muokkausoikeudet kaikkiin kohteisiin." + }, + "groupAccessSelectedCollections": { + "message": "Ryhmällä on käyttöoikeus vain valittuihin kokoelmiin." + }, + "readOnly": { + "message": "Vain luku" + }, + "newCollection": { + "message": "Uusi kokoelma" + }, + "addCollection": { + "message": "Lisää kokoelma" + }, + "editCollection": { + "message": "Muokkaa kokoelmaa" + }, + "deleteCollectionConfirmation": { + "message": "Haluatko varmasti poistaa kokoelman?" + }, + "editUser": { + "message": "Muokkaa käyttäjää" + }, + "inviteUser": { + "message": "Kutsu käyttäjä" + }, + "inviteUserDesc": { + "message": "Kutsu organisaatioosi uusi käyttäjä syöttämällä alle heidän Bitwarden-tilinsä sähköpostiosoite. Jos heillä ei vielä ole Bitwarden-tiliä, heitä pyydetään luomaan uusi tili." + }, + "inviteMultipleEmailDesc": { + "message": "Voit kutsua korkeintaan $COUNT$ käyttäjää kerrallaan, erottelemalla listan sähköpostiosoitteista pilkuilla.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Käyttäjä on ottanut kaksivaiheisen kirjautumisen käyttöön tilinsä suojaamiseksi." + }, + "userAccessAllItems": { + "message": "Käyttäjällä on käyttö- ja muokkausoikeus kaikkiin kohteisiin." + }, + "userAccessSelectedCollections": { + "message": "Käyttäjällä on käyttöoikeus vain valittuihin kokoelmiin." + }, + "search": { + "message": "Hae" + }, + "invited": { + "message": "Kutsuttu" + }, + "accepted": { + "message": "Hyväksytty" + }, + "confirmed": { + "message": "Vahvistettu" + }, + "clientOwnerEmail": { + "message": "Asiakkaan omistajan sähköposti" + }, + "owner": { + "message": "Omistaja" + }, + "ownerDesc": { + "message": "Korkeimman käyttöoikeustason käyttäjä, jolla on käyttö- ja hallintaoikeus koko organisaatioosi." + }, + "clientOwnerDesc": { + "message": "Tämän käyttäjän on oltava todentajariippumaton. Jos todentajan yhteys organisaatioon katkaistaan, säilyttää tämä käyttäjä organisaation omistajuuden." + }, + "admin": { + "message": "Ylläpitäjä" + }, + "adminDesc": { + "message": "Ylläpitäjillä on käyttö- ja hallintaoikeus kaikkiin organisaatiosi kohteisiin, kokoelmiin ja käyttäjiin." + }, + "user": { + "message": "Käyttäjä" + }, + "userDesc": { + "message": "Tavallinen käyttäjä, jolla on käyttöoikeus valittuihin organisaatiosi kokoelmiin." + }, + "manager": { + "message": "Valvoja" + }, + "managerDesc": { + "message": "Valvojilla on käyttö- ja määritysoikeus organisaatiosi kokoelmiin." + }, + "all": { + "message": "Kaikki" + }, + "refresh": { + "message": "Päivitä" + }, + "timestamp": { + "message": "Aikaleima" + }, + "event": { + "message": "Tapahtuma" + }, + "unknown": { + "message": "Tuntematon" + }, + "loadMore": { + "message": "Lataa lisää" + }, + "mobile": { + "message": "Mobiili", + "description": "Mobile app" + }, + "extension": { + "message": "Laajennus", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Työpöytä", + "description": "Desktop app" + }, + "webVault": { + "message": "Verkkoholvi" + }, + "loggedIn": { + "message": "Kirjauduttu sisään." + }, + "changedPassword": { + "message": "Tilin salasana vaihdettu." + }, + "enabledUpdated2fa": { + "message": "Kaksivaiheinen kirjautuminen otettiin käyttöön/päivitettiin." + }, + "disabled2fa": { + "message": "Kaksivaiheinen kirjautuminen poistettiin käytöstä." + }, + "recovered2fa": { + "message": "Tili vapautettiin kaksivaiheisesta kirjautumisesta." + }, + "failedLogin": { + "message": "Sisäänkirjautumisyritys epäonnistui väärän salasanan vuoksi." + }, + "failedLogin2fa": { + "message": "Kirjautuminen epäonnistui virheellisen kaksivaiheisen kirjautumisen todennuksen vuoksi." + }, + "exportedVault": { + "message": "Holvi viety." + }, + "exportedOrganizationVault": { + "message": "Organisaation holvi viety." + }, + "editedOrgSettings": { + "message": "Organisaation asetuksia muokattu." + }, + "createdItemId": { + "message": "Kohde $ID$ luotu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Kohdetta $ID$ muokattu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Sirrettiin kohde $ID$ roskakoriin.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Kohde $ID$ siirrettiin organisaatiolle.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Kohdetta $ID$ tarkasteltu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Tarkasteltiin kohteen $ID$ salasanaa.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Tarkasteltiin kohteen $ID$ piilotettua kenttää.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Tarkasteltiin kohteen $ID$ turvakoodia.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Kopioitiin kohteen $ID$ salasana.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Kopioitiin kohteen $ID$ piilotettu kenttä.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Kohteen $ID$ turvakoodi kopioitu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Kohde $ID$ täytetty automaattisesti.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Kokoelma $ID$ luotu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Kokoelmaa $ID$ muokattu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Kokoelma $ID$ poistettu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Käytäntöä $ID$ muokattu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Ryhmä $ID$ luotu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Ryhmää $ID$ muokattu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Ryhmä $ID$ poistettu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Käyttäjä $ID$ poistettu.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Tiedostoliite luotu kohteelle $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Kohteen $ID$ tiedostoliite poistettu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Kohteen $ID$ kokoelmia muokattu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Käyttäjä $ID$ kutsuttu.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Käyttäjä $ID$ vahvistettu.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Käyttäjää $ID$ muokattu.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Käyttäjän $ID$ ryhmiä muokattu.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Kertakirjautumisen (SSO) liitos poistettiin käyttäjältä $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Organisaatio $ID$ luotu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Organisaatio $ID$ luotu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Organisaatio $ID$ poistettu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Organisaation $ID$ holvia käytetty.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Laite" + }, + "view": { + "message": "Näytä" + }, + "invalidDateRange": { + "message": "Virheellinen ajanjakso." + }, + "errorOccurred": { + "message": "Tapahtui virhe." + }, + "userAccess": { + "message": "Käyttäjien käyttöoikeudet" + }, + "userType": { + "message": "Käyttäjän tyyppi" + }, + "groupAccess": { + "message": "Ryhmän käyttöoikeudet" + }, + "groupAccessUserDesc": { + "message": "Muokkaa ryhmiä, joihin tämä käyttäjä kuuluu." + }, + "invitedUsers": { + "message": "Kutsutut käyttäjät." + }, + "resendInvitation": { + "message": "Lähetä kutsu uudelleen" + }, + "resendEmail": { + "message": "Lähetä sähköposti uudelleen" + }, + "hasBeenReinvited": { + "message": "$USER$ on kutsuttu uudelleen.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Vahvista" + }, + "confirmUser": { + "message": "Vahvista käyttäjä" + }, + "hasBeenConfirmed": { + "message": "$USER$ on vahvistettu.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Vahvista käyttäjät" + }, + "usersNeedConfirmed": { + "message": "Sinulla on käyttäjiä, jotka ovat hyväksyneet kutsunsa, mutta heidän liittymisensä tulee vielä vahvistaa. Käyttäjillä ei ole organisaation käyttöoikeutta ennen vahvistusta." + }, + "startDate": { + "message": "Aloituspäivä" + }, + "endDate": { + "message": "Päättymispäivä" + }, + "verifyEmail": { + "message": "Vahvista sähköpostiosoite" + }, + "verifyEmailDesc": { + "message": "Vahvista käyttäjätilisi sähköpostiosoite käyttääksesi kaikkia ominaisuuksia." + }, + "verifyEmailFirst": { + "message": "Tilisi sähköpostiosoite tulee ensin vahvistaa." + }, + "checkInboxForVerification": { + "message": "Tarkasta, onko vahvistuslinkki sähköpostissasi." + }, + "emailVerified": { + "message": "Sähköpostiosoitteesi on vahvistettu." + }, + "emailVerifiedFailed": { + "message": "Sähköpostiosoitteesi vahvistus ei onnistunut. Yritä lähettää uusi vahvistussähköposti." + }, + "emailVerificationRequired": { + "message": "Sähköpostiosoitteen vahvistus vaaditaan" + }, + "emailVerificationRequiredDesc": { + "message": "Sinun on vahvistettava sähköpostiosoitteesi käyttääksesi tätä ominaisuutta." + }, + "updateBrowser": { + "message": "Päivitä selain" + }, + "updateBrowserDesc": { + "message": "Käytät selainta, jota ei tueta. Verkkoholvi ei välttämättä toimi oikein." + }, + "joinOrganization": { + "message": "Liity organisaatioon" + }, + "joinOrganizationDesc": { + "message": "Sinut on kutsuttu liittymään yllä mainittuun organisaatioon. Hyväksyäksesi kutsun, sinun tulee kirjautua tilillesi tai luoda uusi Bitwarden-tili." + }, + "inviteAccepted": { + "message": "Kutsu hyväksytty" + }, + "inviteAcceptedDesc": { + "message": "Saat organisaation käyttöoikeuden ylläpitäjän vahvistettua jäsentyytesi. Saat vahvistuksesta ilmoituksen sähköpostitse." + }, + "inviteAcceptFailed": { + "message": "Kutsun hyväksyntä ei onnistu. Pyydä organisaation ylläpitäjää lähettämään uusi kutsu." + }, + "inviteAcceptFailedShort": { + "message": "Kutsua ei voitu hyväksyä. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Muista sähköpostiosoite" + }, + "recoverAccountTwoStepDesc": { + "message": "Jos et pääse tilillesi käyttämilläsi kaksivaiheisen kirjautumisen todentajilla, voit kaksivaiheisen kirjautumisen palautuskoodilla poistaa kaikki tilillesi määritetyt todentajat käytöstä." + }, + "recoverAccountTwoStep": { + "message": "Vapauta tilin kaksivaiheinen kirjautuminen" + }, + "twoStepRecoverDisabled": { + "message": "Kaksivaiheinen kirjautuminen on poistettu käytöstä tililtäsi." + }, + "learnMore": { + "message": "Lue lisää" + }, + "deleteRecoverDesc": { + "message": "Kirjoita sähköpostiosoitteesi alle palauttaaksesi ja poistaaksesi tilisi." + }, + "deleteRecoverEmailSent": { + "message": "Jos tilisi on olemassa, olemme lähettäneet sinulle lisäohjeita sähköpostitse." + }, + "deleteRecoverConfirmDesc": { + "message": "Olet pyytänyt Bitwarden-tilisi poistoa. Paina alla olevaa painiketta vahvistaaksesi." + }, + "myOrganization": { + "message": "Oma organisaatio" + }, + "deleteOrganization": { + "message": "Poista organisaatio" + }, + "deletingOrganizationContentWarning": { + "message": "Vahvista organisaation $ORGANIZATION$ ja kaikkien sen kohteiden poisto syöttämällä pääsalasanasi. Organisaation $ORGANIZATION$ tiedot holvissa:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Käyttäjätilit pysyvät poiston jälkeen toiminnassa, mutta niiden kytkös tähän organisaatioon poistuu." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Organisaation $ORGANIZATION$ poisto on pysyvää, eikä sitä ole mahdollista perua.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organisaatio poistettu" + }, + "organizationDeletedDesc": { + "message": "Organisaatio ja kaikki siihen liittyvät tiedot on poistettu." + }, + "organizationUpdated": { + "message": "Organisaatio päivitetty" + }, + "taxInformation": { + "message": "Verotiedot" + }, + "taxInformationDesc": { + "message": "Yhdysvalloissa olevilta asiakkailta vaaditaan postinumero myyntiverotuksen vaatimusten vuoksi. Muiden maiden asiakkaat voivat halutessaan toimittaa verotunnistenumeron (ALV/GST) ja/tai osoitteen, joka kirjataan laskuihin." + }, + "billingPlan": { + "message": "Tilaustyyppi", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Vaihda tilaustyyppiä", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Päivitä tilisi toiseen tilaustyyppiin toimittamalla alla olevat tiedot. Varmistathan, että tilillesi on lisätty toimiva maksutapa.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Lasku #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Näytä lasku" + }, + "downloadInvoice": { + "message": "Lataa lasku" + }, + "verifyBankAccount": { + "message": "Vahvista pankkitili" + }, + "verifyBankAccountDesc": { + "message": "Olemme tehneet kaksi pientä mikrotalletusta pankkitilillesi (nämä saattavat näkyä vasta 1-2 työpäivän kuluttua). Kirjoita talletusten määrät vahvistaaksesi pankkitilin." + }, + "verifyBankAccountInitialDesc": { + "message": "Maksu tilisiirrolla on vain Yhdysvaltalaisten asiakkaiden käytettävissä ja sinun on vahvistettava pankkitilisi. Teemme kaksi pientä mikrotalletusta seuraavien 1-2 arkipäivän aikana. Syötä tallennetut määrät organisaation laskutussivulle vahvistaaksesi pankkitilin." + }, + "verifyBankAccountFailureWarning": { + "message": "Pankkitilin vahvistamatta jättäminen johtaa maksamattomaan laskuun ja tilauksesi käytöstä poistoon." + }, + "verifiedBankAccount": { + "message": "Pankkitili on vahvistettu." + }, + "bankAccount": { + "message": "Pankkitili" + }, + "amountX": { + "message": "Summa $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Reititysnumero", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Tilinumero" + }, + "accountHolderName": { + "message": "Tilin omistajan nimi" + }, + "bankAccountType": { + "message": "Tilin tyyppi" + }, + "bankAccountTypeCompany": { + "message": "Yritys tai yhteisö" + }, + "bankAccountTypeIndividual": { + "message": "Yksityinen" + }, + "enterInstallationId": { + "message": "Syötä asennuksesi ID-tunnus" + }, + "limitSubscriptionDesc": { + "message": "Rajoita tilauksesi käyttäjäpaikkojen määrää. Kun määrä täyttyy, et voi kutsua uusia käyttäjiä." + }, + "maxSeatLimit": { + "message": "Käyttäjäpaikkojen enimmäismäärä (valinnainen)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Käyttäjäpaikkojen hintaennuste" + }, + "addSeats": { + "message": "Lisää käyttäjäpaikkoja", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Poista käyttäjäpaikkoja", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Tilausmuutokset aiheuttavat muutoksia laskutukseesi. Jos hiljattain kutsuttujen käyttäjien määrä ylittää tilauksesi käyttäjäpaikkojen enimmäismäärän, veloitetaan suhteutettu hinta uusista käyttäjistä välittömästi." + }, + "subscriptionUserSeats": { + "message": "Tilauksesi kattaa kaikkiaan $COUNT$ käyttäjää.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Rajoita tilausta (valinnainen)" + }, + "subscriptionSeats": { + "message": "Tilauksen käyttäjäpaikat" + }, + "subscriptionUpdated": { + "message": "Tilaus päivitetty" + }, + "additionalOptions": { + "message": "Lisävalinnat" + }, + "additionalOptionsDesc": { + "message": "Jos tarvitset apua tilauksesi hallinnassa, ota yhteyttä asiakaspalveluun." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Tilausmuutokset aiheuttavat muutoksia laskutukseesi. Jos hiljattain lisättyjen käyttäjien määrä ylittää tilauksesi käyttäjäpaikkojen enimmäismäärän, veloitetaan suhteutettu hinta uusista käyttäjistä välittömästi." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Tilausmuutokset johtavat suhteutettuihin muutoksiin laskutuksessasi. Jos hiljattain lisättyjen käyttäjien määrä ylittää tilauksesi käyttäjäpaikkojen enimmäismäärän, veloitetaan suhteutettu hinta uusista käyttäjistä välittömästi, kunnes $MAX$ paikan enimmäismäärä saavutetaan.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Voit kutsua enintään $COUNT$ käyttäjää päivittämättä tilaustasi.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Voit kutsua enintään $COUNT$ käyttäjää päivittämättä tilaustasi. Ota yhteyttä tukeen päivittääksesi.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Tilauksesi kattaa kaikkiaan $COUNT$ käyttäjää. Tilauksesi on sponsoroitu ja se laskutetaan ulkoiselta organisaatiolta.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Tilausmuutokset johtavat suhteutettuihin muutoksiin laskutuksessasi. Voit kutsua enintään $COUNT$ käyttäjää kasvattamatta tilauksesi käyttäjäpaikkojen määrää.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Lisättävät käyttäjäpaikat" + }, + "seatsToRemove": { + "message": "Poistettavat käyttäjäpaikat" + }, + "seatsAddNote": { + "message": "Käyttäjäpaikkojen lisäys muuttaa kokonaislaskutustasi ja korotus veloitetaan tilillesi tallennetulta maksutavalta välittömästi. Ensimmäinen veloitus sovitetaan nykyisen laskutuskautesi jäljellä olevalle ajalle." + }, + "seatsRemoveNote": { + "message": "Käyttäjäpaikkojen vähennys muuttaa kokonaislaskutustasi ja tämä huomioidaan seuraavan veloituksen yhteydessä." + }, + "adjustedSeats": { + "message": "Muutettu $AMOUNT$ käyttäjäpaikkaa.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Avain päivitetty" + }, + "updateKeyTitle": { + "message": "Päivitä avain" + }, + "updateEncryptionKey": { + "message": "Päivitä salausavain" + }, + "updateEncryptionKeyShortDesc": { + "message": "Käytät tällä hetkellä vanhentunutta salausjärjestelmää." + }, + "updateEncryptionKeyDesc": { + "message": "Olemme siirtyneet suurempiin salausavaimiin, jotka tarjoavat parempaa suojausta sekä uudempia toimintoja. Salausavaimesi päivitys on helppoa: syötä vain pääsalasanasi alle. Tästä päivityksestä tulee myöhemmin pakollinen." + }, + "updateEncryptionKeyWarning": { + "message": "Salausavaimesi päivityksen jälkeen, sinun tulee kirjautua ulos ja sitten takaisin sisään kaikissa Bitwarden-sovelluksissa, jotka ovat käytössäsi (esim. mobiilisovellus ja selainlaajennukset). Uudelleenkirjautumisen (joka lataa uuden salausavaimen) suorittamatta jättäminen saattaa johtaa tietojen vaurioitumiseen. Yritämme kirjata sinut ulos autmaattisesti, mutta tämä voi tapahtua vasta jonkin ajan kuluttua." + }, + "updateEncryptionKeyExportWarning": { + "message": "Tallentamistasi salatuista vienneistä tulee käyttökelvottomia." + }, + "subscription": { + "message": "Tilaus" + }, + "loading": { + "message": "Ladataan" + }, + "upgrade": { + "message": "Päivitä" + }, + "upgradeOrganization": { + "message": "Päivitä organisaatio" + }, + "upgradeOrganizationDesc": { + "message": "Ominaisuus ei ole käytettävissä ilmaisille organisaatioille. Vaihda maksulliseen tilaustyyppiin avataksesi enemmän ominaisuuksia." + }, + "createOrganizationStep1": { + "message": "Luo organisaatio: Vaihe 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Ennen kuin voit luoda organisaation, sinun tulee luoda ilmainen henkilökohtainen tili." + }, + "refunded": { + "message": "Hyvitetty" + }, + "nothingSelected": { + "message": "Et ole valinnut mitään." + }, + "acceptPolicies": { + "message": "Valitsemalla tämän ruudun hyväksyt seuraavat:" + }, + "acceptPoliciesError": { + "message": "Käyttöehtoja ja tietosuojakäytäntöä ei ole vahvistettu." + }, + "termsOfService": { + "message": "Käyttöehdot" + }, + "privacyPolicy": { + "message": "Tietosuojakäytäntö" + }, + "filters": { + "message": "Suodattimet" + }, + "vaultTimeout": { + "message": "Holvin aikakatkaisu" + }, + "vaultTimeoutDesc": { + "message": "Valitse milloin holvin aikakatkaisu tapahtuu ja suorita valittu toiminto." + }, + "oneMinute": { + "message": "1 minuutti" + }, + "fiveMinutes": { + "message": "5 minuuttia" + }, + "fifteenMinutes": { + "message": "15 minuuttia" + }, + "thirtyMinutes": { + "message": "30 minuuttia" + }, + "oneHour": { + "message": "1 tunti" + }, + "fourHours": { + "message": "4 tuntia" + }, + "onRefresh": { + "message": "Selaimen sivun päivityksen yhteydessä" + }, + "dateUpdated": { + "message": "Päivitetty", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Salasana päivitetty", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organisaatio on poistettu käytöstä." + }, + "licenseIsExpired": { + "message": "Lisenssi on erääntynyt." + }, + "updatedUsers": { + "message": "Päivitetyt käyttäjät" + }, + "selected": { + "message": "Valittu" + }, + "ownership": { + "message": "Omistus" + }, + "whoOwnsThisItem": { + "message": "Kuka omistaa tämän kohteen?" + }, + "strong": { + "message": "Vahva", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Hyvä", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Heikko", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Erittäin heikko", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Heikko pääsalasana" + }, + "weakMasterPasswordDesc": { + "message": "Valitsemasi pääsalasana on heikko. Sinun tulisi käyttää vahvaa pääsalasanaa (tai salauslauseketta) suojataksesi Bitwarden-tilisi kunnolla. Haluatko varmasti käyttää tätä pääsalasanaa?" + }, + "rotateAccountEncKey": { + "message": "Kierrätä myös tilini salausavain" + }, + "rotateEncKeyTitle": { + "message": "Kierrätä salausavain" + }, + "rotateEncKeyConfirmation": { + "message": "Haluatko varmasti kierrättää tilisi salausavaimen?" + }, + "attachmentsNeedFix": { + "message": "Kohteella on vanhoja tiedostoliitteitä, jotka on korjattava." + }, + "attachmentFixDesc": { + "message": "Vanha tiedostoliite, joka on korjattava. Klikkaa lukeaksesi lisää." + }, + "fix": { + "message": "Korjaa", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Holvissasi on vanhoja tiedostoliitteitä, jotka on korjattava ennen kuin voit uudistaa tilisi salausavaimen." + }, + "yourAccountsFingerprint": { + "message": "Tilisi tunnistelauseke", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Varmistaaksesi salausavaintesi eheyden, vahvista käyttäjän tunnistelauseke ennen kuin jatkat.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Älä koskaan kehota vahvistamaan kutsuttujen käyttäjien tunnistelausekkeita (ei suositella)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Ilmainen", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API-avain" + }, + "apiKeyDesc": { + "message": "API-avainta voi käyttää tunnistautumiseen Bitwardenin julkista rajapintaa vasten." + }, + "apiKeyRotateDesc": { + "message": "API-avaimen kierrättäminen mitätöi edellisen avaimen. Voit kierrättää API-avaimen, jos uskot, ettei nykyisen avaimen käyttö ole enää turvallista." + }, + "apiKeyWarning": { + "message": "API-avaimellasi on täysi käyttöoikeus organisaatioon ja se tulee pitää turvassa." + }, + "userApiKeyDesc": { + "message": "API-avaintasi voi käyttää tunnistautumiseen Bitwardenin komentokehotteessa (CLI)." + }, + "userApiKeyWarning": { + "message": "API-avaimesi on vaihtoehtoinen todennusmekanismi. Avain tulee pitää turvassa." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 -asiakkaan tunnistetiedot", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Näytä API-avain" + }, + "rotateApiKey": { + "message": "Kierrätä API-avain" + }, + "selectOneCollection": { + "message": "Valitse ainakin yksi kokoelma." + }, + "couldNotChargeCardPayInvoice": { + "message": "Emme voineet veloittaa korttiasi. Tarkasta ja maksa alla oleva maksamaton lasku, kiitos." + }, + "inAppPurchase": { + "message": "Sovelluksen sisäinen osto" + }, + "cannotPerformInAppPurchase": { + "message": "Et voi suorittaa tätä toimintoa kun käytössä oleva maksutapa on sovelluksen sisäinen osto." + }, + "manageSubscriptionFromStore": { + "message": "Sinun on hallittava tilaustasi sen kaupan kautta, jossa sovelluksen sisäinen ostos tehtiin." + }, + "minLength": { + "message": "Vähimmäispituus" + }, + "clone": { + "message": "Kloonaa" + }, + "masterPassPolicyDesc": { + "message": "Aseta pääsalasanan vahvuuden vähimmäisvaatimukset." + }, + "twoStepLoginPolicyDesc": { + "message": "Vaadi käyttäjiä ottamaan kaksivaiheinen kirjautuminen käyttöön henkilökohtaisilla tileillään." + }, + "twoStepLoginPolicyWarning": { + "message": "Organisaation jäsenet, jotka eivät ole sen omistajia tai ylläpitäjiä, eivätkä ole ottaneet kaksivaiheista kirjautumista käyttöön henkilökohtaisilla tileillään, poistetaan organisaatiosta ja heille ilmoitetaan muutoksesta sähköpostitse." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Olet jäsenenä organisaatiossa, joka vaatii kaksivaiheisen kirjautumisen käyttöä käyttäjätililläsi. Jos poistat kaikki kaksivaiheisen kirjautumisen todentajat käytöstä, sinut poistetaan automaattisesti näistä organisaatioista." + }, + "passwordGeneratorPolicyDesc": { + "message": "Aseta salasanageneraattorin määritysten vähimmäisvaatimukset." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Yksi tai useampi organisaatiokäytäntö vaikuttaa generaattorisi asetuksiin." + }, + "masterPasswordPolicyInEffect": { + "message": "Yksi tai useampi organisaatiokäytäntö edellyttää, että pääsalasanasi täyttää seuraavat vaatimukset:" + }, + "policyInEffectMinComplexity": { + "message": "Monimutkaisuuden vähimmäispistemäärä on $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Vähimmäispituus on $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Sisältää yhden tai useamman ison kirjaimen" + }, + "policyInEffectLowercase": { + "message": "Sisältää yhden tai useamman pienen kirjaimen" + }, + "policyInEffectNumbers": { + "message": "Sisältää yhden tai useamman numeron" + }, + "policyInEffectSpecial": { + "message": "Sisältää yhden tai useamman seuraavista erikoismerkeistä $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Uusi pääsalasanasi ei täytä käytännön määrittämiä vaatimuksia." + }, + "minimumNumberOfWords": { + "message": "Sanojen vähimmäismäärä" + }, + "defaultType": { + "message": "Oletustyyppi" + }, + "userPreference": { + "message": "Käyttäjän asetus" + }, + "vaultTimeoutAction": { + "message": "Holvin aikakatkaisun toiminto" + }, + "vaultTimeoutActionLockDesc": { + "message": "Lukittu holvi vaatii pääsalasanan syötön sen käyttämiseksi." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Uloskirjattu holvi vaatii uuden todennuksen sen käyttämiseksi." + }, + "lock": { + "message": "Lukitse", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Roskakori", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Hae roskakorista" + }, + "permanentlyDelete": { + "message": "Poista pysyvästi" + }, + "permanentlyDeleteSelected": { + "message": "Poista valitut pysyvästi" + }, + "permanentlyDeleteItem": { + "message": "Poista kohde pysyvästi" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Haluatko varmasti poistaa kohteen pysyvästi?" + }, + "permanentlyDeletedItem": { + "message": "Kohde poistettu pysyvästi" + }, + "permanentlyDeletedItems": { + "message": "Kohteet poistettu pysyvästi" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Olet valinnut $COUNT$ kohdetta pysyvästi poistettavaksi. Haluatko varmasti poistaa ne kaikki pysyvästi?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Kohde $ID$ poistettu pysyvästi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Palauta" + }, + "restoreSelected": { + "message": "Palauta valitut" + }, + "restoreItem": { + "message": "Palauta kohde" + }, + "restoredItem": { + "message": "Kohde palautettu" + }, + "restoredItems": { + "message": "Kohteet palautettu" + }, + "restoreItemConfirmation": { + "message": "Haluatko varmasti palauttaa kohteen?" + }, + "restoreItems": { + "message": "Palauta kohteet" + }, + "restoreSelectedItemsDesc": { + "message": "Olet valinnut $COUNT$ kohdetta palautettavaksi. Haluatko varmasti palauttaa kaikki nämä kohteet?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Kohde $ID$ palautettu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Uloskirjautuminen estää pääsyn holviisi ja vaatii ajan umpeuduttua todennuksen internet-yhteyden välityksellä. Haluatko varmasti käyttää tätä asetusta?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Aikakatkaisun toiminnon vahvistus" + }, + "hidePasswords": { + "message": "Piilota salasanat" + }, + "countryPostalCodeRequiredDesc": { + "message": "Tarvitsemme näitä tietoja ainoastaan liikevaihtoveroa ja tilinpäätöstä varten." + }, + "includeVAT": { + "message": "Sisällytä ALV/GST-tiedot (valinnainen)" + }, + "taxIdNumber": { + "message": "ALV/GST-verotustunniste" + }, + "taxInfoUpdated": { + "message": "Verotiedot päivitetty." + }, + "setMasterPassword": { + "message": "Aseta pääsalasana" + }, + "ssoCompleteRegistration": { + "message": "Kirjautuaksesi sisään käyttäen kertakirjautumista (SSO), suojaa holvisi pääsalasanalla." + }, + "identifier": { + "message": "Tunniste" + }, + "organizationIdentifier": { + "message": "Organisaation tunniste" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Kirjaudu sisään käyttäen organisaatiosi kertakirjautumista (SSO). Syötä organisaatiosi tunniste aloittaaksesi." + }, + "enterpriseSingleSignOn": { + "message": "Yrityksen kertakirjautuminen (SSO)" + }, + "ssoHandOff": { + "message": "Voit nyt sulkea tämän välilehden ja jatkaa laajennuksessa." + }, + "includeAllTeamsFeatures": { + "message": "Kaikki Tiimit-tilauksen ominaisuudet, sekä:" + }, + "includeSsoAuthentication": { + "message": "Kertakirjautumisen (SSO) todennus SAML 2.0 ja OpenID Connect -todentajilla" + }, + "includeEnterprisePolicies": { + "message": "Yrityksen käytännöt" + }, + "ssoValidationFailed": { + "message": "Kertakirjautumisen (SSO) todennus epäonnistui" + }, + "ssoIdentifierRequired": { + "message": "Organisaation tunniste vaaditaan." + }, + "unlinkSso": { + "message": "Poista kertakirjautumisen (SSO) liitos" + }, + "unlinkSsoConfirmation": { + "message": "Haluatko varmasti poistaa organisaation kertakirjautumisen (SSO) liitoksen?" + }, + "linkSso": { + "message": "Liitä kertakirjautumiseen (SSO)" + }, + "singleOrg": { + "message": "Yksittäinen organisaatio" + }, + "singleOrgDesc": { + "message": "Estä käyttäjiä liittymästä muihin organisaatioihin." + }, + "singleOrgBlockCreateMessage": { + "message": "Nykyisen organisaatiosi käytäntö ei salli liittymistä useampaan kuin yhteen organisaatioon. Ota yhteyttä organisaatiosi ylläpitäjiin tai liity eri Bitwarden-tilin kautta." + }, + "singleOrgPolicyWarning": { + "message": "Organisaation jäsenet, jotka eivät ole omistajia tai ylläpitäjiä ja jotka ovat jo toisen organisaation jäseniä, poistetaan organisaatiostasi." + }, + "requireSso": { + "message": "Kertakirjautumisen (SSO) todennus" + }, + "requireSsoPolicyDesc": { + "message": "Vaadi käyttäjiä kirjautumaan sisään käyttäen yrityksen kertakirjautumista (SSO)." + }, + "prerequisite": { + "message": "Edellytys" + }, + "requireSsoPolicyReq": { + "message": "\"Yksittäinen organisaatio\" -käytäntö on otettava käyttöön ennen tämän käytännön käyttöönottoa." + }, + "requireSsoPolicyReqError": { + "message": "\"Yksittäinen organisaatio\" -käytäntö ei ole käytössä." + }, + "requireSsoExemption": { + "message": "Organisaation omistajat ja ylläpitäjät on vapautettu tämän käytännön piiristä." + }, + "sendTypeFile": { + "message": "Tiedosto" + }, + "sendTypeText": { + "message": "Teksti" + }, + "createSend": { + "message": "Luo uusi Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Muokkaa Sendiä", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send luotu", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Sendiä muokattu", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send poistettu", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Poista Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Haluatko varmasti poistaa Sendin?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Minkä tyyppinen Send tämä on?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Poistoajankohta" + }, + "deletionDateDesc": { + "message": "Send poistuu pysyvästi määritettynä ajankohtana.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Erääntymisajankohta" + }, + "expirationDateDesc": { + "message": "Send erääntyy määritettynä ajankohtana.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Käyttökertojen enimmäismäärä" + }, + "maxAccessCountDesc": { + "message": "Jos määritetty, käyttäjät eivät voi avata Sendiä käyttökertojen enimmäismäärän täytyttyä.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Nykyinen käyttökertojen määrä" + }, + "sendPasswordDesc": { + "message": "Halutessasi, vaadi käyttäjiä syöttämään salasana Sendin avaamiseksi.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Yksityisiä merkintöjä tästä Sendistä.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Poistettu käytöstä" + }, + "sendLink": { + "message": "Send-linkki", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Kopioi Sendin linkki", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Poista salasana" + }, + "removedPassword": { + "message": "Salasana poistettu" + }, + "removePasswordConfirmation": { + "message": "Haluatko varmasti poistaa salasanan?" + }, + "hideEmail": { + "message": "Piilota sähköpostiosoitteeni vastaanottajilta." + }, + "disableThisSend": { + "message": "Poista Send käytöstä, jottei kukaan voi avata sitä.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Kaikki Sendit" + }, + "maxAccessCountReached": { + "message": "Käyttökertojen enimmäismäärä saavutettu", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Odottaa poistoa" + }, + "expired": { + "message": "Erääntynyt" + }, + "searchSends": { + "message": "Hae Sendeistä", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Tämä Send on suojattu salasanalla. Syötä salasana alle jatkaaksesi.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Etkö tiedä salasanaa? Pyydä lähettäjältä tämän Sendin avaukseen tarvittavaa salasanaa.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Tämä Send on oletusarvoisesti piilotettu. Voit vaihtaa sen näkyvyyttä alla olevalla painikkeella.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Lataa tiedosto" + }, + "sendAccessUnavailable": { + "message": "Sendiä, jota yrität avata, ei ole olemassa tai se ei ole enää käytettävissä.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Sendiin liittyvää tiedostoa ei löytynyt.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Ei näytettäviä Sendejä.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Varmuuskäyttö" + }, + "emergencyAccessDesc": { + "message": "Myönnä ja hallinnoi luotettujen kontaktien varmuuskäyttöoikeuksia. Luotetut kontaktit voivat anoa oikeutta tilisi tarkasteluun tai hallintaan ongelmatilanteissa. Käy ohjesivullamme saadaksesi lisätietoja ja tarkempia tietoja siitä, miten Zero Knowledge -jako toimii (englanniksi)." + }, + "emergencyAccessOwnerWarning": { + "message": "Olet yhden tai useamman organisaation omistaja. Jos myönnät varmuuskontaktille hallintaoikeuden, on heillä haltuunoton jälkeen samat oikeudet." + }, + "trustedEmergencyContacts": { + "message": "Luotetut varmuuskontaktit" + }, + "noTrustedContacts": { + "message": "Et ole vielä lisännyt varmuuskontakteja. Kutsu luotettu kontakti aloittaaksesi." + }, + "addEmergencyContact": { + "message": "Lisää varmuuskontakti" + }, + "designatedEmergencyContacts": { + "message": "Määritetty varmuuskontaktiksi" + }, + "noGrantedAccess": { + "message": "Sinua ei ole vielä määritetty kenenkään varmuuskontaktiksi." + }, + "inviteEmergencyContact": { + "message": "Kutsu varmuuskontakti" + }, + "editEmergencyContact": { + "message": "Muokkaa varmuuskontaktia" + }, + "inviteEmergencyContactDesc": { + "message": "Kutsu uusi varmuuskontakti syöttämällä alle heidän Bitwarden-tilinsä sähköpostiosoite. Jos heillä ei vielä ole Bitwarden-tiliä, heitä pyydetään luomaan uusi tili." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Varmuuskäyttö aloitettu" + }, + "emergencyAccessRecoveryApproved": { + "message": "Varmuuskäyttö sallittu" + }, + "viewDesc": { + "message": "Voi tarkastella kaikkia holvisi kohteita." + }, + "takeover": { + "message": "Haltuunotto" + }, + "takeoverDesc": { + "message": "Voi palauttaa tilisi luomalla uuden pääsalasanan." + }, + "waitTime": { + "message": "Odotusaika" + }, + "waitTimeDesc": { + "message": "Aika, joka vaaditaan ennen kuin pääsy myönnetään automaattisesti." + }, + "oneDay": { + "message": "1 päivä" + }, + "days": { + "message": "$DAYS$ päivää", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Kutsuttu käyttäjä." + }, + "acceptEmergencyAccess": { + "message": "Sinut on kutsuttu yllä mainitun käyttäjän varmuuskontaktiksi. Hyväksyäksesi kutsun, sinun tulee kirjautua tilillesi tai luoda uusi Bitwarden tili." + }, + "emergencyInviteAcceptFailed": { + "message": "Kutsun hyväksyntä ei onnistu. Pyydä käyttäjää lähettämään uusi kutsu." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Kutsua ei voitu hyväksyä. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Voit käyttää tämän käyttäjän varmuusvalintoja kun henkilöllisyytesi on vahvistettu. Saat vahvistuksesta ilmoituksen sähköpostitse." + }, + "requestAccess": { + "message": "Pyydä käyttöoikeutta" + }, + "requestAccessConfirmation": { + "message": "Haluatko varmasti anoa varmuuskäyttöä? Pääsy myönnetään $WAITTIME$ päivän kuluttua tai käyttäjän hyväksyessä käyttöoikeuden manuaalisesti.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Varmuuskäyttöä pyydetty käyttäjältä $USER$. Kun voit jatkaa, saat ilmoituksen sähköpostitse.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Salli" + }, + "reject": { + "message": "Hylkää" + }, + "approveAccessConfirmation": { + "message": "Haluatko varmasti sallia varmuuskäytön? Tämä sallii käyttäjälle $USER$ tiliisi oikeuden: $ACTION$.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Varmuuskäyttö sallittu." + }, + "emergencyRejected": { + "message": "Varmuuskäyttö hylätty." + }, + "passwordResetFor": { + "message": "Käyttäjän $USER$ salasana on palautettu. Voit nyt kirjautua sisään käyttäen uutta salasanaa.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Henkilökohtainen omistus" + }, + "personalOwnershipPolicyDesc": { + "message": "Vaadi käyttäjiä tallentamaan holvin kohteet organisaatiolle poistamalla henkilökohtaisen omistuksen valinta." + }, + "personalOwnershipExemption": { + "message": "Organisaation omistajat ja ylläpitäjät on vapautettu tämän käytännön piiristä." + }, + "personalOwnershipSubmitError": { + "message": "Yrityksen asettaman käytännön johdosta kohteiden tallennus omaan holviisi ei ole mahdollista. Muuta omistusasetus organisaatiolle ja valitse käytettävissä olevista kokoelmista." + }, + "disableSend": { + "message": "Poista Send käytöstä" + }, + "disableSendPolicyDesc": { + "message": "Älä salli käyttäjien luoda tai muokata Bitwarden Sendejä. Olemassa olevan Sendin poisto sallitaan edelleen.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Käytäntöä ei pakoteta käyttöön niille organisaation käyttäjille, joilla on organisaation käytäntöjen hallintaoikeudet." + }, + "sendDisabled": { + "message": "Send on poistettu käytöstä", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Yrityksen käytännön vuoksi voit poistaa vain olemassa olevan Sendin.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send-asetukset", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Määritä Sendien luonti- ja muokkausasetukset.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Käytäntöä ei pakoteta käyttöön niille organisaation käyttäjille, joilla on organisaation käytäntöjen hallintaoikeudet." + }, + "disableHideEmail": { + "message": "Estä käyttäjiltä sähköpostiosoitteen piilotus kun he luovat tai muokkaavat Sendiä.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Seuraavat organisaatiokäytännöt ovat aktiivisia:" + }, + "sendDisableHideEmailInEffect": { + "message": "Käyttäjiltä on estetty sähköpostiosoitteen piilotus kun he luovat tai muokkaavat Sendiä.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Käytäntöä $ID$ muokattu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Tilauksen hinta" + }, + "estimatedTax": { + "message": "Arvioitu vero" + }, + "custom": { + "message": "Mukautettu" + }, + "customDesc": { + "message": "Mahdollistaa käyttäjien oikeuksien tarkemman hallinnan edistyneemmissä käyttöympäristöissä." + }, + "permissions": { + "message": "Käyttöoikeudet" + }, + "accessEventLogs": { + "message": "Tapahtumalokien käyttö" + }, + "accessImportExport": { + "message": "Tuonnin/viennin käyttö" + }, + "accessReports": { + "message": "Raporttien käyttö" + }, + "missingPermissions": { + "message": "Sinulla ei ole tarvittavia oikeuksia toiminnon suorittamiseen." + }, + "manageAllCollections": { + "message": "Kaikkien kokoelmien hallinta" + }, + "createNewCollections": { + "message": "Luo uusia kokoelmia" + }, + "editAnyCollection": { + "message": "Muokkaa kokoelmia" + }, + "deleteAnyCollection": { + "message": "Poista kokoelmia" + }, + "manageAssignedCollections": { + "message": "Kokoelmamääritysten hallinta" + }, + "editAssignedCollections": { + "message": "Muokkaa kokoelmamäärityksiä" + }, + "deleteAssignedCollections": { + "message": "Poista kokoelmamäärityksiä" + }, + "manageGroups": { + "message": "Ryhmien hallinta" + }, + "managePolicies": { + "message": "Käytäntöjen hallinta" + }, + "manageSso": { + "message": "Kertakirjautumisen (SSO) hallinta" + }, + "manageUsers": { + "message": "Käyttäjien hallinta" + }, + "manageResetPassword": { + "message": "Salasanan palautusavun hallinta" + }, + "disableRequiredError": { + "message": "Käytäntö $POLICYNAME$ on poistettava käytöstä manuaalisesti ennen tämän käytännön käytöstä poistoa.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Organisaatiokäytäntö vaikuttaa omistajuusvalintoihisi." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "Organisaation käytäntö estää kohteiden tuonnin henkilökohtaiseen holviisi." + }, + "personalOwnershipCheckboxDesc": { + "message": "Poista henkilökohtaisen omistajuuden valinta käytöstä organisaation käyttäjiltä" + }, + "textHiddenByDefault": { + "message": "Piilota teksti oletuksena kun Send avataan", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Kuvaava nimi Sendille.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Teksti, jonka haluat lähettää." + }, + "sendFileDesc": { + "message": "Tiedosto, jonka haluat lähettää." + }, + "copySendLinkOnSave": { + "message": "Kopioi Sendin linkki leikepöydälle tallennettaessa." + }, + "sendLinkLabel": { + "message": "Send-linkki", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send lähettää arkaluonteisia, väliaikaisia tietoja muille helposti ja turvallisesti.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Lue lisää", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Jaa tekstiä tai tiedostoja suoraan kenen tahansa kanssa." + }, + "sendVaultCardLearnMore": { + "message": "Lue lisää", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "näe", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "miten se toimii", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "tai", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "kokeile sitä nyt", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "tai", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "liity", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "kokeillaksesi sitä tänään.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden-käyttäjä $USER_IDENTIFIER$ jakoi kanssasi seuraavat", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Sendin luonut Bitwarden-käyttäjä on piilottanut sähköpostiosoitteensa. Varmista, että linkin lähde on luotettava ennen kuin käytät tai lataat sen sisältöä.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Määritetty erääntymismisajankohta on virheellinen." + }, + "deletionDateIsInvalid": { + "message": "Määritetty poistoajankohta on virheellinen." + }, + "expirationDateAndTimeRequired": { + "message": "Erääntymispäivä ja -aika vaaditaan." + }, + "deletionDateAndTimeRequired": { + "message": "Poistopäivä ja -aika vaaditaan." + }, + "dateParsingError": { + "message": "Tapahtui virhe tallennettaessa poisto- ja erääntymisajankohtia." + }, + "webAuthnFallbackMsg": { + "message": "Vahvista kaksivaiheinen kirjautuminen (2FA) klikkaamalla alla olevaa painiketta." + }, + "webAuthnAuthenticate": { + "message": "WebAuthn-todennus" + }, + "webAuthnNotSupported": { + "message": "WebAuthn ei ole tuettu tässä selaimessa." + }, + "webAuthnSuccess": { + "message": "WebAuthn-todennus onnistui! Voit sulkea välilehden." + }, + "hintEqualsPassword": { + "message": "Salasanavihjeesi ei voi olla sama kuin salasanasi." + }, + "enrollPasswordReset": { + "message": "Liity salasanan palautusapuun" + }, + "enrolledPasswordReset": { + "message": "Liitetty salasanan palautusapuun" + }, + "withdrawPasswordReset": { + "message": "Eroa salasanan palautusavusta" + }, + "enrollPasswordResetSuccess": { + "message": "Liitos onnistui!" + }, + "withdrawPasswordResetSuccess": { + "message": "Eroaminen onnistui!" + }, + "eventEnrollPasswordReset": { + "message": "Käyttäjä $ID$ liittyi salasanan palautusapuun.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Käyttäjä $ID$ erosi salasanan palautusavusta.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Käyttäjän $ID$ pääsalasanan palautus.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Nollaa käyttäjän $ID$ SSO-linkki", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ kirjautui ensimmäistä kertaa käyttäen SSO-kirjautumista", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Palauta salasana" + }, + "resetPasswordLoggedOutWarning": { + "message": "Jatkamalla kirjataan käyttäjät $NAME$ ulos nykyisistä istunnoistaan, jonka jälkeen heidän on kirjauduttava uudelleen. Aktiiviset istunnot toisilla laitteilla saattavat pysyä aktiivisina vielä tunnin ajan.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "tämä käyttäjä" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Yksi tai useampi organisaatiokäytäntö edellyttää, että pääsalasanasi täyttää seuraavat vaatimukset:" + }, + "resetPasswordSuccess": { + "message": "Salasanan palautus onnistui!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Liitos sallii organisaation ylläpitäjien vaihtaa pääsalasanasi. Haluatko varmasti liittyä?" + }, + "resetPasswordPolicy": { + "message": "Pääsalasanan palautus" + }, + "resetPasswordPolicyDescription": { + "message": "Salli organisaation ylläpitäjien palauttaa organisaation käyttäjien pääsalasanat." + }, + "resetPasswordPolicyWarning": { + "message": "Organisaation käyttäjien on liityttävä itse tai automaattisen liitoksen välityksellä ennen kuin ylläpitäjät voivat palauttaa heidän pääsalasanojaan." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automaattinen liitos" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Kaikki käyttäjät liitetään salasanan palautusapuun automaattisesti, kun heidän kutsunsa on hyväksytty, jonka jälkeen he eivät voi erota siitä." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Vanhoja organisaation käyttäjiä ei liitetä salasanan palautusapuun takautuvasti, vaan heidän on itse liityttävä siihen ennen kuin ylläpitäjät voivat palauttaa heidän pääsalasanojaan." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Vaadi uusien käyttäjien automaattinen liitos" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Organisaatiolla on käytäntö, joka liittää tilisi automaattisesti salasanan palautusapuun. Liitos sallii organisaation ylläpitäjien vaihtaa pääsalasanasi." + }, + "resetPasswordOrgKeysError": { + "message": "Organisaatioavainten vastaus on tyhjä" + }, + "resetPasswordDetailsError": { + "message": "Salasanan palautuksen tietojen vastaus on tyhjä" + }, + "trashCleanupWarning": { + "message": "Roskakorissa yli 30 päivää olleet kohteet poistetaan automaattisesti." + }, + "trashCleanupWarningSelfHosted": { + "message": "Roskakorissa jonkin aikaa olleet kohteet poistetaan automaattisesti." + }, + "passwordPrompt": { + "message": "Pääsalasanan uudelleenkysely" + }, + "passwordConfirmation": { + "message": "Pääsalasanan vahvistus" + }, + "passwordConfirmationDesc": { + "message": "Toiminto on suojattu. Jatkaaksesi, syötä pääsalasanasi uudelleen vahvistaaksesi henkilöllisyytesi." + }, + "reinviteSelected": { + "message": "Lähetä kutsut uudelleen" + }, + "noSelectedUsersApplicable": { + "message": "Toiminto ei koske valittuja käyttäjiä." + }, + "removeUsersWarning": { + "message": "Haluatko varmasti poistaa poistaa seuraavat käyttäjät? Toiminto saattaa kestää muutamia sekunteja, eikä sen keskeytys tai peruminen ole mahdollista." + }, + "theme": { + "message": "Teema" + }, + "themeDesc": { + "message": "Valitse verkkoholvin teema." + }, + "themeSystem": { + "message": "Järjestelmä" + }, + "themeDark": { + "message": "Tumma" + }, + "themeLight": { + "message": "Vaalea" + }, + "confirmSelected": { + "message": "Vahvista valitut" + }, + "bulkConfirmStatus": { + "message": "Joukkotoiminnon tila" + }, + "bulkConfirmMessage": { + "message": "Vahvistettu onnistuneesti." + }, + "bulkReinviteMessage": { + "message": "Kutsuttu uudelleen onnistuneesti." + }, + "bulkRemovedMessage": { + "message": "Poistettu onnistuneesti." + }, + "bulkFilteredMessage": { + "message": "Ohitettu, ei koske tätä toimintoa." + }, + "fingerprint": { + "message": "Sormenjälki" + }, + "removeUsers": { + "message": "Poista käyttäjiä" + }, + "error": { + "message": "Virhe" + }, + "resetPasswordManageUsers": { + "message": "Myös \"Käyttäjien hallinta\" -oikeuden on oltava käytössä \"Salasanan palautusavun hallinta\" -oikeuden kanssa" + }, + "setupProvider": { + "message": "Todentajan määritys" + }, + "setupProviderLoginDesc": { + "message": "Sinut on kutsuttu määrittämään uusi todentaja. Jatkaaksesi, sinun on kirjauduttava Bitwarden-tilillesi tai luotava uusi tili." + }, + "setupProviderDesc": { + "message": "Syötä alla pyydetyt tiedot viimeistelläksesi todentajan määrityksen. Jos sinulla on kysyttävää, ota yhteyttä asiakaspalveluun." + }, + "providerName": { + "message": "Todentajan nimi" + }, + "providerSetup": { + "message": "Todentaja on määritetty." + }, + "clients": { + "message": "Asiakkaat" + }, + "providerAdmin": { + "message": "Todentajan ylläpitäjä" + }, + "providerAdminDesc": { + "message": "Korkeimman käyttöoikeuden käyttäjä, joka voi hallinnoida todentajaasi kokonaisvaltaisesti sekä käyttää ja hallita asiakasorganisaatioita." + }, + "serviceUser": { + "message": "Palvelun käyttäjä" + }, + "serviceUserDesc": { + "message": "Palvelun käyttäjät voivat käyttää ja hallita kaikkia asiakasorganisaatioita." + }, + "providerInviteUserDesc": { + "message": "Kutsu todentajallesi uusi käyttäjä syöttämällä alle heidän Bitwarden-tilinsä sähköpostiosoite. Jos heillä ei vielä ole Bitwarden-tiliä, pyydetään heitä luomaan uusi tili." + }, + "joinProvider": { + "message": "Liity todennustarjoajaan" + }, + "joinProviderDesc": { + "message": "Sinut on kutsuttu liittymään yllä mainittuun todentajaan. Hyväksyäksesi kutsun, sinun tulee kirjautua tilillesi tai luoda uusi Bitwarden-tili." + }, + "providerInviteAcceptFailed": { + "message": "Kutsua ei voida hyväksyä. Pyydä todentajan ylläpitäjää lähettämään uusi kutsu." + }, + "providerInviteAcceptedDesc": { + "message": "Pääset käyttämään todentajaa ylläpitäjän vahvistettua jäsentyytesi. Saat tästä ilmoituksen sähköpostitse." + }, + "providerUsersNeedConfirmed": { + "message": "Sinulla on kutsunsa hyväksyneitä käyttäjiä, jotka on vielä vahvistettava. Käyttäjät eivät voi käyttää todentajaa ennen vahvistusta." + }, + "provider": { + "message": "Todennustarjoaja" + }, + "newClientOrganization": { + "message": "Uusi asiakasorganisaatio" + }, + "newClientOrganizationDesc": { + "message": "Luo uusi asiakasorganisaatio, joka liitetään sinuun todentajana. Voit käyttää ja hallinnoida tätä organisaatiota." + }, + "addExistingOrganization": { + "message": "Lisää olemassa oleva organisaatio" + }, + "myProvider": { + "message": "Oma todennustarjoaja" + }, + "addOrganizationConfirmation": { + "message": "Haluatko varmasti lisätä organisaation $ORGANIZATION$ todentajan $PROVIDER$ asiakkaaksi?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organisaatio lisättiin todentajaan onnistuneesti" + }, + "accessingUsingProvider": { + "message": "Käytetään organisaatiota todentajalla $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Todentaja ei ole käytössä." + }, + "providerUpdated": { + "message": "Todentaja on päivitetty" + }, + "yourProviderIs": { + "message": "Todentajasi on $PROVIDER$. Heillä on hallinta- ja laskutusoikeudet organisaatioosi.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "Organisaatio $ORGANIZATION$ on irrotettu todentajastasi.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Haluatko varmasti irrottaa organisaation? Organisaatio on edelleen olemassa, mutta todentaja ei enää hallinnoi sitä." + }, + "add": { + "message": "Lisää" + }, + "updatedMasterPassword": { + "message": "Pääsalasana on päivitetty" + }, + "updateMasterPassword": { + "message": "Päivitä pääsalasana" + }, + "updateMasterPasswordWarning": { + "message": "Organisaatiosi ylläpito on hiljattain vaihtanut pääsalasanasi. Käyttääksesi holvia, on sinun päivitettävä se nyt. Tämä uloskirjaa kaikki nykyiset istunnot pakottaen uudelleenkirjautumisen. Muiden laitteiden aktiiviset istunnot saattavat toimia vielä tunnin ajan." + }, + "masterPasswordInvalidWarning": { + "message": "Pääsalasanasi ei vastaa organisaation käytäntöä. Liittyäksesi organisaatioon, on sinun päivitettävä se nyt. Tämä uloskirjaa kaikki nykyiset istunnot pakottaen uudelleenkirjautumisen. Muiden laitteiden aktiiviset istunnot saattavat toimia vielä tunnin ajan." + }, + "maximumVaultTimeout": { + "message": "Holvin aikakatkaisu" + }, + "maximumVaultTimeoutDesc": { + "message": "Määritä holvin aikakatkaisun enimmäisviive kaikille käyttäjille." + }, + "maximumVaultTimeoutLabel": { + "message": "Holvin aikakatkaisun enimmäisviive" + }, + "invalidMaximumVaultTimeout": { + "message": "Virheellinen holvin aikakatkaisun enimmäisviive." + }, + "hours": { + "message": "Tuntia" + }, + "minutes": { + "message": "Minuuttia" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Organisaatiosi käytännöt vaikuttavat holvisi aikakatkaisuun. Suurin sallittu viive on $HOURS$ tunti(a) ja $MINUTES$ minuutti(a)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Mukautettu holvin aikakatkaisuviive" + }, + "vaultTimeoutToLarge": { + "message": "Holvisi aikakatkaisuviive ylittää organisaatiosi asettamat rajoitukset." + }, + "disablePersonalVaultExport": { + "message": "Poista henkilökohtaisen holvin vienti käytöstä" + }, + "disablePersonalVaultExportDesc": { + "message": "Estää käyttäjiä viemästä yksityisen holvinsa tietoja." + }, + "vaultExportDisabled": { + "message": "Holvin vienti on poistettu käytöstä" + }, + "personalVaultExportPolicyInEffect": { + "message": "Yksi tai useampi organisaation käytäntö estää henkilökohtaisen holvisi viennin." + }, + "selectType": { + "message": "Valitse SSO-tyyppi" + }, + "type": { + "message": "Tyyppi" + }, + "openIdConnectConfig": { + "message": "OpenID Connect -määritykset" + }, + "samlSpConfig": { + "message": "SAML-todennustarjoajan määritykset" + }, + "samlIdpConfig": { + "message": "SAML-tunnistustietojen tarjoajan määritykset" + }, + "callbackPath": { + "message": "Callback-polku" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback -polku" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client-salaisuus" + }, + "metadataAddress": { + "message": "Metadata-osoite" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect -käyttäytyminen" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Hanki Claim-arvot käyttäjätietojen päätepisteestä" + }, + "additionalScopes": { + "message": "Mukautetut Scopes-arvot" + }, + "additionalUserIdClaimTypes": { + "message": "Mukautetut käyttäjätunnuksen Claim-tyypit" + }, + "additionalEmailClaimTypes": { + "message": "Sähköpostin Claim-tyypit" + }, + "additionalNameClaimTypes": { + "message": "Mukautetut nimen Claim-tyypit" + }, + "acrValues": { + "message": "Pyydetyt Authentication Context Class -viitearvot" + }, + "expectedReturnAcrValue": { + "message": "Odotettu \"acr\" Claim-arvo vastauksessa" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID -muoto" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing -algoritmi" + }, + "spSigningBehavior": { + "message": "Signing-käyttäytyminen" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Pienin sallittu Incoming Signing -algoritmi" + }, + "spWantAssertionsSigned": { + "message": "Odota Assertion-lähetysten allekirjoitusta" + }, + "spValidateCertificates": { + "message": "Vahvista varmenteet" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Sidontatyyppi" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "Julkinen X509 -varmenne" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing -algoritmi" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Salli Unsolicited-todennusvastaus" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Salli lähtevät uloskirjautumispyynnöt" + }, + "idpSignAuthenticationRequests": { + "message": "Allekirjoita todennuspyynnöt" + }, + "ssoSettingsSaved": { + "message": "Kertakirjautumisen (SSO) määritykset tallennettiin." + }, + "sponsoredFamilies": { + "message": "Ilmainen Bitwarden Perheille" + }, + "sponsoredFamiliesEligible": { + "message": "Sinä ja perheesi olette oikeutettuja ilmaiseen Bitwarden Perheille -tilaukseen. Lunasta tarjous henkilökohtaisella sähköpostillasi suojataksesi tietosi myös töiden ulkopuolella." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Lunasta ilmainen Bitwarden Perheille -tilauksesi tänään suojataksesi tietosi myös töiden ulkopuolella." + }, + "sponsoredFamiliesInclude": { + "message": "Bitwarden Perheille -tilaus sisältää" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium-käyttöoikeuden 6 käyttäjälle" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Jaetut kokoelmat perheen salaisuuksille" + }, + "badToken": { + "message": "Linkki ei ole enää voimassa. Pyydä sponsoria lähettämään tarjous uudelleen." + }, + "reclaimedFreePlan": { + "message": "Lunastettu ilmaistilaus" + }, + "redeem": { + "message": "Lunasta" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Valitse organisaatio, jota haluat sponsoroida" + }, + "familiesSponsoringOrgSelect": { + "message": "Minkä ilmaisen Perheille-tilauksen tarjouksen haluaisit lunastaa?" + }, + "sponsoredFamiliesEmail": { + "message": "Syötä henkilökohtainen sähköpostiosoitteesi lunastaaksesi Bitwarden Perheille -tilauksen" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Jos eroat tai sinut erotetaan sponsoroivasta organisaatiosta, päättyy Perheille-tilauksesi kuluvan laskutuskauden lopussa." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Hyväksy tarjous olemassa olevalla organisaatiolla tai luo uusi Perheille-organisaatio." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Sinulle on tarjottu ilmaista Bitwarden Perheille -organisaatiota. Jatkaaksesi sinun on kirjauduttava tarjouksen saaneelle tilille." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Tarjousta ei voida hyväksyä. Lähetä tarjoussähköposti uudestaan yritystililtäsi ja yritä uudelleen." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Tarjousta ei voida hyväksyä. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Hyväksy ilmainen Bitwarden Perheille" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Ilmainen Bitwarden Perheille -tarjous on lunastettu" + }, + "redeemed": { + "message": "Lunastettu" + }, + "redeemedAccount": { + "message": "Lunastettu tili" + }, + "revokeAccount": { + "message": "Irtisano tili $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Lähetä sponsorointisähköposti uudelleen edunsaajalle $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Ilmainen Perheille-tilaus" + }, + "redeemNow": { + "message": "Lunasta nyt" + }, + "recipient": { + "message": "Vastaanottaja" + }, + "removeSponsorship": { + "message": "Poista sponsorointi" + }, + "removeSponsorshipConfirmation": { + "message": "Sponsoroinnin poiston jälkeen olet vastuussa tilauksesta ja siihen liittyvistä laskuista. Haluatko varmasti jatkaa?" + }, + "sponsorshipCreated": { + "message": "Sponsorointi on luotu" + }, + "revoke": { + "message": "Irtisano" + }, + "emailSent": { + "message": "Sähköposti on lähetetty" + }, + "revokeSponsorshipConfirmation": { + "message": "Tämän tilin poiston jälkeen, on Perheille-organisaation omistaja jatkossa vastuussa tilauksesta ja siihen liittyvistä laskuista. Haluatko varmasti jatkaa?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorointi on poistettu" + }, + "ssoKeyConnectorUnavailable": { + "message": "Key Connectoria ei tavoiteta. Yritä myöhemmin uudelleen." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Lähetä vahvistuskoodi sähköpostiisi" + }, + "sendCode": { + "message": "Lähetä koodi" + }, + "codeSent": { + "message": "Koodi lähetetty" + }, + "verificationCode": { + "message": "Todennuskoodi" + }, + "confirmIdentity": { + "message": "Vahvista henkilöllisyytesi jatkaaksesi." + }, + "verificationCodeRequired": { + "message": "Todennuskoodi vaaditaan." + }, + "invalidVerificationCode": { + "message": "Virheellinen todennuskoodi" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ käyttää kertakirjautumista (SSO) oman avainpalvelimensa kanssa. Organisaation jäsenet eivät enää tarvitse pääsalasanaa kirjautumiseen.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Eroa organisaatiosta" + }, + "removeMasterPassword": { + "message": "Poista pääsalasana" + }, + "removedMasterPassword": { + "message": "Pääsalasana on poistettu." + }, + "allowSso": { + "message": "Salli SSO-todennus" + }, + "allowSsoDesc": { + "message": "Määrityksen jälkeen asetukset tallennetaan ja käyttäjät voivat tunnistautua käyttäen tunnistustietojen tarjoajansa (Identity Provider) tietoja." + }, + "ssoPolicyHelpStart": { + "message": "Ota", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO-todennuskäytäntö", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "käyttöön pakottaaksesi kertakirjautumisen kaikille jäsenille.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "\"SSO-todennus\" ja \"Yksittäinen organisaatio\" -käytännöt vaaditaan Key Connector -salauksenpurun määritykseen." + }, + "memberDecryptionOption": { + "message": "Jäsenen salauksenpurkuvalinnat" + }, + "memberDecryptionPassDesc": { + "message": "Kun jäsenet on todennettu, he voivat purkaa holvin salauksen omilla pääsalasanoillaan." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Liitä kertakirjautuminen (SSO) omaan salauksenpurkuavainpalvelimeesi. Tätä valintaa käyttämällä jäsenten ei tarvitse käyttää pääsalasanojaan holvin salauksen purkuun. Ota yhtettä Bitwardenin tukeen saadaksesi apua määritykseen." + }, + "keyConnectorPolicyRestriction": { + "message": "Kertakirjautuminen (SSO) Key Connector -salauksenpurulla on käytössä. Käytäntö vaikuttaa vain omistajiin ja ylläpitäjiin." + }, + "enabledSso": { + "message": "SSO otettiin käyttöön" + }, + "disabledSso": { + "message": "SSO poistettiin käytöstä" + }, + "enabledKeyConnector": { + "message": "Key Connector otettiin käyttöön" + }, + "disabledKeyConnector": { + "message": "Key Connector poistettiin käytöstä" + }, + "keyConnectorWarning": { + "message": "Kun käyttäjät alkavat käyttämään Key Connectoria, organisaatiosi ei voi palata takaisin pääsalasanalla tapahtuvaan salauksenpurkuun. Jatka ainoastaan siinä tapauksessa, jos olet valmis määrittämään avainpalvelimen ja myös ylläpitämään sitä." + }, + "migratedKeyConnector": { + "message": "Siirretty käyttämään Key Connectoria" + }, + "paymentSponsored": { + "message": "Ilmoita organisaatioon liitettävä maksutapa. Voit olla huoletta, sillä emme veloita sinulta mitään, ellet itse valitse lisäominaisuuksia tai sponsorointisi pääty." + }, + "orgCreatedSponsorshipInvalid": { + "message": "Sponsorointitarjous on päättynyt. Voit poistaa luomasi organisaation välttääksesi veloituksen 7- päivän kokeilujaksosi päättyessä. Muussa tapauksessa voit sulkea ilmoituksen, jolloin organisaatio säilyy sinulla ja vastaat jatkossa siihen liittyvistä laskuista." + }, + "newFamiliesOrganization": { + "message": "Uusi Perheille-organisaatio" + }, + "acceptOffer": { + "message": "Hyväksy tarjous" + }, + "sponsoringOrg": { + "message": "Sponsoroiva organisaatio" + }, + "keyConnectorTest": { + "message": "Testaa" + }, + "keyConnectorTestSuccess": { + "message": "Onnistui! Key Connectori tavoitettiin." + }, + "keyConnectorTestFail": { + "message": "Key Connectoria ei tavoiteta. Tarkista URL-osoite." + }, + "sponsorshipTokenHasExpired": { + "message": "Sponsorointitarjous on päättynyt." + }, + "freeWithSponsorship": { + "message": "ILMAINEN sponsoroinnilla" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ yllä olevaa kenttää vaatii huomiotasi.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 yllä oleva kenttä vaatii huomiotasi." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ on pakollinen.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "pakollinen" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Vaaditaan, jos Entity ID ei ole kelvollinen URL-osoite." + }, + "openIdOptionalCustomizations": { + "message": "Valinnaiset mukautukset" + }, + "openIdAuthorityRequired": { + "message": "Vaaditaan jos viranomainen ei ole kelvollinen." + }, + "separateMultipleWithComma": { + "message": "Erota useita pilkuilla." + }, + "sessionTimeout": { + "message": "Istuntosi on aikakatkaistu. Palaa takaisin ja yritä kirjautua uudelleen." + }, + "exportingPersonalVaultTitle": { + "message": "Henkilökohtaisen holvin vienti" + }, + "exportingOrganizationVaultTitle": { + "message": "Organisaation holvin vienti" + }, + "exportingPersonalVaultDescription": { + "message": "Vain tunnukseen $EMAIL$ liitetyt henkilökohtaiset holvin kohteet viedään. Organisaation kohteet eivät sisälly tähän.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Vain organisaatioon $ORGANIZATION$ liitetyt holvin kohteet viedään. Henkilökohtaiset ja muiden organisaatioiden kohteet eivät sisälly tähän.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Palaa raportteihin" + }, + "generator": { + "message": "Generaattori" + }, + "whatWouldYouLikeToGenerate": { + "message": "Mitä haluat luoda?" + }, + "passwordType": { + "message": "Salasanan tyyppi" + }, + "regenerateUsername": { + "message": "Luo uusi käyttäjätunnus" + }, + "generateUsername": { + "message": "Luo käyttäjätunnus" + }, + "usernameType": { + "message": "Käyttäjätunnuksen tyyppi" + }, + "plusAddressedEmail": { + "message": "Plus-osoitteinen sähköposti", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Käytä sähköpostipalvelusi aliosoiteominaisuuksia." + }, + "catchallEmail": { + "message": "Catch-all-sähköpostiosoite" + }, + "catchallEmailDesc": { + "message": "Käytä verkkotunnuksellesi määritettyä catch-all-postilaatikkoa." + }, + "random": { + "message": "Satunnainen" + }, + "randomWord": { + "message": "Satunnainen sana" + }, + "service": { + "message": "Palvelu" + } +} diff --git a/apps/web/src/locales/fil/messages.json b/apps/web/src/locales/fil/messages.json new file mode 100644 index 0000000000..5956fa88e4 --- /dev/null +++ b/apps/web/src/locales/fil/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Web Vault", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "What type of item is this?" + }, + "name": { + "message": "Pangalan" + }, + "uri": { + "message": "URl" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "New URI" + }, + "username": { + "message": "Username" + }, + "password": { + "message": "Password" + }, + "newPassword": { + "message": "Bagong Password" + }, + "passphrase": { + "message": "Passphrase" + }, + "notes": { + "message": "Notes" + }, + "customFields": { + "message": "Custom Fields" + }, + "cardholderName": { + "message": "Cardholder Name" + }, + "number": { + "message": "Number" + }, + "brand": { + "message": "Brand" + }, + "expiration": { + "message": "Expiration" + }, + "securityCode": { + "message": "Security Code (CVV)" + }, + "identityName": { + "message": "Identity Name" + }, + "company": { + "message": "Kumpanya" + }, + "ssn": { + "message": "Social Security Number" + }, + "passportNumber": { + "message": "Passport Number" + }, + "licenseNumber": { + "message": "License Number" + }, + "email": { + "message": "Email" + }, + "phone": { + "message": "Telepono" + }, + "january": { + "message": "Enero" + }, + "february": { + "message": "Pebrero" + }, + "march": { + "message": "Marso" + }, + "april": { + "message": "Abril" + }, + "may": { + "message": "Mayo" + }, + "june": { + "message": "Hunyo" + }, + "july": { + "message": "Hulyo" + }, + "august": { + "message": "Agosto" + }, + "september": { + "message": "Setyembre" + }, + "october": { + "message": "Oktubre" + }, + "november": { + "message": "Nobyembre" + }, + "december": { + "message": "Disyembre" + }, + "title": { + "message": "Pamagat" + }, + "mr": { + "message": "Ginoo" + }, + "mrs": { + "message": "Gng" + }, + "ms": { + "message": "Ms" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Expiration Month" + }, + "expirationYear": { + "message": "Expiration Year" + }, + "authenticatorKeyTotp": { + "message": "Authenticator Key (TOTP)" + }, + "folder": { + "message": "Folder" + }, + "newCustomField": { + "message": "New Custom Field" + }, + "value": { + "message": "Value" + }, + "dragToSort": { + "message": "Drag to sort" + }, + "cfTypeText": { + "message": "Teksto" + }, + "cfTypeHidden": { + "message": "Nakatago" + }, + "cfTypeBoolean": { + "message": "Boolean" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Alisin" + }, + "unassigned": { + "message": "Unassigned" + }, + "noneFolder": { + "message": "No Folder", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Add Folder" + }, + "editFolder": { + "message": "Edit Folder" + }, + "baseDomain": { + "message": "Base domain", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Eksakto" + }, + "startsWith": { + "message": "Starts with" + }, + "regEx": { + "message": "Regular expression", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Match Detection", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Default match detection", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Never" + }, + "toggleVisibility": { + "message": "Toggle Visibility" + }, + "toggleCollapse": { + "message": "Toggle Collapse", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generate Password" + }, + "checkPassword": { + "message": "Check if password has been exposed." + }, + "passwordExposed": { + "message": "This password has been exposed $VALUE$ time(s) in data breaches. You should change it.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "This password was not found in any known data breaches. It should be safe to use." + }, + "save": { + "message": "I-save" + }, + "cancel": { + "message": "Kanselahin" + }, + "canceled": { + "message": "Kinansela" + }, + "close": { + "message": "Isara" + }, + "delete": { + "message": "Alisin" + }, + "favorite": { + "message": "Paborito" + }, + "unfavorite": { + "message": "Unfavorite" + }, + "edit": { + "message": "Edit" + }, + "searchCollection": { + "message": "Search Collection" + }, + "searchFolder": { + "message": "Search Folder" + }, + "searchFavorites": { + "message": "Search Favorites" + }, + "searchType": { + "message": "Search Type", + "description": "Search item type" + }, + "searchVault": { + "message": "Search Vault" + }, + "allItems": { + "message": "All Items" + }, + "favorites": { + "message": "Favorites" + }, + "types": { + "message": "Mga uri" + }, + "typeLogin": { + "message": "Login" + }, + "typeCard": { + "message": "Card" + }, + "typeIdentity": { + "message": "Identity" + }, + "typeSecureNote": { + "message": "Secure Note" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "Mga folder" + }, + "collections": { + "message": "Collections" + }, + "firstName": { + "message": "Pangalan" + }, + "middleName": { + "message": "Gitnang pangalan" + }, + "lastName": { + "message": "Apelyido" + }, + "fullName": { + "message": "Buong pangalan" + }, + "address1": { + "message": "Address 1" + }, + "address2": { + "message": "Address 2" + }, + "address3": { + "message": "Address 3" + }, + "cityTown": { + "message": "Bayan/Town" + }, + "stateProvince": { + "message": "Estado/Probinsya" + }, + "zipPostalCode": { + "message": "Zip / Postal Code" + }, + "country": { + "message": "Bansa" + }, + "shared": { + "message": "Shared" + }, + "attachments": { + "message": "Attachments" + }, + "select": { + "message": "Select" + }, + "addItem": { + "message": "Add Item" + }, + "editItem": { + "message": "Edit Item" + }, + "viewItem": { + "message": "View Item" + }, + "ex": { + "message": "ex.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Iba pa" + }, + "share": { + "message": "Share" + }, + "moveToOrganization": { + "message": "Move to Organization" + }, + "valueCopied": { + "message": "$VALUE$ copied", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Copy Value", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Kopyahin ang password", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Kopyahin ang pangalan", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Copy Number", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copy Security Code", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Copy URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "My Vault" + }, + "vault": { + "message": "Vault" + }, + "moveSelectedToOrg": { + "message": "Move Selected to Organization" + }, + "deleteSelected": { + "message": "Delete Selected" + }, + "moveSelected": { + "message": "Move Selected" + }, + "selectAll": { + "message": "Select All" + }, + "unselectAll": { + "message": "Unselect All" + }, + "launch": { + "message": "Launch" + }, + "newAttachment": { + "message": "Add New Attachment" + }, + "deletedAttachment": { + "message": "Deleted attachment" + }, + "deleteAttachmentConfirmation": { + "message": "Are you sure you want to delete this attachment?" + }, + "attachmentSaved": { + "message": "The attachment has been saved." + }, + "file": { + "message": "File" + }, + "selectFile": { + "message": "Select a file." + }, + "maxFileSize": { + "message": "Maximum file size is 500 MB." + }, + "updateKey": { + "message": "You cannot use this feature until you update your encryption key." + }, + "addedItem": { + "message": "Added item" + }, + "editedItem": { + "message": "Edited item" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ moved to $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Selected items moved to $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Delete Item" + }, + "deleteFolder": { + "message": "Delete Folder" + }, + "deleteAttachment": { + "message": "Delete Attachment" + }, + "deleteItemConfirmation": { + "message": "Do you really want to send to the trash?" + }, + "deletedItem": { + "message": "Item sent to trash" + }, + "deletedItems": { + "message": "Items sent to trash" + }, + "movedItems": { + "message": "Moved items" + }, + "overwritePasswordConfirmation": { + "message": "Are you sure you want to overwrite the current password?" + }, + "editedFolder": { + "message": "Edited folder" + }, + "addedFolder": { + "message": "Added folder" + }, + "deleteFolderConfirmation": { + "message": "Are you sure you want to delete this folder?" + }, + "deletedFolder": { + "message": "Deleted folder" + }, + "loggedOut": { + "message": "Logged out" + }, + "loginExpired": { + "message": "Your login session has expired." + }, + "logOutConfirmation": { + "message": "Are you sure you want to log out?" + }, + "logOut": { + "message": "Log Out" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Yes" + }, + "no": { + "message": "No" + }, + "loginOrCreateNewAccount": { + "message": "Log in or create a new account to access your secure vault." + }, + "createAccount": { + "message": "Create Account" + }, + "logIn": { + "message": "Log In" + }, + "submit": { + "message": "Submit" + }, + "emailAddressDesc": { + "message": "You'll use your email address to log in." + }, + "yourName": { + "message": "Your Name" + }, + "yourNameDesc": { + "message": "What should we call you?" + }, + "masterPass": { + "message": "Master Password" + }, + "masterPassDesc": { + "message": "The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it." + }, + "masterPassHintDesc": { + "message": "A master password hint can help you remember your password if you forget it." + }, + "reTypeMasterPass": { + "message": "Re-type Master Password" + }, + "masterPassHint": { + "message": "Master Password Hint (optional)" + }, + "masterPassHintLabel": { + "message": "Master Password Hint" + }, + "settings": { + "message": "Settings" + }, + "passwordHint": { + "message": "Password Hint" + }, + "enterEmailToGetHint": { + "message": "Enter your account email address to receive your master password hint." + }, + "getMasterPasswordHint": { + "message": "Get master password hint" + }, + "emailRequired": { + "message": "Email address is required." + }, + "invalidEmail": { + "message": "Invalid email address." + }, + "masterPassRequired": { + "message": "Master password is required." + }, + "masterPassLength": { + "message": "Master password must be at least 8 characters long." + }, + "masterPassDoesntMatch": { + "message": "Master password confirmation does not match." + }, + "newAccountCreated": { + "message": "Your new account has been created! You may now log in." + }, + "masterPassSent": { + "message": "We've sent you an email with your master password hint." + }, + "unexpectedError": { + "message": "An unexpected error has occurred." + }, + "emailAddress": { + "message": "Email Address" + }, + "yourVaultIsLocked": { + "message": "Your vault is locked. Verify your master password to continue." + }, + "unlock": { + "message": "Unlock" + }, + "loggedInAsEmailOn": { + "message": "Logged in as $EMAIL$ on $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Invalid master password" + }, + "lockNow": { + "message": "Lock Now" + }, + "noItemsInList": { + "message": "There are no items to list." + }, + "noCollectionsInList": { + "message": "There are no collections to list." + }, + "noGroupsInList": { + "message": "There are no groups to list." + }, + "noUsersInList": { + "message": "There are no users to list." + }, + "noEventsInList": { + "message": "There are no events to list." + }, + "newOrganization": { + "message": "New Organization" + }, + "noOrganizationsList": { + "message": "You do not belong to any organizations. Organizations allow you to securely share items with other users." + }, + "versionNumber": { + "message": "Version $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Enter the 6 digit verification code from your authenticator app." + }, + "enterVerificationCodeEmail": { + "message": "Enter the 6 digit verification code that was emailed to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Verification email sent to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Remember me" + }, + "sendVerificationCodeEmailAgain": { + "message": "Send verification code email again" + }, + "useAnotherTwoStepMethod": { + "message": "Use another two-step login method" + }, + "insertYubiKey": { + "message": "Insert your YubiKey into your computer's USB port, then touch its button." + }, + "insertU2f": { + "message": "Insert your security key into your computer's USB port. If it has a button, touch it." + }, + "loginUnavailable": { + "message": "Login Unavailable" + }, + "noTwoStepProviders": { + "message": "This account has two-step login enabled, however, none of the configured two-step providers are supported by this web browser." + }, + "noTwoStepProviders2": { + "message": "Please use a supported web browser (such as Chrome) and/or add additional providers that are better supported across web browsers (such as an authenticator app)." + }, + "twoStepOptions": { + "message": "Two-step Login Options" + }, + "recoveryCodeDesc": { + "message": "Lost access to all of your two-factor providers? Use your recovery code to disable all two-factor providers from your account." + }, + "recoveryCodeTitle": { + "message": "Recovery Code" + }, + "authenticatorAppTitle": { + "message": "Authenticator App" + }, + "authenticatorAppDesc": { + "message": "Use an authenticator app (such as Authy or Google Authenticator) to generate time-based verification codes.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP Security Key" + }, + "yubiKeyDesc": { + "message": "Use a YubiKey to access your account. Works with YubiKey 4 series, 5 series, and NEO devices." + }, + "duoDesc": { + "message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verify with Duo Security for your organization using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Use any FIDO U2F enabled security key to access your account." + }, + "u2fTitle": { + "message": "FIDO U2F Security Key" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Verification codes will be emailed to you." + }, + "continue": { + "message": "Continue" + }, + "organization": { + "message": "Organization" + }, + "organizations": { + "message": "Organizations" + }, + "moveToOrgDesc": { + "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organization that you wish to move these items to. Moving to an organization transfers ownership of the items to that organization. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "Edit the collections that this item is being shared with. Only organization users with access to these collections will be able to see this item." + }, + "deleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to delete. Are you sure you want to delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Choose a folder that you would like to move the $COUNT$ selected item(s) to.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organization, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Verification Code (TOTP)" + }, + "copyVerificationCode": { + "message": "Copy Verification Code" + }, + "warning": { + "message": "Warning" + }, + "confirmVaultExport": { + "message": "Confirm Vault Export" + }, + "exportWarningDesc": { + "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "Export Vault" + }, + "fileFormat": { + "message": "File Format" + }, + "exportSuccess": { + "message": "Your vault data has been exported." + }, + "passwordGenerator": { + "message": "Password Generator" + }, + "minComplexityScore": { + "message": "Minimum Complexity Score" + }, + "minNumbers": { + "message": "Minimum Numbers" + }, + "minSpecial": { + "message": "Minimum Special", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Avoid Ambiguous Characters" + }, + "regeneratePassword": { + "message": "Regenerate Password" + }, + "length": { + "message": "Length" + }, + "numWords": { + "message": "Number of Words" + }, + "wordSeparator": { + "message": "Word Separator" + }, + "capitalize": { + "message": "Capitalize", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Include Number" + }, + "passwordHistory": { + "message": "Password History" + }, + "noPasswordsInList": { + "message": "There are no passwords to list." + }, + "clear": { + "message": "Clear", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Account Updated" + }, + "changeEmail": { + "message": "Change Email" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "New Email" + }, + "code": { + "message": "Code" + }, + "changeEmailDesc": { + "message": "We have emailed a verification code to $EMAIL$. Please check your email for this code and enter it below to finalize the email address change.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "emailChanged": { + "message": "Email Changed" + }, + "logBackIn": { + "message": "Please log back in." + }, + "logBackInOthersToo": { + "message": "Please log back in. If you are using other Bitwarden applications log out and back in to those as well." + }, + "changeMasterPassword": { + "message": "Change Master Password" + }, + "masterPasswordChanged": { + "message": "Master Password Changed" + }, + "currentMasterPass": { + "message": "Current Master Password" + }, + "newMasterPass": { + "message": "New Master Password" + }, + "confirmNewMasterPass": { + "message": "Confirm New Master Password" + }, + "encKeySettings": { + "message": "Encryption Key Settings" + }, + "kdfAlgorithm": { + "message": "KDF Algorithm" + }, + "kdfIterations": { + "message": "KDF Iterations" + }, + "kdfIterationsDesc": { + "message": "Higher KDF iterations can help protect your master password from being brute forced by an attacker. We recommend a value of $VALUE$ or more.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Setting your KDF iterations too high could result in poor performance when logging into (and unlocking) Bitwarden on devices with slower CPUs. We recommend that you increase the value in increments of $INCREMENT$ and then test all of your devices.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Change KDF" + }, + "encKeySettingsChanged": { + "message": "Encryption Key Settings Changed" + }, + "dangerZone": { + "message": "Danger Zone" + }, + "dangerZoneDesc": { + "message": "Careful, these actions are not reversible!" + }, + "deauthorizeSessions": { + "message": "Deauthorize Sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Concerned your account is logged in on another device? Proceed below to deauthorize all computers or devices that you have previously used. This security step is recommended if you previously used a public computer or accidentally saved your password on a device that isn't yours. This step will also clear all previously remembered two-step login sessions." + }, + "deauthorizeSessionsWarning": { + "message": "Proceeding will also log you out of your current session, requiring you to log back in. You will also be prompted for two-step login again, if enabled. Active sessions on other devices may continue to remain active for up to one hour." + }, + "sessionsDeauthorized": { + "message": "All Sessions Deauthorized" + }, + "purgeVault": { + "message": "Purge Vault" + }, + "purgedOrganizationVault": { + "message": "Purged organization vault." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Proceed below to delete all items and folders in your vault. Items that belong to an organization that you share with will not be deleted." + }, + "purgeOrgVaultDesc": { + "message": "Proceed below to delete all items in the organization's vault." + }, + "purgeVaultWarning": { + "message": "Purging your vault is permanent. It cannot be undone." + }, + "vaultPurged": { + "message": "Your vault has been purged." + }, + "deleteAccount": { + "message": "Delete Account" + }, + "deleteAccountDesc": { + "message": "Proceed below to delete your account and all associated data." + }, + "deleteAccountWarning": { + "message": "Deleting your account is permanent. It cannot be undone." + }, + "accountDeleted": { + "message": "Account Deleted" + }, + "accountDeletedDesc": { + "message": "Your account has been closed and all associated data has been deleted." + }, + "myAccount": { + "message": "My Account" + }, + "tools": { + "message": "Tools" + }, + "importData": { + "message": "Import Data" + }, + "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." + }, + "importSuccess": { + "message": "Data has been successfully imported into your vault." + }, + "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." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "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)" + } + } + }, + "options": { + "message": "Options" + }, + "optionsDesc": { + "message": "Customize your web vault experience." + }, + "optionsUpdated": { + "message": "Options updated" + }, + "language": { + "message": "Language" + }, + "languageDesc": { + "message": "Change the language used by the web vault." + }, + "disableIcons": { + "message": "Disable Website Icons" + }, + "disableIconsDesc": { + "message": "Website Icons provide a recognizable image next to each login item in your vault." + }, + "enableGravatars": { + "message": "Enable Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use avatar images loaded from gravatar.com." + }, + "enableFullWidth": { + "message": "Enable Full Width Layout", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Allow the web vault to expand the full width of the browser window." + }, + "default": { + "message": "Default" + }, + "domainRules": { + "message": "Domain Rules" + }, + "domainRulesDesc": { + "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + }, + "globalEqDomains": { + "message": "Global Equivalent Domains" + }, + "customEqDomains": { + "message": "Custom Equivalent Domains" + }, + "exclude": { + "message": "Exclude" + }, + "include": { + "message": "Include" + }, + "customize": { + "message": "Customize" + }, + "newCustomDomain": { + "message": "New Custom Domain" + }, + "newCustomDomainDesc": { + "message": "Enter a list of domains separated by commas. Only \"base\" domains are allowed. Do not enter subdomains. For example, enter \"google.com\" instead of \"www.google.com\". You can also enter \"androidapp://package.name\" to associate an android app with other website domains." + }, + "customDomainX": { + "message": "Custom Domain $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domains updated" + }, + "twoStepLogin": { + "message": "Two-step Login" + }, + "twoStepLoginDesc": { + "message": "Secure your account by requiring an additional step when logging in." + }, + "twoStepLoginOrganizationDesc": { + "message": "Require two-step login for your organization's users by configuring providers at the organization level." + }, + "twoStepLoginRecoveryWarning": { + "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (ex. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + }, + "viewRecoveryCode": { + "message": "View Recovery Code" + }, + "providers": { + "message": "Providers", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Enable" + }, + "enabled": { + "message": "Enabled" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium Membership" + }, + "premiumRequired": { + "message": "Premium Required" + }, + "premiumRequiredDesc": { + "message": "A premium membership is required to use this feature." + }, + "youHavePremiumAccess": { + "message": "You have premium access" + }, + "alreadyPremiumFromOrg": { + "message": "You already have access to premium features because of an organization you are a member of." + }, + "manage": { + "message": "Manage" + }, + "disable": { + "message": "Disable" + }, + "twoStepLoginProviderEnabled": { + "message": "This two-step login provider is enabled on your account." + }, + "twoStepLoginAuthDesc": { + "message": "Enter your master password to modify two-step login settings." + }, + "twoStepAuthenticatorDesc": { + "message": "Follow these steps to set up two-step login with an authenticator app:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Download a two-step authenticator app" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Need a two-step authenticator app? Download one of the following" + }, + "iosDevices": { + "message": "iOS devices" + }, + "androidDevices": { + "message": "Android devices" + }, + "windowsDevices": { + "message": "Windows devices" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "These apps are recommended, however, other authenticator apps will also work." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scan this QR code with your authenticator app" + }, + "key": { + "message": "Key" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Enter the resulting 6 digit verification code from the app" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app." + }, + "twoStepDisableDesc": { + "message": "Are you sure you want to disable this two-step login provider?" + }, + "twoStepDisabled": { + "message": "Two-step login provider disabled." + }, + "twoFactorYubikeyAdd": { + "message": "Add a new YubiKey to your account" + }, + "twoFactorYubikeyPlugIn": { + "message": "Plug the YubiKey into your computer's USB port." + }, + "twoFactorYubikeySelectKey": { + "message": "Select the first empty YubiKey input field below." + }, + "twoFactorYubikeyTouchButton": { + "message": "Touch the YubiKey's button." + }, + "twoFactorYubikeySaveForm": { + "message": "Save the form." + }, + "twoFactorYubikeyWarning": { + "message": "Due to platform limitations, YubiKeys cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when YubiKeys cannot be used. Supported platforms:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile apps on a device with NFC capabilities or a data port that can accept your YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC Support" + }, + "twoFactorYubikeySupportsNfc": { + "message": "One of my keys supports NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "If one of your YubiKeys supports NFC (such as a YubiKey NEO), you will be prompted on mobile devices whenever NFC availability is detected." + }, + "yubikeysUpdated": { + "message": "YubiKeys updated" + }, + "disableAllKeys": { + "message": "Disable All Keys" + }, + "twoFactorDuoDesc": { + "message": "Enter the Bitwarden application information from your Duo Admin panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration Key" + }, + "twoFactorDuoSecretKey": { + "message": "Secret Key" + }, + "twoFactorDuoApiHostname": { + "message": "API Hostname" + }, + "twoFactorEmailDesc": { + "message": "Follow these steps to set up two-step login with email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enter the email that you wish to receive verification codes" + }, + "twoFactorEmailEnterCode": { + "message": "Enter the resulting 6 digit verification code from the email" + }, + "sendEmail": { + "message": "Send Email" + }, + "twoFactorU2fAdd": { + "message": "Add a FIDO U2F security key to your account" + }, + "removeU2fConfirmation": { + "message": "Are you sure you want to remove this security key?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Read Key" + }, + "keyCompromised": { + "message": "Key is compromised." + }, + "twoFactorU2fGiveName": { + "message": "Give the security key a friendly name to identify it." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Plug the security key into your computer's USB port and click the \"Read Key\" button." + }, + "twoFactorU2fTouchButton": { + "message": "If the security key has a button, touch it." + }, + "twoFactorU2fSaveForm": { + "message": "Save the form." + }, + "twoFactorU2fWarning": { + "message": "Due to platform limitations, FIDO U2F cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when FIDO U2F cannot be used. Supported platforms:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorU2fWaiting": { + "message": "Waiting for you to touch the button on your security key" + }, + "twoFactorU2fClickSave": { + "message": "Click the \"Save\" button below to enable this security key for two-step login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Your Bitwarden two-step login recovery code" + }, + "twoFactorRecoveryNoCode": { + "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + }, + "printCode": { + "message": "Print Code", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Reports" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Unsecure Websites" + }, + "unsecuredWebsitesReportDesc": { + "message": "URLs that start with http:// don’t use the best available encryption. Change the Login URIs for these accounts to https:// for safer browsing." + }, + "unsecuredWebsitesFound": { + "message": "Unsecured Websites Found" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Inactive Two-step Login" + }, + "inactive2faReportDesc": { + "message": "Two-step Login adds a layer of protection to your accounts. Turn on Two-Step Login using Bitwarden Authenticator for these accounts or use an alternative method." + }, + "inactive2faFound": { + "message": "Logins Without 2FA Found" + }, + "inactive2faFoundDesc": { + "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to 2fa.directory). To further protect these accounts, you should enable two-factor authentication.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No websites were found in your vault with a missing two-factor authentication configuration." + }, + "instructions": { + "message": "Instructions" + }, + "exposedPasswordsReport": { + "message": "Exposed Passwords" + }, + "exposedPasswordsReportDesc": { + "message": "Passwords exposed in a data breach are easy targets for attackers. Change these passwords to prevent potential break-ins." + }, + "exposedPasswordsFound": { + "message": "Exposed Passwords Found" + }, + "exposedPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No items in your vault have passwords that have been exposed in known data breaches." + }, + "checkExposedPasswords": { + "message": "Check Exposed Passwords" + }, + "exposedXTimes": { + "message": "Exposed $COUNT$ time(s)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Weak Passwords" + }, + "weakPasswordsReportDesc": { + "message": "Weak passwords can be easily guessed by attackers. Change these passwords to strong ones using the Password Generator." + }, + "weakPasswordsFound": { + "message": "Weak Passwords Found" + }, + "weakPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "No items in your vault have weak passwords." + }, + "reusedPasswordsReport": { + "message": "Reused Passwords" + }, + "reusedPasswordsReportDesc": { + "message": "Reusing passwords makes it easier for attackers to break into multiple accounts. Change these passwords so that each is unique." + }, + "reusedPasswordsFound": { + "message": "Reused Passwords Found" + }, + "reusedPasswordsFoundDesc": { + "message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "No logins in your vault have passwords that are being reused." + }, + "reusedXTimes": { + "message": "Reused $COUNT$ times", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Data Breach" + }, + "breachDesc": { + "message": "Breached accounts can expose your personal information. Secure breached accounts by enabling 2FA or creating a stronger password." + }, + "breachCheckUsernameEmail": { + "message": "Check any usernames or email addresses that you use." + }, + "checkBreaches": { + "message": "Check Breaches" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ was not found in any known data breaches.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Good News", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Breached Accounts Found" + }, + "compromisedData": { + "message": "Compromised data" + }, + "website": { + "message": "Website" + }, + "affectedUsers": { + "message": "Affected Users" + }, + "breachOccurred": { + "message": "Breach Occurred" + }, + "breachReported": { + "message": "Breach Reported" + }, + "reportError": { + "message": "An error occurred trying to load the report. Try again" + }, + "billing": { + "message": "Billing" + }, + "accountCredit": { + "message": "Account Credit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Account Balance", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Add Credit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Amount", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Added credit will appear on your account after the payment has been fully processed. Some payment methods are delayed and can take longer to process than others." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + }, + "goPremium": { + "message": "Go Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "You've upgraded to premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Upgrade your account to a premium membership and unlock some great additional features." + }, + "premiumSignUpStorage": { + "message": "1 GB encrypted storage for file attachments." + }, + "premiumSignUpTwoStep": { + "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + }, + "premiumSignUpTotp": { + "message": "TOTP verification code (2FA) generator for logins in your vault." + }, + "premiumSignUpSupport": { + "message": "Priority customer support." + }, + "premiumSignUpFuture": { + "message": "All future premium features. More coming soon!" + }, + "premiumPrice": { + "message": "All for just $PRICE$ /year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Addons" + }, + "premiumAccess": { + "message": "Premium Access" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organization for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Additional Storage (GB)" + }, + "additionalStorageGbDesc": { + "message": "# of additional GB" + }, + "additionalStorageIntervalDesc": { + "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Summary" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "year" + }, + "month": { + "message": "month" + }, + "monthAbbr": { + "message": "mo.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Your payment method will be charged immediately and then on a recurring basis each year. You may cancel at any time." + }, + "paymentCharged": { + "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Your plan comes with a free 7 day trial. Your payment method will not be charged until the trial has ended. You may cancel at any time." + }, + "paymentInformation": { + "message": "Payment Information" + }, + "billingInformation": { + "message": "Billing Information" + }, + "creditCard": { + "message": "Credit Card" + }, + "paypalClickSubmit": { + "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + }, + "cancelSubscription": { + "message": "Cancel Subscription" + }, + "subscriptionCanceled": { + "message": "The subscription has been canceled." + }, + "pendingCancellation": { + "message": "Pending Cancellation" + }, + "subscriptionPendingCanceled": { + "message": "The subscription has been marked for cancellation at the end of the current billing period." + }, + "reinstateSubscription": { + "message": "Reinstate Subscription" + }, + "reinstateConfirmation": { + "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + }, + "reinstated": { + "message": "The subscription has been reinstated." + }, + "cancelConfirmation": { + "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + }, + "canceledSubscription": { + "message": "The subscription has been canceled." + }, + "neverExpires": { + "message": "Never Expires" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Next Charge" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "Download License" + }, + "updateLicense": { + "message": "Update License" + }, + "updatedLicense": { + "message": "Updated license" + }, + "manageSubscription": { + "message": "Manage Subscription" + }, + "storage": { + "message": "Storage" + }, + "addStorage": { + "message": "Add Storage" + }, + "removeStorage": { + "message": "Remove Storage" + }, + "subscriptionStorage": { + "message": "Your subscription has a total of $MAX_STORAGE$ GB of encrypted file storage. You are currently using $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Payment Method" + }, + "noPaymentMethod": { + "message": "No payment method on file." + }, + "addPaymentMethod": { + "message": "Add Payment Method" + }, + "changePaymentMethod": { + "message": "Change Payment Method" + }, + "invoices": { + "message": "Invoices" + }, + "noInvoices": { + "message": "No invoices." + }, + "paid": { + "message": "Paid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Unpaid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transactions", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "No transactions." + }, + "chargeNoun": { + "message": "Charge", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Refund", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Any charges will appear on your statement as $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB of Storage To Add" + }, + "gbStorageRemove": { + "message": "GB of Storage To Remove" + }, + "storageAddNote": { + "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "storageRemoveNote": { + "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedStorage": { + "message": "Adjusted $AMOUNT$ GB of storage.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contact Customer Support" + }, + "updatedPaymentMethod": { + "message": "Updated payment method." + }, + "purchasePremium": { + "message": "Purchase Premium" + }, + "licenseFile": { + "message": "License File" + }, + "licenseFileDesc": { + "message": "Your license file will be named something like $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "To upgrade your account to a premium membership you need to upload a valid license file." + }, + "uploadLicenseFileOrg": { + "message": "To create an on-premises hosted organization you need to upload a valid license file." + }, + "accountEmailMustBeVerified": { + "message": "Your account's email address must be verified." + }, + "newOrganizationDesc": { + "message": "Organizations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company." + }, + "generalInformation": { + "message": "General Information" + }, + "organizationName": { + "message": "Organization Name" + }, + "accountOwnedBusiness": { + "message": "This account is owned by a business." + }, + "billingEmail": { + "message": "Billing Email" + }, + "businessName": { + "message": "Business Name" + }, + "chooseYourPlan": { + "message": "Choose Your Plan" + }, + "users": { + "message": "Users" + }, + "userSeats": { + "message": "User Seats" + }, + "additionalUserSeats": { + "message": "Additional User Seats" + }, + "userSeatsDesc": { + "message": "# of user seats" + }, + "userSeatsAdditionalDesc": { + "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "How many user seats do you need? You can also add additional seats later if needed." + }, + "planNameFree": { + "message": "Free", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing or personal users to share with $COUNT$ other user.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Families" + }, + "planDescFamilies": { + "message": "For personal use, to share with family & friends." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "For businesses and other team organizations." + }, + "planNameEnterprise": { + "message": "Enterprise" + }, + "planDescEnterprise": { + "message": "For businesses and other large organizations." + }, + "freeForever": { + "message": "Free Forever" + }, + "includesXUsers": { + "message": "includes $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Additional Users" + }, + "costPerUser": { + "message": "$COST$ per user", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limited to $COUNT$ users (including you)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limited to $COUNT$ collections", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Add and share with up to $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Add and share with unlimited users" + }, + "createUnlimitedCollections": { + "message": "Create unlimited Collections" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ encrypted file storage", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "On-premise hosting (optional)" + }, + "usersGetPremium": { + "message": "Users get access to Premium Features" + }, + "controlAccessWithGroups": { + "message": "Control user access with Groups" + }, + "syncUsersFromDirectory": { + "message": "Sync your users and Groups from a directory" + }, + "trackAuditLogs": { + "message": "Track user actions with audit logs" + }, + "enforce2faDuo": { + "message": "Enforce 2FA with Duo" + }, + "priorityCustomerSupport": { + "message": "Priority customer support" + }, + "xDayFreeTrial": { + "message": "$COUNT$ day free trial, cancel anytime", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Monthly" + }, + "annually": { + "message": "Annually" + }, + "basePrice": { + "message": "Base Price" + }, + "organizationCreated": { + "message": "Organization Created" + }, + "organizationReadyToGo": { + "message": "Your new organization is ready to go!" + }, + "organizationUpgraded": { + "message": "Your organization has been upgraded." + }, + "leave": { + "message": "Leave" + }, + "leaveOrganizationConfirmation": { + "message": "Are you sure you want to leave this organization?" + }, + "leftOrganization": { + "message": "You have left the organization." + }, + "defaultCollection": { + "message": "Default Collection" + }, + "getHelp": { + "message": "Get Help" + }, + "getApps": { + "message": "Get the Apps" + }, + "loggedInAs": { + "message": "Logged in as" + }, + "eventLogs": { + "message": "Event Logs" + }, + "people": { + "message": "People" + }, + "policies": { + "message": "Policies" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Edit Policy" + }, + "groups": { + "message": "Groups" + }, + "newGroup": { + "message": "New Group" + }, + "addGroup": { + "message": "Add Group" + }, + "editGroup": { + "message": "Edit Group" + }, + "deleteGroupConfirmation": { + "message": "Are you sure you want to delete this group?" + }, + "removeUserConfirmation": { + "message": "Are you sure you want to remove this user?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "External Id" + }, + "externalIdDesc": { + "message": "The external id can be used as a reference or to link this resource to an external system such as a user directory." + }, + "accessControl": { + "message": "Access Control" + }, + "groupAccessAllItems": { + "message": "This group can access and modify all items." + }, + "groupAccessSelectedCollections": { + "message": "This group can access only the selected collections." + }, + "readOnly": { + "message": "Read Only" + }, + "newCollection": { + "message": "New Collection" + }, + "addCollection": { + "message": "Add Collection" + }, + "editCollection": { + "message": "Edit Collection" + }, + "deleteCollectionConfirmation": { + "message": "Are you sure you want to delete this collection?" + }, + "editUser": { + "message": "Edit User" + }, + "inviteUser": { + "message": "Invite User" + }, + "inviteUserDesc": { + "message": "Invite a new user to your organization by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "inviteMultipleEmailDesc": { + "message": "You can invite up to $COUNT$ users at a time by comma separating a list of email addresses.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "This user is using two-step login to protect their account." + }, + "userAccessAllItems": { + "message": "This user can access and modify all items." + }, + "userAccessSelectedCollections": { + "message": "This user can access only the selected collections." + }, + "search": { + "message": "Search" + }, + "invited": { + "message": "Invited" + }, + "accepted": { + "message": "Accepted" + }, + "confirmed": { + "message": "Confirmed" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Owner" + }, + "ownerDesc": { + "message": "The highest access user that can manage all aspects of your organization." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admins can access and manage all items, collections and users in your organization." + }, + "user": { + "message": "User" + }, + "userDesc": { + "message": "A regular user with access to assigned collections in your organization." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managers can access and manage assigned collections in your organization." + }, + "all": { + "message": "All" + }, + "refresh": { + "message": "Refresh" + }, + "timestamp": { + "message": "Timestamp" + }, + "event": { + "message": "Event" + }, + "unknown": { + "message": "Unknown" + }, + "loadMore": { + "message": "Load More" + }, + "mobile": { + "message": "Mobile", + "description": "Mobile app" + }, + "extension": { + "message": "Extension", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Web Vault" + }, + "loggedIn": { + "message": "Logged in." + }, + "changedPassword": { + "message": "Changed account password." + }, + "enabledUpdated2fa": { + "message": "Enabled/updated two-step login." + }, + "disabled2fa": { + "message": "Disabled two-step login." + }, + "recovered2fa": { + "message": "Recovered account from two-step login." + }, + "failedLogin": { + "message": "Login attempt failed with incorrect password." + }, + "failedLogin2fa": { + "message": "Login attempt failed with incorrect two-step login." + }, + "exportedVault": { + "message": "Exported vault." + }, + "exportedOrganizationVault": { + "message": "Exported organization vault." + }, + "editedOrgSettings": { + "message": "Edited organization settings." + }, + "createdItemId": { + "message": "Created item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Edited item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Sent item $ID$ to trash.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Viewed item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Viewed password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Viewed hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Viewed security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Copied password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Copied hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Copied security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Auto-filled item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Created collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Edited collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Deleted collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Edited policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Created group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Edited group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Deleted group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Removed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Created attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Deleted attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Edited collections for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Invited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Confirmed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Edited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Edited groups for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Device" + }, + "view": { + "message": "View" + }, + "invalidDateRange": { + "message": "Invalid date range." + }, + "errorOccurred": { + "message": "An error has occurred." + }, + "userAccess": { + "message": "User Access" + }, + "userType": { + "message": "User Type" + }, + "groupAccess": { + "message": "Group Access" + }, + "groupAccessUserDesc": { + "message": "Edit the groups that this user belongs to." + }, + "invitedUsers": { + "message": "Invited user(s)." + }, + "resendInvitation": { + "message": "Resend Invitation" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ has been reinvited.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirm" + }, + "confirmUser": { + "message": "Confirm User" + }, + "hasBeenConfirmed": { + "message": "$USER$ has been confirmed.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirm Users" + }, + "usersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organization until they are confirmed." + }, + "startDate": { + "message": "Start Date" + }, + "endDate": { + "message": "End Date" + }, + "verifyEmail": { + "message": "Verify Email" + }, + "verifyEmailDesc": { + "message": "Verify your account's email address to unlock access to all features." + }, + "verifyEmailFirst": { + "message": "Your account's email address first must be verified." + }, + "checkInboxForVerification": { + "message": "Check your email inbox for a verification link." + }, + "emailVerified": { + "message": "Your email has been verified." + }, + "emailVerifiedFailed": { + "message": "Unable to verify your email. Try sending a new verification email." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "Update Browser" + }, + "updateBrowserDesc": { + "message": "You are using an unsupported web browser. The web vault may not function properly." + }, + "joinOrganization": { + "message": "Join Organization" + }, + "joinOrganizationDesc": { + "message": "You've been invited to join the organization listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "inviteAccepted": { + "message": "Invitation Accepted" + }, + "inviteAcceptedDesc": { + "message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens." + }, + "inviteAcceptFailed": { + "message": "Unable to accept invitation. Ask an organization admin to send a new invitation." + }, + "inviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Remember email" + }, + "recoverAccountTwoStepDesc": { + "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + }, + "recoverAccountTwoStep": { + "message": "Recover Account Two-Step Login" + }, + "twoStepRecoverDisabled": { + "message": "Two-step login has been disabled on your account." + }, + "learnMore": { + "message": "Learn more" + }, + "deleteRecoverDesc": { + "message": "Enter your email address below to recover and delete your account." + }, + "deleteRecoverEmailSent": { + "message": "If your account exists, we've sent you an email with further instructions." + }, + "deleteRecoverConfirmDesc": { + "message": "You have requested to delete your Bitwarden account. Click the button below to confirm." + }, + "myOrganization": { + "message": "My Organization" + }, + "deleteOrganization": { + "message": "Delete Organization" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organization Deleted" + }, + "organizationDeletedDesc": { + "message": "The organization and all associated data has been deleted." + }, + "organizationUpdated": { + "message": "Organization updated" + }, + "taxInformation": { + "message": "Tax Information" + }, + "taxInformationDesc": { + "message": "For customers within the US, ZIP code is required to satisfy sales tax requirements, for other countries you may optionally provide a tax identification number (VAT/GST) and/or address to appear on your invoices." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Upgrade Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade your account to another plan by providing the information below. Please ensure that you have an active payment method added to the account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Invoice #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "View Invoice" + }, + "downloadInvoice": { + "message": "Download Invoice" + }, + "verifyBankAccount": { + "message": "Verify Bank Account" + }, + "verifyBankAccountDesc": { + "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." + }, + "verifyBankAccountInitialDesc": { + "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organization's billing page to verify the bank account." + }, + "verifyBankAccountFailureWarning": { + "message": "Failure to verify the bank account will result in a missed payment and your subscription being disabled." + }, + "verifiedBankAccount": { + "message": "Bank account has been verified." + }, + "bankAccount": { + "message": "Bank Account" + }, + "amountX": { + "message": "Amount $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Account Number" + }, + "accountHolderName": { + "message": "Account Holder Name" + }, + "bankAccountType": { + "message": "Account Type" + }, + "bankAccountTypeCompany": { + "message": "Company (Business)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Personal)" + }, + "enterInstallationId": { + "message": "Enter your installation id" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Add Seats", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remove Seats", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Your subscription allows for a total of $COUNT$ users.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seats To Add" + }, + "seatsToRemove": { + "message": "Seats To Remove" + }, + "seatsAddNote": { + "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "seatsRemoveNote": { + "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedSeats": { + "message": "Adjusted $AMOUNT$ user seats.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Key Updated" + }, + "updateKeyTitle": { + "message": "Update Key" + }, + "updateEncryptionKey": { + "message": "Update Encryption Key" + }, + "updateEncryptionKeyShortDesc": { + "message": "You are currently using an outdated encryption scheme." + }, + "updateEncryptionKeyDesc": { + "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, however, it may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "Subscription" + }, + "loading": { + "message": "Loading" + }, + "upgrade": { + "message": "Upgrade" + }, + "upgradeOrganization": { + "message": "Upgrade Organization" + }, + "upgradeOrganizationDesc": { + "message": "This feature is not available for free organizations. Switch to a paid plan to unlock more features." + }, + "createOrganizationStep1": { + "message": "Create Organization: Step 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Before creating your organization, you first need to create a free personal account." + }, + "refunded": { + "message": "Refunded" + }, + "nothingSelected": { + "message": "You have not selected anything." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." + }, + "termsOfService": { + "message": "Terms of Service" + }, + "privacyPolicy": { + "message": "Privacy Policy" + }, + "filters": { + "message": "Filters" + }, + "vaultTimeout": { + "message": "Vault Timeout" + }, + "vaultTimeoutDesc": { + "message": "Choose when your vault will timeout and perform the selected action." + }, + "oneMinute": { + "message": "1 minute" + }, + "fiveMinutes": { + "message": "5 minutes" + }, + "fifteenMinutes": { + "message": "15 minutes" + }, + "thirtyMinutes": { + "message": "30 minutes" + }, + "oneHour": { + "message": "1 hour" + }, + "fourHours": { + "message": "4 hours" + }, + "onRefresh": { + "message": "On Browser Refresh" + }, + "dateUpdated": { + "message": "Updated", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Password Updated", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organization is disabled." + }, + "licenseIsExpired": { + "message": "License is expired." + }, + "updatedUsers": { + "message": "Updated users" + }, + "selected": { + "message": "Selected" + }, + "ownership": { + "message": "Ownership" + }, + "whoOwnsThisItem": { + "message": "Who owns this item?" + }, + "strong": { + "message": "Strong", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Good", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Weak", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Very Weak", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Weak Master Password" + }, + "weakMasterPasswordDesc": { + "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + }, + "rotateAccountEncKey": { + "message": "Also rotate my account's encryption key" + }, + "rotateEncKeyTitle": { + "message": "Rotate Encryption Key" + }, + "rotateEncKeyConfirmation": { + "message": "Are you sure you want to rotate your account's encryption key?" + }, + "attachmentsNeedFix": { + "message": "This item has old file attachments that need to be fixed." + }, + "attachmentFixDesc": { + "message": "This is an old file attachment the needs to be fixed. Click to learn more." + }, + "fix": { + "message": "Fix", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key." + }, + "yourAccountsFingerprint": { + "message": "Your account's fingerprint phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Never prompt to verify fingerprint phrases for invited users (Not recommended)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Free", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API Key" + }, + "apiKeyDesc": { + "message": "Your API key can be used to authenticate to the Bitwarden public API." + }, + "apiKeyRotateDesc": { + "message": "Rotating the API key will invalidate the previous key. You can rotate your API key if you believe that the current key is no longer safe to use." + }, + "apiKeyWarning": { + "message": "Your API key has full access to the organization. It should be kept secret." + }, + "userApiKeyDesc": { + "message": "Your API key can be used to authenticate in the Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 Client Credentials", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "View API Key" + }, + "rotateApiKey": { + "message": "Rotate API Key" + }, + "selectOneCollection": { + "message": "You must select at least one collection." + }, + "couldNotChargeCardPayInvoice": { + "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + }, + "inAppPurchase": { + "message": "In-app Purchase" + }, + "cannotPerformInAppPurchase": { + "message": "You cannot perform this action while using an in-app purchase payment method." + }, + "manageSubscriptionFromStore": { + "message": "You must manage your subscription from the store where your in-app purchase was made." + }, + "minLength": { + "message": "Minimum Length" + }, + "clone": { + "message": "Clone" + }, + "masterPassPolicyDesc": { + "message": "Set minimum requirements for master password strength." + }, + "twoStepLoginPolicyDesc": { + "message": "Require users to set up two-step login on their personal accounts." + }, + "twoStepLoginPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and do not have two-step login enabled for their personal account will be removed from the organization and will receive an email notifying them about the change." + }, + "twoStepLoginPolicyUserWarning": { + "message": "You are a member of an organization that requires two-step login to be enabled on your user account. If you disable all two-step login providers you will be automatically removed from these organizations." + }, + "passwordGeneratorPolicyDesc": { + "message": "Set minimum requirements for password generator configuration." + }, + "passwordGeneratorPolicyInEffect": { + "message": "One or more organization policies are affecting your generator settings." + }, + "masterPasswordPolicyInEffect": { + "message": "One or more organization policies require your master password to meet the following requirements:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum complexity score of $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum length of $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contain one or more uppercase characters" + }, + "policyInEffectLowercase": { + "message": "Contain one or more lowercase characters" + }, + "policyInEffectNumbers": { + "message": "Contain one or more numbers" + }, + "policyInEffectSpecial": { + "message": "Contain one or more of the following special characters $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Your new master password does not meet the policy requirements." + }, + "minimumNumberOfWords": { + "message": "Minimum Number of Words" + }, + "defaultType": { + "message": "Default Type" + }, + "userPreference": { + "message": "User Preference" + }, + "vaultTimeoutAction": { + "message": "Vault Timeout Action" + }, + "vaultTimeoutActionLockDesc": { + "message": "A locked vault requires that you re-enter your master password to access it again." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "A logged out vault requires that you re-authenticate to access it again." + }, + "lock": { + "message": "Lock", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Trash", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Search Trash" + }, + "permanentlyDelete": { + "message": "Permanently Delete" + }, + "permanentlyDeleteSelected": { + "message": "Permanently Delete Selected" + }, + "permanentlyDeleteItem": { + "message": "Permanently Delete Item" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Are you sure you want to permanently delete this item?" + }, + "permanentlyDeletedItem": { + "message": "Permanently Deleted item" + }, + "permanentlyDeletedItems": { + "message": "Permanently Deleted items" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Permanently Deleted item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restore" + }, + "restoreSelected": { + "message": "Restore Selected" + }, + "restoreItem": { + "message": "Restore Item" + }, + "restoredItem": { + "message": "Restored Item" + }, + "restoredItems": { + "message": "Restored Items" + }, + "restoreItemConfirmation": { + "message": "Are you sure you want to restore this item?" + }, + "restoreItems": { + "message": "Restore items" + }, + "restoreSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Restored item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout Action Confirmation" + }, + "hidePasswords": { + "message": "Hide Passwords" + }, + "countryPostalCodeRequiredDesc": { + "message": "We require this information for calculating sales tax and financial reporting only." + }, + "includeVAT": { + "message": "Include VAT/GST Information (optional)" + }, + "taxIdNumber": { + "message": "VAT/GST Tax ID" + }, + "taxInfoUpdated": { + "message": "Tax information updated." + }, + "setMasterPassword": { + "message": "Set Master Password" + }, + "ssoCompleteRegistration": { + "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + }, + "identifier": { + "message": "Identifier" + }, + "organizationIdentifier": { + "message": "Organization Identifier" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Log in using your organization's single sign-on portal. Please enter your organization's identifier to begin." + }, + "enterpriseSingleSignOn": { + "message": "Enterprise Single Sign-On" + }, + "ssoHandOff": { + "message": "You may now close this tab and continue in the extension." + }, + "includeAllTeamsFeatures": { + "message": "All Teams features, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO Authentication via SAML2.0 and OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Enterprise Policies" + }, + "ssoValidationFailed": { + "message": "SSO Validation Failed" + }, + "ssoIdentifierRequired": { + "message": "Organization Identifier is required." + }, + "unlinkSso": { + "message": "Unlink SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Link SSO" + }, + "singleOrg": { + "message": "Single Organization" + }, + "singleOrgDesc": { + "message": "Restrict users from being able to join any other organizations." + }, + "singleOrgBlockCreateMessage": { + "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + }, + "singleOrgPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + }, + "requireSso": { + "message": "Single Sign-On Authentication" + }, + "requireSsoPolicyDesc": { + "message": "Require users to log in with the Enterprise Single Sign-On method." + }, + "prerequisite": { + "message": "Prerequisite" + }, + "requireSsoPolicyReq": { + "message": "The Single Organization enterprise policy must be enabled before activating this policy." + }, + "requireSsoPolicyReqError": { + "message": "Single Organization policy not enabled." + }, + "requireSsoExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "sendTypeFile": { + "message": "File" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Create New Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edit Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Created Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Edited Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Deleted Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Delete Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Are you sure you want to delete this Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "What type of Send is this?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Deletion Date" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Expiration Date" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximum Access Count" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Current Access Count" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Disabled" + }, + "sendLink": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copy Send Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remove Password" + }, + "removedPassword": { + "message": "Removed Password" + }, + "removePasswordConfirmation": { + "message": "Are you sure you want to remove the password?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "All Sends" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "expired": { + "message": "Expired" + }, + "searchSends": { + "message": "Search Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "This Send is protected with a password. Please type the password below to continue.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Download File" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "There are no Sends to list.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Emergency Access" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Request Access" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approve" + }, + "reject": { + "message": "Reject" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Disable Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "Estimated tax" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Manage All Collections" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Manage Groups" + }, + "managePolicies": { + "message": "Manage Policies" + }, + "manageSso": { + "message": "Manage SSO" + }, + "manageUsers": { + "message": "Manage Users" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organization users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Learn more about", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Learn more", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "try it now", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "sign up", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "to try it today.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organization policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organization administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/fr/messages.json b/apps/web/src/locales/fr/messages.json new file mode 100644 index 0000000000..ad75a1f82e --- /dev/null +++ b/apps/web/src/locales/fr/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "Coffre web $APP_NAME$", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Quel type d'élément est-ce ?" + }, + "name": { + "message": "Nom" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Nouvelle URI" + }, + "username": { + "message": "Nom d'utilisateur" + }, + "password": { + "message": "Mot de passe" + }, + "newPassword": { + "message": "Nouveau mot de passe" + }, + "passphrase": { + "message": "Phrase de passe" + }, + "notes": { + "message": "Notes" + }, + "customFields": { + "message": "Champs personnalisés" + }, + "cardholderName": { + "message": "Nom du titulaire de la carte" + }, + "number": { + "message": "Numéro" + }, + "brand": { + "message": "Réseau de paiement" + }, + "expiration": { + "message": "Expiration" + }, + "securityCode": { + "message": "Cryptogramme visuel (CVV)" + }, + "identityName": { + "message": "Identité" + }, + "company": { + "message": "Société" + }, + "ssn": { + "message": "Numéro de sécurité sociale" + }, + "passportNumber": { + "message": "Numéro de passeport" + }, + "licenseNumber": { + "message": "Numéro de permis" + }, + "email": { + "message": "E-mail" + }, + "phone": { + "message": "Téléphone" + }, + "january": { + "message": "Janvier" + }, + "february": { + "message": "Février" + }, + "march": { + "message": "Mars" + }, + "april": { + "message": "Avril" + }, + "may": { + "message": "Mai" + }, + "june": { + "message": "Juin" + }, + "july": { + "message": "Juillet" + }, + "august": { + "message": "Août" + }, + "september": { + "message": "Septembre" + }, + "october": { + "message": "Octobre" + }, + "november": { + "message": "Novembre" + }, + "december": { + "message": "Décembre" + }, + "title": { + "message": "Titre" + }, + "mr": { + "message": "M." + }, + "mrs": { + "message": "Mme" + }, + "ms": { + "message": "Mlle" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Mois d'expiration" + }, + "expirationYear": { + "message": "Année d'expiration" + }, + "authenticatorKeyTotp": { + "message": "Clé d'authentification (TOTP)" + }, + "folder": { + "message": "Dossier" + }, + "newCustomField": { + "message": "Nouveau champ personnalisé" + }, + "value": { + "message": "Valeur" + }, + "dragToSort": { + "message": "Glissez pour trier" + }, + "cfTypeText": { + "message": "Texte" + }, + "cfTypeHidden": { + "message": "Masqué" + }, + "cfTypeBoolean": { + "message": "Booléen" + }, + "cfTypeLinked": { + "message": "Lié", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Retirer" + }, + "unassigned": { + "message": "Non attribué" + }, + "noneFolder": { + "message": "Aucun dossier", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Ajouter un dossier" + }, + "editFolder": { + "message": "Modifier le dossier" + }, + "baseDomain": { + "message": "Domaine de base", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Nom de domaine", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Hôte", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exact" + }, + "startsWith": { + "message": "Commence par" + }, + "regEx": { + "message": "Expression régulière", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Détection de correspondance", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Détection de correspondance par défaut", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Jamais" + }, + "toggleVisibility": { + "message": "Afficher/Masquer" + }, + "toggleCollapse": { + "message": "Déplier/Replier", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Générer un mot de passe" + }, + "checkPassword": { + "message": "Vérifier si le mot de passe a été exposé." + }, + "passwordExposed": { + "message": "Ce mot de passe a été exposé $VALUE$ fois dans des fuites de données. Vous devriez le changer.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Ce mot de passe n'a été trouvé dans aucune fuite de données connue. Il semble sécurisé." + }, + "save": { + "message": "Enregistrer" + }, + "cancel": { + "message": "Annuler" + }, + "canceled": { + "message": "Annulé" + }, + "close": { + "message": "Fermer" + }, + "delete": { + "message": "Supprimer" + }, + "favorite": { + "message": "Favori" + }, + "unfavorite": { + "message": "Retirer des favoris" + }, + "edit": { + "message": "Modifier" + }, + "searchCollection": { + "message": "Rechercher dans la collection" + }, + "searchFolder": { + "message": "Rechercher dans le dossier" + }, + "searchFavorites": { + "message": "Rechercher dans les favoris" + }, + "searchType": { + "message": "Rechercher dans le type", + "description": "Search item type" + }, + "searchVault": { + "message": "Rechercher dans le coffre" + }, + "allItems": { + "message": "Tous les éléments" + }, + "favorites": { + "message": "Favoris" + }, + "types": { + "message": "Types" + }, + "typeLogin": { + "message": "Identifiant" + }, + "typeCard": { + "message": "Carte de paiement" + }, + "typeIdentity": { + "message": "Identité" + }, + "typeSecureNote": { + "message": "Note sécurisée" + }, + "typeLoginPlural": { + "message": "Identifiants" + }, + "typeCardPlural": { + "message": "Cartes" + }, + "typeIdentityPlural": { + "message": "Identités" + }, + "typeSecureNotePlural": { + "message": "Notes sécurisées" + }, + "folders": { + "message": "Dossiers" + }, + "collections": { + "message": "Collections" + }, + "firstName": { + "message": "Prénom" + }, + "middleName": { + "message": "Deuxième prénom" + }, + "lastName": { + "message": "Nom de famille" + }, + "fullName": { + "message": "Nom et prénom" + }, + "address1": { + "message": "Adresse 1" + }, + "address2": { + "message": "Adresse 2" + }, + "address3": { + "message": "Adresse 3" + }, + "cityTown": { + "message": "Ville" + }, + "stateProvince": { + "message": "État / Région" + }, + "zipPostalCode": { + "message": "Code postal" + }, + "country": { + "message": "Pays" + }, + "shared": { + "message": "Partagé" + }, + "attachments": { + "message": "Pièces jointes" + }, + "select": { + "message": "Sélectionner" + }, + "addItem": { + "message": "Ajouter un élément" + }, + "editItem": { + "message": "Modifier l'élément" + }, + "viewItem": { + "message": "Afficher l'élément" + }, + "ex": { + "message": "ex.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Autre" + }, + "share": { + "message": "Partager" + }, + "moveToOrganization": { + "message": "Déplacer vers l'organisation" + }, + "valueCopied": { + "message": "$VALUE$ copié", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Copier la valeur", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Copier le mot de passe", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Copier le nom d'utilisateur", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Copier le numéro", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copier le code de sécurité", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Copier l'URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Mon coffre" + }, + "vault": { + "message": "Coffre" + }, + "moveSelectedToOrg": { + "message": "Déplacer la sélection vers l'organisation" + }, + "deleteSelected": { + "message": "Supprimer les éléments sélectionnés" + }, + "moveSelected": { + "message": "Déplacer les éléments sélectionnés" + }, + "selectAll": { + "message": "Tout sélectionner" + }, + "unselectAll": { + "message": "Tout désélectionner" + }, + "launch": { + "message": "Ouvrir" + }, + "newAttachment": { + "message": "Ajouter une nouvelle pièce jointe" + }, + "deletedAttachment": { + "message": "Pièce jointe supprimée" + }, + "deleteAttachmentConfirmation": { + "message": "Êtes-vous sûr de vouloir supprimer cette pièce jointe ?" + }, + "attachmentSaved": { + "message": "La pièce jointe a été enregistrée." + }, + "file": { + "message": "Fichier" + }, + "selectFile": { + "message": "Sélectionnez un fichier." + }, + "maxFileSize": { + "message": "La taille maximale du fichier est de 500 Mo." + }, + "updateKey": { + "message": "Vous ne pouvez pas utiliser cette fonctionnalité avant de mettre à jour votre clé de chiffrement." + }, + "addedItem": { + "message": "Élément ajouté" + }, + "editedItem": { + "message": "Élément modifié" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ a été déplacé vers $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Les éléments sélectionnés ont été déplacés vers $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Supprimer l'élément" + }, + "deleteFolder": { + "message": "Supprimer le dossier" + }, + "deleteAttachment": { + "message": "Supprimer la pièce jointe" + }, + "deleteItemConfirmation": { + "message": "Êtes-vous sûr de vouloir déplacer cet élément vers la corbeille ?" + }, + "deletedItem": { + "message": "L'élément a été envoyé dans la corbeille" + }, + "deletedItems": { + "message": "Les éléments ont été envoyés dans la corbeille" + }, + "movedItems": { + "message": "Éléments déplacés" + }, + "overwritePasswordConfirmation": { + "message": "Êtes-vous sûr de vouloir écraser le mot de passe actuel ?" + }, + "editedFolder": { + "message": "Dossier modifié" + }, + "addedFolder": { + "message": "Dossier ajouté" + }, + "deleteFolderConfirmation": { + "message": "Êtes-vous sûr de vouloir supprimer ce dossier ?" + }, + "deletedFolder": { + "message": "Dossier supprimé" + }, + "loggedOut": { + "message": "Déconnecté" + }, + "loginExpired": { + "message": "Votre session a expiré." + }, + "logOutConfirmation": { + "message": "Êtes-vous sûr de vouloir vous déconnecter ?" + }, + "logOut": { + "message": "Déconnexion" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Oui" + }, + "no": { + "message": "Non" + }, + "loginOrCreateNewAccount": { + "message": "Identifiez-vous ou créez un nouveau compte pour accéder à votre coffre sécurisé." + }, + "createAccount": { + "message": "Créer un compte" + }, + "logIn": { + "message": "S'identifier" + }, + "submit": { + "message": "Soumettre" + }, + "emailAddressDesc": { + "message": "Vous utiliserez votre adresse e-mail pour vous connecter." + }, + "yourName": { + "message": "Votre nom" + }, + "yourNameDesc": { + "message": "Comment doit-on vous appeler ?" + }, + "masterPass": { + "message": "Mot de passe maître" + }, + "masterPassDesc": { + "message": "Le mot de passe maître est le mot de passe que vous utilisez pour accéder à votre coffre. Il est très important de ne pas l'oublier. Il n'existe aucun moyen de le récupérer si vous le perdez." + }, + "masterPassHintDesc": { + "message": "Un indice de mot de passe maître peut vous aider à vous rappeler de votre mot de passe en cas d'oubli." + }, + "reTypeMasterPass": { + "message": "Saisissez à nouveau le mot de passe maître" + }, + "masterPassHint": { + "message": "Indice du mot de passe maître (facultatif)" + }, + "masterPassHintLabel": { + "message": "Indice du mot de passe maître" + }, + "settings": { + "message": "Paramètres" + }, + "passwordHint": { + "message": "Indice du mot de passe" + }, + "enterEmailToGetHint": { + "message": "Saisissez l'adresse e-mail de votre compte pour recevoir l'indice de votre mot de passe maître." + }, + "getMasterPasswordHint": { + "message": "Obtenir l'indice du mot de passe maître" + }, + "emailRequired": { + "message": "L'adresse e-mail est requise." + }, + "invalidEmail": { + "message": "Adresse e-mail invalide." + }, + "masterPassRequired": { + "message": "Le mot de passe maître est requis." + }, + "masterPassLength": { + "message": "Le mot de passe maître doit au moins contenir 8 caractères." + }, + "masterPassDoesntMatch": { + "message": "La confirmation du mot de passe maître ne correspond pas." + }, + "newAccountCreated": { + "message": "Votre nouveau compte a été créé ! Vous pouvez maintenant vous authentifier." + }, + "masterPassSent": { + "message": "Nous vous avons envoyé un e-mail contenant votre indice de mot de passe maître." + }, + "unexpectedError": { + "message": "Une erreur inattendue est survenue." + }, + "emailAddress": { + "message": "Adresse e-mail" + }, + "yourVaultIsLocked": { + "message": "Votre coffre est verrouillé. Saisissez votre mot de passe maître pour continuer." + }, + "unlock": { + "message": "Déverrouiller" + }, + "loggedInAsEmailOn": { + "message": "Connecté en tant que $EMAIL$ sur $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Mot de passe maître invalide" + }, + "lockNow": { + "message": "Verrouiller maintenant" + }, + "noItemsInList": { + "message": "Aucun élément à afficher." + }, + "noCollectionsInList": { + "message": "Aucune collection à afficher." + }, + "noGroupsInList": { + "message": "Aucun groupe à afficher." + }, + "noUsersInList": { + "message": "Aucun utilisateur à afficher." + }, + "noEventsInList": { + "message": "Aucun événement à afficher." + }, + "newOrganization": { + "message": "Nouvelle organisation" + }, + "noOrganizationsList": { + "message": "Vous ne faites partie d'aucune organisation. Les organisations vous permettent de partager des éléments de façon sécurisée avec d'autres utilisateurs." + }, + "versionNumber": { + "message": "Version $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Saisissez le code de vérification à 6 chiffres depuis votre application d'authentification." + }, + "enterVerificationCodeEmail": { + "message": "Saisissez le code de vérification à 6 chiffres qui vous a été envoyé par e-mail à $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "E-mail de vérification envoyé à $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Rester connecté" + }, + "sendVerificationCodeEmailAgain": { + "message": "Envoyer à nouveau l'e-mail du code de vérification" + }, + "useAnotherTwoStepMethod": { + "message": "Utiliser une autre méthode d'identification en deux étapes" + }, + "insertYubiKey": { + "message": "Insérez votre YubiKey dans le port USB de votre ordinateur puis appuyez sur son bouton." + }, + "insertU2f": { + "message": "Insérez votre clé de sécurité dans le port USB de votre ordinateur. Si elle dispose d'un bouton, appuyez dessus." + }, + "loginUnavailable": { + "message": "Connexion impossible" + }, + "noTwoStepProviders": { + "message": "Ce compte dispose d'une authentification en deux étapes, cependant aucun de vos services d'authentification en deux étapes n'est supporté par ce navigateur web." + }, + "noTwoStepProviders2": { + "message": "Merci d'utiliser un navigateur web compatible (comme Chrome) et/ou d'ajouter des services additionnels d'identification en deux étapes qui sont mieux supportés par les navigateurs web (comme par exemple une application d'authentification)." + }, + "twoStepOptions": { + "message": "Options d'identification en deux étapes" + }, + "recoveryCodeDesc": { + "message": "Vous avez perdu l'accès à tous vos services d'authentification à deux facteurs ? Utilisez votre code de récupération pour désactiver tous les services d'authentification à deux facteurs sur votre compte." + }, + "recoveryCodeTitle": { + "message": "Code de récupération" + }, + "authenticatorAppTitle": { + "message": "Application d'authentification" + }, + "authenticatorAppDesc": { + "message": "Utiliser une application d'authentification (comme Authy ou Google Authenticator) pour générer des codes de vérification basés sur le temps.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "Clé de sécurité YubiKey OTP" + }, + "yubiKeyDesc": { + "message": "Utilisez une YubiKey pour accéder à votre compte. Fonctionne avec les YubiKey série 4, série 5 et NEO." + }, + "duoDesc": { + "message": "S'authentifier avec Duo Security via l'application Duo Mobile, un SMS, un appel téléphonique, ou une clé de sécurité U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Sécurisez votre organisation avec Duo Security à l'aide de l'application Duo Mobile, l'envoi d'un SMS, un appel vocal ou une clé de sécurité U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Utiliser n'importe quelle clé de sécurité FIDO U2F active pour accéder à votre compte." + }, + "u2fTitle": { + "message": "Clé de sécurité FIDO U2F" + }, + "webAuthnTitle": { + "message": "WebAuthn FIDO2" + }, + "webAuthnDesc": { + "message": "Utilisez n'importe quelle clé de sécurité compatible WebAuthn pour accéder à votre compte." + }, + "webAuthnMigrated": { + "message": "(Migré depuis FIDO)" + }, + "emailTitle": { + "message": "E-mail" + }, + "emailDesc": { + "message": "Les codes de vérification vous seront envoyés par e-mail." + }, + "continue": { + "message": "Continuer" + }, + "organization": { + "message": "Organisation" + }, + "organizations": { + "message": "Organisations" + }, + "moveToOrgDesc": { + "message": "Choisissez une organisation vers laquelle vous souhaitez déplacer cet élément. Déplacer un élément vers une organisation transfère la propriété de l'élément à cette organisation. Vous ne serez plus le propriétaire direct de cet élément une fois qu'il aura été déplacé." + }, + "moveManyToOrgDesc": { + "message": "Choisissez une organisation vers laquelle vous souhaitez déplacer ces éléments. Déplacer des éléments vers une organisation transfère la propriété des éléments à cette organisation. Vous ne serez plus le propriétaire direct de ces éléments une fois qu'ils auront été déplacés." + }, + "collectionsDesc": { + "message": "Modifier les collections avec lesquelles cet élément est partagé. Seuls les utilisateurs de l'organisation avec un accès à ces collections pourront voir cet élément." + }, + "deleteSelectedItemsDesc": { + "message": "Vous avez sélectionné $COUNT$ élément(s) à supprimer. Êtes-vous sûr de vouloir supprimer tous ces éléments ?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Choisissez le dossier vers lequel vous souhaitez déplacer les $COUNT$ élément(s) sélectionné(s).", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Vous avez sélectionné $COUNT$ élément(s). $MOVEABLE_COUNT$ élément(s) peuvent être déplacés vers une organisation, $NONMOVEABLE_COUNT$ ne le peuvent pas.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Code de vérification (TOTP)" + }, + "copyVerificationCode": { + "message": "Copier le code de vérification" + }, + "warning": { + "message": "Attention" + }, + "confirmVaultExport": { + "message": "Confirmer l'export du coffre" + }, + "exportWarningDesc": { + "message": "Cet export contient les données de votre coffre dans un format non chiffré. Vous ne devriez ni le stocker ni l'envoyer via des canaux non sécurisés (tel que l'e-mail). Supprimez-le immédiatement après l'avoir utilisé." + }, + "encExportKeyWarningDesc": { + "message": "Cet export chiffre vos données en utilisant la clé de chiffrement de votre compte. Si jamais vous modifiez la clé de chiffrement de votre compte, vous devriez exporter à nouveau car vous ne pourrez pas déchiffrer ce fichier." + }, + "encExportAccountWarningDesc": { + "message": "Les clés de chiffrement du compte sont spécifiques à chaque utilisateur Bitwarden. Vous ne pouvez donc pas importer d'export chiffré dans un compte différent." + }, + "export": { + "message": "Exporter" + }, + "exportVault": { + "message": "Exporter le coffre" + }, + "fileFormat": { + "message": "Format de fichier" + }, + "exportSuccess": { + "message": "Les données de votre coffre ont été exportées." + }, + "passwordGenerator": { + "message": "Générateur de mot de passe" + }, + "minComplexityScore": { + "message": "Score de complexité minimum" + }, + "minNumbers": { + "message": "Nombre minimum de chiffres" + }, + "minSpecial": { + "message": "Nombre minimum de caractères spéciaux", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Éviter les caractères ambigus" + }, + "regeneratePassword": { + "message": "Regénérer un mot de passe" + }, + "length": { + "message": "Longueur" + }, + "numWords": { + "message": "Nombre de mots" + }, + "wordSeparator": { + "message": "Séparateur de mots" + }, + "capitalize": { + "message": "Mettre la première lettre de chaque mot en majuscule", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Inclure un chiffre" + }, + "passwordHistory": { + "message": "Historique des mots de passe" + }, + "noPasswordsInList": { + "message": "Aucun mot de passe à afficher." + }, + "clear": { + "message": "Effacer", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Compte mis à jour" + }, + "changeEmail": { + "message": "Changer l'e-mail" + }, + "changeEmailTwoFactorWarning": { + "message": "En continuant, vous changerez l'adresse e-mail de votre compte. Cela ne changera pas l'adresse e-mail utilisée pour l'authentification à deux facteurs. Vous pouvez modifier cette adresse e-mail dans les paramètres d'identification en deux étapes." + }, + "newEmail": { + "message": "Nouvel e-mail" + }, + "code": { + "message": "Code" + }, + "changeEmailDesc": { + "message": "Nous avons envoyé un code de vérification à $EMAIL$. Veuillez consulter votre boîte de réception pour trouver ce code et l'entrer ci-dessous pour finaliser votre changement d'adresse e-mail.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "En continuant, vous serez déconnecté de votre session actuelle et vous devrez vous reconnecter. Les sessions actives sur d'autres appareils peuvent rester actives pendant encore une heure." + }, + "emailChanged": { + "message": "Adresse e-mail modifiée" + }, + "logBackIn": { + "message": "Veuillez vous reconnecter." + }, + "logBackInOthersToo": { + "message": "Veuillez vous reconnecter. Si vous utilisez d'autres applications Bitwarden, déconnectez-vous puis reconnectez-vous dans ces applications également." + }, + "changeMasterPassword": { + "message": "Modifier le mot de passe maître" + }, + "masterPasswordChanged": { + "message": "Mot de passe maître modifié" + }, + "currentMasterPass": { + "message": "Mot de passe maître actuel" + }, + "newMasterPass": { + "message": "Nouveau mot de passe maître" + }, + "confirmNewMasterPass": { + "message": "Confirmer le nouveau mot de passe maître" + }, + "encKeySettings": { + "message": "Paramètres de la clé de chiffrement" + }, + "kdfAlgorithm": { + "message": "Algorithme KDF" + }, + "kdfIterations": { + "message": "Nombre d'itérations de KDF" + }, + "kdfIterationsDesc": { + "message": "Un nombre plus élevé d'itérations de KDF peut aider à protéger votre mot de passe maître contre une attaque par force brute. Nous recommandons une valeur de $VALUE$ ou plus.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Si vous définissez un nombre d'itérations KDF trop élevé, les performances risquent d'être mauvaises lorsque vous vous connectez (et déverrouillez) Bitwarden sur des périphériques dont les processeurs sont plus lents. Nous vous recommandons d'augmenter la valeur par incréments de $INCREMENT$, puis de tester tous vos appareils.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Modifier KDF" + }, + "encKeySettingsChanged": { + "message": "Paramètres de la clé de chiffrement modifiés" + }, + "dangerZone": { + "message": "Zone de danger" + }, + "dangerZoneDesc": { + "message": "Attention, ces actions ne sont pas réversibles !" + }, + "deauthorizeSessions": { + "message": "Révoquer les sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Vous craignez que votre compte soit connecté sur un autre appareil ? Poursuivez ci-dessous pour révoquer tous les ordinateurs ou appareils que vous avez déjà utilisés. Cette étape de sécurité est recommandée si vous avez précédemment utilisé un ordinateur public ou enregistré accidentellement votre mot de passe sur un appareil qui n'est pas le vôtre. Cette étape effacera également toutes les sessions de connexion en deux étapes précédemment mémorisées." + }, + "deauthorizeSessionsWarning": { + "message": "Si vous continuez, vous serez également déconnecté de votre session en cours, ce qui vous nécessitera de vous reconnecter. Votre second facteur d'authentification vous sera également demandé, si cette option est activée. Les sessions actives sur d'autres appareils peuvent rester actives jusqu'à une heure." + }, + "sessionsDeauthorized": { + "message": "Toutes les sessions ont été révoquées" + }, + "purgeVault": { + "message": "Effacer le coffre" + }, + "purgedOrganizationVault": { + "message": "Le coffre de l'organisation a été effacé." + }, + "vaultAccessedByProvider": { + "message": "Coffre-fort consulté par le fournisseur." + }, + "purgeVaultDesc": { + "message": "Poursuivez ci-dessous pour supprimer tous les éléments et dossiers de votre coffre. Les éléments qui appartiennent à une organisation dont vous êtes membre ne seront pas supprimés." + }, + "purgeOrgVaultDesc": { + "message": "Poursuivez ci-dessous pour supprimer tous les éléments du coffre de votre organisation." + }, + "purgeVaultWarning": { + "message": "L'effacement votre coffre est définitif. Cette action ne peut pas être annulée." + }, + "vaultPurged": { + "message": "Votre coffre a été effacé." + }, + "deleteAccount": { + "message": "Supprimer le compte" + }, + "deleteAccountDesc": { + "message": "Continuez ci-dessous pour supprimer votre compte et toutes les données associées." + }, + "deleteAccountWarning": { + "message": "La suppression de votre compte est définitive. Cette action ne peut pas être annulée." + }, + "accountDeleted": { + "message": "Compte supprimé" + }, + "accountDeletedDesc": { + "message": "Votre compte a été fermé et toutes les données associées ont été supprimées." + }, + "myAccount": { + "message": "Mon compte" + }, + "tools": { + "message": "Outils" + }, + "importData": { + "message": "Importer des données" + }, + "importError": { + "message": "Erreur d'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." + }, + "importSuccess": { + "message": "Les données ont été importées dans votre coffre avec succès." + }, + "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." + }, + "selectFormat": { + "message": "Sélectionnez le format du fichier à importer" + }, + "selectImportFile": { + "message": "Sélectionnez le fichier à importer" + }, + "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)" + } + } + }, + "options": { + "message": "Options" + }, + "optionsDesc": { + "message": "Personnaliser l'expérience de votre coffre web." + }, + "optionsUpdated": { + "message": "Options mises à jour" + }, + "language": { + "message": "Langue" + }, + "languageDesc": { + "message": "Changer la langue utilisée par le coffre web." + }, + "disableIcons": { + "message": "Désactiver les icônes de sites web" + }, + "disableIconsDesc": { + "message": "Les icônes de sites web permettent d'avoir une icône reconnaissable à côté de chaque identifiant dans votre coffre." + }, + "enableGravatars": { + "message": "Activer Gravatar", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Charger votre image de profil depuis gravatar.com." + }, + "enableFullWidth": { + "message": "Activer la mise en page en pleine largeur", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Permettre au coffre web de s’étendre sur toute la largeur de la fenêtre du navigateur." + }, + "default": { + "message": "Par défaut" + }, + "domainRules": { + "message": "Règles de domaine" + }, + "domainRulesDesc": { + "message": "Si vous avez un même identifiant sur plusieurs noms de domaines différents, vous pouvez marquer le site web comme \"équivalent\". Des domaines \"globaux\" sont déjà créés pour vous par Bitwarden." + }, + "globalEqDomains": { + "message": "Domaines équivalents globaux" + }, + "customEqDomains": { + "message": "Domaines équivalents personnalisés" + }, + "exclude": { + "message": "Exclure" + }, + "include": { + "message": "Inclure" + }, + "customize": { + "message": "Personnaliser" + }, + "newCustomDomain": { + "message": "Nouveau domaine personnalisé" + }, + "newCustomDomainDesc": { + "message": "Entrez une liste de domaines séparés par des virgules. Seuls les domaines « de base » sont autorisés. N’entrez pas de sous-domaines. Par exemple, entrez « google.com » au lieu de « www.google.com ». Vous pouvez également entrer « androidapp://package.name » pour associer une application android avec d’autres domaines de sites web." + }, + "customDomainX": { + "message": "Domaine personnalisé $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domaines mis à jour" + }, + "twoStepLogin": { + "message": "Identification en deux étapes" + }, + "twoStepLoginDesc": { + "message": "Sécuriser votre compte en exigeant une étape supplémentaire lors de la connexion." + }, + "twoStepLoginOrganizationDesc": { + "message": "Exigez une connexion en deux étapes pour les utilisateurs de votre organisation en configurant les services au niveau de l'organisation." + }, + "twoStepLoginRecoveryWarning": { + "message": "Activer la connexion en deux étapes peut vous empêcher définitivement d'accéder à votre compte Bitwarden. Un code de récupération vous permet d'accéder à votre compte dans le cas où vous ne pouvez plus utiliser votre service de connexion en deux étapes habituel (ex. vous perdez votre appareil). Le support Bitwarden ne pourra pas vous aider si vous perdez l'accès à votre compte. Nous vous recommandons d'écrire ou d'imprimer le code de récupération et de le conserver en lieu sûr." + }, + "viewRecoveryCode": { + "message": "Voir le code de récupération" + }, + "providers": { + "message": "Fournisseurs", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Activer" + }, + "enabled": { + "message": "Activé" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Adhésion Premium" + }, + "premiumRequired": { + "message": "Adhésion Premium requise" + }, + "premiumRequiredDesc": { + "message": "Une adhésion premium est requise pour utiliser cette fonctionnalité." + }, + "youHavePremiumAccess": { + "message": "Vous avez un accès premium" + }, + "alreadyPremiumFromOrg": { + "message": "Vous avez déjà accès aux fonctionnalités premium grâce à une organisation dont vous êtes membre." + }, + "manage": { + "message": "Gérer" + }, + "disable": { + "message": "Désactiver" + }, + "twoStepLoginProviderEnabled": { + "message": "Ce fournisseur de connexion en deux étapes est activé sur votre compte." + }, + "twoStepLoginAuthDesc": { + "message": "Entrez votre mot de passe principal pour modifier les paramètres de connexion en deux étapes." + }, + "twoStepAuthenticatorDesc": { + "message": "Suivez ces étapes pour configurer la connexion en deux étapes avec une application d'authentification :" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Télécharger une application d'authentification en deux étapes" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Besoin d'une application d'authentification en deux étapes ? Téléchargez l'une des applications suivantes" + }, + "iosDevices": { + "message": "Appareils iOS" + }, + "androidDevices": { + "message": "Appareils Android" + }, + "windowsDevices": { + "message": "Appareils Windows" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Ces applications sont recommandées, mais d'autres applications d'authentification fonctionneront également." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scannez ce QR code avec votre application d'authentification" + }, + "key": { + "message": "Clé" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Entrez le code de vérification à 6 chiffres fourni par l’application" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Dans le cas où vous devez l’ajouter à un autre appareil, voici le code QR (ou clé) requis par votre application d'authentification." + }, + "twoStepDisableDesc": { + "message": "Êtes-vous sûr de que vouloir désactiver ce fournisseur de connexion en deux étapes ?" + }, + "twoStepDisabled": { + "message": "Fournisseur de connexion en deux étapes désactivé." + }, + "twoFactorYubikeyAdd": { + "message": "Ajouter une nouvelle YubiKey à votre compte" + }, + "twoFactorYubikeyPlugIn": { + "message": "Branchez la YubiKey dans un port USB de votre ordinateur." + }, + "twoFactorYubikeySelectKey": { + "message": "Sélectionnez le premier champ YubiKey libre ci-dessous." + }, + "twoFactorYubikeyTouchButton": { + "message": "Appuyez sur le bouton de la YubiKey." + }, + "twoFactorYubikeySaveForm": { + "message": "Sauvegarder le contenu du formulaire." + }, + "twoFactorYubikeyWarning": { + "message": "En raison de limitations de plateforme, les YubiKeys ne sont pas utilisables sur toutes les applications Bitwarden. Vous devriez activer un autre fournisseur de connexion en deux étapes afin de pouvoir accéder à votre compte lorsque vous ne pouvez pas utiliser les YubiKeys. Plateformes prises en charge :" + }, + "twoFactorYubikeySupportUsb": { + "message": "Coffre web, application de bureau, interface ligne de commande (CLI) et toutes les extensions de navigateur sur un appareil doté d'un port USB pouvant accepter votre YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Applications mobiles sur un appareil avec NFC ou un port USB pouvant accepter votre YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "Clé U2F $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "Clé WebAuthn $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "Support du NFC" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Une de mes clés supporte le NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Si une de vos YubiKeys supporte le NFC (comme la YubiKey NEO), vous serez averti sur les appareils mobiles en cas de disponibilité du NFC." + }, + "yubikeysUpdated": { + "message": "Les YubiKeys ont été mises à jour" + }, + "disableAllKeys": { + "message": "Désactiver toutes les clés" + }, + "twoFactorDuoDesc": { + "message": "Entrez les informations de l'application Bitwarden provenant de votre panneau Duo Admin." + }, + "twoFactorDuoIntegrationKey": { + "message": "Clé d'intégration" + }, + "twoFactorDuoSecretKey": { + "message": "Clé secrète" + }, + "twoFactorDuoApiHostname": { + "message": "Nom d'hôte de l'API" + }, + "twoFactorEmailDesc": { + "message": "Suivez ces étapes pour mettre en place la connexion en deux étapes avec e-mail :" + }, + "twoFactorEmailEnterEmail": { + "message": "Entrez l'e-mail où vous souhaitez recevoir les codes de vérification" + }, + "twoFactorEmailEnterCode": { + "message": "Entrez le code de vérification à 6 chiffres reçu par e-mail" + }, + "sendEmail": { + "message": "Envoyer l'e-mail" + }, + "twoFactorU2fAdd": { + "message": "Ajouter une clé de sécurité FIDO U2F à votre compte" + }, + "removeU2fConfirmation": { + "message": "Êtes-vous sûr de vouloir supprimer cette clé de sécurité ?" + }, + "twoFactorWebAuthnAdd": { + "message": "Ajoutez une clé de sécurité WebAuthn à votre compte" + }, + "readKey": { + "message": "Lire la clé" + }, + "keyCompromised": { + "message": "La clé est compromise." + }, + "twoFactorU2fGiveName": { + "message": "Donnez un nom convivial à la clé de sécurité pour l'identifier." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Branchez la clé de sécurité sur un port USB de votre ordinateur et cliquez sur le bouton \"Lire la clé\"." + }, + "twoFactorU2fTouchButton": { + "message": "Si la clé de sécurité a un bouton, touchez-le." + }, + "twoFactorU2fSaveForm": { + "message": "Sauvegarder le contenu du formulaire." + }, + "twoFactorU2fWarning": { + "message": "En raison de limitations de plateforme, FIDO U2F n'est pas utilisable sur toutes les applications Bitwarden. Vous devriez activer un autre fournisseur de connexion en deux étapes afin de pouvoir accéder à votre compte lorsque vous ne pouvez pas utiliser FIDO U2F. Plateformes prises en charge :" + }, + "twoFactorU2fSupportWeb": { + "message": "Coffre web et extensions sur un ordinateur fixe/portable avec un navigateur compatible U2F (Chrome, Opera, Vivaldi ou Firefox avec FIDO U2F activé)." + }, + "twoFactorU2fWaiting": { + "message": "Attente de l'appui sur le bouton de votre clé de sécurité" + }, + "twoFactorU2fClickSave": { + "message": "Cliquez sur le bouton « Enregistrer » ci-dessous pour activer cette clé de sécurité pour une connexion en deux étapes." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Un problème est survenu lors de la lecture de la clé de sécurité. Veuillez réessayer." + }, + "twoFactorWebAuthnWarning": { + "message": "En raison de limitations de plateforme, WebAuthn n'est pas utilisable sur toutes les applications Bitwarden. Vous devriez activer un autre fournisseur de connexion en deux étapes afin de pouvoir accéder à votre compte lorsque vous ne pouvez pas utiliser WebAuthn. Plateformes prises en charge :" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Coffre web et extensions sur un ordinateur fixe/portable avec un navigateur compatible WebAuthn (Chrome, Opera, Vivaldi ou Firefox avec FIDO U2F activé)." + }, + "twoFactorRecoveryYourCode": { + "message": "Votre code de récupération de connexion en deux étapes Bitwarden" + }, + "twoFactorRecoveryNoCode": { + "message": "Vous n'avez pas encore activé de fournisseur de connexion en deux étapes. Après avoir activé un fournisseur de connexion en deux étapes, vous pouvez consulter ici votre code de récupération." + }, + "printCode": { + "message": "Imprimer le code", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Rapports" + }, + "reportsDesc": { + "message": "Identifiez et fermez les trous de sécurité dans vos comptes en ligne en cliquant sur les rapports ci-dessous." + }, + "unsecuredWebsitesReport": { + "message": "Rapport sur les sites web non sécurisés" + }, + "unsecuredWebsitesReportDesc": { + "message": "L'utilisation de sites Web non sécurisés avec le schéma http:// peut être dangereuse. Si le site Web le permet, vous devriez toujours y accéder en utilisant le schéma https:// afin que votre connexion soit chiffrée." + }, + "unsecuredWebsitesFound": { + "message": "Sites web non sécurisés trouvés" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Nous avons trouvé $COUNT$ éléments dans votre coffre avec des URI non sécurisés. Vous devriez remplacer leur schéma URI par https:// si le site Web le permet.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Aucun élément dans votre coffre n'a d'URI non sécurisés." + }, + "inactive2faReport": { + "message": "Rapport 2FA inactif" + }, + "inactive2faReportDesc": { + "message": "L'authentification à deux facteurs (2FA) est un paramètre de sécurité important qui permet de sécuriser vos comptes. Si le site Web le propose, vous devriez toujours activer l'authentification à deux facteurs." + }, + "inactive2faFound": { + "message": "Identifiants sans 2FA trouvés" + }, + "inactive2faFoundDesc": { + "message": "Nous avons trouvé $COUNT$ site(s) web(s) dans votre coffre qui ne sont peut-être pas configurés avec une authentification à deux facteurs (d'après twofactorauth.org). Pour mieux protéger ces comptes, vous devriez activer l'authentification à deux facteurs.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Aucun site web n'a été trouvé dans votre coffre avec une configuration d'authentification à deux facteurs manquante." + }, + "instructions": { + "message": "Instructions" + }, + "exposedPasswordsReport": { + "message": "Rapport sur les mots de passe exposés" + }, + "exposedPasswordsReportDesc": { + "message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers." + }, + "exposedPasswordsFound": { + "message": "Mots de passe exposés trouvés" + }, + "exposedPasswordsFoundDesc": { + "message": "Nous avons trouvé $COUNT$ éléments dans votre coffre qui ont des mots de passe qui ont été exposés dans des fuites de données connues. Vous devriez les changer pour utiliser un nouveau mot de passe.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Aucun élément de votre coffre n'a de mots de passe qui ont été révélés lors de fuites de données connues." + }, + "checkExposedPasswords": { + "message": "Vérifier les mots de passe exposés" + }, + "exposedXTimes": { + "message": "Exposé $COUNT$ fois", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Rapport sur les mots de passe faibles" + }, + "weakPasswordsReportDesc": { + "message": "Les mots de passe faibles peuvent être facilement devinés par des pirates informatiques et des outils automatisés qui sont utilisés pour pirater les mots de passe. Le générateur de mots de passe Bitwarden peut vous aider à créer des mots de passe forts." + }, + "weakPasswordsFound": { + "message": "Mots de passe faibles trouvés" + }, + "weakPasswordsFoundDesc": { + "message": "Nous avons trouvé $COUNT$ éléments dans votre coffre avec des mots de passe qui ne sont pas forts. Vous devriez les mettre à jour pour utiliser des mots de passe plus forts.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Aucun élément dans votre coffre n'a de mots de passe faibles." + }, + "reusedPasswordsReport": { + "message": "Rapport sur les mots de passe réutilisés" + }, + "reusedPasswordsReportDesc": { + "message": "Si un service que vous utilisez est compromis, la réutilisation du même mot de passe ailleurs peut permettre aux pirates d'accéder facilement à un plus grand nombre de vos comptes en ligne. Vous devriez utiliser un mot de passe unique pour chaque compte ou service." + }, + "reusedPasswordsFound": { + "message": "Mots de passe réutilisés trouvés" + }, + "reusedPasswordsFoundDesc": { + "message": "Nous avons trouvé $COUNT$ mots de passe qui sont réutilisés dans votre coffre. Vous devriez les changer pour utiliser des mots de passe différents.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Aucun identifiant dans votre coffre n'a de mots de passe qui sont réutilisés." + }, + "reusedXTimes": { + "message": "Réutilisé $COUNT$ fois", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Rapport sur les fuites de données" + }, + "breachDesc": { + "message": "Une « fuite » est un incident où les données d'un site ont été obtenues illégalement par des pirates informatiques, puis rendues publiques. Examinez les types de données qui ont été compromis (adresses électroniques, mots de passe, cartes de crédit, etc.) et prenez les mesures appropriées, comme la modification des mots de passe." + }, + "breachCheckUsernameEmail": { + "message": "Vérifiez tous les noms d'utilisateur ou les adresses électroniques que vous utilisez." + }, + "checkBreaches": { + "message": "Vérifier les fuites" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ n'a été trouvé dans aucune fuite de données.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Bonne nouvelle", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ a été trouvé dans $COUNT$ fuites de données différentes en ligne.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Des comptes ayant fuité ont été trouvés" + }, + "compromisedData": { + "message": "Données compromises" + }, + "website": { + "message": "Site web" + }, + "affectedUsers": { + "message": "Utilisateurs concernés" + }, + "breachOccurred": { + "message": "Une fuite a eu lieu" + }, + "breachReported": { + "message": "Fuite signalée" + }, + "reportError": { + "message": "Une erreur est survenue en essayant de charger le rapport. Réessayez" + }, + "billing": { + "message": "Facturation" + }, + "accountCredit": { + "message": "Compte créditeur", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Solde du compte", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Ajouter du crédit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Montant", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Le crédit ajouté apparaîtra sur votre compte une fois que le paiement aura été entièrement traité. Certains moyens de paiement sont différés et peuvent prendre plus de temps à traiter que d'autres." + }, + "makeSureEnoughCredit": { + "message": "Veuillez vous assurer que votre compte dispose d'un crédit suffisant pour cet achat. Si le crédit de votre compte n'est pas suffisant, votre mode de paiement par défaut sera utilisé pour régler la différence. Vous pouvez ajouter du crédit à votre compte à partir de la page Facturation." + }, + "creditAppliedDesc": { + "message": "Le crédit de votre compte peut être utilisé pour régler vos achats. Tout crédit disponible sera automatiquement appliqué aux factures générées pour ce compte." + }, + "goPremium": { + "message": "Devenir Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Vous venez de passer à un compte Premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Mettez à niveau votre compte vers un abonnement premium et débloquez d'incroyables fonctionnalités supplémentaires." + }, + "premiumSignUpStorage": { + "message": "1 Go de stockage de fichiers chiffrés." + }, + "premiumSignUpTwoStep": { + "message": "Options d'identification en deux étapes additionnelles comme YubiKey, FIDO U2F et Duo." + }, + "premiumSignUpEmergency": { + "message": "Accès d'urgence" + }, + "premiumSignUpReports": { + "message": "Rapports sur l'hygiène des mots de passe, la santé des comptes et les fuites de données pour assurer la sécurité de votre coffre." + }, + "premiumSignUpTotp": { + "message": "Génération d'un code de vérification TOTP (2FA) pour les identifiants de votre coffre." + }, + "premiumSignUpSupport": { + "message": "Support client prioritaire." + }, + "premiumSignUpFuture": { + "message": "Toutes les futures options premium. D'autres suivront prochainement !" + }, + "premiumPrice": { + "message": "Tout pour seulement $PRICE$ /an !", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Add-ons" + }, + "premiumAccess": { + "message": "Accès premium" + }, + "premiumAccessDesc": { + "message": "Vous pouvez offrir un accès premium à tous les membres de votre organisation pour $PRICE$/$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Stockage additionnel (Go)" + }, + "additionalStorageGbDesc": { + "message": "# Go additionnels" + }, + "additionalStorageIntervalDesc": { + "message": "Votre offre comprend $SIZE$ de stockage de fichiers chiffrés. Vous pouvez ajouter du stockage supplémentaire pour $PRICE$ par Go/$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Récapitulatif" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "an" + }, + "month": { + "message": "mois" + }, + "monthAbbr": { + "message": "mois", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Votre mode de paiement sera facturé immédiatement et de manière récurrente chaque année. Vous pouvez annuler à tout moment." + }, + "paymentCharged": { + "message": "Votre mode de paiement sera facturé immédiatement et de manière récurrente chaque $INTERVAL$. Vous pouvez annuler à tout moment.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Votre offre comprend un essai gratuit de 7 jours. Votre mode de paiement ne sera pas facturé avant la fin de la période d'essai. Vous pouvez annuler à tout moment." + }, + "paymentInformation": { + "message": "Informations de paiement" + }, + "billingInformation": { + "message": "Informations de facturation" + }, + "creditCard": { + "message": "Carte de crédit" + }, + "paypalClickSubmit": { + "message": "Cliquez sur le bouton PayPal pour vous connecter sur votre compte PayPal, puis cliquez sur le bouton Soumettre ci-dessous pour continuer." + }, + "cancelSubscription": { + "message": "Annuler l'abonnement" + }, + "subscriptionCanceled": { + "message": "L'abonnement a été annulé." + }, + "pendingCancellation": { + "message": "Annulation en attente" + }, + "subscriptionPendingCanceled": { + "message": "L’abonnement a été marqué pour être annulé à la fin de la période de facturation actuelle." + }, + "reinstateSubscription": { + "message": "Rétablir l’abonnement" + }, + "reinstateConfirmation": { + "message": "Êtes-vous sûr de vouloir retirer la demande d’annulation en attente et rétablir votre abonnement ?" + }, + "reinstated": { + "message": "Votre abonnement a été rétabli." + }, + "cancelConfirmation": { + "message": "Êtes-vous sûr de vouloir annuler ? Vous perdrez l’accès à toutes les fonctionnalités de l’abonnement à la fin de ce cycle de facturation." + }, + "canceledSubscription": { + "message": "L'abonnement a été annulé." + }, + "neverExpires": { + "message": "N'expire jamais" + }, + "status": { + "message": "État" + }, + "nextCharge": { + "message": "Prochain paiement" + }, + "details": { + "message": "Détails" + }, + "downloadLicense": { + "message": "Télécharger la licence" + }, + "updateLicense": { + "message": "Mettre à jour la licence" + }, + "updatedLicense": { + "message": "Licence mise à jour" + }, + "manageSubscription": { + "message": "Gérer l'abonnement" + }, + "storage": { + "message": "Stockage" + }, + "addStorage": { + "message": "Ajouter du stockage" + }, + "removeStorage": { + "message": "Retirer du stockage" + }, + "subscriptionStorage": { + "message": "Votre abonnement a un total de $MAX_STORAGE$ Go de stockage de fichiers chiffrés. Vous utilisez actuellement $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Moyen de paiement" + }, + "noPaymentMethod": { + "message": "Aucun moyen de paiement enregistré." + }, + "addPaymentMethod": { + "message": "Ajouter un moyen de paiement" + }, + "changePaymentMethod": { + "message": "Changer de moyen de paiement" + }, + "invoices": { + "message": "Factures" + }, + "noInvoices": { + "message": "Aucune facture." + }, + "paid": { + "message": "Payée", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Due", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transactions", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Aucune transaction." + }, + "chargeNoun": { + "message": "Débit", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Remboursement", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Tous les frais apparaîtront sur votre relevé sous $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "Go de stockage à ajouter" + }, + "gbStorageRemove": { + "message": "Go de stockage à retirer" + }, + "storageAddNote": { + "message": "L'ajout d'espace de stockage entraînera des ajustements sur vos totaux de facturation et facturera immédiatement le moyen de paiement enregistré. La première facturation sera calculée au prorata du reste du cycle de facturation en cours." + }, + "storageRemoveNote": { + "message": "La suppression d'espace de stockage entraînera des ajustements sur vos totaux de facturation qui seront calculés au prorata et portés au crédit de votre prochaine facturation." + }, + "adjustedStorage": { + "message": "$AMOUNT$ Go de stockage mis à jour.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contacter le support client" + }, + "updatedPaymentMethod": { + "message": "Moyen de paiement mise à jour." + }, + "purchasePremium": { + "message": "Acheter Premium" + }, + "licenseFile": { + "message": "Fichier de licence" + }, + "licenseFileDesc": { + "message": "Votre fichier de licence aura un nom similaire à $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Pour mettre à niveau votre compte vers un abonnement premium, vous devez fournir un fichier de licence valide." + }, + "uploadLicenseFileOrg": { + "message": "Pour créer une organisation sur une instance auto-hébergée vous devez fournir un fichier de licence valide." + }, + "accountEmailMustBeVerified": { + "message": "L'adresse e-mail de votre compte doit être vérifiée." + }, + "newOrganizationDesc": { + "message": "Les organisations permettent de partager des parties de votre coffre avec d'autres personnes ainsi que de gérer des utilisateurs pour une entité spécifique comme une famille, une petite équipe ou une grande entreprise." + }, + "generalInformation": { + "message": "Informations générales" + }, + "organizationName": { + "message": "Nom de l'organisation" + }, + "accountOwnedBusiness": { + "message": "Ce compte est détenu par une entreprise." + }, + "billingEmail": { + "message": "E-mail de facturation" + }, + "businessName": { + "message": "Nom de l'entreprise" + }, + "chooseYourPlan": { + "message": "Choisissez votre offre" + }, + "users": { + "message": "Utilisateurs" + }, + "userSeats": { + "message": "Licences utilisateur" + }, + "additionalUserSeats": { + "message": "Licences utilisateur supplémentaires" + }, + "userSeatsDesc": { + "message": "Nombre de licences utilisateur" + }, + "userSeatsAdditionalDesc": { + "message": "Votre offre comprend $BASE_SEATS$ licences utilisateurs. Vous pouvez ajouter des utilisateurs supplémentaires pour $SEAT_PRICE$ par utilisateur/mois.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "De combien de licences utilisateur avez-vous besoin ? Vous pouvez également en ajouter ultérieurement si besoin." + }, + "planNameFree": { + "message": "Gratuit", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Pour tester ou pour les utilisateurs individuels qui souhaitent partager avec $COUNT$ autre(s) utilisateur(s).", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Familles" + }, + "planDescFamilies": { + "message": "Pour une utilisation personnelle, pour partager avec la famille et les amis." + }, + "planNameTeams": { + "message": "Équipes" + }, + "planDescTeams": { + "message": "Pour les entreprises et autres équipes." + }, + "planNameEnterprise": { + "message": "Entreprise" + }, + "planDescEnterprise": { + "message": "Pour les entreprises et autres grandes organisations." + }, + "freeForever": { + "message": "Gratuit pour toujours" + }, + "includesXUsers": { + "message": "comprend $COUNT$ utilisateurs", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Utilisateurs supplémentaires" + }, + "costPerUser": { + "message": "$COST$ par utilisateur", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limité à $COUNT$ utilisateurs (vous inclus)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limité à $COUNT$ collections", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Ajoutez et partagez avec jusqu'à $COUNT$ utilisateurs", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Ajoutez et partagez avec un nombre illimité d'utilisateurs" + }, + "createUnlimitedCollections": { + "message": "Créez un nombre illimité de collections" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ de stockage de fichiers chiffrés", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Hébergement local (optionnel)" + }, + "usersGetPremium": { + "message": "Les utilisateurs auront accès aux fonctionnalités premium" + }, + "controlAccessWithGroups": { + "message": "Contrôlez l'accès des utilisateurs avec des groupes" + }, + "syncUsersFromDirectory": { + "message": "Synchronisez vos utilisateurs et vos groupes à partir d'un répertoire" + }, + "trackAuditLogs": { + "message": "Suivez les actions des utilisateurs avec les journaux d'audit" + }, + "enforce2faDuo": { + "message": "Forcez l'authentification à deux facteurs (2FA) avec Duo" + }, + "priorityCustomerSupport": { + "message": "Support client prioritaire" + }, + "xDayFreeTrial": { + "message": "$COUNT$ jours d'essai gratuit, annulez à tout moment", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Mensuel" + }, + "annually": { + "message": "Annuel" + }, + "basePrice": { + "message": "Prix de base" + }, + "organizationCreated": { + "message": "L'organisation a été créée" + }, + "organizationReadyToGo": { + "message": "Votre nouvelle organisation est prête !" + }, + "organizationUpgraded": { + "message": "Votre organisation a été mise à niveau." + }, + "leave": { + "message": "Quitter" + }, + "leaveOrganizationConfirmation": { + "message": "Êtes-vous sûr de vouloir quitter cette organisation ?" + }, + "leftOrganization": { + "message": "Vous avez quitté l'organisation." + }, + "defaultCollection": { + "message": "Collection par défaut" + }, + "getHelp": { + "message": "Obtenir de l'aide" + }, + "getApps": { + "message": "Télécharger les applications" + }, + "loggedInAs": { + "message": "Connecté en tant que" + }, + "eventLogs": { + "message": "Journal des événements" + }, + "people": { + "message": "Personnes" + }, + "policies": { + "message": "Politiques" + }, + "singleSignOn": { + "message": "Authentification unique" + }, + "editPolicy": { + "message": "Modifier la politique" + }, + "groups": { + "message": "Groupes" + }, + "newGroup": { + "message": "Nouveau groupe" + }, + "addGroup": { + "message": "Ajouter un groupe" + }, + "editGroup": { + "message": "Modifier le groupe" + }, + "deleteGroupConfirmation": { + "message": "Êtes-vous sûr de vouloir supprimer ce groupe?" + }, + "removeUserConfirmation": { + "message": "Êtes-vous sûr de vouloir retirer cet utilisateur ?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Attention ! Cet utilisateur a besoin de Key Connector pour gérer son chiffrement. Supprimer cet utilisateur de votre organisation désactivera définitivement son compte. Cette action ne peut pas être annulée. Voulez-vous continuer?" + }, + "externalId": { + "message": "Identifiant externe" + }, + "externalIdDesc": { + "message": "L’identifiant externe peut être utilisé comme référence ou pour lier cette ressource à un système externe tel qu’un répertoire utilisateur." + }, + "accessControl": { + "message": "Contrôle d’accès" + }, + "groupAccessAllItems": { + "message": "Ce groupe peut voir et modifier tous les éléments." + }, + "groupAccessSelectedCollections": { + "message": "Ce groupe peut accéder uniquement aux collections sélectionnées." + }, + "readOnly": { + "message": "Lecture seule" + }, + "newCollection": { + "message": "Nouvelle collection" + }, + "addCollection": { + "message": "Ajouter une collection" + }, + "editCollection": { + "message": "Modifier la collection" + }, + "deleteCollectionConfirmation": { + "message": "Êtes-vous sûr de vouloir supprimer cette collection?" + }, + "editUser": { + "message": "Modifier un utilisateur" + }, + "inviteUser": { + "message": "Inviter un utilisateur" + }, + "inviteUserDesc": { + "message": "Invitez de nouveaux utilisateurs à votre organisation en entrant l'adresse e-mail de leur compte Bitwarden ci-dessous. S'ils n’ont pas déjà un compte Bitwarden, il leur sera demandé d'en créer un nouveau." + }, + "inviteMultipleEmailDesc": { + "message": "Vous pouvez inviter jusqu'à $COUNT$ utilisateurs à la fois en séparant les adresses e-mail par une virgule.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Cet utilisateur utilise l'identification en deux étapes pour protéger son compte." + }, + "userAccessAllItems": { + "message": "Cet utilisateur peut voir et modifier tous les éléments." + }, + "userAccessSelectedCollections": { + "message": "Cet utilisateur peut accéder uniquement aux collections sélectionnées." + }, + "search": { + "message": "Rechercher" + }, + "invited": { + "message": "Invité" + }, + "accepted": { + "message": "Accepté" + }, + "confirmed": { + "message": "Confirmé" + }, + "clientOwnerEmail": { + "message": "Adresse e-mail du propriétaire du client" + }, + "owner": { + "message": "Propriétaire" + }, + "ownerDesc": { + "message": "L’utilisateur avec l’accès le plus élevé qui peut gérer tous les aspects de votre organisation." + }, + "clientOwnerDesc": { + "message": "Cet utilisateur doit être indépendant du fournisseur. Si le fournisseur est dissocié de l'organisation, cet utilisateur conservera la propriété de l'organisation." + }, + "admin": { + "message": "Administrateur" + }, + "adminDesc": { + "message": "Les administrateurs peuvent voir et gérer tous les éléments, les collections et les utilisateurs de votre organisation." + }, + "user": { + "message": "Utilisateur" + }, + "userDesc": { + "message": "Un utilisateur standard avec accès aux collections qui lui sont assignées dans votre organisation." + }, + "manager": { + "message": "Gestionnaire" + }, + "managerDesc": { + "message": "Les gestionnaires peuvent voir et gérer les collections de votre organisation qui leur ont été assignées." + }, + "all": { + "message": "Tous" + }, + "refresh": { + "message": "Actualiser" + }, + "timestamp": { + "message": "Horodatage" + }, + "event": { + "message": "Évènement" + }, + "unknown": { + "message": "Inconnu" + }, + "loadMore": { + "message": "Plus de résultats" + }, + "mobile": { + "message": "Mobile", + "description": "Mobile app" + }, + "extension": { + "message": "Extension", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Ordinateur", + "description": "Desktop app" + }, + "webVault": { + "message": "Coffre web" + }, + "loggedIn": { + "message": "Connecté." + }, + "changedPassword": { + "message": "Mot de passe changé." + }, + "enabledUpdated2fa": { + "message": "Connexion en deux étapes activée/mise à jour." + }, + "disabled2fa": { + "message": "Connexion en deux étapes désactivée." + }, + "recovered2fa": { + "message": "Compte récupéré depuis une connexion en deux étapes." + }, + "failedLogin": { + "message": "Tentative de connexion avec mot de passe incorrect." + }, + "failedLogin2fa": { + "message": "Tentative de connexion échouée avec deuxième facteur incorrect." + }, + "exportedVault": { + "message": "Le coffre a été exporté." + }, + "exportedOrganizationVault": { + "message": "Le coffre de l'organisation a été exporté." + }, + "editedOrgSettings": { + "message": "Paramètres de l’organisation modifiés." + }, + "createdItemId": { + "message": "Élément $ID$ créé.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Élément $ID$ modifié.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "L'élément $ID$ a été envoyé dans la corbeille.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "L'élément $ID$ a été déplacé vers une organisation.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "L'élément $ID$ a été consulté.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Le mot de passe de l'élément $ID$ a été consulté.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Un champ masqué de l’élément $ID$ a été consulté.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Le code de sécurité de l’élément $ID$ a été consulté.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Le mot de passe de l'élément $ID$ a été copié.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Un champ masqué de l’élément $ID$ a été copié.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Le code de sécurité de l’élément $ID$ a été copié.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "L’élément $ID$ a été rempli automatiquement.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Collection $ID$ créée.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Collection $ID$ modifiée.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Collection $ID$ supprimée.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Politique $ID$ modifiée.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Groupe $ID$ créé.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Groupe $ID$ modifié.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Groupe $ID$ supprimé.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Utilisateur $ID$ retiré.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "La pièce jointe pour l'élément $ID$ a été créée.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "La pièce jointe de l'élément $ID$ a été supprimée.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Collections éditées pour l'élément $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Utilisateur $ID$ invité.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Utilisateur $ID$ confirmé.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Utilisateur $ID$ modifié.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Groupes édités pour l'utilisateur $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "SSO dissocié pour l'utilisateur $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Organisation $ID$ créée.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Organisation $ID$ ajoutée.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Organisation $ID$ supprimée.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Coffre-fort de l'organisation $ID$ consulté.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Appareil" + }, + "view": { + "message": "Voir" + }, + "invalidDateRange": { + "message": "Plage de dates non valide." + }, + "errorOccurred": { + "message": "Une erreur est survenue." + }, + "userAccess": { + "message": "Accès utilisateur" + }, + "userType": { + "message": "Type d'utilisateur" + }, + "groupAccess": { + "message": "Accès groupe" + }, + "groupAccessUserDesc": { + "message": "Modifier les groupes auxquels appartient cet utilisateur." + }, + "invitedUsers": { + "message": "Utilisateur(s) invité(s)." + }, + "resendInvitation": { + "message": "Renvoyer l'invitation" + }, + "resendEmail": { + "message": "Renvoyer l'email" + }, + "hasBeenReinvited": { + "message": "$USER$ a été réinvité.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirmer" + }, + "confirmUser": { + "message": "Confirmer l'utilisateur" + }, + "hasBeenConfirmed": { + "message": "$USER$ a été confirmé.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirmer les utilisateurs" + }, + "usersNeedConfirmed": { + "message": "Il y a des utilisateurs qui ont accepté leur invitation, mais qui doivent encore être confirmés. Les utilisateurs n'auront pas accès à l'organisation tant qu'ils n'auront pas été confirmés." + }, + "startDate": { + "message": "Date de début" + }, + "endDate": { + "message": "Date de fin" + }, + "verifyEmail": { + "message": "Vérifier l'adresse e-mail" + }, + "verifyEmailDesc": { + "message": "Vérifiez l'adresse e-mail de votre compte pour débloquer l'ensemble des fonctionnalités." + }, + "verifyEmailFirst": { + "message": "L'adresse e-mail de votre compte doit d'abord être vérifiée." + }, + "checkInboxForVerification": { + "message": "Vérifiez votre boîte de réception pour le lien de vérification." + }, + "emailVerified": { + "message": "Votre adresse e-mail a été vérifiée." + }, + "emailVerifiedFailed": { + "message": "Impossible de vérifier votre adresse e-mail. Essayez de renvoyer un nouvel e-mail de vérification." + }, + "emailVerificationRequired": { + "message": "Vérification de l'adresse e-mail nécessaire" + }, + "emailVerificationRequiredDesc": { + "message": "Vous devez vérifier votre adresse e-mail pour utiliser cette fonctionnalité." + }, + "updateBrowser": { + "message": "Mettre à jour le navigateur" + }, + "updateBrowserDesc": { + "message": "Vous utilisez un navigateur non supporté. Le coffre web pourrait ne pas fonctionner correctement." + }, + "joinOrganization": { + "message": "Rejoindre l'organisation" + }, + "joinOrganizationDesc": { + "message": "Vous avez été invité à rejoindre l'organisation ci-dessus. Pour accepter l'invitation, vous devez vous connecter ou créer un nouveau compte Bitwarden." + }, + "inviteAccepted": { + "message": "Invitation acceptée" + }, + "inviteAcceptedDesc": { + "message": "Vous pourrez accéder à cette organisation dès qu'un administrateur aura confirmé votre inscription. Nous vous enverrons un e-mail lorsque ce sera fait." + }, + "inviteAcceptFailed": { + "message": "Impossible d’accepter l’invitation. Demandez à un administrateur de l'organisation d’envoyer une nouvelle invitation." + }, + "inviteAcceptFailedShort": { + "message": "Impossible d'accepter l'invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Se souvenir de l'e-mail" + }, + "recoverAccountTwoStepDesc": { + "message": "Si vous ne pouvez pas accéder à votre compte grâce à vos méthodes de connexion en deux étapes habituelles, vous pouvez utiliser votre code de récupération de connexion en deux étapes pour désactiver tous les fournisseurs en deux étapes sur votre compte." + }, + "recoverAccountTwoStep": { + "message": "Récupération de connexion en deux étapes" + }, + "twoStepRecoverDisabled": { + "message": "L'authentification en deux étapes a été désactivée sur votre compte." + }, + "learnMore": { + "message": "En savoir plus" + }, + "deleteRecoverDesc": { + "message": "Entrez votre adresse e-mail ci-dessous pour récupérer et supprimer votre compte." + }, + "deleteRecoverEmailSent": { + "message": "Si votre compte existe, nous vous avons envoyé un e-mail avec des instructions supplémentaires." + }, + "deleteRecoverConfirmDesc": { + "message": "Vous avez demandé de supprimer votre compte Bitwarden. Cliquez sur le bouton ci-dessous pour confirmer." + }, + "myOrganization": { + "message": "Mon organisation" + }, + "deleteOrganization": { + "message": "Supprimer l'organisation" + }, + "deletingOrganizationContentWarning": { + "message": "Entrez le mot de passe maître pour confirmer la suppression de $ORGANIZATION$ et de toutes les données associées. Les données du coffre dans $ORGANIZATION$ inclut:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Les comptes utilisateur resteront actifs après la suppression, mais ne seront plus associés à cette organisation." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "La suppression de $ORGANIZATION$ est permanente et irréversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organisation supprimée" + }, + "organizationDeletedDesc": { + "message": "L’organisation et toutes les données associées ont été supprimées." + }, + "organizationUpdated": { + "message": "Organisation mise à jour" + }, + "taxInformation": { + "message": "Informations fiscales" + }, + "taxInformationDesc": { + "message": "Pour les clients aux États-Unis, le code postal (ZIP) est requis pour satisfaire aux exigences de la taxe de vente. Pour d'autres pays, vous pouvez éventuellement fournir un numéro d'identification fiscale (TVA/TPS) et/ou une adresse à afficher sur vos factures." + }, + "billingPlan": { + "message": "Offre", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Changer d'offre", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Mettez à niveau votre compte vers un autre plan en fournissant les informations ci-dessous. Assurez-vous qu'un mode de paiement actif a été ajouté au compte.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Facture n°$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Afficher la facture" + }, + "downloadInvoice": { + "message": "Télécharger la facture" + }, + "verifyBankAccount": { + "message": "Vérifier le compte bancaire" + }, + "verifyBankAccountDesc": { + "message": "Nous avons effectué deux dépôts d'un faible montant sur votre compte bancaire (ils peuvent prendre 1-2 jours ouvrés pour apparaître). Saisissez ces montants pour valider le compte bancaire." + }, + "verifyBankAccountInitialDesc": { + "message": "Le paiement avec un compte bancaire est seulement disponible pour les clients résidant aux États-Unis. Il vous sera demandé de valider votre compte bancaire. Nous effectuerons deux dépôts d'un faible montant sous 1-2 jours ouvrés. Saisissez ces montants sur la page de facturation de votre organisation pour valider votre compte bancaire." + }, + "verifyBankAccountFailureWarning": { + "message": "Une erreur lors de la validation de votre compte bancaire annulera le paiement et votre abonnement sera désactivé." + }, + "verifiedBankAccount": { + "message": "Le compte bancaire a été vérifié." + }, + "bankAccount": { + "message": "Compte bancaire" + }, + "amountX": { + "message": "Montant $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Code banque", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Numéro de compte" + }, + "accountHolderName": { + "message": "Nom du titulaire du compte" + }, + "bankAccountType": { + "message": "Type de compte" + }, + "bankAccountTypeCompany": { + "message": "Entreprise (professionnel)" + }, + "bankAccountTypeIndividual": { + "message": "Individuel (personnel)" + }, + "enterInstallationId": { + "message": "Saisissez l'identifiant de votre installation" + }, + "limitSubscriptionDesc": { + "message": "Définissez un nombre de licences limite pour votre abonnement. Une fois cette limite atteinte, vous ne pourrez plus inviter de nouveaux utilisateurs." + }, + "maxSeatLimit": { + "message": "Nombre de licences maximum (optionnel)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Coût potentiel maximal des licences" + }, + "addSeats": { + "message": "Ajouter des licences", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Retirer des licences", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Les ajustements apportés à votre abonnement entraîneront des modifications au prorata de vos totaux de facturation. Si les utilisateurs nouvellement invités dépassent votre nombre de licences, vous recevrez immédiatement des frais au prorata pour les utilisateurs supplémentaires." + }, + "subscriptionUserSeats": { + "message": "Votre abonnement permet un total de $COUNT$ utilisateurs.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limiter le nombre de licences (optionnel)" + }, + "subscriptionSeats": { + "message": "Licences" + }, + "subscriptionUpdated": { + "message": "Abonnement mis à jour" + }, + "additionalOptions": { + "message": "Options supplémentaires" + }, + "additionalOptionsDesc": { + "message": "Pour obtenir de l'aide supplémentaire dans la gestion de votre abonnement, veuillez contacter le support client." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Les ajustements apportés à votre abonnement entraîneront des modifications au prorata de vos totaux de facturation. Si les utilisateurs nouvellement invités dépassent votre nombre de licences, vous recevrez immédiatement des frais au prorata pour les utilisateurs supplémentaires." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Les ajustements apportés à votre abonnement entraîneront des modifications au prorata de vos totaux de facturation. Si les utilisateurs nouvellement invités dépassent votre nombre de licences, vous recevrez immédiatement des frais au prorata pour les utilisateurs supplémentaires jusqu'à ce que votre limite de $MAX$ licences soit atteinte.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Vous ne pouvez pas inviter plus de $COUNT$ utilisateurs sans mettre votre offre à niveau.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Vous ne pouvez pas inviter plus de $COUNT$ utilisateurs sans mettre votre offre à niveau. Veuillez contacter le support client pour mettre à niveau.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Votre offre permet un total de $COUNT$ utilisateurs. Votre abonnement est parrainé et facturé à une organisation externe.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Les ajustements apportés à votre abonnement entraîneront des modifications au prorata de vos totaux de facturation. Vous ne pouvez pas inviter plus de $COUNT$ utilisateurs sans augmenter votre nombre de licences.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Licences à ajouter" + }, + "seatsToRemove": { + "message": "Licences à retirer" + }, + "seatsAddNote": { + "message": "L'ajout de licences utilisateur entraînera des ajustements sur vos totaux de facturation et facturera immédiatement le moyen de paiement enregistré. La première facturation sera calculée au prorata du reste du cycle de facturation en cours." + }, + "seatsRemoveNote": { + "message": "La suppression de licences utilisateur entraînera des ajustements sur vos totaux de facturation qui seront calculés au prorata et portés au crédit de votre prochaine facturation." + }, + "adjustedSeats": { + "message": "$AMOUNT$ licences utilisateurs mis à jour.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Clé mise à jour" + }, + "updateKeyTitle": { + "message": "Mettre à jour la clé" + }, + "updateEncryptionKey": { + "message": "Mettre à jour la clé de chiffrement" + }, + "updateEncryptionKeyShortDesc": { + "message": "Vous utilisez actuellement un moyen de chiffrement obsolète." + }, + "updateEncryptionKeyDesc": { + "message": "Nous sommes passés à des clés de chiffrement plus longues qui fournissent une meilleure sécurité et permettent l'accès à de nouvelles fonctionnalités. La mise à jour de votre clé de chiffrement est rapide et facile. Tapez simplement votre mot de passe maître ci-dessous. Cette mise à jour deviendra peut-être obligatoire." + }, + "updateEncryptionKeyWarning": { + "message": "Après avoir mis à jour votre clé de chiffrement, vous devrez vous reconnecter sur toutes les applications Bitwarden que vous utilisez actuellement (comme par exemple l'application mobile ou les extensions de navigateur). Le fait de ne pas vous déconnecter et de vous reconnecter (ce qui télécharge votre nouvelle clé de chiffrement) pourrait entraîner une corruption des données. Nous allons essayer de vous déconnecter automatiquement, mais cela demande un peu de temps." + }, + "updateEncryptionKeyExportWarning": { + "message": "Tous les exports chiffrés que vous avez enregistrés deviendront également invalides." + }, + "subscription": { + "message": "Abonnement" + }, + "loading": { + "message": "Chargement" + }, + "upgrade": { + "message": "Mettre à niveau" + }, + "upgradeOrganization": { + "message": "Mettre à niveau l'organisation" + }, + "upgradeOrganizationDesc": { + "message": "Cette fonctionnalité n'est pas disponible pour les organisations gratuites. Passez à une offre payante pour débloquer plus de fonctionnalités." + }, + "createOrganizationStep1": { + "message": "Créer une organisation : Étape 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Avant de créer votre organisation, vous devez d’abord créer un compte personnel gratuit." + }, + "refunded": { + "message": "Remboursé" + }, + "nothingSelected": { + "message": "Vous n'avez rien sélectionné." + }, + "acceptPolicies": { + "message": "En cochant cette case, vous acceptez les éléments suivants :" + }, + "acceptPoliciesError": { + "message": "Les conditions d'utilisation et la politique de confidentialité n'ont pas été acceptées." + }, + "termsOfService": { + "message": "Conditions d'utilisation" + }, + "privacyPolicy": { + "message": "Politique de confidentialité" + }, + "filters": { + "message": "Filtres" + }, + "vaultTimeout": { + "message": "Délai d'expiration du coffre" + }, + "vaultTimeoutDesc": { + "message": "Choisissez quand votre coffre expirera et effectuera l'action sélectionnée." + }, + "oneMinute": { + "message": "1 minute" + }, + "fiveMinutes": { + "message": "5 minutes" + }, + "fifteenMinutes": { + "message": "15 minutes" + }, + "thirtyMinutes": { + "message": "30 minutes" + }, + "oneHour": { + "message": "1 heure" + }, + "fourHours": { + "message": "4 heures" + }, + "onRefresh": { + "message": "Au rechargement de la page" + }, + "dateUpdated": { + "message": "Mis à jour", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Mot de passe mis à jour", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "L'organisation est désactivée." + }, + "licenseIsExpired": { + "message": "La licence a expiré." + }, + "updatedUsers": { + "message": "Utilisateurs mis à jour" + }, + "selected": { + "message": "Sélectionné(s)" + }, + "ownership": { + "message": "Propriété" + }, + "whoOwnsThisItem": { + "message": "À qui appartient cet élément ?" + }, + "strong": { + "message": "Fort", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Suffisant", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Faible", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Très faible", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Mot de passe maître faible" + }, + "weakMasterPasswordDesc": { + "message": "Le mot de passe maître que vous avez choisi est faible. Vous devriez utiliser un mot de passe (ou une phrase de passe) fort(e) pour protéger correctement votre compte Bitwarden. Êtes-vous sûr de vouloir utiliser ce mot de passe maître ?" + }, + "rotateAccountEncKey": { + "message": "Révoquer également la clé de chiffrement de mon compte" + }, + "rotateEncKeyTitle": { + "message": "Révoquer la clé de chiffrement" + }, + "rotateEncKeyConfirmation": { + "message": "Êtes-vous sûr de vouloir révoquer la clé de chiffrement de votre compte ?" + }, + "attachmentsNeedFix": { + "message": "Cet élément a d'anciennes pièces jointes qui doivent être réparées." + }, + "attachmentFixDesc": { + "message": "Il s'agit d'une ancienne pièce jointe qui doit être réparée. Cliquez pour en savoir plus." + }, + "fix": { + "message": "Réparer", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Il y a d'anciennes pièces jointes dans votre coffre qui doivent être réparées avant que vous ne puissiez révoquer la clé de chiffrement de votre compte." + }, + "yourAccountsFingerprint": { + "message": "La phrase d'empreinte de votre compte", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Pour assurer l'intégrité de vos clés de chiffrement, merci de saisir la phrase d'empreinte de l'utilisateur avant de continuer.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Ne jamais demander de vérifier la phrase d'empreinte pour les utilisateurs invités (non recommandé)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Gratuit", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "Clé d'API" + }, + "apiKeyDesc": { + "message": "Votre clé d'API peut être utilisée pour s'authentifier auprès de l'API publique Bitwarden." + }, + "apiKeyRotateDesc": { + "message": "Révoquer la clé d'API invalidera la clé précédente. Vous pouvez révoquer votre clé d'API si vous pensez que la clé actuelle a été compromise." + }, + "apiKeyWarning": { + "message": "Votre clé d'API a un accès complet à l'organisation. Elle doit être gardée secrète." + }, + "userApiKeyDesc": { + "message": "Votre clé d'API peut être utilisée pour vous authentifier dans l'interface ligne de commande (CLI) de Bitwarden." + }, + "userApiKeyWarning": { + "message": "Votre clé d'API est un mécanisme d'authentification alternatif. Elle doit être gardée secrète." + }, + "oauth2ClientCredentials": { + "message": "Identifiants du client OAuth 2.0", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Voir la clé d'API" + }, + "rotateApiKey": { + "message": "Révoquer la clé d'API" + }, + "selectOneCollection": { + "message": "Vous devez sélectionner au moins une collection." + }, + "couldNotChargeCardPayInvoice": { + "message": "Nous n'avons pas pu compléter le paiement sur votre carte. Veuillez consulter et payer la facture impayée ci-dessous." + }, + "inAppPurchase": { + "message": "Achat intégré" + }, + "cannotPerformInAppPurchase": { + "message": "Vous ne pouvez pas effectuer cette action tant que vous utilisez les achats intégrés comme méthode de paiement." + }, + "manageSubscriptionFromStore": { + "message": "Vous devez gérer votre abonnement à partir du magasin d’applications où votre achat intégré a été souscrit." + }, + "minLength": { + "message": "Longueur minimale" + }, + "clone": { + "message": "Cloner" + }, + "masterPassPolicyDesc": { + "message": "Définir des exigences minimales pour la force du mot de passe maître." + }, + "twoStepLoginPolicyDesc": { + "message": "Exiger que les utilisateurs définissent une connexion en deux étapes sur leurs comptes personnels." + }, + "twoStepLoginPolicyWarning": { + "message": "Les membres de l'organisation (hors propriétaires et administrateurs) qui n'ont pas activé la connexion en deux étapes sur leur compte personnel seront supprimés de l'organisation et recevront un courriel les informant du changement." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Vous êtes membre d'une organisation qui nécessite que la connexion en deux étapes soit activée sur votre compte utilisateur. Si vous désactivez tous les fournisseurs de connexion en deux étapes, vous serez automatiquement retiré de ces organisations." + }, + "passwordGeneratorPolicyDesc": { + "message": "Définir les exigences minimales pour la configuration du générateur de mot de passe." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Une ou plusieurs politiques d'organisation affectent les paramètres de votre générateur." + }, + "masterPasswordPolicyInEffect": { + "message": "Une ou plusieurs politiques de l'organisation exigent que votre mot de passe maître réponde aux exigences suivantes :" + }, + "policyInEffectMinComplexity": { + "message": "Score de complexité minimum de $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Longueur minimale de $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contenir une ou plusieurs majuscules" + }, + "policyInEffectLowercase": { + "message": "Contenir une ou plusieurs minuscules" + }, + "policyInEffectNumbers": { + "message": "Contenir un ou plusieurs chiffres" + }, + "policyInEffectSpecial": { + "message": "Contenir un ou plusieurs des caractères spéciaux suivants $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Votre nouveau mot de passe maître ne répond pas aux exigences de la politique." + }, + "minimumNumberOfWords": { + "message": "Nombre minimum de mots" + }, + "defaultType": { + "message": "Type par défaut" + }, + "userPreference": { + "message": "Choix laissé à l'utilisateur" + }, + "vaultTimeoutAction": { + "message": "Action lors de l'expiration du délai du coffre" + }, + "vaultTimeoutActionLockDesc": { + "message": "Un coffre verrouillé requiert la saisie de votre mot de passe maître pour y avoir à nouveau accès." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Un coffre déconnecté nécessite que vous vous ré-authentifiez pour y accéder de nouveau." + }, + "lock": { + "message": "Verrouiller", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Corbeille", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Rechercher dans la corbeille" + }, + "permanentlyDelete": { + "message": "Supprimer définitivement" + }, + "permanentlyDeleteSelected": { + "message": "Supprimer définitivement la sélection" + }, + "permanentlyDeleteItem": { + "message": "Supprimer définitivement l'élément" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Êtes-vous sûr de vouloir supprimer définitivement cet élément ?" + }, + "permanentlyDeletedItem": { + "message": "Élément supprimé définitivement" + }, + "permanentlyDeletedItems": { + "message": "Éléments supprimés définitivement" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Vous avez sélectionné $COUNT$ élément(s) à supprimer définitivement. Êtes-vous sûr de vouloir supprimer définitivement tous ces éléments ?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Élément $ID$ supprimé définitivement.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restaurer" + }, + "restoreSelected": { + "message": "Restaurer la sélection" + }, + "restoreItem": { + "message": "Restaurer l'élément" + }, + "restoredItem": { + "message": "Élément restauré" + }, + "restoredItems": { + "message": "Éléments restaurés" + }, + "restoreItemConfirmation": { + "message": "Êtes-vous sûr de vouloir restaurer cet élément ?" + }, + "restoreItems": { + "message": "Restaurer les éléments" + }, + "restoreSelectedItemsDesc": { + "message": "Vous avez sélectionné $COUNT$ élément(s) à restaurer. Êtes-vous sûr de vouloir restaurer tous ces éléments ?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Élément $ID$ restauré.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "La déconnexion supprimera tous les accès à votre coffre et nécessite une authentification en ligne après la période d'expiration. Êtes-vous sûr de vouloir utiliser ce paramètre?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Confirmation de l'action lors de l'expiration du délai" + }, + "hidePasswords": { + "message": "Masquer les mots de passe" + }, + "countryPostalCodeRequiredDesc": { + "message": "Nous avons besoin de ces renseignements seulement pour calculer les taxes de vente et compléter les rapports financiers." + }, + "includeVAT": { + "message": "Inclure des informations pour la TVA/TPS (facultatif)" + }, + "taxIdNumber": { + "message": "Identifiant TVA/TPS" + }, + "taxInfoUpdated": { + "message": "Informations sur les taxes mises à jour." + }, + "setMasterPassword": { + "message": "Définir le mot de passe maître" + }, + "ssoCompleteRegistration": { + "message": "Afin de terminer la connexion avec SSO, veuillez définir un mot de passe maître pour accéder à votre coffre et le protéger." + }, + "identifier": { + "message": "Identifiant" + }, + "organizationIdentifier": { + "message": "Identifiant de l'organisation" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Connectez-vous en utilisant le portail de connexion unique de votre organisation. Veuillez entrer l'identifiant de votre organisation pour commencer." + }, + "enterpriseSingleSignOn": { + "message": "Portail de connexion unique d'entreprise (Single Sign-On)" + }, + "ssoHandOff": { + "message": "Vous pouvez maintenant fermer cet onglet et continuer dans l'extension." + }, + "includeAllTeamsFeatures": { + "message": "Toutes les fonctionnalités pour les équipes, plus :" + }, + "includeSsoAuthentication": { + "message": "Authentification SSO via SAML2.0 et OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Politiques d'entreprise" + }, + "ssoValidationFailed": { + "message": "Échec de la validation SSO" + }, + "ssoIdentifierRequired": { + "message": "L'identifiant de l'organisation est requis." + }, + "unlinkSso": { + "message": "Délier SSO" + }, + "unlinkSsoConfirmation": { + "message": "Êtes-vous sûr de vouloir supprimer le lien SSO pour cette organisation?" + }, + "linkSso": { + "message": "Lier SSO" + }, + "singleOrg": { + "message": "Organisation Unique" + }, + "singleOrgDesc": { + "message": "Empêcher les utilisateurs de pouvoir rejoindre d'autres organisations." + }, + "singleOrgBlockCreateMessage": { + "message": "Votre organisation actuelle a une politique qui ne vous permet pas de rejoindre plus d'une organisation. Veuillez contacter les administrateurs de votre organisation ou vous inscrire à partir d'un compte Bitwarden différent." + }, + "singleOrgPolicyWarning": { + "message": "Les membres de l'organisation qui ne sont ni propriétaires ni administrateurs et qui sont déjà membres d'une autre organisation seront retirés de votre organisation." + }, + "requireSso": { + "message": "Authentification par Connexion Unique (Single Sign-On)" + }, + "requireSsoPolicyDesc": { + "message": "Exiger que les utilisateurs se connectent avec la méthode du portail de connexion unique d'entreprise." + }, + "prerequisite": { + "message": "Prérequis" + }, + "requireSsoPolicyReq": { + "message": "La politique d'entreprise \"Organisation Unique\" doit être activée avant d'activer cette politique." + }, + "requireSsoPolicyReqError": { + "message": "La politique \"Organisation Unique\" n'est pas activée." + }, + "requireSsoExemption": { + "message": "Les propriétaires et les administrateurs de l'organisation sont exonérés de l'application de cette politique." + }, + "sendTypeFile": { + "message": "Fichier" + }, + "sendTypeText": { + "message": "Texte" + }, + "createSend": { + "message": "Créer un nouveau Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Modifier le Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send créé", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Send modifié", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send supprimé", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Supprimer le Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Êtes-vous sûr de vouloir supprimer ce Send ?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "De quel type de Send s'agit-il ?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Date de suppression" + }, + "deletionDateDesc": { + "message": "Le Send sera définitivement supprimé à la date et heure spécifiées.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Date d'expiration" + }, + "expirationDateDesc": { + "message": "Si défini, l'accès à ce Send expirera à la date et heure spécifiées.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Nombre maximum d'accès" + }, + "maxAccessCountDesc": { + "message": "Si défini, les utilisateurs ne seront plus en mesure d'accéder à ce Send une fois que le nombre maximum d'accès sera atteint.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Nombre d'accès actuel" + }, + "sendPasswordDesc": { + "message": "Vous pouvez, si vous le souhaitez, exiger un mot de passe pour accéder à ce Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Notes privées à propos de ce Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Désactivé" + }, + "sendLink": { + "message": "Lien du Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copier le lien du Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Supprimer le mot de passe" + }, + "removedPassword": { + "message": "Mot de passe supprimé" + }, + "removePasswordConfirmation": { + "message": "Êtes-vous sûr de vouloir supprimer le mot de passe ?" + }, + "hideEmail": { + "message": "Cacher mon adresse e-mail aux destinataires." + }, + "disableThisSend": { + "message": "Désactiver ce Send pour que personne ne puisse y accéder.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Tous les Sends" + }, + "maxAccessCountReached": { + "message": "Nombre maximum d'accès atteint", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "En attente de suppression" + }, + "expired": { + "message": "Expiré" + }, + "searchSends": { + "message": "Rechercher dans les Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Ce Send est protégé par un mot de passe. Veuillez saisir le mot de passe ci-dessous pour continuer.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Vous ne connaissez pas le mot de passe ? Demandez à l'expéditeur le mot de passe nécessaire pour accéder à ce Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Ce Send est masqué par défaut. Vous pouvez changer sa visibilité en utilisant le bouton ci-dessous.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Télécharger le fichier" + }, + "sendAccessUnavailable": { + "message": "Le Send que vous essayez d'accéder n'existe pas ou n'est plus disponible.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Le fichier associé à ce Send est introuvable.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Il n'y a aucun Send à afficher.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Accès d'urgence" + }, + "emergencyAccessDesc": { + "message": "Accorder et gérer l'accès d'urgence pour les contacts de confiance. Les contacts de confiance peuvent demander l'accès à votre compte pour l'afficher ou en prendre le contrôle en cas d'urgence. Visitez notre page d'aide pour plus d'informations et de détails sur le fonctionnement du partage à divulgation nulle de connaissance." + }, + "emergencyAccessOwnerWarning": { + "message": "Vous êtes propriétaire d'une ou de plusieurs organisations. Si vous autorisez la prise de contrôle à un contact d'urgence, il sera en mesure d'utiliser toutes vos permissions de propriétaire après la prise de contrôle." + }, + "trustedEmergencyContacts": { + "message": "Contacts d'urgence de confiance" + }, + "noTrustedContacts": { + "message": "Vous n'avez pas encore ajouté de contacts d'urgence, invitez un contact de confiance pour commencer." + }, + "addEmergencyContact": { + "message": "Ajouter un contact d'urgence" + }, + "designatedEmergencyContacts": { + "message": "Désigné comme contact d'urgence" + }, + "noGrantedAccess": { + "message": "Vous n'avez pas encore été désigné comme contact d'urgence pour qui que ce soit." + }, + "inviteEmergencyContact": { + "message": "Inviter un contact d'urgence" + }, + "editEmergencyContact": { + "message": "Modifier le contact d'urgence" + }, + "inviteEmergencyContactDesc": { + "message": "Invitez un nouveau contact d'urgence en entrant l'adresse e-mail de leur compte Bitwarden ci-dessous. S'ils n'ont pas encore de compte Bitwarden, ils seront invités à en créer un." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Accès d'urgence initié" + }, + "emergencyAccessRecoveryApproved": { + "message": "Accès d'urgence approuvé" + }, + "viewDesc": { + "message": "Peut afficher tous les éléments dans votre propre coffre." + }, + "takeover": { + "message": "Prise de contrôle" + }, + "takeoverDesc": { + "message": "Peut réinitialiser votre compte avec un nouveau mot de passe maître." + }, + "waitTime": { + "message": "Période d'attente" + }, + "waitTimeDesc": { + "message": "Temps nécessaire avant d'accorder l'accès automatiquement." + }, + "oneDay": { + "message": "1 jour" + }, + "days": { + "message": "$DAYS$ jours", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Utilisateur invité." + }, + "acceptEmergencyAccess": { + "message": "Vous avez été invité à devenir un contact d'urgence pour l'utilisateur indiqué ci-dessus. Pour accepter l'invitation, vous devez vous connecter ou créer un nouveau compte Bitwarden." + }, + "emergencyInviteAcceptFailed": { + "message": "Impossible d'accepter l'invitation. Demandez à l'utilisateur d'envoyer une nouvelle invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Impossible d'accepter l'invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Vous pourrez accéder aux options d'urgence pour cet utilisateur après la confirmation de votre identité. Nous vous enverrons un e-mail lorsque cela se produira." + }, + "requestAccess": { + "message": "Demander l’accès" + }, + "requestAccessConfirmation": { + "message": "Êtes-vous sûr de vouloir demander un accès d'urgence ? L'accès vous sera accordé après $WAITTIME$ jour(s) ou dès que l'utilisateur approuve manuellement la demande.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Accès d'urgence demandé pour $USER$. Nous vous informerons par e-mail quand il sera possible de continuer.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Accepter" + }, + "reject": { + "message": "Refuser" + }, + "approveAccessConfirmation": { + "message": "Êtes-vous sûr de vouloir approuver l'accès d'urgence ? Cela accordera à $USER$ les permissions suivantes sur votre compte: $ACTION$.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Accès d'urgence approuvé." + }, + "emergencyRejected": { + "message": "Accès d'urgence refusé." + }, + "passwordResetFor": { + "message": "Réinitialisation du mot de passe pour $USER$. Vous pouvez maintenant vous connecter en utilisant le nouveau mot de passe.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Propriété individuelle" + }, + "personalOwnershipPolicyDesc": { + "message": "Exiger que les utilisateurs enregistrent des éléments du coffre dans une organisation en retirant l'option de propriété individuelle." + }, + "personalOwnershipExemption": { + "message": "Les propriétaires et les administrateurs de l'organisation sont exonérés de l'application de cette politique." + }, + "personalOwnershipSubmitError": { + "message": "En raison d'une politique d'entreprise, il vous est interdit d'enregistrer des éléments dans votre coffre personnel. Sélectionnez une organisation dans l'option Propriété et choisissez parmi les collections disponibles." + }, + "disableSend": { + "message": "Désactiver le Send" + }, + "disableSendPolicyDesc": { + "message": "Ne pas autoriser les utilisateurs à créer ou modifier un Send Bitwarden. La suppression d'un envoi existant est toujours autorisée.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Les utilisateurs de l'organisation qui peuvent gérer les politiques de l'organisation sont exonérés de l'application de cette politique." + }, + "sendDisabled": { + "message": "Send désactivé", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "En raison d'une politique d'entreprise, vous ne pouvez que supprimer un Send existant.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Options Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Définir les options pour la création et la modification des Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Les utilisateurs de l'organisation qui peuvent gérer les politiques de l'organisation sont exonérés de l'application de cette politique." + }, + "disableHideEmail": { + "message": "Interdire aux utilisateurs de masquer leur adresse e-mail aux destinataires lors de la création ou de la modification d'un Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Les politiques d'organisation suivantes sont actuellement en vigueur :" + }, + "sendDisableHideEmailInEffect": { + "message": "Les utilisateurs ne sont pas autorisés à masquer leur adresse e-mail aux destinataires lors de la création ou de la modification d'un Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Politique $ID$ modifiée.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Prix du forfait" + }, + "estimatedTax": { + "message": "Taxe estimée" + }, + "custom": { + "message": "Personnalisé" + }, + "customDesc": { + "message": "Permet un contrôle plus précis des permissions utilisateur pour les configurations avancées." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Accéder aux journaux d'événements" + }, + "accessImportExport": { + "message": "Accéder aux options d'import et d'export" + }, + "accessReports": { + "message": "Accéder aux rapports" + }, + "missingPermissions": { + "message": "Vous n’avez pas les permissions requises pour accomplir cette action." + }, + "manageAllCollections": { + "message": "Gérer toutes les collections" + }, + "createNewCollections": { + "message": "Créer de nouvelles collections" + }, + "editAnyCollection": { + "message": "Modifier n'importe quelle collection" + }, + "deleteAnyCollection": { + "message": "Supprimer n'importe quelle collection" + }, + "manageAssignedCollections": { + "message": "Gérer les collections assignées" + }, + "editAssignedCollections": { + "message": "Modifier les collection assignées" + }, + "deleteAssignedCollections": { + "message": "Supprimer les collections assignées" + }, + "manageGroups": { + "message": "Gérer les groupes" + }, + "managePolicies": { + "message": "Gérer les politiques" + }, + "manageSso": { + "message": "Gérer le SSO" + }, + "manageUsers": { + "message": "Gérer les utilisateurs" + }, + "manageResetPassword": { + "message": "Gérer la réinitialisation du mot de passe" + }, + "disableRequiredError": { + "message": "Afin de désactiver cette politique, vous devez préalablement manuellement désactiver la politique \"$POLICYNAME$\".", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Une politique d'organisation affecte vos options de propriété." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "Une politique d'organisation a désactivé l'import d'éléments dans votre coffre personnel." + }, + "personalOwnershipCheckboxDesc": { + "message": "Désactiver la propriété individuelle des utilisateurs de l'organisation" + }, + "textHiddenByDefault": { + "message": "Lors de l'accès à ce Send, masquer le texte par défaut", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Un nom convivial pour décrire ce Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Le texte que vous voulez envoyer." + }, + "sendFileDesc": { + "message": "Le fichier que vous voulez envoyer." + }, + "copySendLinkOnSave": { + "message": "Copier le lien de ce Send dans mon presse-papiers lors de l'enregistrement." + }, + "sendLinkLabel": { + "message": "Lien du Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Les Send Bitwarden permettent d'envoyer des informations sensibles et temporaires à d'autres, facilement et en toute sécurité.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Apprenez-en plus sur", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Partagez du texte ou des fichiers directement avec n'importe qui." + }, + "sendVaultCardLearnMore": { + "message": "Apprenez-en plus", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "découvrez", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "comment cela fonctionne", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "ou", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "essayez-le maintenant", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "ou", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "inscrivez-vous", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "pour l'essayer dès aujourd'hui.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "L'utilisateur Bitwarden $USER_IDENTIFIER$ a partagé ce qui suit avec vous", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "L'utilisateur Bitwarden qui a créé ce Send a choisi de masquer son adresse e-mail. Vous devez vous assurer que vous faites confiance à la source de ce lien avant d'utiliser ou de télécharger son contenu.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "La date d'expiration indiquée n'est pas valide." + }, + "deletionDateIsInvalid": { + "message": "La date de suppression indiquée n'est pas valide." + }, + "expirationDateAndTimeRequired": { + "message": "Une date et une heure d'expiration sont requises." + }, + "deletionDateAndTimeRequired": { + "message": "Une date et une heure de suppression sont requises." + }, + "dateParsingError": { + "message": "Une erreur s'est produite lors de l'enregistrement de vos dates de suppression et d'expiration." + }, + "webAuthnFallbackMsg": { + "message": "Pour vérifier votre 2FA, veuillez cliquer sur le bouton ci-dessous." + }, + "webAuthnAuthenticate": { + "message": "Authentifier WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn n'est pas pris en charge dans ce navigateur." + }, + "webAuthnSuccess": { + "message": "WebAuthn vérifié avec succès ! Vous pouvez fermer cet onglet." + }, + "hintEqualsPassword": { + "message": "Votre indice de mot de passe ne peut pas être identique à votre mot de passe." + }, + "enrollPasswordReset": { + "message": "S'inscrire à la réinitialisation du mot de passe" + }, + "enrolledPasswordReset": { + "message": "Inscrit à la réinitialisation du mot de passe" + }, + "withdrawPasswordReset": { + "message": "Se retirer de la réinitialisation du mot de passe" + }, + "enrollPasswordResetSuccess": { + "message": "Inscription réussie !" + }, + "withdrawPasswordResetSuccess": { + "message": "Retrait réussi !" + }, + "eventEnrollPasswordReset": { + "message": "L'utilisateur $ID$ s'est inscrit à l'aide de réinitialisation du mot de passe.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "L'utilisateur $ID$ s'est retiré de l'aide à la réinitialisation du mot de passe.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Réinitialisation du mot de passe maître pour l'utilisateur $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Réinitialiser le lien SSO pour l'utilisateur $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ s'est connecté avec le SSO pour la première fois", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Réinitialiser le mot de passe" + }, + "resetPasswordLoggedOutWarning": { + "message": "En continuant, $NAME$ sera déconnecté de sa session actuelle, ce qui lui demandera de se reconnecter. Les sessions actives sur d'autres appareils peuvent rester actives jusqu'à une heure.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "cet utilisateur" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Une ou plusieurs politiques de l'organisation exigent que le mot de passe maître réponde aux exigences suivantes :" + }, + "resetPasswordSuccess": { + "message": "Mot de passe réinitialisé avec succès !" + }, + "resetPasswordEnrollmentWarning": { + "message": "L'inscription permettra aux administrateurs de l'organisation de changer votre mot de passe maître. Êtes-vous sûr de vouloir vous inscrire ?" + }, + "resetPasswordPolicy": { + "message": "Réinitialisation du mot de passe maître" + }, + "resetPasswordPolicyDescription": { + "message": "Permettre aux administrateurs de l'organisation de réinitialiser le mot de passe maître des utilisateurs de l'organisation." + }, + "resetPasswordPolicyWarning": { + "message": "Les utilisateurs de l'organisation devront s'inscrire personnellement ou être inscrits automatiquement avant que les administrateurs puissent réinitialiser leur mot de passe maître." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Inscription automatique" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Tous les utilisateurs seront automatiquement inscrits à la réinitialisation du mot de passe une fois leur invitation acceptée et n'auront pas la possibilité de refuser." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Les utilisateurs déjà dans l'organisation ne seront pas inscrits rétroactivement à la réinitialisation du mot de passe. Ils devront s'inscrire personnellement avant que les administrateurs puissent réinitialiser leur mot de passe maître." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Exiger que les nouveaux utilisateurs soient inscrits automatiquement" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Cette organisation a une politique d'entreprise qui vous inscrira automatiquement à la réinitialisation du mot de passe. L'inscription permettra aux administrateurs de l'organisation de changer votre mot de passe maître." + }, + "resetPasswordOrgKeysError": { + "message": "Erreur lors du traitement de votre demande : \"Organization Keys response is null\"" + }, + "resetPasswordDetailsError": { + "message": "Erreur lors du traitement de votre demande : \"Reset Password Details response is null\"" + }, + "trashCleanupWarning": { + "message": "Les éléments présents dans la corbeille depuis plus de 30 jours seront automatiquement supprimés." + }, + "trashCleanupWarningSelfHosted": { + "message": "Les éléments présents dans la corbeille depuis un moment seront automatiquement supprimés." + }, + "passwordPrompt": { + "message": "Ressaisie du mot de passe maître" + }, + "passwordConfirmation": { + "message": "Confirmation du mot de passe maître" + }, + "passwordConfirmationDesc": { + "message": "Cette action est protégée. Pour continuer, veuillez ressaisir votre mot de passe maître pour vérifier votre identité." + }, + "reinviteSelected": { + "message": "Renvoyer les invitations" + }, + "noSelectedUsersApplicable": { + "message": "Cette action n'est applicable à aucun des utilisateurs sélectionnés." + }, + "removeUsersWarning": { + "message": "Êtes-vous sûr de vouloir supprimer les utilisateurs suivants ? Le processus peut prendre quelques secondes et ne peut être interrompu ou annulé." + }, + "theme": { + "message": "Thème" + }, + "themeDesc": { + "message": "Choisissez un thème pour votre coffre web." + }, + "themeSystem": { + "message": "Utiliser le thème du système" + }, + "themeDark": { + "message": "Sombre" + }, + "themeLight": { + "message": "Clair" + }, + "confirmSelected": { + "message": "Confirmer la sélection" + }, + "bulkConfirmStatus": { + "message": "Statut de l'action de masse" + }, + "bulkConfirmMessage": { + "message": "Confirmé avec succès." + }, + "bulkReinviteMessage": { + "message": "Réinvité avec succès." + }, + "bulkRemovedMessage": { + "message": "Supprimé avec succès" + }, + "bulkFilteredMessage": { + "message": "Exclu, non applicable pour cette action." + }, + "fingerprint": { + "message": "Empreinte" + }, + "removeUsers": { + "message": "Supprimer les utilisateurs" + }, + "error": { + "message": "Erreur" + }, + "resetPasswordManageUsers": { + "message": "La permission \"Gérer la réinitialisation du mot de passe\" requiert l'activation de la permission \"Gérer les utilisateurs\"" + }, + "setupProvider": { + "message": "Configuration du fournisseur" + }, + "setupProviderLoginDesc": { + "message": "Vous avez été invité à configurer un nouveau fournisseur. Pour continuer, vous devez vous connecter ou créer un nouveau compte Bitwarden." + }, + "setupProviderDesc": { + "message": "Veuillez entrer les détails ci-dessous pour finaliser la configuration du fournisseur. Contactez le support client si vous avez des questions." + }, + "providerName": { + "message": "Nom du fournisseur" + }, + "providerSetup": { + "message": "Le fournisseur a été configuré." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Administrateur du fournisseur" + }, + "providerAdminDesc": { + "message": "L'utilisateur à l'accès le plus élevé. Il peut gérer tous les aspects de votre fournisseur ainsi que gérer les organisations clientes et y accéder." + }, + "serviceUser": { + "message": "Utilisateur de service" + }, + "serviceUserDesc": { + "message": "Les utilisateurs de service peuvent gérer toutes les organisations clientes et y accéder." + }, + "providerInviteUserDesc": { + "message": "Invitez de nouveaux utilisateurs à votre fournisseur en entrant l'adresse e-mail de leur compte Bitwarden ci-dessous. S'ils n’ont pas déjà un compte Bitwarden, il leur sera demandé d'en créer un nouveau." + }, + "joinProvider": { + "message": "Rejoindre le fournisseur" + }, + "joinProviderDesc": { + "message": "Vous avez été invité à rejoindre le fournisseur ci-dessus. Pour accepter l'invitation, vous devez vous connecter ou créer un nouveau compte Bitwarden." + }, + "providerInviteAcceptFailed": { + "message": "Impossible d'accepter l'invitation. Demandez à un administrateur du fournisseur d'envoyer une nouvelle invitation." + }, + "providerInviteAcceptedDesc": { + "message": "Vous pourrez accéder à ce fournisseur dès qu'un administrateur aura confirmé votre inscription. Nous vous enverrons un e-mail lorsque ce sera fait." + }, + "providerUsersNeedConfirmed": { + "message": "Il y a des utilisateurs qui ont accepté leur invitation, mais qui doivent encore être confirmés. Les utilisateurs n'auront pas accès au fournisseur tant qu'ils n'auront pas été confirmés." + }, + "provider": { + "message": "Fournisseur" + }, + "newClientOrganization": { + "message": "Nouvelle organisation cliente" + }, + "newClientOrganizationDesc": { + "message": "Créez une nouvelle organisation cliente qui sera associée avec vous en tant que fournisseur. Vous pourrez accéder à cette organisation et la gérer." + }, + "addExistingOrganization": { + "message": "Ajouter une organisation existante" + }, + "myProvider": { + "message": "Mon fournisseur" + }, + "addOrganizationConfirmation": { + "message": "Êtes-vous sûr de vouloir ajouter $ORGANIZATION$ comme cliente de $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "L'organisation a bien été ajoutée au fournisseur" + }, + "accessingUsingProvider": { + "message": "Accès à l'organisation en utilisant le fournisseur $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Le fournisseur est désactivé." + }, + "providerUpdated": { + "message": "Fournisseur mis à jour" + }, + "yourProviderIs": { + "message": "Votre fournisseur est $PROVIDER$. Ils ont des privilèges d'administration et de facturation pour votre organisation.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "L'organisation $ORGANIZATION$ a été détachée de votre fournisseur.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Êtes-vous sûr de vouloir détacher cette organisation ? L'organisation continuera d'exister mais ne sera plus gérée par le fournisseur." + }, + "add": { + "message": "Ajouter" + }, + "updatedMasterPassword": { + "message": "Mot de passe maître mis à jour" + }, + "updateMasterPassword": { + "message": "Mettre à jour le mot de passe maître" + }, + "updateMasterPasswordWarning": { + "message": "Votre mot de passe maître a récemment été modifié par un administrateur de votre organisation. Pour accéder au coffre, vous devez mettre à jour votre mot de passe maître dès maintenant. Cette action va vous déconnecter et vous obligera à vous reconnecter. Les sessions actives sur d'autres appareils peuvent rester actives jusqu'à une heure." + }, + "masterPasswordInvalidWarning": { + "message": "Votre mot de passe maître ne répond pas aux exigences des politiques de cette organisation. Afin de rejoindre l'organisation, vous devez mettre à jour votre mot de passe maître maintenant. En continuant, vous serez déconnecté de votre session actuelle et vous devrez vous reconnecter. Les sessions actives sur d'autres appareils peuvent rester actives pendant encore une heure." + }, + "maximumVaultTimeout": { + "message": "Délai d'expiration du coffre" + }, + "maximumVaultTimeoutDesc": { + "message": "Configurer un délai maximum d'expiration du coffre pour tous les utilisateurs." + }, + "maximumVaultTimeoutLabel": { + "message": "Délai maximum d'expiration du coffre" + }, + "invalidMaximumVaultTimeout": { + "message": "Délai maximum d'expiration du coffre invalide." + }, + "hours": { + "message": "Heures" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Les politiques de votre organisation affectent le délai d'expiration de votre coffre. Le délai d'expiration maximal autorisé est de $HOURS$ heure(s) et $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Délai d'expiration du coffre personnalisé" + }, + "vaultTimeoutToLarge": { + "message": "Le délai d'expiration de votre coffre-fort dépasse les restrictions définies par votre organisation." + }, + "disablePersonalVaultExport": { + "message": "Désactiver l'export du coffre personnel" + }, + "disablePersonalVaultExportDesc": { + "message": "Empêche les utilisateurs d'exporter les données de leur coffre privé." + }, + "vaultExportDisabled": { + "message": "Export du coffre désactivé" + }, + "personalVaultExportPolicyInEffect": { + "message": "Une ou plusieurs politiques d'organisation vous empêchent d'exporter votre coffre personnel." + }, + "selectType": { + "message": "Sélectionnez le type de SSO" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "Configuration OpenID Connect" + }, + "samlSpConfig": { + "message": "Configuration SAML Service Provider" + }, + "samlIdpConfig": { + "message": "Configuration SAML Identity Provider" + }, + "callbackPath": { + "message": "URL de callback" + }, + "signedOutCallbackPath": { + "message": "URL de callback pour la déconnexion" + }, + "authority": { + "message": "Autorité" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Adresse des métadonnées" + }, + "oidcRedirectBehavior": { + "message": "Comportement de la redirection OIDC" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Récupérer les claims depuis l'endpoint d'informations utilisateur (User Info Endpoint)" + }, + "additionalScopes": { + "message": "Scopes personnalisés" + }, + "additionalUserIdClaimTypes": { + "message": "Types de claim personnalisés pour l'identifiant de l'utilisateur" + }, + "additionalEmailClaimTypes": { + "message": "Types de claim pour l'e-mail" + }, + "additionalNameClaimTypes": { + "message": "Types de claim personnalisés pour le nom" + }, + "acrValues": { + "message": "Valeurs Authentication Context Class Reference demandées" + }, + "expectedReturnAcrValue": { + "message": "Valeur attendue pour le claim \"acr\" dans la réponse" + }, + "spEntityId": { + "message": "ID de l'entité du Service Provider" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Algorithme de signature sortant" + }, + "spSigningBehavior": { + "message": "Comportement de la signature" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Algorithme de signature entrant minimal" + }, + "spWantAssertionsSigned": { + "message": "Exiger des assertions signées" + }, + "spValidateCertificates": { + "message": "Vérifier les certificats" + }, + "idpEntityId": { + "message": "ID de l'entité" + }, + "idpBindingType": { + "message": "Type de liaison" + }, + "idpSingleSignOnServiceUrl": { + "message": "URL du service de connexion unique (SSO)" + }, + "idpSingleLogoutServiceUrl": { + "message": "URL du service de déconnexion unique (SLO)" + }, + "idpX509PublicCert": { + "message": "Certificat public X.509" + }, + "idpOutboundSigningAlgorithm": { + "message": "Algorithme de signature sortant" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Autoriser les réponses d'authentification non sollicitées" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Autoriser les demandes de déconnexion sortantes" + }, + "idpSignAuthenticationRequests": { + "message": "Signer les demandes d'authentification" + }, + "ssoSettingsSaved": { + "message": "La configuration SSO a été enregistrée." + }, + "sponsoredFamilies": { + "message": "Bitwarden Familles gratuit" + }, + "sponsoredFamiliesEligible": { + "message": "Vous et votre famille êtes éligibles pour profiter gratuitement de Bitwarden Familles. Utilisez votre adresse e-mail personnelle pour obtenir votre accès et garder vos données en sécurité même lorsque vous n'êtes pas au travail." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Obtenez votre abonnement Bitwarden Familles gratuit aujourd'hui pour garder vos données en sécurité même lorsque vous n'êtes pas au travail." + }, + "sponsoredFamiliesInclude": { + "message": "L'abonnement Bitwarden Familles inclut" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Accès premium pour un maximum de 6 utilisateurs" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Collections partagées pour les secrets de la famille" + }, + "badToken": { + "message": "Le lien n'est plus valide. Merci de demander à votre parrain de renvoyer l'offre." + }, + "reclaimedFreePlan": { + "message": "Abonnement gratuit récupéré" + }, + "redeem": { + "message": "Obtenir" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Sélectionnez l'organisation que vous souhaiteriez voir parrainée" + }, + "familiesSponsoringOrgSelect": { + "message": "Quelle offre Familles gratuite aimeriez-vous obtenir ?" + }, + "sponsoredFamiliesEmail": { + "message": "Entrez votre adresse e-mail personnelle pour obtenir Bitwarden Familles" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Si vous quittez ou que vous êtes retiré de l'organisation marraine, votre forfait Familles expirera à la fin de la période de facturation." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Acceptez l'offre pour une organisation existante ou créer une nouvelle organisation Familles." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Vous avez reçu un abonnement gratuit pour une organisation Bitwarden Familles. Pour continuer, vous devez vous connecter au compte qui a reçu l'offre." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Impossible d'accepter l'offre. Veuillez renvoyer l'e-mail de l'offre depuis votre compte professionnel et réessayer." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Impossible d'accepter l'offre. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accepter l'offre Bitwarden Familles gratuite" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "L'offre gratuite de Bitwarden Familles a été récupérée avec succès" + }, + "redeemed": { + "message": "Obtenue" + }, + "redeemedAccount": { + "message": "Compte récupéré" + }, + "revokeAccount": { + "message": "Révoquer le compte $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Renvoyer l'e-mail d'invitation au parrainage \"$NAME$\"", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Abonnement gratuit à Bitwarden Familles" + }, + "redeemNow": { + "message": "Obtenir maintenant" + }, + "recipient": { + "message": "Destinataire" + }, + "removeSponsorship": { + "message": "Supprimer le parrainage" + }, + "removeSponsorshipConfirmation": { + "message": "Après avoir supprimé un parrainage, vous serez responsable de cet abonnement et des factures associées. Êtes-vous sûr de vouloir continuer ?" + }, + "sponsorshipCreated": { + "message": "Parrainage créé" + }, + "revoke": { + "message": "Révoquer" + }, + "emailSent": { + "message": "E-mail envoyé" + }, + "revokeSponsorshipConfirmation": { + "message": "Après avoir supprimé ce compte, le propriétaire de l'organisation Familles sera responsable de cet abonnement et des factures associées. Êtes-vous sûr de vouloir continuer ?" + }, + "removeSponsorshipSuccess": { + "message": "Parrainage supprimé" + }, + "ssoKeyConnectorUnavailable": { + "message": "Impossible de contacter Key Connector, réessayez plus tard." + }, + "keyConnectorUrl": { + "message": "URL de Key Connector" + }, + "sendVerificationCode": { + "message": "Envoyer un code de vérification à votre adresse email" + }, + "sendCode": { + "message": "Envoyer le code" + }, + "codeSent": { + "message": "Code envoyé" + }, + "verificationCode": { + "message": "Code de vérification" + }, + "confirmIdentity": { + "message": "Confirmez votre identité pour continuer." + }, + "verificationCodeRequired": { + "message": "Le code de vérification est requis." + }, + "invalidVerificationCode": { + "message": "Code de vérification invalide" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ utilise SSO avec un serveur de clés auto-hébergé. Un mot de passe maître n'est plus nécessaire aux membres de cette organisation pour se connecter.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Quitter l'organisation" + }, + "removeMasterPassword": { + "message": "Supprimer le mot de passe maître" + }, + "removedMasterPassword": { + "message": "Mot de passe maître supprimé." + }, + "allowSso": { + "message": "Autoriser l'authentification SSO" + }, + "allowSsoDesc": { + "message": "Une fois configuré, votre configuration sera enregistrée et les membres seront en mesure de s'authentifier en utilisant leurs identifiants de l'Identity Provider." + }, + "ssoPolicyHelpStart": { + "message": "Activer la", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "politique de connexion SSO", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "pour obliger tous les membres à se connecter avec SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "Les politiques \"Authentification SSO\" et \"Organisation Unique\" sont requises pour mettre en place le déchiffrement avec Key Connector." + }, + "memberDecryptionOption": { + "message": "Options de déchiffrement des membres" + }, + "memberDecryptionPassDesc": { + "message": "Une fois authentifiés, les membres déchiffreront les données du coffre en utilisant leur mot de passe maître." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connectez l'authentification SSO à votre serveur de clés de déchiffrement auto-hébergé. En utilisant cette option, les membres n'auront pas besoin d'utiliser leur mot de passe maître pour déchiffrer les données du coffre. Contactez le support Bitwarden pour une assistance à la configuration." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Connexion avec SSO et déchiffrement avec Key Connector\" est activé. Cette politique ne s'appliquera qu'aux propriétaires et aux administrateurs." + }, + "enabledSso": { + "message": "SSO activé" + }, + "disabledSso": { + "message": "SSO désactivé" + }, + "enabledKeyConnector": { + "message": "Key Connector activé" + }, + "disabledKeyConnector": { + "message": "Key Connector désactivé" + }, + "keyConnectorWarning": { + "message": "Dès que les membres de votre organisation commencent à utiliser Key Connector, votre organisation ne peut pas revenir au déchiffrement avec mot de passe maître. Ne continuez que si vous êtes à l'aise avec le déploiement et la maintenance d'un serveur de clés." + }, + "migratedKeyConnector": { + "message": "Migré vers Key Connector" + }, + "paymentSponsored": { + "message": "Veuillez fournir un moyen de paiement à associer à l'organisation. Ne vous inquiétez pas, nous ne vous facturerons rien à moins que vous ne sélectionniez des fonctionnalités supplémentaires ou que votre parrainage expire. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "L'offre de parrainage a expiré, vous pouvez supprimer l'organisation que vous avez créée pour éviter d'être facturé à la fin de votre essai de 7 jours. Dans le cas contraire, vous pouvez fermer ce message pour conserver l'organisation et assumer la responsabilité de la facturation." + }, + "newFamiliesOrganization": { + "message": "Nouvelle organisation Familles" + }, + "acceptOffer": { + "message": "Accepter l'offre" + }, + "sponsoringOrg": { + "message": "Organisation marraine" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Succès! Key Connector atteint." + }, + "keyConnectorTestFail": { + "message": "Impossible d'atteindre Key Connector. Vérifiez l'URL." + }, + "sponsorshipTokenHasExpired": { + "message": "L'offre de parrainage a expiré." + }, + "freeWithSponsorship": { + "message": "GRATUIT avec le parrainage" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ champs ci-dessus nécessitent votre attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 champ ci-dessus nécessite votre attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ est requis.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "requis" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Requis si l'ID d'Entité n'est pas une URL." + }, + "openIdOptionalCustomizations": { + "message": "Personnalisations Optionnelles" + }, + "openIdAuthorityRequired": { + "message": "Requis si l'Autorité n'est pas valide." + }, + "separateMultipleWithComma": { + "message": "Séparer avec des virgules." + }, + "sessionTimeout": { + "message": "Votre session a expiré. Veuillez revenir en arrière et essayer de vous connecter à nouveau." + }, + "exportingPersonalVaultTitle": { + "message": "Export du coffre personnel" + }, + "exportingOrganizationVaultTitle": { + "message": "Export du coffre de l'organisation" + }, + "exportingPersonalVaultDescription": { + "message": "Seuls les éléments du coffre personnel associé à l'adresse e-mail $EMAIL$ seront exportés. Les éléments du coffre de l'organisation ne seront pas inclus.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Seul le coffre de l'organisation associé à $ORGANIZATION$ sera exporté. Les éléments du coffre personnel et les éléments d'autres organisations ne seront pas inclus.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Retour aux Rapports" + }, + "generator": { + "message": "Générateur" + }, + "whatWouldYouLikeToGenerate": { + "message": "Que souhaitez-vous générer ?" + }, + "passwordType": { + "message": "Type de Mot de Passe" + }, + "regenerateUsername": { + "message": "Régénérer le Nom d'Utilisateur" + }, + "generateUsername": { + "message": "Générer le Nom d'Utilisateur" + }, + "usernameType": { + "message": "Type de Nom d'Utilisateur" + }, + "plusAddressedEmail": { + "message": "Courriel Adressé Plus", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Utilisez les capacités de sous-adressage de votre fournisseur de messagerie." + }, + "catchallEmail": { + "message": "Collecteur d'Email (catch-all)" + }, + "catchallEmailDesc": { + "message": "Utilisez la boîte de réception du collecteur (catch-all) configurée de votre domaine." + }, + "random": { + "message": "Aléatoire" + }, + "randomWord": { + "message": "Mot Aléatoire" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/he/messages.json b/apps/web/src/locales/he/messages.json new file mode 100644 index 0000000000..2fc045ebf0 --- /dev/null +++ b/apps/web/src/locales/he/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "כספת רשת $APP_NAME$", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "מאיזה סוג פריט זה?" + }, + "name": { + "message": "שם" + }, + "uri": { + "message": "כתובת" + }, + "uriPosition": { + "message": "כתובת $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "כתובת חדשה" + }, + "username": { + "message": "שם משתמש" + }, + "password": { + "message": "סיסמה" + }, + "newPassword": { + "message": "סיסמה חדשה" + }, + "passphrase": { + "message": "משפט סיסמה" + }, + "notes": { + "message": "הערות" + }, + "customFields": { + "message": "שדות מותאמים אישית" + }, + "cardholderName": { + "message": "שם בעל הכרטיס" + }, + "number": { + "message": "מספר" + }, + "brand": { + "message": "מותג" + }, + "expiration": { + "message": "תוקף" + }, + "securityCode": { + "message": "קוד האבטחה (CVV)" + }, + "identityName": { + "message": "שם הזהות" + }, + "company": { + "message": "חברה" + }, + "ssn": { + "message": "מספר ביטוח לאומי" + }, + "passportNumber": { + "message": "מספר דרכון" + }, + "licenseNumber": { + "message": "מספר רשיון" + }, + "email": { + "message": "אימייל" + }, + "phone": { + "message": "טלפון" + }, + "january": { + "message": "ינואר" + }, + "february": { + "message": "פברואר" + }, + "march": { + "message": "מרץ" + }, + "april": { + "message": "אפריל" + }, + "may": { + "message": "מאי" + }, + "june": { + "message": "יוני" + }, + "july": { + "message": "יולי" + }, + "august": { + "message": "אוגוסט" + }, + "september": { + "message": "ספטמבר" + }, + "october": { + "message": "אוקטובר" + }, + "november": { + "message": "נובמבר" + }, + "december": { + "message": "דצמבר" + }, + "title": { + "message": "תואר" + }, + "mr": { + "message": "מר" + }, + "mrs": { + "message": "גברת" + }, + "ms": { + "message": "העלמה" + }, + "dr": { + "message": "דוקטור" + }, + "expirationMonth": { + "message": "תוקף אשראי - חודש" + }, + "expirationYear": { + "message": "תוקף אשראי - שנה" + }, + "authenticatorKeyTotp": { + "message": "מפתח מאמת (TOTP)" + }, + "folder": { + "message": "תיקייה" + }, + "newCustomField": { + "message": "שדה מותאם אישית חדש" + }, + "value": { + "message": "ערך" + }, + "dragToSort": { + "message": "גרור כדי למיין" + }, + "cfTypeText": { + "message": "טקסט" + }, + "cfTypeHidden": { + "message": "מוסתר" + }, + "cfTypeBoolean": { + "message": "אמת או שקר" + }, + "cfTypeLinked": { + "message": "מקושר", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "הסר" + }, + "unassigned": { + "message": "לא מוקצה" + }, + "noneFolder": { + "message": "ללא תיקיה", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "הוסף תיקיה" + }, + "editFolder": { + "message": "ערוך תיקייה" + }, + "baseDomain": { + "message": "שם בסיס הדומיין", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "שם דומיין", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "מארח", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "מדויק" + }, + "startsWith": { + "message": "מתחיל עם" + }, + "regEx": { + "message": "ביטוי רגולרי", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "זיהוי התאמה", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "ברירת מחדל לזיהוי התאמות", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "לעולם לא" + }, + "toggleVisibility": { + "message": "הצג או הסתר" + }, + "toggleCollapse": { + "message": "הצג או קפל", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "צור סיסמה" + }, + "checkPassword": { + "message": "בדוק אם הסיסמה נחשפה." + }, + "passwordExposed": { + "message": "הסיסמה הזו נחשפה $VALUE$ פעמים בפריצות אבטחה. כדאי לשנות אותה.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "הסיסמה לא נמצאה בפריצות אבטחה ידועות. היא בטוחה לשימוש." + }, + "save": { + "message": "שמור" + }, + "cancel": { + "message": "בטל" + }, + "canceled": { + "message": "בוטל" + }, + "close": { + "message": "סגור" + }, + "delete": { + "message": "מחק" + }, + "favorite": { + "message": "מועדף" + }, + "unfavorite": { + "message": "מחק ממועדפים" + }, + "edit": { + "message": "ערוך" + }, + "searchCollection": { + "message": "חפש אוסף" + }, + "searchFolder": { + "message": "חפש תיקייה" + }, + "searchFavorites": { + "message": "חפש מועדפים" + }, + "searchType": { + "message": "חפש סוג", + "description": "Search item type" + }, + "searchVault": { + "message": "חפש כספת" + }, + "allItems": { + "message": "כל הפריטים" + }, + "favorites": { + "message": "מועדפים" + }, + "types": { + "message": "סוגים" + }, + "typeLogin": { + "message": "פרטי התחברות" + }, + "typeCard": { + "message": "כרטיס" + }, + "typeIdentity": { + "message": "זהות" + }, + "typeSecureNote": { + "message": "פתק מאובטח" + }, + "typeLoginPlural": { + "message": "התחברויות" + }, + "typeCardPlural": { + "message": "כרטיסים" + }, + "typeIdentityPlural": { + "message": "זהויות" + }, + "typeSecureNotePlural": { + "message": "פתקים מאובטחים" + }, + "folders": { + "message": "תיקיות" + }, + "collections": { + "message": "אוספים" + }, + "firstName": { + "message": "שם פרטי" + }, + "middleName": { + "message": "שם אמצעי" + }, + "lastName": { + "message": "שם משפחה" + }, + "fullName": { + "message": "שם מלא" + }, + "address1": { + "message": "כתובת 1" + }, + "address2": { + "message": "כתובת 2" + }, + "address3": { + "message": "כתובת 3" + }, + "cityTown": { + "message": "עיר \\ ישוב" + }, + "stateProvince": { + "message": "מדינה \\ מחוז" + }, + "zipPostalCode": { + "message": "מיקוד" + }, + "country": { + "message": "מדינה" + }, + "shared": { + "message": "משותף" + }, + "attachments": { + "message": "קבצים מצורפים" + }, + "select": { + "message": "בחר" + }, + "addItem": { + "message": "הוסף פריט" + }, + "editItem": { + "message": "ערוך פריט" + }, + "viewItem": { + "message": "הצג פריט" + }, + "ex": { + "message": "לדוגמא", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "אחר" + }, + "share": { + "message": "שתף" + }, + "moveToOrganization": { + "message": "העברה לארגון" + }, + "valueCopied": { + "message": "השדה $VALUE$ הועתק לזיכרון", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "העתק ערך", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "העתק סיסמה", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "העתק שם משתמש", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "העתק מספר", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "העתק קוד אבטחה", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "העתק שורת כתובת", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "הכספת שלי" + }, + "vault": { + "message": "כספת" + }, + "moveSelectedToOrg": { + "message": "העבר בחירה לארגון" + }, + "deleteSelected": { + "message": "מחק בחירה" + }, + "moveSelected": { + "message": "העבר בחירה" + }, + "selectAll": { + "message": "בחר הכל" + }, + "unselectAll": { + "message": "נקה הכל" + }, + "launch": { + "message": "הפעל" + }, + "newAttachment": { + "message": "צרף קובץ חדש" + }, + "deletedAttachment": { + "message": "קובץ מצורף שנמחק" + }, + "deleteAttachmentConfirmation": { + "message": "האם אתה בטוח שברצונך למחוק קובץ מצורף זה?" + }, + "attachmentSaved": { + "message": "הקובץ המצורף נשמר." + }, + "file": { + "message": "קובץ" + }, + "selectFile": { + "message": "בחר קובץ." + }, + "maxFileSize": { + "message": "גודל הקובץ המירבי הוא 500 מגה." + }, + "updateKey": { + "message": "לא ניתן להשתמש ביכולת זו עד שתעדכן את מפתח ההצפנה שלך." + }, + "addedItem": { + "message": "פריט שהתווסף" + }, + "editedItem": { + "message": "פריט שנערך" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ הועבר ל־$ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "פריטים נבחרים הועברו ל־$ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "מחק פריט" + }, + "deleteFolder": { + "message": "מחק תיקייה" + }, + "deleteAttachment": { + "message": "מחק קובץ מצורף" + }, + "deleteItemConfirmation": { + "message": "האם אתה בטוח שברצונך למחוק פריט זה?" + }, + "deletedItem": { + "message": "הפריט נשלח לסל המחזור" + }, + "deletedItems": { + "message": "הפריטים נשלחו לסל המחזור" + }, + "movedItems": { + "message": "פריטים שהועברו" + }, + "overwritePasswordConfirmation": { + "message": "האם אתה בטוח שברצונך לדרוס את הסיסמה הנוכחית?" + }, + "editedFolder": { + "message": "תיקיה שנערכה" + }, + "addedFolder": { + "message": "תיקיה שנוספה" + }, + "deleteFolderConfirmation": { + "message": "האם אתה בטוח שברצונך למחוק את התיקייה?" + }, + "deletedFolder": { + "message": "תיקיה שנמחקה" + }, + "loggedOut": { + "message": "בוצעה יציאה" + }, + "loginExpired": { + "message": "תוקף החיבור שלך הסתיים." + }, + "logOutConfirmation": { + "message": "האם אתה בטוח שברצונך להתנתק?" + }, + "logOut": { + "message": "התנתק" + }, + "ok": { + "message": "אישור" + }, + "yes": { + "message": "כן" + }, + "no": { + "message": "לא" + }, + "loginOrCreateNewAccount": { + "message": "צור חשבון חדש או התחבר כדי לגשת לכספת המאובטחת שלך." + }, + "createAccount": { + "message": "צור חשבון" + }, + "logIn": { + "message": "התחבר" + }, + "submit": { + "message": "שלח" + }, + "emailAddressDesc": { + "message": "השתמש בכתובת המייל שלך כדי להכנס." + }, + "yourName": { + "message": "השם שלך" + }, + "yourNameDesc": { + "message": "מה השם או הכינוי שלך?" + }, + "masterPass": { + "message": "סיסמה ראשית" + }, + "masterPassDesc": { + "message": "הסיסמה הראשית היא הסיסמה שבאמצעותה תיגש לכספת שלך. חשוב מאוד שלא תשכח את הסיסמה הזו. אין שום דרך לשחזר אותה במקרה ושכחת אותה." + }, + "masterPassHintDesc": { + "message": "ניתן להשתמש ברמז לסיסמה הראשית אם שכחת אותה." + }, + "reTypeMasterPass": { + "message": "הקלד שוב סיסמה ראשית" + }, + "masterPassHint": { + "message": "רמז לסיסמה ראשית (אופציונאלי)" + }, + "masterPassHintLabel": { + "message": "רמז לסיסמה ראשית" + }, + "settings": { + "message": "הגדרות" + }, + "passwordHint": { + "message": "רמז לסיסמה" + }, + "enterEmailToGetHint": { + "message": "הכנס את כתובת האימייל שלך לקבלת רמז עבור הסיסמה הראשית." + }, + "getMasterPasswordHint": { + "message": "הצג את הרמז לסיסמה הראשית" + }, + "emailRequired": { + "message": "נדרשת כתובת אימייל." + }, + "invalidEmail": { + "message": "כתובת אימייל לא תקינה." + }, + "masterPassRequired": { + "message": "יש להזין את הסיסמה הראשית." + }, + "masterPassLength": { + "message": "הסיסמה הראשית חייבת להיות לפחות באורך 8 תווים." + }, + "masterPassDoesntMatch": { + "message": "שדה אימות סיסמה ראשית לא תואם." + }, + "newAccountCreated": { + "message": "החשבון החדש שלך נוצר בהצלחה! כעת ניתן להתחבר למערכת." + }, + "masterPassSent": { + "message": "שלחנו לך אימייל עם רמז לסיסמה הראשית." + }, + "unexpectedError": { + "message": "אירעה שגיאה לא צפויה." + }, + "emailAddress": { + "message": "כתובת אימייל" + }, + "yourVaultIsLocked": { + "message": "הכספת שלך נעולה. הזן את הסיסמה הראשית שלך כדי להמשיך." + }, + "unlock": { + "message": "שחרר נעילה" + }, + "loggedInAsEmailOn": { + "message": "מחובר כ $EMAIL$ באתר $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "סיסמה ראשית שגויה" + }, + "lockNow": { + "message": "נעל עכשיו" + }, + "noItemsInList": { + "message": "אין פריטים להצגה ברשימה." + }, + "noCollectionsInList": { + "message": "אין אוספים להצגה ברשימה." + }, + "noGroupsInList": { + "message": "אין קבוצות להצגה ברשימה." + }, + "noUsersInList": { + "message": "אין משתמשים להצגה ברשימה." + }, + "noEventsInList": { + "message": "אין אירועים להצגה ברשימה." + }, + "newOrganization": { + "message": "ארגון חדש" + }, + "noOrganizationsList": { + "message": "אינך משויך לארגון. ניתן לשתף באופן מאובטח פריטים רק עם משתמשים אחרים בתוך ארגון." + }, + "versionNumber": { + "message": "גרסה $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "הכנס את קוד האימות בן 6 הספרות מאפליקציית האימות שלך." + }, + "enterVerificationCodeEmail": { + "message": "הכנס את קוד האימות בן 6 הספרות שנשלח ל-$EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "מייל אימות נשלח לכתובת $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "זכור אותי" + }, + "sendVerificationCodeEmailAgain": { + "message": "שלח שוב קוד אימות לאימייל" + }, + "useAnotherTwoStepMethod": { + "message": "השתמש בשיטה אחרת עבור כניסה דו שלבית" + }, + "insertYubiKey": { + "message": "הכנס את ה-YubiKey אל כניסת ה-USB במחשבך, ואז גע בכפתור שלו." + }, + "insertU2f": { + "message": "הכנס את מפתח האבטחה שלך אל כניסת ה-USB במחשבך. אם יש לו כפתור, לחץ עליו." + }, + "loginUnavailable": { + "message": "פרטי כניסה לא זמינים" + }, + "noTwoStepProviders": { + "message": "כניסה דו-שלבית פעילה בחשבון זה, אך אף אחד מספקי הכניסה הדו-שלבית לא נתמכים בדפדפן זה." + }, + "noTwoStepProviders2": { + "message": "אנא השתמש בדפדפן נתמך (כמו לדוגמא Chrome) ו\\או הוסף ספק כניסה דו-שלבית הנתמך בדפדפן זה (כמו לדוגמא אפליקצית אימות)." + }, + "twoStepOptions": { + "message": "אפשרויות כניסה דו שלבית" + }, + "recoveryCodeDesc": { + "message": "איבדת גישה לכל ספקי האימות הדו-שלבי שלך? השתמש בקוד האימות כדי לבטל את הספקים הקיימים מתוך החשבון שלך." + }, + "recoveryCodeTitle": { + "message": "קוד שחזור" + }, + "authenticatorAppTitle": { + "message": "אפליקציית אימות" + }, + "authenticatorAppDesc": { + "message": "השתמש באפליקצית אימות (כמו לדוגמא Authy או Google Authenticator) לייצור סיסמאות אימות מבוססות זמן.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "מפתח אבטחה OTP של YubiKey" + }, + "yubiKeyDesc": { + "message": "השתמש בYubiKey עבור גישה לחשבון שלך. עובד עם YubiKey מסדרה 4, סדרה 5, ומכשירי NEO." + }, + "duoDesc": { + "message": "בצע אימות מול Duo Security באמצעות אפליקצית Duo לפלאפון, SMS, שיחת טלפון, או מפתח אבטחה U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "בצע אימות מול Duo Security עבור הארגון שלך באמצעות אפליקצית Duo לפלאפון, SMS, שיחת טלפון, או מפתח אבטחה U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "השתמש בכל מפתח אבטחה התומך בFIDO U2F עבור גישה לחשבונך." + }, + "u2fTitle": { + "message": "מפתח אבטחה FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "אימייל" + }, + "emailDesc": { + "message": "קודים לאימות יישלחו אליך באימייל." + }, + "continue": { + "message": "המשך" + }, + "organization": { + "message": "ארגון" + }, + "organizations": { + "message": "ארגונים" + }, + "moveToOrgDesc": { + "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organization that you wish to move these items to. Moving to an organization transfers ownership of the items to that organization. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "ערוך את האוסף המשותף של פריט זה. רק משתמשים מורשים מתוך הארגון יוכלו לראות פריט זה." + }, + "deleteSelectedItemsDesc": { + "message": "בחרת $COUNT$ פריט(ים) למחיקה. האם אתה בטוח שברצונך למחוק את כולם?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "בחר תיקיה שאליה תרצה להעביר את $COUNT$ הפריט(ים) שבחרת.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organization, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "קוד אימות (TOTP)" + }, + "copyVerificationCode": { + "message": "העתק קוד אימות" + }, + "warning": { + "message": "אזהרה" + }, + "confirmVaultExport": { + "message": "Confirm Vault Export" + }, + "exportWarningDesc": { + "message": "הקובץ מכיל את פרטי הכספת שלך בפורמט לא מוצפן. מומלץ להעביר את הקובץ רק בדרכים מוצפנות, ומאוד לא מומלץ לשמור או לשלוח את הקובץ הזה בדרכים לא מוצפנות (כדוגמת סתם אימייל). מחק את הקובץ מיד לאחר שסיימת את השימוש בו." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "יצוא כספת" + }, + "fileFormat": { + "message": "פורמט קובץ" + }, + "exportSuccess": { + "message": "הוצאת המידע מהכספת שלך הסתיימה." + }, + "passwordGenerator": { + "message": "יוצר הסיסמאות" + }, + "minComplexityScore": { + "message": "ניקוד מורכבות מינימלי" + }, + "minNumbers": { + "message": "מינימום ספרות" + }, + "minSpecial": { + "message": "מינימום תווים מיוחדים", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "המנע מאותיות ותווים דומים" + }, + "regeneratePassword": { + "message": "צור סיסמה חדשה" + }, + "length": { + "message": "אורך" + }, + "numWords": { + "message": "מספר מילים" + }, + "wordSeparator": { + "message": "מפריד מילים" + }, + "capitalize": { + "message": "הפוך אותיות ראשונות לאותיות גדולות", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "כלול מספרים" + }, + "passwordHistory": { + "message": "היסטוריית סיסמאות" + }, + "noPasswordsInList": { + "message": "אין סיסמאות להצגה ברשימה." + }, + "clear": { + "message": "נקה", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "החשבון עודכן" + }, + "changeEmail": { + "message": "החלף אימייל" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "דוא\"ל חדש" + }, + "code": { + "message": "קוד" + }, + "changeEmailDesc": { + "message": "שלחנו מייל אימות לכתובת $EMAIL$. אנא בדוק אם קיבלת את הקוד והזן אותו בתיבה בכדי לסיים את תהליך החלפת האימייל.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "בכדי להמשיך הסשן הנוכחי ינותק, ותדרש להזין את פרטי הכניסה החדשים. כל הסשנים הפעילים במכשירים אחרים ישארו פעילים עד שעה ממועד הכניסה החדשה." + }, + "emailChanged": { + "message": "כתובת האימייל שונתה" + }, + "logBackIn": { + "message": "אנא התחבר שוב." + }, + "logBackInOthersToo": { + "message": "אנא התחבר שוב. אם אתה משתמש באפליקציות נוספות של Bitwarden, סגור את החיבור והתחבר שוב גם באפליקציות הללו." + }, + "changeMasterPassword": { + "message": "החלף סיסמה ראשית" + }, + "masterPasswordChanged": { + "message": "הסיסמה הראשית הוחלפה" + }, + "currentMasterPass": { + "message": "סיסמה ראשית נוכחית" + }, + "newMasterPass": { + "message": "סיסמה ראשית חדשה" + }, + "confirmNewMasterPass": { + "message": "אמת סיסמה ראשית חדשה" + }, + "encKeySettings": { + "message": "הגדרות מפתח הצפנה" + }, + "kdfAlgorithm": { + "message": "אלגוריתם KDF" + }, + "kdfIterations": { + "message": "איטרציות KDF" + }, + "kdfIterationsDesc": { + "message": "קביעת ערך גבוה עבור מספר האיטרציות של KDF עוזרת בהגנה על הסיסמה הראשית שלך מפני תקיפת Brute force (תְּקִיפָה כּוֹחָנִית). אנו ממליצים להשתמש בערך $VALUE$ או ערך גבוה יותר.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "קביעת ערך גבוה מדי עבור מספר האיטרציות KDF עלול לגרום לבעיות ביצועים בזמן הכניסה (ובזמן ביטול הנעילה) לחשבון Bitwarden במכשירים בעלי מעבד חלש. אנו ממליצים שתעלה את הערך בקפיצות של $INCREMENT$ ובדוק את ההשפעה של הביצועים בכל המכשירים שלך.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "שנה KDF" + }, + "encKeySettingsChanged": { + "message": "הגדרות מפתח ההצפנה השתנו" + }, + "dangerZone": { + "message": "אזור מסוכן" + }, + "dangerZoneDesc": { + "message": "זהירות, פעולות אלה לא ניתנות לביטול!" + }, + "deauthorizeSessions": { + "message": "בטל הרשאות סשנים" + }, + "deauthorizeSessionsDesc": { + "message": "מודאג אם השארת את החשבון שלך מחובר במכשיר אחר? המשך כאן להסרת ההרשאות של סשנים מכל המחשבים או המכשירים שהשתמשת בעבר. צעד אבטחה זה מומלץ אם השתמשת בעבר במחשב ציבורי או ששמרת את הסיסמה בטעות במכשיר שאינו שלך. כמו כן, צעד זה ינקה גם את כל הסיסמאות השמורות עבור סשנים שהשתמשו באימות דו-שלבי." + }, + "deauthorizeSessionsWarning": { + "message": "בכדי להמשיך הסשן הנוכחי ינותק, ותדרש להזין את פרטי הכניסה החדשים וגם את פרטי האימות הדו-שלבי, אם הוא מאופשר. כל הסשנים הפעילים במכשירים אחרים ישארו פעילים עד שעה ממועד הכניסה החדשה." + }, + "sessionsDeauthorized": { + "message": "הוסרה ההרשאה מכל הסשנים" + }, + "purgeVault": { + "message": "מחק תוכן כספת" + }, + "purgedOrganizationVault": { + "message": "מחק תוכן כספת ארגונית." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "המשך כאן בכדי למחוק את כל הפריטים והתיקיות שבכספת שלך. פריטים השייכים לארגון לא ימחקו." + }, + "purgeOrgVaultDesc": { + "message": "המשך להלן כדי למחוק את כל הפריטים מהכספת הארגונית." + }, + "purgeVaultWarning": { + "message": "מחיקת תוכן הכספת היא סופית. פעולה זו היא בלתי הפיכה." + }, + "vaultPurged": { + "message": "המידע בכספת נמחק." + }, + "deleteAccount": { + "message": "מחק חשבון" + }, + "deleteAccountDesc": { + "message": "המשך כאן בכדי למחוק את החשבון שלך וכל המידע המשויך אליו." + }, + "deleteAccountWarning": { + "message": "מחיקת החשבון היא פעולה בלתי הפיכה." + }, + "accountDeleted": { + "message": "החשבון נמחק" + }, + "accountDeletedDesc": { + "message": "חשבונך נסגר וכל המידע המשויך אליו נמחק." + }, + "myAccount": { + "message": "החשבון שלי" + }, + "tools": { + "message": "כלים" + }, + "importData": { + "message": "ייבא נתונים" + }, + "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." + }, + "importSuccess": { + "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": "המידע לא מפורמט בצורה נכונה. אנא בדוק את הקובץ ונסה שוב." + }, + "importNothingError": { + "message": "לא יובא דבר." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "selectFormat": { + "message": "בחר את פורמט הקובץ לייבוא" + }, + "selectImportFile": { + "message": "בחר את הקובץ לייבוא" + }, + "orCopyPasteFileContents": { + "message": "או העתק\\הדבק את תוכן הקובץ ליבוא" + }, + "instructionsFor": { + "message": "הוראות עבור $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "אפשרויות" + }, + "optionsDesc": { + "message": "התאם אישית את חווית כספת הרשת שלך." + }, + "optionsUpdated": { + "message": "אפשרויות עודכנו" + }, + "language": { + "message": "שפה" + }, + "languageDesc": { + "message": "שנה את השפה של כספת הרשת." + }, + "disableIcons": { + "message": "בטל אייקונים של האתר" + }, + "disableIconsDesc": { + "message": "יכולת הצג אייקונים-של-האתר מאפשרת הצגה של תמונה או אייקון מוכר ליד פרטי הכניסה שבכספת שלך." + }, + "enableGravatars": { + "message": "אפשר שימוש ב-Gravatar", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "שימוש בתמונות אווטאר שנטענו מהאתר gravatar.com." + }, + "enableFullWidth": { + "message": "אפשר תצוגה ברוחב מלא", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "אפשר לחלון הכספת לגדול לרוחב חלון הדפדפן." + }, + "default": { + "message": "ברירת מחדל" + }, + "domainRules": { + "message": "כללי דומיין" + }, + "domainRulesDesc": { + "message": "אם אתה משתמש באותם פרטי כניסה עבור אתרים שונים באותו דומיין, באפשרות לסמן את האתר כ\"שווה\". הערכים הרגילים שנוצרים על ידי Bitwarden מסומנים כדומיין \"גלובלי\"." + }, + "globalEqDomains": { + "message": "דומיינים גלובליים שווים" + }, + "customEqDomains": { + "message": "דומיינים שווים מותאמים אישית" + }, + "exclude": { + "message": "אל תכלול" + }, + "include": { + "message": "כלול" + }, + "customize": { + "message": "התאם אישית" + }, + "newCustomDomain": { + "message": "דומיין מותאם אישית חדש" + }, + "newCustomDomainDesc": { + "message": "הזן שמות של דומיינים מופרדים בפסיק. יש להזין רק את \"שורש\" הדומיין. אין להוסיף לרשימה סאב-דומיינים. לדוגמא, הזן \"google.com\" במקום לכתוב \"www.google.com\". ניתן גם לכתוב שמות של packages באנדרואיד כמו לדוגמא \"androidapp://package.name\" וכך לשייך אפליקציית אנדרואיד מסויימת עם הדומיינים הקשורים אליה." + }, + "customDomainX": { + "message": "דומיין מותאם אישית $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "הדומיינים עודכנו" + }, + "twoStepLogin": { + "message": "התחברות בשני-שלבים" + }, + "twoStepLoginDesc": { + "message": "שפר את אבטחת החשבון שלך על ידי דרישת צעד נוסף עבור כל נסיון חיבור." + }, + "twoStepLoginOrganizationDesc": { + "message": "דרוש כניסה בשני-שלבים עבור משתמשי הארגון שלך בעזרת הגדרת ספקים הנתמכים ברמת הארגון." + }, + "twoStepLoginRecoveryWarning": { + "message": "שים לב: שימוש לא נכון בכניסה דו-שלבית עשוי לגרום לך להנעל ללא גישה לחשבון Bitwarden שלך. מומלץ לשמור קוד שחזור לגישה לחשבון שלך למקרה שלא תוכל להשתמש בספק הכניסה הדו-שלבית (לדוגמא: איבדת את הפלאפון או את מפתח החומרה שלך). גם צוות התמיכה של Bitwarden לא יוכל לעזור לך במקרה שתאבד גישה לחשבון שלך. אנו ממליצים שתכתוב או תדפיס את קודי השחזור ותשמור אותם במקום בטוח." + }, + "viewRecoveryCode": { + "message": "צפה בקוד שחזור" + }, + "providers": { + "message": "ספקים", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "הפעל" + }, + "enabled": { + "message": "מופעל" + }, + "premium": { + "message": "פרימיום", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "חשבון פרימיום" + }, + "premiumRequired": { + "message": "נדרש חשבון פרימיום" + }, + "premiumRequiredDesc": { + "message": "בכדי להשתמש ביכולת זו יש צורך בחשבון פרמיום." + }, + "youHavePremiumAccess": { + "message": "יש לך גישת פרימיום" + }, + "alreadyPremiumFromOrg": { + "message": "לארגון שאתה חבר בו, כבר יש גישת פרימיום, ולכן יש לך גישה ליכולות פרמיום." + }, + "manage": { + "message": "נהל" + }, + "disable": { + "message": "בטל" + }, + "twoStepLoginProviderEnabled": { + "message": "ספק כניסה דו-שלבית זה נתמך בחשבון שלך." + }, + "twoStepLoginAuthDesc": { + "message": "הזן את הסיסמה הראשית שלך בכדי לשנות הגדרות הנוגעות לכניסה דו-שלבית." + }, + "twoStepAuthenticatorDesc": { + "message": "עקוב אחר הצעדים הבאים להגדרת כניסה דו-שלבית עם אפליקציית אימות:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "הורד אפליקצית אימות דו שלבית" + }, + "twoStepAuthenticatorNeedApp": { + "message": "צריך אפליקצית אימות דו שלבית? הורד את אחד מהבאות" + }, + "iosDevices": { + "message": "מכשירי אייפון" + }, + "androidDevices": { + "message": "מכשירי אנדרואיד" + }, + "windowsDevices": { + "message": "מכשירי ווינדוס" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "האפליקציות הללו הם המומלצות, אך ניתן לעבוד גם עם אפליקציות אימות אחרות." + }, + "twoStepAuthenticatorScanCode": { + "message": "סרוק את קוד הQR הזה בעזרת אפליקציית האימות שלך" + }, + "key": { + "message": "מפתח" + }, + "twoStepAuthenticatorEnterCode": { + "message": "הכנס את קוד האימות בן 6 הספרות מהאפליקציה" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "במקרה שאתה צריך את אפשרות הכניסה זמינה גם במכשיר אחר, כאן ניתן למצוא את קוד הQR (או המפתח) הנחוץ לאפליקציית האימות במכשיר הנוסף." + }, + "twoStepDisableDesc": { + "message": "האם אתה בטוח שברצונך לבטל את הספק הזה עבור הכניסה הדו-שלבית?" + }, + "twoStepDisabled": { + "message": "ספק עבור כניסה דו-שלבית מבוטל." + }, + "twoFactorYubikeyAdd": { + "message": "הוסף מפתח YubiKey לחשבונך" + }, + "twoFactorYubikeyPlugIn": { + "message": "חבר את הYubiKey לחיבור הUSB שבמחשב." + }, + "twoFactorYubikeySelectKey": { + "message": "בחר את השדה הריק הראשון עבור YubiKey להלן." + }, + "twoFactorYubikeyTouchButton": { + "message": "לחץ על הכפתור של YubiKey." + }, + "twoFactorYubikeySaveForm": { + "message": "שמור את הטופס." + }, + "twoFactorYubikeyWarning": { + "message": "עקב מגבלות פלטפורמה, לא ניתן להשתמש בYubiKey בכל האפליקציות של Bitwarden. עליך לאפשר ספק כניסה דו-שלבית נוסף למקרה שבו הYubiKey שלך לא זמין. פלטפורמות נתמכות:" + }, + "twoFactorYubikeySupportUsb": { + "message": "כספת רשת, אפליקציית שולחן עבודה, שורת הפקודה, וכל התוספים לדפדפן על מכשיר עם חיבור USB עבור הYubiKey שלך." + }, + "twoFactorYubikeySupportMobile": { + "message": "אפליקציות לפלאפון על מכשיר עם NFC או עם חיבור USB עבור YubiKey." + }, + "yubikeyX": { + "message": "מפתח YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "מפתח U2F $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "תמיכה ב-NFC" + }, + "twoFactorYubikeySupportsNfc": { + "message": "אחד מהמפתחות שלי תומך ב-NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "אם אחד ממפתחות הYubiKey שלך תומכים בNFC (לדוגמא - YubiKey NEO), תופיע לך הודעה במכשיר הנייד בכל פעם שהNFC מזהה את המפתח." + }, + "yubikeysUpdated": { + "message": "מפתחות YubiKey עודכנו" + }, + "disableAllKeys": { + "message": "בטל את כל המפתחות" + }, + "twoFactorDuoDesc": { + "message": "הזן את פרטי אפליקציית Bitwarden מתוך עמוד הניהול של Duo." + }, + "twoFactorDuoIntegrationKey": { + "message": "מפתח אינטגרציה" + }, + "twoFactorDuoSecretKey": { + "message": "מפתח סודי" + }, + "twoFactorDuoApiHostname": { + "message": "שם שרת הAPI" + }, + "twoFactorEmailDesc": { + "message": "עקוב אחר הצעדים הבאים להגדרת כניסה דו-שלבית עם אימייל:" + }, + "twoFactorEmailEnterEmail": { + "message": "כתוב את כתובת המייל שאליה ישלחו קודי האימות" + }, + "twoFactorEmailEnterCode": { + "message": "הכנס את קוד האימות בן 6 הספרות מהאימייל" + }, + "sendEmail": { + "message": "שלח דוא\"ל" + }, + "twoFactorU2fAdd": { + "message": "הוסף מפתח אבטחה מסוג FIDO U2F לחשבון שלך" + }, + "removeU2fConfirmation": { + "message": "האם אתה בטוח שברצונך למחוק מפתח אבטחה זה?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "קרא מפתח" + }, + "keyCompromised": { + "message": "המפתח נחשף." + }, + "twoFactorU2fGiveName": { + "message": "הענק שם ידידותי למפתח האבטחה עבור זיהוי קל ומהיר." + }, + "twoFactorU2fPlugInReadKey": { + "message": "חבר את מפתח האבטחה לכניסת הUSB במחשב שלך, ולחץ על הכפתור \"קרא מפתח\"." + }, + "twoFactorU2fTouchButton": { + "message": "אם למפתח האבטחה יש כפתור, לחץ עליו." + }, + "twoFactorU2fSaveForm": { + "message": "שמור את הטופס." + }, + "twoFactorU2fWarning": { + "message": "עקב מגבלות פלטפורמה, לא ניתן להשתמש בFIDO U2F בכל האפליקציות של Bitwarden. עליך לאפשר ספק כניסה דו-שלבית נוסף למקרה שבו הFIDO U2F שלך לא זמין. פלטפורמות נתמכות:" + }, + "twoFactorU2fSupportWeb": { + "message": "כספת ברשת ותוספי אבטחה למחשב נייח\\נייד עם דפדפן תומך בU2F (כרום, אופרה, Vivaldi, או פיירפוקס עם תמיכה בFIDO U2F)." + }, + "twoFactorU2fWaiting": { + "message": "ממתין ללחיצה על כפתור במפתח האבטחה שלך" + }, + "twoFactorU2fClickSave": { + "message": "לחץ על כפתור \"שמירה\" בכדי לאפשר כניסה דו-שלבית בעזרת מפתח אבטחה זה." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "היתה בעיה בקריאת מפתח האבטחה. נסה בשנית." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "קוד השחזור שלך עבור כניסה דו שלבית לBitwarden" + }, + "twoFactorRecoveryNoCode": { + "message": "עדיין לא הוספת אף ספק לכניסה דו-שלבית. לאחר שתאפשר כניסה באמצעות ספק עם כניסה דו שלבית תוכל לבדוק כאן שוב ולראות את קוד השחזור שלך." + }, + "printCode": { + "message": "הדפס קוד", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "דוחות" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "דוח אתרים לא מאובטחים" + }, + "unsecuredWebsitesReportDesc": { + "message": "שימוש באתרים לא מאובטחים שמתחילים בקידומת http:// יכול להיות מסוכן. אם האתר מאפשר זאת, תמיד נסה להשתמש בקידומת https:// כך שהחיבור יהיה מוצפן." + }, + "unsecuredWebsitesFound": { + "message": "נמצאו אתרים לא מאובטחים" + }, + "unsecuredWebsitesFoundDesc": { + "message": "מצאנו $COUNT$ פריטים בכספת שלך המכילים כתובות לא מאובטחות. אנו ממליצים לשנות את הכתובות לתחילית https:// אם האתר מאפשר זאת.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "לא נמצאו פריטים בכספת המכילים כתובות לא מאובטחות." + }, + "inactive2faReport": { + "message": "דוח 2FA לא פעילים" + }, + "inactive2faReportDesc": { + "message": "אימות דו-שלבי (2FA) היא הגדרת אבטחה חשובה שעוזרת לאבטח את החשבון שלך. אם האתר מאפשר זאת, מומלץ לאפשר את האימות הדו-שלבי." + }, + "inactive2faFound": { + "message": "נמצאו פרטי כניסות שלא פעילה בהן אופציית 2FA" + }, + "inactive2faFoundDesc": { + "message": "מצאנו $COUNT$ אתר(ים) בכספת שלך שלא מוגדרים לעבוד עם אימות דו-שלבי (לפי twofactorauth.org). בכדי להגן על החשבונות הללו, עליך להפעיל את האימות הדו-שלבי עבורם.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "לא נמצאו אתרים ללא אימות דו-שלבי בכספת שלך." + }, + "instructions": { + "message": "הוראות" + }, + "exposedPasswordsReport": { + "message": "דו\"ח סיסמאות שנחשפו" + }, + "exposedPasswordsReportDesc": { + "message": "סיסמאות שנחשפו הם סיסמאות שנמצאו בפרצות אבטחה ידועות וגלויות לציבור או נמכרות בDark web על ידי האקרים." + }, + "exposedPasswordsFound": { + "message": "נמצאו סיסמאות שנחשפו" + }, + "exposedPasswordsFoundDesc": { + "message": "מצאנו $COUNT$ פריטים בכספת שלך שיש להם סיסמאות שנחשפו בפרצות אבטחה. מומלץ לשנות אותן וליצור סיסמאות חדשות.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "לא נמצאו פריטים בכספת שלך שנחשפו בפריצות ידועות." + }, + "checkExposedPasswords": { + "message": "בדוק אם קיימות סיסמאות שנפרצו" + }, + "exposedXTimes": { + "message": "נחשף $COUNT$ פעמים", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "דו\"ח סיסמאות חלשות" + }, + "weakPasswordsReportDesc": { + "message": "סיסמאות חלשות קלות לניחוש על ידי האקרים וכלים אוטומטיים לפריצת סיסמאות. מחולל הסיסמאות של Bitwarden יכול לעזור לך ליצור סיסמאות חזקות." + }, + "weakPasswordsFound": { + "message": "נמצאו סיסמאות חלשות" + }, + "weakPasswordsFoundDesc": { + "message": "מצאנו $COUNT$ פריטים בכספת שלך עם סיסמאות חלשות. מומלץ להשתמש בסיסמאות חזקות יותר.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "אין פריטים בכספת שלך עם סיסמאות חלשות." + }, + "reusedPasswordsReport": { + "message": "דו\"ח סיסמאות משומשות" + }, + "reusedPasswordsReportDesc": { + "message": "אם שירות שהשתמשת בו נפרץ, שימוש באותה הסיסמה במקום אחר מאפשר להאקרים לקבל גישה לחשבונות נוספים שלך בקלות רבה. מומלץ מאוד להשתמש בסיסמה יחודית עבור כל חשבון או שירות." + }, + "reusedPasswordsFound": { + "message": "נמצאו סיסמאות משומשות" + }, + "reusedPasswordsFoundDesc": { + "message": "מצאנו $COUNT$ סיסמאות משומשות בכספת שלך. כדאי שתשנה אותם כך שלכל פריט תהיה סיסמה ייחודית.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "אין פרטי התחברות בכספת שלך עם סיסמאות משומשות." + }, + "reusedXTimes": { + "message": "היה בשימוש $COUNT$ פעמים", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "דו\"ח פריצת אבטחה" + }, + "breachDesc": { + "message": "אירוע \"דליפה\" הוא תקרית שבה המידע של האתר היה נגיש בצורה לא חוקית להאקרים והם הפיצו אותו באופן פומבי. עבור על המידע שנחשף (כתובות אימייל, סיסמאות, כרטיסי אשראי וכו') ובצע את הפעולות הנחוצות, לדוגמא - לשנות את הסיסמאות שפורסמו." + }, + "breachCheckUsernameEmail": { + "message": "בדוק את כל שמות המשתמשים או כתובות המייל שאתה משתמש בהם." + }, + "checkBreaches": { + "message": "בדוק פריצות אבטחה" + }, + "breachUsernameNotFound": { + "message": "שם המשתמש $USERNAME$ לא נמצא בפריצות אבטחה ידועות.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "חדשות טובות", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "שם המשתמש $USERNAME$ נמצא ב-$COUNT$ פריצות אבטחה שונות.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "נמצאו חשבונות שדלפו" + }, + "compromisedData": { + "message": "מידע שנחשף" + }, + "website": { + "message": "אתר" + }, + "affectedUsers": { + "message": "משתמשים שהושפעו" + }, + "breachOccurred": { + "message": "פריצת אבטחה אירעה" + }, + "breachReported": { + "message": "פריצת אבטחה דווחה" + }, + "reportError": { + "message": "אירעה שגיאה בטעינת הדו\"ח. נסה שוב" + }, + "billing": { + "message": "חיוב" + }, + "accountCredit": { + "message": "מאזן החשבון", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "יתרת חשבון", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "הוסף קרדיט", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "סכום", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "כרטיס האשראי שנוסף יופיע בחשבונך לאחר שהתשלום יעובד במלואו. יש שיטות תשלום שלוקחות יותר זמן מאחרות." + }, + "makeSureEnoughCredit": { + "message": "אנא ודא כי יש בחשבונך מספיק קרדיט עבור רכישה זו. אם בחשבונך אין די קרדיט, נשתמש בשיטת התשלום המועדפת בחשבונך כדי לגבות את הפער. באפשרותך להוסיף קרדיט לחשבונך דרך עמוד החיוב." + }, + "creditAppliedDesc": { + "message": "ניתן להשתמש בקרדיט שבחשבונך כדי לבצע רכישות. נשתמש בקרדיט הראשון הזמין עבור חשבוניות בחשבון זה." + }, + "goPremium": { + "message": "שדרג לפרימיום", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "שדרגת לפרימיום." + }, + "premiumUpgradeUnlockFeatures": { + "message": "שדרג את חשבונך לפרמיום כדי להשתמש ביכולות נהדרות נוספות." + }, + "premiumSignUpStorage": { + "message": "1 ג'יגה של מקום אחסון מוצפן עבור קבצים מצורפים." + }, + "premiumSignUpTwoStep": { + "message": "אפשרויות כניסה דו שלבית מתקדמות כמו YubiKey, FIDO U2F, וגם Duo." + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "היגיינת סיסמאות, מצב בריאות החשבון, ודיווחים מעודכנים על פרצות חדשות בכדי לשמור על הכספת שלך בטוחה." + }, + "premiumSignUpTotp": { + "message": "מייצר קודי אימות TOTP עבור כניסות דו-שלביות (2FA) בכספת שלך." + }, + "premiumSignUpSupport": { + "message": "קדימות בתמיכה הטכנית." + }, + "premiumSignUpFuture": { + "message": "כל יכולות הפרימיום העתידיות שנפתח. עוד יכולות מגיעות בקרוב!" + }, + "premiumPrice": { + "message": "הכל רק ב-$PRICE$ לשנה!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "תוספים" + }, + "premiumAccess": { + "message": "גישת פרימיום" + }, + "premiumAccessDesc": { + "message": "ניתן להוסיף גישת פרימיום לכל חברי הארגון שלך ב-$PRICE$ ל$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "מקום אחסון נוסף (בג'יגה)" + }, + "additionalStorageGbDesc": { + "message": "# של ג'יגה בייט נוספים" + }, + "additionalStorageIntervalDesc": { + "message": "התוכנית שלך מגיע עם $SIZE$ של אחסון מוצפן. באפשרותך להוסיף מקום אחסון נוסף במחיר $PRICE$ עבור כל GB למשך $INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "סיכום" + }, + "total": { + "message": "סך הכול" + }, + "year": { + "message": "שנה" + }, + "month": { + "message": "חודש" + }, + "monthAbbr": { + "message": "חו.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "אנו נגבה לפי שיטת התשלום שבחרת - באופן מיידי. החיובים הבאים יתחדשו פעם בשנה. באפשרותך לבטל בכל עת." + }, + "paymentCharged": { + "message": "אנו נגבה לפי שיטת התשלום שבחרת - באופן מיידי. החיובים הבאים יתחדשו פעם ב$INTERVAL$. באפשרותך לבטל בכל עת.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "התוכנית שבחרת מגיעה עם 7 ימי נסיון חינמי. שיטת התשלום שבחרת לא תחויב עד לתום תקופת הנסיון. ביצוע החשבון יתבצע על בסיס מתחדש בכל $INTERVAL$. באפשרותך לבטל בכל עת." + }, + "paymentInformation": { + "message": "פרטי תשלום" + }, + "billingInformation": { + "message": "Billing Information" + }, + "creditCard": { + "message": "כרטיס אשראי" + }, + "paypalClickSubmit": { + "message": "לחץ על כפתור PayPal בכדי להכנס לחשבון PayPal שלך, ואז לחץ על כפתור התשלום כדי להמשיך." + }, + "cancelSubscription": { + "message": "בטל מנוי" + }, + "subscriptionCanceled": { + "message": "המנוי בוטל." + }, + "pendingCancellation": { + "message": "בקשת ביטול ממתינה" + }, + "subscriptionPendingCanceled": { + "message": "המנוי סומן כמיועד לביטול בסיום תקופת החיוב הנוכחית." + }, + "reinstateSubscription": { + "message": "הפעל מחדש את המנוי" + }, + "reinstateConfirmation": { + "message": "האם אתה בטוח שברצונך להסיר את בקשת הביטול הממתינה ולהפעיל מחדש את חשבונך?" + }, + "reinstated": { + "message": "המנוי הופעל מחדש." + }, + "cancelConfirmation": { + "message": "האם אתה בטוח שברצונך לבטל? ביטול המנוי יגרום לאיבוד כל האפשרויות השמורות למנויים בסיום מחזור החיוב הנוכחי." + }, + "canceledSubscription": { + "message": "המנוי בוטל." + }, + "neverExpires": { + "message": "ללא תאריך תפוגה" + }, + "status": { + "message": "סטטוס" + }, + "nextCharge": { + "message": "החיוב הבא" + }, + "details": { + "message": "פרטים" + }, + "downloadLicense": { + "message": "הורד רישיון" + }, + "updateLicense": { + "message": "עדכן רישיון" + }, + "updatedLicense": { + "message": "רישיון עודכן" + }, + "manageSubscription": { + "message": "ניהול מנוי" + }, + "storage": { + "message": "אחסון" + }, + "addStorage": { + "message": "הוסף אחסון" + }, + "removeStorage": { + "message": "הסר אחסון" + }, + "subscriptionStorage": { + "message": "למנוי שלך יש סך הכל $MAX_STORAGE$ GB של מקום אחסון למידע מוצפן. כרגע בשימוש $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "אמצעי תשלום" + }, + "noPaymentMethod": { + "message": "אין שיטת תשלום בקובץ." + }, + "addPaymentMethod": { + "message": "הוסף אמצעי תשלום" + }, + "changePaymentMethod": { + "message": "שנה אמצעי תשלום" + }, + "invoices": { + "message": "חשבוניות" + }, + "noInvoices": { + "message": "אין חשבוניות." + }, + "paid": { + "message": "שולם", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "לא שולם", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "עסקאות", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "אין עסקאות." + }, + "chargeNoun": { + "message": "חיוב", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "החזר כספי", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "חיובים בחשבונך יופיעו כ$STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "כמות GB של אחסון להוספה" + }, + "gbStorageRemove": { + "message": "כמות GB של אחסון להסרה" + }, + "storageAddNote": { + "message": "הוספת כמות מקום אחסון משנה את העלויות. פעולה זו מחוייבת באופן מיידי לפי שיטת החיוב שלך. בנוסף, החיוב הבא יכלול את ההפרש היחסי ממחזור החיוב הנוכחי." + }, + "storageRemoveNote": { + "message": "הסרת כמות מקום אחסון משנה את העלויות. החיוב הבא יכלול את ההפרש היחסי ממחזור החיוב הנוכחי." + }, + "adjustedStorage": { + "message": "כמות האחסון שהשתנתה היא $AMOUNT$ GB.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "צור קשר עם התמיכה" + }, + "updatedPaymentMethod": { + "message": "שיטת תשלום עודכנה." + }, + "purchasePremium": { + "message": "רכוש פרימיום" + }, + "licenseFile": { + "message": "קובץ רישיון" + }, + "licenseFileDesc": { + "message": "שם קובץ הרשיון שלך יהיה דומה ל$FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "כדי לשדרג את החשבון שלך לפרמיום עליך להעלות קובץ רשיון תקין." + }, + "uploadLicenseFileOrg": { + "message": "ליצירת שרת on-premises בארגון לך עליך להעלות קובץ רשיון תקין." + }, + "accountEmailMustBeVerified": { + "message": "יש לאמת את כתובת האימייל שלך." + }, + "newOrganizationDesc": { + "message": "שימוש ב\"ארגון\" מאפשר לך לשתף חלקים מהכספת עם אחרים, כמו גם לנהל משתמשים עבור ישות כדוגמת משפחה, צוות קטן, או חברה גדולה." + }, + "generalInformation": { + "message": "מידע כללי" + }, + "organizationName": { + "message": "שם הארגון" + }, + "accountOwnedBusiness": { + "message": "החשבון הזה נמצא בבעלות עסק." + }, + "billingEmail": { + "message": "מייל לחשבוניות" + }, + "businessName": { + "message": "שם העסק" + }, + "chooseYourPlan": { + "message": "בחר את התוכנית שלך" + }, + "users": { + "message": "משתמשים" + }, + "userSeats": { + "message": "כסאות משתמשים" + }, + "additionalUserSeats": { + "message": "כסאות משתמשים נוספים" + }, + "userSeatsDesc": { + "message": "כמות כסאות משתמשים" + }, + "userSeatsAdditionalDesc": { + "message": "התוכנית שלך מגיעה עם $BASE_SEATS$ כסאות משתמשים. באפשרות להוסיף משתמשים נוספים בעלות של $SEAT_PRICE$ עבור כל משתמש לחודש אחד.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "כמה כסאות משתמשים אתה צריך? אם יהיה צורך, באפשרותך להוסיף כסאות גם בשלב מאוחר יותר." + }, + "planNameFree": { + "message": "חינם", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "עבור בדיקה או עבור משתמשים פרטיים עבור שיתוף עם $COUNT$ משתמשים אחרים.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "משפחות" + }, + "planDescFamilies": { + "message": "שימוש פרטי - לשיתוף עם משפחה וחברים." + }, + "planNameTeams": { + "message": "צוותים" + }, + "planDescTeams": { + "message": "לעסקים וקבוצות ארגוניות." + }, + "planNameEnterprise": { + "message": "ארגון" + }, + "planDescEnterprise": { + "message": "לעסקים וארגונים גדולים." + }, + "freeForever": { + "message": "חינם לנצח" + }, + "includesXUsers": { + "message": "כולל $COUNT$ משתמשים", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "משתמשים נוספים" + }, + "costPerUser": { + "message": "$COST$ לכל משתמש", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "מוגבל ל$COUNT$ משתמשים (כולל אותך)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "מוגבל ל$COUNT$ אוספים", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "הוסף ושתף עם עד $COUNT$ משתמשים", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "הוסף ושתף עם כמות בלתי מוגבלת של משתמשים" + }, + "createUnlimitedCollections": { + "message": "צור מספר בלתי מוגבל של אוספים" + }, + "gbEncryptedFileStorage": { + "message": "גודל קובץ מוצפן: $SIZE$", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "אחסון שרת מקומי (אופציונאלי)" + }, + "usersGetPremium": { + "message": "המשתמשים יקבלו גישה ליכולות פרימיום" + }, + "controlAccessWithGroups": { + "message": "שלוט על גישת משתמשים בעזרת קבוצות" + }, + "syncUsersFromDirectory": { + "message": "סנכרן את המשתמשים והקבוצות עם Active Directory" + }, + "trackAuditLogs": { + "message": "עקוב אחר פעולות המשתמשים בעזרת יומן ביקורת" + }, + "enforce2faDuo": { + "message": "אכוף 2FA עם Dou" + }, + "priorityCustomerSupport": { + "message": "קדימות בתמיכה הטכנית" + }, + "xDayFreeTrial": { + "message": "$COUNT$ ימי נסיון, ניתן לבטל תמיד", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "חודשי" + }, + "annually": { + "message": "שנתי" + }, + "basePrice": { + "message": "מחיר בסיסי" + }, + "organizationCreated": { + "message": "הארגון נוצר" + }, + "organizationReadyToGo": { + "message": "הארגון החדש שלך מוכן!" + }, + "organizationUpgraded": { + "message": "הארגון שלך שודרג." + }, + "leave": { + "message": "יציאה" + }, + "leaveOrganizationConfirmation": { + "message": "האם אתה בטוח שברצונך לצאת מהארגון?" + }, + "leftOrganization": { + "message": "יצאת מהארגון." + }, + "defaultCollection": { + "message": "אוסף ברירת מחדל" + }, + "getHelp": { + "message": "קבל עזרה" + }, + "getApps": { + "message": "הורד את האפליקציות" + }, + "loggedInAs": { + "message": "מחובר בשם" + }, + "eventLogs": { + "message": "יומן אירועים" + }, + "people": { + "message": "אנשים" + }, + "policies": { + "message": "מדיניות" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "ערוך מדיניות" + }, + "groups": { + "message": "קבוצות" + }, + "newGroup": { + "message": "קבוצה חדשה" + }, + "addGroup": { + "message": "הוסף קבוצה" + }, + "editGroup": { + "message": "ערוך קבוצה" + }, + "deleteGroupConfirmation": { + "message": "האם אתה בטוח שברצונך למחוק קבוצה זו?" + }, + "removeUserConfirmation": { + "message": "האם אתה בטוח שברצונך להסיר משתמש זה?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "מזהה חיצוני" + }, + "externalIdDesc": { + "message": "ניתן להשתמש במזהה החיצוני כקישור בין משאב זה למערכת חיצונית כמו לדוגמא תיקיית משתמש." + }, + "accessControl": { + "message": "בקרת גישה" + }, + "groupAccessAllItems": { + "message": "קבוצה זו יכולה לגשת ולשנות את כל הפריטים." + }, + "groupAccessSelectedCollections": { + "message": "קבוצה זו יכולה רק לגשת לאוספים שנבחרו." + }, + "readOnly": { + "message": "קריאה בלבד" + }, + "newCollection": { + "message": "אוסף חדש" + }, + "addCollection": { + "message": "הוסף אוסף" + }, + "editCollection": { + "message": "ערוך אוסף" + }, + "deleteCollectionConfirmation": { + "message": "האם אתה בטוח שברצונך למחוק אוסף זה?" + }, + "editUser": { + "message": "ערוך משתמש" + }, + "inviteUser": { + "message": "הזמן משתמש" + }, + "inviteUserDesc": { + "message": "הזמן משתמש חדש לארגון שלך על ידי הזנת כתובת האימייל שלהם שמשמשת אותם בחשבון Bitwarden. אם אין להם חשבון Bitwarden, הם יתבקשו ליצור חשבון." + }, + "inviteMultipleEmailDesc": { + "message": "באפשרותך להזמין עד $COUNT$ משתמשים בכל פעם על ידי הפרדת הכתובות בעזרת פסיק.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "משתמש זה הפעיל כניסה דו שלבית כדי להגן על חשבונו." + }, + "userAccessAllItems": { + "message": "משתמש זה יכול לגשת ולשנות את כל הפריטים." + }, + "userAccessSelectedCollections": { + "message": "משתמש זה יכול לגשת רק לאוספים נבחרים." + }, + "search": { + "message": "חיפוש" + }, + "invited": { + "message": "הוזמן" + }, + "accepted": { + "message": "התקבל" + }, + "confirmed": { + "message": "אושר" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "בעלים" + }, + "ownerDesc": { + "message": "החשבון בעל ההרשאות הגבוהות ביותר שיכול לנהל את כל ההיבטים של הארגון." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "מנהל" + }, + "adminDesc": { + "message": "מנהלים יכולים לגשת ולנהל את כל הפריטים, האוספים והמשתמשים שבארגונך." + }, + "user": { + "message": "משתמש" + }, + "userDesc": { + "message": "משתמש רגיל עם גישה לאוספים נבחרים בארגון שלך." + }, + "manager": { + "message": "מנהל" + }, + "managerDesc": { + "message": "מנהלים יכולים לגשת ולנהל אוספים נבחרים בארגונך." + }, + "all": { + "message": "הכל" + }, + "refresh": { + "message": "רענן" + }, + "timestamp": { + "message": "חותמת זמן" + }, + "event": { + "message": "אירוע" + }, + "unknown": { + "message": "לא ידוע" + }, + "loadMore": { + "message": "טען עוד" + }, + "mobile": { + "message": "נייד", + "description": "Mobile app" + }, + "extension": { + "message": "תוסף", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "שולחן עבודה", + "description": "Desktop app" + }, + "webVault": { + "message": "כספת רשת" + }, + "loggedIn": { + "message": "מחובר." + }, + "changedPassword": { + "message": "סיסמת החשבון שונתה." + }, + "enabledUpdated2fa": { + "message": "כניסה דו שלבית הופעלה\\עודכנה." + }, + "disabled2fa": { + "message": "בטל כניסה דו שלבית." + }, + "recovered2fa": { + "message": "חשבון שוחזר מכניסה דו שלבית." + }, + "failedLogin": { + "message": "נסיון כניסה נכשל עם סיסמה שגויה." + }, + "failedLogin2fa": { + "message": "נסיונות כניסה עם אימות דו שלבי נכשלו." + }, + "exportedVault": { + "message": "יצוא כספת." + }, + "exportedOrganizationVault": { + "message": "יצוא של תוכן הכספת הארגונית." + }, + "editedOrgSettings": { + "message": "הגדרות הארגון נערכו." + }, + "createdItemId": { + "message": "פריט שנוצר $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "פריט שנערך $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "פריט $ID$ נשלח לסל המחזור.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "פריט שנצפה $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "סיסמה שנצפתה עבור פריט $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "שדה מוסתר שנצפה עבור פריט $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "קוד אבטחה שנצפה עבור פריט $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "סיסמה שהועתקה עבור פריט $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "שדה מוסתר שהועתק עבור פריט $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "קוד אבטחה שהועתק עבור פריט $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "פריט שבוצע עבורו מילוי אוטומטי $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "אוסף שנוצר $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "אוסף שנערך $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "אוסף שנמחק $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "מדיניות שנערכה $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "קבוצה שנוצרה $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "קבוצה שנערכה $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "קבוצה שנמחקה $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "משתמש שהוסר $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "נוצר קובץ מצורף עבור פריט $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "נמחק קובץ מצורף של פריט $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "אוספים שנערכו של פריט $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "משתמש שהוזמן $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "משתמש שאישר $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "משתמש שנערך $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "קבוצות שנערכו עבור משתמש $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "מכשיר" + }, + "view": { + "message": "צפה" + }, + "invalidDateRange": { + "message": "טווח תאריכים לא חוקי." + }, + "errorOccurred": { + "message": "אירעה שגיאה." + }, + "userAccess": { + "message": "גישת משתמש" + }, + "userType": { + "message": "סוג משתמש" + }, + "groupAccess": { + "message": "גישה לקבוצה" + }, + "groupAccessUserDesc": { + "message": "ערוך את הקבוצות שמשתמש זה משויך אליהן." + }, + "invitedUsers": { + "message": "משתמשים שהוזמנו." + }, + "resendInvitation": { + "message": "שלח הזמנה מחדש" + }, + "resendEmail": { + "message": "שלח מייל בשנית" + }, + "hasBeenReinvited": { + "message": "$USER$ הוזמן מחדש.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "אשר" + }, + "confirmUser": { + "message": "אשר משתמש" + }, + "hasBeenConfirmed": { + "message": "$USER$ אושר.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "אשר משתמשים" + }, + "usersNeedConfirmed": { + "message": "ישנם משתמשים שקיבלו את הזמנתך, אך עדיין צריך לאשר אותם. למשתמשים אלו לא תהיה גישה לארגון עד שיאשרו אותם." + }, + "startDate": { + "message": "תאריך התחלה" + }, + "endDate": { + "message": "תאריך סיום" + }, + "verifyEmail": { + "message": "אמת כתובת אימייל" + }, + "verifyEmailDesc": { + "message": "אמת את האימייל שלך בכדי לאפשר גישה לכל היכולות." + }, + "verifyEmailFirst": { + "message": "ראשית יש לאמת את כתובת האימייל שלך." + }, + "checkInboxForVerification": { + "message": "בדוק אם קיבלת את קוד האימות באימייל." + }, + "emailVerified": { + "message": "כתובת האימייל שלך אומתה." + }, + "emailVerifiedFailed": { + "message": "לא ניתן לאמת את האימייל שלך. נסה לשלוח מייל אימות חדש." + }, + "emailVerificationRequired": { + "message": "יש לאמת את כתובת האימייל" + }, + "emailVerificationRequiredDesc": { + "message": "נדרש אישור אימות בדוא\"ל כדי לאפשר שימוש בתכונה זו." + }, + "updateBrowser": { + "message": "עדכן דפדפן" + }, + "updateBrowserDesc": { + "message": "אתה משתמש בדפדפן אינטרנט שאיננו נתמך. כספת הרשת עלולה שלא לפעול כראוי." + }, + "joinOrganization": { + "message": "הצטרף לארגון" + }, + "joinOrganizationDesc": { + "message": "הוזמנת להצטרף לארגון הרשום לעיל. בכדי להסכים, עליך להתחבר או ליצור חשבון Bitwarden חדש." + }, + "inviteAccepted": { + "message": "ההזמנה התקבלה" + }, + "inviteAcceptedDesc": { + "message": "תוכל לקבל גישה לארגון זה כשאחד המנהלים יאשר את החברות שלך. נשלח לך מייל כשזה יקרה." + }, + "inviteAcceptFailed": { + "message": "לא ניתן לקבל את ההזמנה. בקש ממנהל הארגון שישלח הזמנה חדשה." + }, + "inviteAcceptFailedShort": { + "message": "לא ניתן לאשר את ההזמנה. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "זכור אימייל" + }, + "recoverAccountTwoStepDesc": { + "message": "אם אין באפשרות לגשת לחשבונך דרך השיטות הדו-שלביות הרגילות, תוכל להשתמש בקוד לשחזור האימות הדו שלבי בכדי לבטל את כל ספקי האימות הדו שלבי בחשבונך." + }, + "recoverAccountTwoStep": { + "message": "שחזר כניסה דו שלבית לחשבון" + }, + "twoStepRecoverDisabled": { + "message": "כניסה דו שלבית בוטלה בחשבונך." + }, + "learnMore": { + "message": "למידע נוסף" + }, + "deleteRecoverDesc": { + "message": "הזן את כתובת האימייל שלך כדי לשחזר ולמחוק את החשבון שלך." + }, + "deleteRecoverEmailSent": { + "message": "אם החשבון שלך אכן קיים, שלחנו אליך מייל עם הוראות נוספות." + }, + "deleteRecoverConfirmDesc": { + "message": "ביקשת למחוק את חשבון ה-Bitwarden שלך. לחץ על הכפתור למטה בכדי לאשר זאת." + }, + "myOrganization": { + "message": "הארגון שלי" + }, + "deleteOrganization": { + "message": "מחק ארגון" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "הארגון נמחק" + }, + "organizationDeletedDesc": { + "message": "הארגון וכל המידע המשוייך אליו נמחק." + }, + "organizationUpdated": { + "message": "הארגון עודכן" + }, + "taxInformation": { + "message": "מידע מיסים" + }, + "taxInformationDesc": { + "message": "עבור לקוחות בתוך ארצות הברית, יש לכתוב מיקוד לצורך דיווח מיסוי. עבור לקוחות ממדינות אחרות ניתן למלא מספר זיהוי מס (VAT/GST) ו\\או כתובת שתופיע על הקבלות שלך." + }, + "billingPlan": { + "message": "תוכנית", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "שנה תוכנית", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "שדרג את חשבונך לתוכנית אחרת על ידי הוספת הפרטים להלן. אנא ודא שהוספת שיטת תשלום פעילה לחשבונך.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "חשבונית #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "צפה בחשבונית" + }, + "downloadInvoice": { + "message": "הורד חשבונית" + }, + "verifyBankAccount": { + "message": "אמת חשבון בנק" + }, + "verifyBankAccountDesc": { + "message": "ביצענו 2 מיקרו-הפקדות לחשבון הבנק שלך (לפעמים לוקח 1-2 ימי עסקים עד שהם מופיעות). הכנס כאן את הסכומים כדי לוודא את פרטי חשבון הבנק שלך." + }, + "verifyBankAccountInitialDesc": { + "message": "אופציית תשלום באמצעות חשבון בנק זמינה אך ורק ללקוחות תושבי ארצות הברית. תצטרך לאמת את פרטי החשבון. אנו נבצע 2 מיקרו-הפקדות בתוך 1-2 ימי עסקים. הזן את הסכומים בעמוד פרטי הארגון המשלם בכדי לאמת את חשבון הבנק." + }, + "verifyBankAccountFailureWarning": { + "message": "בעיות באימות פרטי החשבון עלולות להסתיים בתשלומים ש'התפספסו' ויכולות לגרום למנוי שלך, להתבטל." + }, + "verifiedBankAccount": { + "message": "חשבון בנק אומת." + }, + "bankAccount": { + "message": "חשבון בנק" + }, + "amountX": { + "message": "סכום $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "מספר הניתוב", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "מספר חשבון" + }, + "accountHolderName": { + "message": "שם בעל החשבון" + }, + "bankAccountType": { + "message": "סוג חשבון" + }, + "bankAccountTypeCompany": { + "message": "חברה (עסק)" + }, + "bankAccountTypeIndividual": { + "message": "אישי (פרטי)" + }, + "enterInstallationId": { + "message": "הכנס את מספר ההתקנה שלך" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "הוסף כסאות", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "הסר כסאות", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "המנוי שלך מתיר עד $COUNT$ משתמשים.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "כסאות להוספה" + }, + "seatsToRemove": { + "message": "כסאות להסרה" + }, + "seatsAddNote": { + "message": "הוספת כסאות משתמשים משנה את העלויות. פעולה זו מחוייבת באופן מיידי לפי שיטת החיוב שלך. בנוסף, החיוב הבא יכלול את ההפרש היחסי ממחזור החיוב הנוכחי." + }, + "seatsRemoveNote": { + "message": "הסרת כסאות משתמשים משנה את העלויות. החיוב הבא יכלול את ההפרש היחסי ממחזור החיוב הנוכחי." + }, + "adjustedSeats": { + "message": "מספר כסאות המשתמשים עודכן ל$AMOUNT$.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "המפתח עודכן" + }, + "updateKeyTitle": { + "message": "עדכן מפתח" + }, + "updateEncryptionKey": { + "message": "עדכן מפתח הצפנה" + }, + "updateEncryptionKeyShortDesc": { + "message": "אתה משתמש בסכמת-הצפנה לא מעודכנת." + }, + "updateEncryptionKeyDesc": { + "message": "התחלנו להשתמש במפתחות הצפנה גדולים יותר בכדי לספק אבטחה טובה יותר ולאפשר גישה ליכולות חדשות. תהליך עדכון מפתחות האבטחה שלך הוא קל ומהיר. פשוט הזן את הסיסמה הראשית שלך. שים לב שעדכון זה יהפוך להכרחי בסופו של דבר." + }, + "updateEncryptionKeyWarning": { + "message": "לאחר עדכון מפתחות ההצפנה שלך, תתבקש לצאת ולהכנס שוב בכל אפליקציות Bitwarden שאתה משתמש בהן (האפליקציה לפלאפון או ההרחבה לדפדפן). אם לא תצא ותכנס שוב (פעולת הכניסה מורידה את המפתח החדש), יתכן שתתקל במידע שגוי. אנו ננסה לגרום ליציאה אוטומטית, אך יתכן שהדבר לא יקרה מיידית." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "מנוי" + }, + "loading": { + "message": "טוען" + }, + "upgrade": { + "message": "שדרג" + }, + "upgradeOrganization": { + "message": "שדרג ארגון" + }, + "upgradeOrganizationDesc": { + "message": "תכונה זו לא זמינה בתוכנית החינמיית עבור ארגונים. עבור לתוכנית בתשלום בכדי להשתמש בתכונות נוספות." + }, + "createOrganizationStep1": { + "message": "יצירת ארגון: צעד 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "לפני יצירת הארגון, עליך ליצור חשבון אישי חינמי." + }, + "refunded": { + "message": "זוכה" + }, + "nothingSelected": { + "message": "לא בחרת כלום." + }, + "acceptPolicies": { + "message": "סימון תיבה זו מהווה את הסכמתך לתנאים הבאים:" + }, + "acceptPoliciesError": { + "message": "לא הסכמת לתנאי השירות ומדיניות הפרטיות." + }, + "termsOfService": { + "message": "תנאי שירות" + }, + "privacyPolicy": { + "message": "מדיניות הפרטיות" + }, + "filters": { + "message": "מסננים" + }, + "vaultTimeout": { + "message": "משך זמן מירבי עבור חיבור לכספת" + }, + "vaultTimeoutDesc": { + "message": "בחר כמה זמן יעבור כדי שהכספת תסגר לאחר חוסר פעילות ותבצע את הפעולה שנבחרה." + }, + "oneMinute": { + "message": "דקה אחת" + }, + "fiveMinutes": { + "message": "5 דקות" + }, + "fifteenMinutes": { + "message": "15 דקות" + }, + "thirtyMinutes": { + "message": "30 דקות" + }, + "oneHour": { + "message": "שעה אחת" + }, + "fourHours": { + "message": "4 שעות" + }, + "onRefresh": { + "message": "בהפעלת הדפדפן מחדש" + }, + "dateUpdated": { + "message": "עודכן", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "הסיסמה עודכנה", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "הארגון הושבת." + }, + "licenseIsExpired": { + "message": "תוקף הרשיון הסתיים." + }, + "updatedUsers": { + "message": "משתמשים שעודכנו" + }, + "selected": { + "message": "נבחר\\ו" + }, + "ownership": { + "message": "בעלות" + }, + "whoOwnsThisItem": { + "message": "מי הבעלים של הפריט הזה?" + }, + "strong": { + "message": "חזקה", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "טובה", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "חלשה", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "חלשה מאוד", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "סיסמה ראשית חלשה" + }, + "weakMasterPasswordDesc": { + "message": "הסיסמה הראשית שבחרת חלשה מאוד. עליך לבחור סיסמה חזקה יותר (או להשתמש במשפט במקום מילה אחת) בכדי לאבטח את החשבון שלך. האם אתה בטוח שברצונך להשתמש בסיסמה ראשית זו?" + }, + "rotateAccountEncKey": { + "message": "כמו כן החלף את מפתח ההצפנה של החשבון שלי" + }, + "rotateEncKeyTitle": { + "message": "החלף מפתח הצפנה" + }, + "rotateEncKeyConfirmation": { + "message": "האם אתה בטוח שברצונך להחליף (לבצע רוטציה) של מפתח ההצפנה בחשבונך?" + }, + "attachmentsNeedFix": { + "message": "לפריט זה יש קובץ מצורף שצריך תיקון." + }, + "attachmentFixDesc": { + "message": "קובץ מצורף זה צריך לעבור תיקון. לחץ כאן כדי לגלות עוד פרטים." + }, + "fix": { + "message": "תקן", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "בכספת שלך קיים קובץ מצורף ישן שצריך לעבור תיקון לפני שתוכל להחליף את מפתחות ההצפנה של החשבון שלך." + }, + "yourAccountsFingerprint": { + "message": "הסיסמה של טביעת האצבעות בחשבון שלך", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "בכדי לוודא את תקינות מפתחות ההצפנה שלך, אנא ודא את משפט טביעת האצבע לפני שתמשיך.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "אל תבקש ממני לאמת את משפט טביעת האצבע יותר", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "חינם", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "מפתח API" + }, + "apiKeyDesc": { + "message": "מפתח הAPI שלך יכול לשמש עבור אימות מול הAPI הפומבי של Bitwarden." + }, + "apiKeyRotateDesc": { + "message": "רוטציית מפתח הAPI הופכת את המפתח הקודם ללא תקין. באפשרותך לבצע רוטציה של מפתח הAPI אם אתה מאמין שהמפתח הנוכחי לא בטוח לשימוש." + }, + "apiKeyWarning": { + "message": "למפתח הAPI שלך יש גישה מלאה לארגון שלך. מומלץ מאוד לשמור אותו בסוד." + }, + "userApiKeyDesc": { + "message": "מפתח הAPI שלך יכול לשמש עבור אימות מול הCLI של Bitwarden." + }, + "userApiKeyWarning": { + "message": "מפתח הAPI שלך משמש כמנגנון אימות אלטרנטיבי. יש לשמור עליו כמו על כל סיסמה." + }, + "oauth2ClientCredentials": { + "message": "אישורי לקוח OAuth 2.0", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "צפה במפתח API" + }, + "rotateApiKey": { + "message": "קבל מפתח API חדש" + }, + "selectOneCollection": { + "message": "עליך לבחור לפחות אוסף אחד." + }, + "couldNotChargeCardPayInvoice": { + "message": "לא הצלחנו לחייב את הכרטיס שלך. אנא בדוק ושלם את הקבלות המופיעות להלן." + }, + "inAppPurchase": { + "message": "רכישות פנימיות" + }, + "cannotPerformInAppPurchase": { + "message": "אין באפשרותך לבצע פעולה זו כשמשתמשים בשיטת התשלום 'רכישות פנימיות'." + }, + "manageSubscriptionFromStore": { + "message": "עליך לנהל את המנוי מתוך החנות שבה ביצעת את הרכישות הפנימיות." + }, + "minLength": { + "message": "אורך מינימלי" + }, + "clone": { + "message": "שכפול" + }, + "masterPassPolicyDesc": { + "message": "קבע דרישות מינימום עבור חוזק הסיסמה הראשית." + }, + "twoStepLoginPolicyDesc": { + "message": "דרוש מהמשתמשים להגדיר כניסה דו-שלבית בחשבונות האישיים שלהם." + }, + "twoStepLoginPolicyWarning": { + "message": "חברי ארגון ללא הגדרת כניסה דו-שלבית יוסרו מהארגון ויקבלו אימייל המסביר את השינוי." + }, + "twoStepLoginPolicyUserWarning": { + "message": "הינך חבר בארגון המחייב כניסה דו-שלבית מוגדרת בחשבונך. אם תבטל את כל הספקים המאפשרים כניסה דו-שלבית, תוסר אוטומטית מהארגון." + }, + "passwordGeneratorPolicyDesc": { + "message": "הגדר דרישות מינימום במחולל הסיסמאות." + }, + "passwordGeneratorPolicyInEffect": { + "message": "מדיניות ארגונית אחת או יותר משפיעה על הגדרות המחולל שלך." + }, + "masterPasswordPolicyInEffect": { + "message": "אחד או יותר מכללי מדיניות הארגון דורשים שסיסמתך הראשית תעמוד בדרישות הבאות:" + }, + "policyInEffectMinComplexity": { + "message": "ניקוד מורכבות הסיסמה צריך להיות לפחות $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "אורך מינימלי של $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "מכילה אות גדולה אחת או יותר" + }, + "policyInEffectLowercase": { + "message": "מכילה אות קטנה אחת או יותר" + }, + "policyInEffectNumbers": { + "message": "מכילה ספרה אחת או יותר" + }, + "policyInEffectSpecial": { + "message": "מכילה תו אחד או יותר מהתווים הבאים: $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "הסיסמה הראשית החדשה שלך לא עומדת בדרישות המדיניות." + }, + "minimumNumberOfWords": { + "message": "מספר מינימאלי של מילים" + }, + "defaultType": { + "message": "סוג ברירת מחדל" + }, + "userPreference": { + "message": "העדפות משתמש" + }, + "vaultTimeoutAction": { + "message": "פעולה לביצוע בכספת בתום זמן החיבור" + }, + "vaultTimeoutActionLockDesc": { + "message": "בכדי לקבל גישה לכספת נעולה, יש להזין את הסיסמה הראשית שוב." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "בכדי לקבל גישה לכספת שיצאו ממנה, יש לבצע אימות מחדש." + }, + "lock": { + "message": "נעילה", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "סל המחזור", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "חפש בסל המחזור" + }, + "permanentlyDelete": { + "message": "מחק לצמיתות" + }, + "permanentlyDeleteSelected": { + "message": "מחק לצמיתות פריטים שנבחרו" + }, + "permanentlyDeleteItem": { + "message": "מחק לצמיתות פריט שנבחר" + }, + "permanentlyDeleteItemConfirmation": { + "message": "האם אתה בטוח שברצונך למחוק את הפריט הזה?" + }, + "permanentlyDeletedItem": { + "message": "פריט שנמחק לצמיתות" + }, + "permanentlyDeletedItems": { + "message": "פריטים שנמחקו לצמיתות" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "בחרת $COUNT$ פריט(ים) למחיקה לצמיתות. האם אתה בטוח שברצונך למחוק את כולם?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "פריט שנמחק לצמיתות $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "שחזר" + }, + "restoreSelected": { + "message": "שחזר בחירה" + }, + "restoreItem": { + "message": "שחזר פריט" + }, + "restoredItem": { + "message": "פריט ששוחזר" + }, + "restoredItems": { + "message": "פריטים ששוחזרו" + }, + "restoreItemConfirmation": { + "message": "האם אתה בטוח שברצונך לשחזר פריט זה?" + }, + "restoreItems": { + "message": "שחזר פריטים" + }, + "restoreSelectedItemsDesc": { + "message": "בחרת $COUNT$ פריט(ים) לשחזור. האם אתה בטוח שברצונך לשחזר את כל הפריטים הללו?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "פריט ששוחזר $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "יציאה תגרום להסרת כל גישה שיש לך לכספת ודורשת אימות אונליין לאחר משך זמן מסויים. האם אתה בטוח שברצונך להשתמש באפשרות זו?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "אישור פעולת אימות לאחר חוסר פעילות" + }, + "hidePasswords": { + "message": "הסתר סיסמאות" + }, + "countryPostalCodeRequiredDesc": { + "message": "אנו מבקשים מידע זה בכדי לחשב את עלויות המיסים והדוחות הכספיים שלנו בלבד." + }, + "includeVAT": { + "message": "כלול נתוני מעמ/VAT/GST (אופציונאלי)" + }, + "taxIdNumber": { + "message": "מזהה מיסוי מעמ/VAT/GST" + }, + "taxInfoUpdated": { + "message": "מידע מיסוי עודכן." + }, + "setMasterPassword": { + "message": "קבע סיסמה ראשית" + }, + "ssoCompleteRegistration": { + "message": "כדי להשלים את הכניסה עם SSO, נא להגדיר סיסמה ראשית כדי לגשת ולהגן על הכספת שלך." + }, + "identifier": { + "message": "מזהה" + }, + "organizationIdentifier": { + "message": "מזהה ארגוני" + }, + "ssoLogInWithOrgIdentifier": { + "message": "הכנס באמצעות פורטל ההזדהות האחודה (SSO) הארגוני שלך. אנא הזן את המזהה הארגוני שלך כדי להתחיל." + }, + "enterpriseSingleSignOn": { + "message": "כניסה ארגונית אחודה" + }, + "ssoHandOff": { + "message": "ניתן לסגור את הטאב הנוכחי ולהמשיך את השימוש בתוסף." + }, + "includeAllTeamsFeatures": { + "message": "כל התכונות הקיימות ב\"צוות\", ובנוסף:" + }, + "includeSsoAuthentication": { + "message": "אימות SSO דרך SAML2.0 וOpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "מדיניות ארגונית" + }, + "ssoValidationFailed": { + "message": "אימות SSO נכשל" + }, + "ssoIdentifierRequired": { + "message": "מזהה הארגון נחוץ." + }, + "unlinkSso": { + "message": "נתק SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "חבר SSO" + }, + "singleOrg": { + "message": "ארגון יחידני" + }, + "singleOrgDesc": { + "message": "מונע מהמשתמשים אפשרות צירוף לארגונים אחרים." + }, + "singleOrgBlockCreateMessage": { + "message": "לפי מדיניות הארגון שלך, אין באפשרותך להצטרף ליותר מארגון אחד. אנא צור קשר עם מנהלי הארגון שלך, או לחלופין - צור חשבון Bitwarden נפרד." + }, + "singleOrgPolicyWarning": { + "message": "חברי ארגון שאינם הבעלים או המנהלים וכבר עכשיו הם חלק מארגון אחר - יוסרו מהארגון שלך." + }, + "requireSso": { + "message": "אימות בעזרת כניסה אחודה" + }, + "requireSsoPolicyDesc": { + "message": "מחייב את המשתמשים להשתמש בכניסה אחודה של הארגון." + }, + "prerequisite": { + "message": "תנאים מקדימים" + }, + "requireSsoPolicyReq": { + "message": "יש לסמן את מדיניות הארגון היחידני לפני הפעלת מדיניות זו." + }, + "requireSsoPolicyReqError": { + "message": "מדיניות ארגון יחידני לא הופעלה." + }, + "requireSsoExemption": { + "message": "מנהלי ובעלי הארגון מוחרגים מאכיפת מדיניות זו." + }, + "sendTypeFile": { + "message": "קובץ" + }, + "sendTypeText": { + "message": "טקסט" + }, + "createSend": { + "message": "צור Send חדש", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "ערוך Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "הSend נוצר בהצלחה", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "הSend נערך", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "הSend נמחק", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "מחק Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "האם אתה בטוח שברצונך למחוק Send זה?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "מה סוג הSend?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "תאריך מחיקה" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "תאריך תפוגה" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "כמות גישות מקסימלית" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "כמות גישות נוכחית" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "מבוטל" + }, + "sendLink": { + "message": "לינק לSend", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "העתק לינק לSend", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "הסר סיסמה" + }, + "removedPassword": { + "message": "הסיסמה הוסרה" + }, + "removePasswordConfirmation": { + "message": "האם אתה בטוח שברצונך להסיר את הסיסמה?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "כל הSendים" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "ממתין להסרה" + }, + "expired": { + "message": "פג תוקף" + }, + "searchSends": { + "message": "חיפוש Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "הSend הזה מוגן בסיסמה. אנא הזן את הסיסמה כדי להמשיך.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "לא יודע מה הסיסמה? בקש מהשולח את הסיסמה עבור הSend.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "הSend הזה מוסתר כברירת מחדל. באפשרותך לשנות את מצב ההסתרה בעזרת הכפתור להלן.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "הורד קובץ" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "אין Sendים להצגה ברשימה.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Emergency Access" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Request Access" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approve" + }, + "reject": { + "message": "Reject" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Disable Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "Estimated tax" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Manage All Collections" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Manage Groups" + }, + "managePolicies": { + "message": "Manage Policies" + }, + "manageSso": { + "message": "Manage SSO" + }, + "manageUsers": { + "message": "Manage Users" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organization users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Learn more about", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Learn more", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "try it now", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "sign up", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "to try it today.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organization policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organization administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/hi/messages.json b/apps/web/src/locales/hi/messages.json new file mode 100644 index 0000000000..a16c89e90e --- /dev/null +++ b/apps/web/src/locales/hi/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ वेब वॉल्ट", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "यह किस प्रकार का आइटम है?" + }, + "name": { + "message": "नाम" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "नया URI" + }, + "username": { + "message": "उपयोगकर्ता" + }, + "password": { + "message": "पासवर्ड" + }, + "newPassword": { + "message": "नया पासवर्ड" + }, + "passphrase": { + "message": "पासफ़्रेज़" + }, + "notes": { + "message": "नोट्स" + }, + "customFields": { + "message": "कस्टम फील्ड्स" + }, + "cardholderName": { + "message": "कार्डधारक का नाम" + }, + "number": { + "message": "संख्या" + }, + "brand": { + "message": "ब्रांड" + }, + "expiration": { + "message": "सीमा समाप्ति" + }, + "securityCode": { + "message": "सिक्योरिटी कोड (सीवीवी)" + }, + "identityName": { + "message": "Identity Name" + }, + "company": { + "message": "कंपनी" + }, + "ssn": { + "message": "सामाजिक सुरक्षा संख्या" + }, + "passportNumber": { + "message": "पासपोर्ट संख्या" + }, + "licenseNumber": { + "message": "लाइसेंस संख्या" + }, + "email": { + "message": "ईमेल" + }, + "phone": { + "message": "फोन" + }, + "january": { + "message": "जनवरी" + }, + "february": { + "message": "फरवरी" + }, + "march": { + "message": "मार्च" + }, + "april": { + "message": "अप्रैल" + }, + "may": { + "message": "मई" + }, + "june": { + "message": "जून" + }, + "july": { + "message": "जुलाई" + }, + "august": { + "message": "अगस्त" + }, + "september": { + "message": "सितम्बर" + }, + "october": { + "message": "अक्टूबर" + }, + "november": { + "message": "नवंबर" + }, + "december": { + "message": "दिसंबर" + }, + "title": { + "message": "शीर्षक" + }, + "mr": { + "message": "श्री" + }, + "mrs": { + "message": "श्रीमती" + }, + "ms": { + "message": "श्रीमती" + }, + "dr": { + "message": "डॉ" + }, + "expirationMonth": { + "message": "Expiration Month" + }, + "expirationYear": { + "message": "Expiration Year" + }, + "authenticatorKeyTotp": { + "message": "Authenticator Key (TOTP)" + }, + "folder": { + "message": "फ़ोल्डर" + }, + "newCustomField": { + "message": "नया कस्टम फील्ड" + }, + "value": { + "message": "मूल्य" + }, + "dragToSort": { + "message": "सॉर्ट करने के लिए ड्रैग करें" + }, + "cfTypeText": { + "message": "शब्द" + }, + "cfTypeHidden": { + "message": "छुपा हुआ" + }, + "cfTypeBoolean": { + "message": "Boolean" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Remove" + }, + "unassigned": { + "message": "Unassigned" + }, + "noneFolder": { + "message": "No Folder", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Add Folder" + }, + "editFolder": { + "message": "Edit Folder" + }, + "baseDomain": { + "message": "Base domain", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exact" + }, + "startsWith": { + "message": "Starts with" + }, + "regEx": { + "message": "Regular expression", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Match Detection", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Default match detection", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Never" + }, + "toggleVisibility": { + "message": "Toggle Visibility" + }, + "toggleCollapse": { + "message": "Toggle Collapse", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generate Password" + }, + "checkPassword": { + "message": "Check if password has been exposed." + }, + "passwordExposed": { + "message": "This password has been exposed $VALUE$ time(s) in data breaches. You should change it.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "This password was not found in any known data breaches. It should be safe to use." + }, + "save": { + "message": "Save" + }, + "cancel": { + "message": "Cancel" + }, + "canceled": { + "message": "Canceled" + }, + "close": { + "message": "Close" + }, + "delete": { + "message": "Delete" + }, + "favorite": { + "message": "Favorite" + }, + "unfavorite": { + "message": "Unfavorite" + }, + "edit": { + "message": "Edit" + }, + "searchCollection": { + "message": "Search Collection" + }, + "searchFolder": { + "message": "Search Folder" + }, + "searchFavorites": { + "message": "Search Favorites" + }, + "searchType": { + "message": "Search Type", + "description": "Search item type" + }, + "searchVault": { + "message": "Search Vault" + }, + "allItems": { + "message": "All Items" + }, + "favorites": { + "message": "Favorites" + }, + "types": { + "message": "Types" + }, + "typeLogin": { + "message": "Login" + }, + "typeCard": { + "message": "Card" + }, + "typeIdentity": { + "message": "Identity" + }, + "typeSecureNote": { + "message": "Secure Note" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "Folders" + }, + "collections": { + "message": "Collections" + }, + "firstName": { + "message": "First Name" + }, + "middleName": { + "message": "Middle Name" + }, + "lastName": { + "message": "Last Name" + }, + "fullName": { + "message": "Full Name" + }, + "address1": { + "message": "Address 1" + }, + "address2": { + "message": "Address 2" + }, + "address3": { + "message": "Address 3" + }, + "cityTown": { + "message": "City / Town" + }, + "stateProvince": { + "message": "State / Province" + }, + "zipPostalCode": { + "message": "Zip / Postal Code" + }, + "country": { + "message": "Country" + }, + "shared": { + "message": "Shared" + }, + "attachments": { + "message": "Attachments" + }, + "select": { + "message": "Select" + }, + "addItem": { + "message": "Add Item" + }, + "editItem": { + "message": "Edit Item" + }, + "viewItem": { + "message": "View Item" + }, + "ex": { + "message": "ex.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Other" + }, + "share": { + "message": "Share" + }, + "moveToOrganization": { + "message": "Move to Organization" + }, + "valueCopied": { + "message": "$VALUE$ copied", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Copy Value", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Copy Password", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Copy Username", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Copy Number", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copy Security Code", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Copy URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "My Vault" + }, + "vault": { + "message": "Vault" + }, + "moveSelectedToOrg": { + "message": "Move Selected to Organization" + }, + "deleteSelected": { + "message": "Delete Selected" + }, + "moveSelected": { + "message": "Move Selected" + }, + "selectAll": { + "message": "Select All" + }, + "unselectAll": { + "message": "Unselect All" + }, + "launch": { + "message": "Launch" + }, + "newAttachment": { + "message": "Add New Attachment" + }, + "deletedAttachment": { + "message": "Deleted attachment" + }, + "deleteAttachmentConfirmation": { + "message": "Are you sure you want to delete this attachment?" + }, + "attachmentSaved": { + "message": "The attachment has been saved." + }, + "file": { + "message": "File" + }, + "selectFile": { + "message": "Select a file." + }, + "maxFileSize": { + "message": "Maximum file size is 500 MB." + }, + "updateKey": { + "message": "You cannot use this feature until you update your encryption key." + }, + "addedItem": { + "message": "Added item" + }, + "editedItem": { + "message": "Edited item" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ moved to $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Selected items moved to $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Delete Item" + }, + "deleteFolder": { + "message": "Delete Folder" + }, + "deleteAttachment": { + "message": "Delete Attachment" + }, + "deleteItemConfirmation": { + "message": "Do you really want to send to the trash?" + }, + "deletedItem": { + "message": "Item sent to trash" + }, + "deletedItems": { + "message": "Items sent to trash" + }, + "movedItems": { + "message": "Moved items" + }, + "overwritePasswordConfirmation": { + "message": "Are you sure you want to overwrite the current password?" + }, + "editedFolder": { + "message": "Edited folder" + }, + "addedFolder": { + "message": "Added folder" + }, + "deleteFolderConfirmation": { + "message": "Are you sure you want to delete this folder?" + }, + "deletedFolder": { + "message": "Deleted folder" + }, + "loggedOut": { + "message": "Logged out" + }, + "loginExpired": { + "message": "Your login session has expired." + }, + "logOutConfirmation": { + "message": "Are you sure you want to log out?" + }, + "logOut": { + "message": "Log Out" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Yes" + }, + "no": { + "message": "No" + }, + "loginOrCreateNewAccount": { + "message": "Log in or create a new account to access your secure vault." + }, + "createAccount": { + "message": "Create Account" + }, + "logIn": { + "message": "Log In" + }, + "submit": { + "message": "Submit" + }, + "emailAddressDesc": { + "message": "You'll use your email address to log in." + }, + "yourName": { + "message": "Your Name" + }, + "yourNameDesc": { + "message": "What should we call you?" + }, + "masterPass": { + "message": "Master Password" + }, + "masterPassDesc": { + "message": "The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it." + }, + "masterPassHintDesc": { + "message": "A master password hint can help you remember your password if you forget it." + }, + "reTypeMasterPass": { + "message": "Re-type Master Password" + }, + "masterPassHint": { + "message": "Master Password Hint (optional)" + }, + "masterPassHintLabel": { + "message": "Master Password Hint" + }, + "settings": { + "message": "Settings" + }, + "passwordHint": { + "message": "Password Hint" + }, + "enterEmailToGetHint": { + "message": "Enter your account email address to receive your master password hint." + }, + "getMasterPasswordHint": { + "message": "Get master password hint" + }, + "emailRequired": { + "message": "Email address is required." + }, + "invalidEmail": { + "message": "Invalid email address." + }, + "masterPassRequired": { + "message": "Master password is required." + }, + "masterPassLength": { + "message": "Master password must be at least 8 characters long." + }, + "masterPassDoesntMatch": { + "message": "Master password confirmation does not match." + }, + "newAccountCreated": { + "message": "Your new account has been created! You may now log in." + }, + "masterPassSent": { + "message": "We've sent you an email with your master password hint." + }, + "unexpectedError": { + "message": "An unexpected error has occurred." + }, + "emailAddress": { + "message": "Email Address" + }, + "yourVaultIsLocked": { + "message": "Your vault is locked. Verify your master password to continue." + }, + "unlock": { + "message": "Unlock" + }, + "loggedInAsEmailOn": { + "message": "Logged in as $EMAIL$ on $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Invalid master password" + }, + "lockNow": { + "message": "Lock Now" + }, + "noItemsInList": { + "message": "There are no items to list." + }, + "noCollectionsInList": { + "message": "There are no collections to list." + }, + "noGroupsInList": { + "message": "There are no groups to list." + }, + "noUsersInList": { + "message": "There are no users to list." + }, + "noEventsInList": { + "message": "There are no events to list." + }, + "newOrganization": { + "message": "New Organization" + }, + "noOrganizationsList": { + "message": "You do not belong to any organizations. Organizations allow you to securely share items with other users." + }, + "versionNumber": { + "message": "Version $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Enter the 6 digit verification code from your authenticator app." + }, + "enterVerificationCodeEmail": { + "message": "Enter the 6 digit verification code that was emailed to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Verification email sent to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Remember me" + }, + "sendVerificationCodeEmailAgain": { + "message": "Send verification code email again" + }, + "useAnotherTwoStepMethod": { + "message": "Use another two-step login method" + }, + "insertYubiKey": { + "message": "Insert your YubiKey into your computer's USB port, then touch its button." + }, + "insertU2f": { + "message": "Insert your security key into your computer's USB port. If it has a button, touch it." + }, + "loginUnavailable": { + "message": "Login Unavailable" + }, + "noTwoStepProviders": { + "message": "This account has two-step login enabled, however, none of the configured two-step providers are supported by this web browser." + }, + "noTwoStepProviders2": { + "message": "Please use a supported web browser (such as Chrome) and/or add additional providers that are better supported across web browsers (such as an authenticator app)." + }, + "twoStepOptions": { + "message": "Two-step Login Options" + }, + "recoveryCodeDesc": { + "message": "Lost access to all of your two-factor providers? Use your recovery code to disable all two-factor providers from your account." + }, + "recoveryCodeTitle": { + "message": "Recovery Code" + }, + "authenticatorAppTitle": { + "message": "Authenticator App" + }, + "authenticatorAppDesc": { + "message": "Use an authenticator app (such as Authy or Google Authenticator) to generate time-based verification codes.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP Security Key" + }, + "yubiKeyDesc": { + "message": "Use a YubiKey to access your account. Works with YubiKey 4 series, 5 series, and NEO devices." + }, + "duoDesc": { + "message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verify with Duo Security for your organization using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Use any FIDO U2F enabled security key to access your account." + }, + "u2fTitle": { + "message": "FIDO U2F Security Key" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Verification codes will be emailed to you." + }, + "continue": { + "message": "Continue" + }, + "organization": { + "message": "Organization" + }, + "organizations": { + "message": "Organizations" + }, + "moveToOrgDesc": { + "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organization that you wish to move these items to. Moving to an organization transfers ownership of the items to that organization. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "Edit the collections that this item is being shared with. Only organization users with access to these collections will be able to see this item." + }, + "deleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to delete. Are you sure you want to delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Choose a folder that you would like to move the $COUNT$ selected item(s) to.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organization, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Verification Code (TOTP)" + }, + "copyVerificationCode": { + "message": "Copy Verification Code" + }, + "warning": { + "message": "Warning" + }, + "confirmVaultExport": { + "message": "Confirm Vault Export" + }, + "exportWarningDesc": { + "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "Export Vault" + }, + "fileFormat": { + "message": "File Format" + }, + "exportSuccess": { + "message": "Your vault data has been exported." + }, + "passwordGenerator": { + "message": "Password Generator" + }, + "minComplexityScore": { + "message": "Minimum Complexity Score" + }, + "minNumbers": { + "message": "Minimum Numbers" + }, + "minSpecial": { + "message": "Minimum Special", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Avoid Ambiguous Characters" + }, + "regeneratePassword": { + "message": "Regenerate Password" + }, + "length": { + "message": "Length" + }, + "numWords": { + "message": "Number of Words" + }, + "wordSeparator": { + "message": "Word Separator" + }, + "capitalize": { + "message": "Capitalize", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Include Number" + }, + "passwordHistory": { + "message": "Password History" + }, + "noPasswordsInList": { + "message": "There are no passwords to list." + }, + "clear": { + "message": "Clear", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Account Updated" + }, + "changeEmail": { + "message": "Change Email" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "New Email" + }, + "code": { + "message": "Code" + }, + "changeEmailDesc": { + "message": "We have emailed a verification code to $EMAIL$. Please check your email for this code and enter it below to finalize the email address change.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "emailChanged": { + "message": "Email Changed" + }, + "logBackIn": { + "message": "Please log back in." + }, + "logBackInOthersToo": { + "message": "Please log back in. If you are using other Bitwarden applications log out and back in to those as well." + }, + "changeMasterPassword": { + "message": "Change Master Password" + }, + "masterPasswordChanged": { + "message": "Master Password Changed" + }, + "currentMasterPass": { + "message": "Current Master Password" + }, + "newMasterPass": { + "message": "New Master Password" + }, + "confirmNewMasterPass": { + "message": "Confirm New Master Password" + }, + "encKeySettings": { + "message": "Encryption Key Settings" + }, + "kdfAlgorithm": { + "message": "KDF Algorithm" + }, + "kdfIterations": { + "message": "KDF Iterations" + }, + "kdfIterationsDesc": { + "message": "Higher KDF iterations can help protect your master password from being brute forced by an attacker. We recommend a value of $VALUE$ or more.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Setting your KDF iterations too high could result in poor performance when logging into (and unlocking) Bitwarden on devices with slower CPUs. We recommend that you increase the value in increments of $INCREMENT$ and then test all of your devices.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Change KDF" + }, + "encKeySettingsChanged": { + "message": "Encryption Key Settings Changed" + }, + "dangerZone": { + "message": "Danger Zone" + }, + "dangerZoneDesc": { + "message": "Careful, these actions are not reversible!" + }, + "deauthorizeSessions": { + "message": "Deauthorize Sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Concerned your account is logged in on another device? Proceed below to deauthorize all computers or devices that you have previously used. This security step is recommended if you previously used a public computer or accidentally saved your password on a device that isn't yours. This step will also clear all previously remembered two-step login sessions." + }, + "deauthorizeSessionsWarning": { + "message": "Proceeding will also log you out of your current session, requiring you to log back in. You will also be prompted for two-step login again, if enabled. Active sessions on other devices may continue to remain active for up to one hour." + }, + "sessionsDeauthorized": { + "message": "All Sessions Deauthorized" + }, + "purgeVault": { + "message": "Purge Vault" + }, + "purgedOrganizationVault": { + "message": "Purged organization vault." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Proceed below to delete all items and folders in your vault. Items that belong to an organization that you share with will not be deleted." + }, + "purgeOrgVaultDesc": { + "message": "Proceed below to delete all items in the organization's vault." + }, + "purgeVaultWarning": { + "message": "Purging your vault is permanent. It cannot be undone." + }, + "vaultPurged": { + "message": "Your vault has been purged." + }, + "deleteAccount": { + "message": "Delete Account" + }, + "deleteAccountDesc": { + "message": "Proceed below to delete your account and all associated data." + }, + "deleteAccountWarning": { + "message": "Deleting your account is permanent. It cannot be undone." + }, + "accountDeleted": { + "message": "Account Deleted" + }, + "accountDeletedDesc": { + "message": "Your account has been closed and all associated data has been deleted." + }, + "myAccount": { + "message": "My Account" + }, + "tools": { + "message": "Tools" + }, + "importData": { + "message": "Import Data" + }, + "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." + }, + "importSuccess": { + "message": "Data has been successfully imported into your vault." + }, + "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." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "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)" + } + } + }, + "options": { + "message": "Options" + }, + "optionsDesc": { + "message": "Customize your web vault experience." + }, + "optionsUpdated": { + "message": "Options updated" + }, + "language": { + "message": "Language" + }, + "languageDesc": { + "message": "Change the language used by the web vault." + }, + "disableIcons": { + "message": "Disable Website Icons" + }, + "disableIconsDesc": { + "message": "Website Icons provide a recognizable image next to each login item in your vault." + }, + "enableGravatars": { + "message": "Enable Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use avatar images loaded from gravatar.com." + }, + "enableFullWidth": { + "message": "Enable Full Width Layout", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Allow the web vault to expand the full width of the browser window." + }, + "default": { + "message": "Default" + }, + "domainRules": { + "message": "Domain Rules" + }, + "domainRulesDesc": { + "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + }, + "globalEqDomains": { + "message": "Global Equivalent Domains" + }, + "customEqDomains": { + "message": "Custom Equivalent Domains" + }, + "exclude": { + "message": "Exclude" + }, + "include": { + "message": "Include" + }, + "customize": { + "message": "Customize" + }, + "newCustomDomain": { + "message": "New Custom Domain" + }, + "newCustomDomainDesc": { + "message": "Enter a list of domains separated by commas. Only \"base\" domains are allowed. Do not enter subdomains. For example, enter \"google.com\" instead of \"www.google.com\". You can also enter \"androidapp://package.name\" to associate an android app with other website domains." + }, + "customDomainX": { + "message": "Custom Domain $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domains updated" + }, + "twoStepLogin": { + "message": "Two-step Login" + }, + "twoStepLoginDesc": { + "message": "Secure your account by requiring an additional step when logging in." + }, + "twoStepLoginOrganizationDesc": { + "message": "Require two-step login for your organization's users by configuring providers at the organization level." + }, + "twoStepLoginRecoveryWarning": { + "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (ex. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + }, + "viewRecoveryCode": { + "message": "View Recovery Code" + }, + "providers": { + "message": "Providers", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Enable" + }, + "enabled": { + "message": "Enabled" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium Membership" + }, + "premiumRequired": { + "message": "Premium Required" + }, + "premiumRequiredDesc": { + "message": "A premium membership is required to use this feature." + }, + "youHavePremiumAccess": { + "message": "You have premium access" + }, + "alreadyPremiumFromOrg": { + "message": "You already have access to premium features because of an organization you are a member of." + }, + "manage": { + "message": "Manage" + }, + "disable": { + "message": "Disable" + }, + "twoStepLoginProviderEnabled": { + "message": "This two-step login provider is enabled on your account." + }, + "twoStepLoginAuthDesc": { + "message": "Enter your master password to modify two-step login settings." + }, + "twoStepAuthenticatorDesc": { + "message": "Follow these steps to set up two-step login with an authenticator app:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Download a two-step authenticator app" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Need a two-step authenticator app? Download one of the following" + }, + "iosDevices": { + "message": "iOS devices" + }, + "androidDevices": { + "message": "Android devices" + }, + "windowsDevices": { + "message": "Windows devices" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "These apps are recommended, however, other authenticator apps will also work." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scan this QR code with your authenticator app" + }, + "key": { + "message": "Key" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Enter the resulting 6 digit verification code from the app" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app." + }, + "twoStepDisableDesc": { + "message": "Are you sure you want to disable this two-step login provider?" + }, + "twoStepDisabled": { + "message": "Two-step login provider disabled." + }, + "twoFactorYubikeyAdd": { + "message": "Add a new YubiKey to your account" + }, + "twoFactorYubikeyPlugIn": { + "message": "Plug the YubiKey into your computer's USB port." + }, + "twoFactorYubikeySelectKey": { + "message": "Select the first empty YubiKey input field below." + }, + "twoFactorYubikeyTouchButton": { + "message": "Touch the YubiKey's button." + }, + "twoFactorYubikeySaveForm": { + "message": "Save the form." + }, + "twoFactorYubikeyWarning": { + "message": "Due to platform limitations, YubiKeys cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when YubiKeys cannot be used. Supported platforms:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile apps on a device with NFC capabilities or a data port that can accept your YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC Support" + }, + "twoFactorYubikeySupportsNfc": { + "message": "One of my keys supports NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "If one of your YubiKeys supports NFC (such as a YubiKey NEO), you will be prompted on mobile devices whenever NFC availability is detected." + }, + "yubikeysUpdated": { + "message": "YubiKeys updated" + }, + "disableAllKeys": { + "message": "Disable All Keys" + }, + "twoFactorDuoDesc": { + "message": "Enter the Bitwarden application information from your Duo Admin panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration Key" + }, + "twoFactorDuoSecretKey": { + "message": "Secret Key" + }, + "twoFactorDuoApiHostname": { + "message": "API Hostname" + }, + "twoFactorEmailDesc": { + "message": "Follow these steps to set up two-step login with email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enter the email that you wish to receive verification codes" + }, + "twoFactorEmailEnterCode": { + "message": "Enter the resulting 6 digit verification code from the email" + }, + "sendEmail": { + "message": "Send Email" + }, + "twoFactorU2fAdd": { + "message": "Add a FIDO U2F security key to your account" + }, + "removeU2fConfirmation": { + "message": "Are you sure you want to remove this security key?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Read Key" + }, + "keyCompromised": { + "message": "Key is compromised." + }, + "twoFactorU2fGiveName": { + "message": "Give the security key a friendly name to identify it." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Plug the security key into your computer's USB port and click the \"Read Key\" button." + }, + "twoFactorU2fTouchButton": { + "message": "If the security key has a button, touch it." + }, + "twoFactorU2fSaveForm": { + "message": "Save the form." + }, + "twoFactorU2fWarning": { + "message": "Due to platform limitations, FIDO U2F cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when FIDO U2F cannot be used. Supported platforms:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorU2fWaiting": { + "message": "Waiting for you to touch the button on your security key" + }, + "twoFactorU2fClickSave": { + "message": "Click the \"Save\" button below to enable this security key for two-step login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Your Bitwarden two-step login recovery code" + }, + "twoFactorRecoveryNoCode": { + "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + }, + "printCode": { + "message": "Print Code", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Reports" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Unsecure Websites" + }, + "unsecuredWebsitesReportDesc": { + "message": "URLs that start with http:// don’t use the best available encryption. Change the Login URIs for these accounts to https:// for safer browsing." + }, + "unsecuredWebsitesFound": { + "message": "Unsecured Websites Found" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Inactive Two-step Login" + }, + "inactive2faReportDesc": { + "message": "Two-step Login adds a layer of protection to your accounts. Turn on Two-Step Login using Bitwarden Authenticator for these accounts or use an alternative method." + }, + "inactive2faFound": { + "message": "Logins Without 2FA Found" + }, + "inactive2faFoundDesc": { + "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to 2fa.directory). To further protect these accounts, you should enable two-factor authentication.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No websites were found in your vault with a missing two-factor authentication configuration." + }, + "instructions": { + "message": "Instructions" + }, + "exposedPasswordsReport": { + "message": "Exposed Passwords" + }, + "exposedPasswordsReportDesc": { + "message": "Passwords exposed in a data breach are easy targets for attackers. Change these passwords to prevent potential break-ins." + }, + "exposedPasswordsFound": { + "message": "Exposed Passwords Found" + }, + "exposedPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No items in your vault have passwords that have been exposed in known data breaches." + }, + "checkExposedPasswords": { + "message": "Check Exposed Passwords" + }, + "exposedXTimes": { + "message": "Exposed $COUNT$ time(s)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Weak Passwords" + }, + "weakPasswordsReportDesc": { + "message": "Weak passwords can be easily guessed by attackers. Change these passwords to strong ones using the Password Generator." + }, + "weakPasswordsFound": { + "message": "Weak Passwords Found" + }, + "weakPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "No items in your vault have weak passwords." + }, + "reusedPasswordsReport": { + "message": "Reused Passwords" + }, + "reusedPasswordsReportDesc": { + "message": "Reusing passwords makes it easier for attackers to break into multiple accounts. Change these passwords so that each is unique." + }, + "reusedPasswordsFound": { + "message": "Reused Passwords Found" + }, + "reusedPasswordsFoundDesc": { + "message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "No logins in your vault have passwords that are being reused." + }, + "reusedXTimes": { + "message": "Reused $COUNT$ times", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Data Breach" + }, + "breachDesc": { + "message": "Breached accounts can expose your personal information. Secure breached accounts by enabling 2FA or creating a stronger password." + }, + "breachCheckUsernameEmail": { + "message": "Check any usernames or email addresses that you use." + }, + "checkBreaches": { + "message": "Check Breaches" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ was not found in any known data breaches.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Good News", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Breached Accounts Found" + }, + "compromisedData": { + "message": "Compromised data" + }, + "website": { + "message": "Website" + }, + "affectedUsers": { + "message": "Affected Users" + }, + "breachOccurred": { + "message": "Breach Occurred" + }, + "breachReported": { + "message": "Breach Reported" + }, + "reportError": { + "message": "An error occurred trying to load the report. Try again" + }, + "billing": { + "message": "Billing" + }, + "accountCredit": { + "message": "Account Credit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Account Balance", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Add Credit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Amount", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Added credit will appear on your account after the payment has been fully processed. Some payment methods are delayed and can take longer to process than others." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + }, + "goPremium": { + "message": "Go Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "You've upgraded to premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Upgrade your account to a premium membership and unlock some great additional features." + }, + "premiumSignUpStorage": { + "message": "1 GB encrypted storage for file attachments." + }, + "premiumSignUpTwoStep": { + "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + }, + "premiumSignUpTotp": { + "message": "TOTP verification code (2FA) generator for logins in your vault." + }, + "premiumSignUpSupport": { + "message": "Priority customer support." + }, + "premiumSignUpFuture": { + "message": "All future premium features. More coming soon!" + }, + "premiumPrice": { + "message": "All for just $PRICE$ /year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Addons" + }, + "premiumAccess": { + "message": "Premium Access" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organization for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Additional Storage (GB)" + }, + "additionalStorageGbDesc": { + "message": "# of additional GB" + }, + "additionalStorageIntervalDesc": { + "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Summary" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "year" + }, + "month": { + "message": "month" + }, + "monthAbbr": { + "message": "mo.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Your payment method will be charged immediately and then on a recurring basis each year. You may cancel at any time." + }, + "paymentCharged": { + "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Your plan comes with a free 7 day trial. Your payment method will not be charged until the trial has ended. You may cancel at any time." + }, + "paymentInformation": { + "message": "Payment Information" + }, + "billingInformation": { + "message": "Billing Information" + }, + "creditCard": { + "message": "Credit Card" + }, + "paypalClickSubmit": { + "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + }, + "cancelSubscription": { + "message": "Cancel Subscription" + }, + "subscriptionCanceled": { + "message": "The subscription has been canceled." + }, + "pendingCancellation": { + "message": "Pending Cancellation" + }, + "subscriptionPendingCanceled": { + "message": "The subscription has been marked for cancellation at the end of the current billing period." + }, + "reinstateSubscription": { + "message": "Reinstate Subscription" + }, + "reinstateConfirmation": { + "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + }, + "reinstated": { + "message": "The subscription has been reinstated." + }, + "cancelConfirmation": { + "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + }, + "canceledSubscription": { + "message": "The subscription has been canceled." + }, + "neverExpires": { + "message": "Never Expires" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Next Charge" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "Download License" + }, + "updateLicense": { + "message": "Update License" + }, + "updatedLicense": { + "message": "Updated license" + }, + "manageSubscription": { + "message": "Manage Subscription" + }, + "storage": { + "message": "Storage" + }, + "addStorage": { + "message": "Add Storage" + }, + "removeStorage": { + "message": "Remove Storage" + }, + "subscriptionStorage": { + "message": "Your subscription has a total of $MAX_STORAGE$ GB of encrypted file storage. You are currently using $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Payment Method" + }, + "noPaymentMethod": { + "message": "No payment method on file." + }, + "addPaymentMethod": { + "message": "Add Payment Method" + }, + "changePaymentMethod": { + "message": "Change Payment Method" + }, + "invoices": { + "message": "Invoices" + }, + "noInvoices": { + "message": "No invoices." + }, + "paid": { + "message": "Paid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Unpaid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transactions", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "No transactions." + }, + "chargeNoun": { + "message": "Charge", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Refund", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Any charges will appear on your statement as $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB of Storage To Add" + }, + "gbStorageRemove": { + "message": "GB of Storage To Remove" + }, + "storageAddNote": { + "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "storageRemoveNote": { + "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedStorage": { + "message": "Adjusted $AMOUNT$ GB of storage.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contact Customer Support" + }, + "updatedPaymentMethod": { + "message": "Updated payment method." + }, + "purchasePremium": { + "message": "Purchase Premium" + }, + "licenseFile": { + "message": "License File" + }, + "licenseFileDesc": { + "message": "Your license file will be named something like $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "To upgrade your account to a premium membership you need to upload a valid license file." + }, + "uploadLicenseFileOrg": { + "message": "To create an on-premises hosted organization you need to upload a valid license file." + }, + "accountEmailMustBeVerified": { + "message": "Your account's email address must be verified." + }, + "newOrganizationDesc": { + "message": "Organizations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company." + }, + "generalInformation": { + "message": "General Information" + }, + "organizationName": { + "message": "Organization Name" + }, + "accountOwnedBusiness": { + "message": "This account is owned by a business." + }, + "billingEmail": { + "message": "Billing Email" + }, + "businessName": { + "message": "Business Name" + }, + "chooseYourPlan": { + "message": "Choose Your Plan" + }, + "users": { + "message": "Users" + }, + "userSeats": { + "message": "User Seats" + }, + "additionalUserSeats": { + "message": "Additional User Seats" + }, + "userSeatsDesc": { + "message": "# of user seats" + }, + "userSeatsAdditionalDesc": { + "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "How many user seats do you need? You can also add additional seats later if needed." + }, + "planNameFree": { + "message": "Free", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing or personal users to share with $COUNT$ other user.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Families" + }, + "planDescFamilies": { + "message": "For personal use, to share with family & friends." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "For businesses and other team organizations." + }, + "planNameEnterprise": { + "message": "Enterprise" + }, + "planDescEnterprise": { + "message": "For businesses and other large organizations." + }, + "freeForever": { + "message": "Free Forever" + }, + "includesXUsers": { + "message": "includes $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Additional Users" + }, + "costPerUser": { + "message": "$COST$ per user", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limited to $COUNT$ users (including you)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limited to $COUNT$ collections", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Add and share with up to $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Add and share with unlimited users" + }, + "createUnlimitedCollections": { + "message": "Create unlimited Collections" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ encrypted file storage", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "On-premise hosting (optional)" + }, + "usersGetPremium": { + "message": "Users get access to Premium Features" + }, + "controlAccessWithGroups": { + "message": "Control user access with Groups" + }, + "syncUsersFromDirectory": { + "message": "Sync your users and Groups from a directory" + }, + "trackAuditLogs": { + "message": "Track user actions with audit logs" + }, + "enforce2faDuo": { + "message": "Enforce 2FA with Duo" + }, + "priorityCustomerSupport": { + "message": "Priority customer support" + }, + "xDayFreeTrial": { + "message": "$COUNT$ day free trial, cancel anytime", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Monthly" + }, + "annually": { + "message": "Annually" + }, + "basePrice": { + "message": "Base Price" + }, + "organizationCreated": { + "message": "Organization Created" + }, + "organizationReadyToGo": { + "message": "Your new organization is ready to go!" + }, + "organizationUpgraded": { + "message": "Your organization has been upgraded." + }, + "leave": { + "message": "Leave" + }, + "leaveOrganizationConfirmation": { + "message": "Are you sure you want to leave this organization?" + }, + "leftOrganization": { + "message": "You have left the organization." + }, + "defaultCollection": { + "message": "Default Collection" + }, + "getHelp": { + "message": "Get Help" + }, + "getApps": { + "message": "Get the Apps" + }, + "loggedInAs": { + "message": "Logged in as" + }, + "eventLogs": { + "message": "Event Logs" + }, + "people": { + "message": "People" + }, + "policies": { + "message": "Policies" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Edit Policy" + }, + "groups": { + "message": "Groups" + }, + "newGroup": { + "message": "New Group" + }, + "addGroup": { + "message": "Add Group" + }, + "editGroup": { + "message": "Edit Group" + }, + "deleteGroupConfirmation": { + "message": "Are you sure you want to delete this group?" + }, + "removeUserConfirmation": { + "message": "Are you sure you want to remove this user?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "External Id" + }, + "externalIdDesc": { + "message": "The external id can be used as a reference or to link this resource to an external system such as a user directory." + }, + "accessControl": { + "message": "Access Control" + }, + "groupAccessAllItems": { + "message": "This group can access and modify all items." + }, + "groupAccessSelectedCollections": { + "message": "This group can access only the selected collections." + }, + "readOnly": { + "message": "Read Only" + }, + "newCollection": { + "message": "New Collection" + }, + "addCollection": { + "message": "Add Collection" + }, + "editCollection": { + "message": "Edit Collection" + }, + "deleteCollectionConfirmation": { + "message": "Are you sure you want to delete this collection?" + }, + "editUser": { + "message": "Edit User" + }, + "inviteUser": { + "message": "Invite User" + }, + "inviteUserDesc": { + "message": "Invite a new user to your organization by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "inviteMultipleEmailDesc": { + "message": "You can invite up to $COUNT$ users at a time by comma separating a list of email addresses.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "This user is using two-step login to protect their account." + }, + "userAccessAllItems": { + "message": "This user can access and modify all items." + }, + "userAccessSelectedCollections": { + "message": "This user can access only the selected collections." + }, + "search": { + "message": "Search" + }, + "invited": { + "message": "Invited" + }, + "accepted": { + "message": "Accepted" + }, + "confirmed": { + "message": "Confirmed" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Owner" + }, + "ownerDesc": { + "message": "The highest access user that can manage all aspects of your organization." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admins can access and manage all items, collections and users in your organization." + }, + "user": { + "message": "User" + }, + "userDesc": { + "message": "A regular user with access to assigned collections in your organization." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managers can access and manage assigned collections in your organization." + }, + "all": { + "message": "All" + }, + "refresh": { + "message": "Refresh" + }, + "timestamp": { + "message": "Timestamp" + }, + "event": { + "message": "Event" + }, + "unknown": { + "message": "Unknown" + }, + "loadMore": { + "message": "Load More" + }, + "mobile": { + "message": "Mobile", + "description": "Mobile app" + }, + "extension": { + "message": "Extension", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Web Vault" + }, + "loggedIn": { + "message": "Logged in." + }, + "changedPassword": { + "message": "Changed account password." + }, + "enabledUpdated2fa": { + "message": "Enabled/updated two-step login." + }, + "disabled2fa": { + "message": "Disabled two-step login." + }, + "recovered2fa": { + "message": "Recovered account from two-step login." + }, + "failedLogin": { + "message": "Login attempt failed with incorrect password." + }, + "failedLogin2fa": { + "message": "Login attempt failed with incorrect two-step login." + }, + "exportedVault": { + "message": "Exported vault." + }, + "exportedOrganizationVault": { + "message": "Exported organization vault." + }, + "editedOrgSettings": { + "message": "Edited organization settings." + }, + "createdItemId": { + "message": "Created item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Edited item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Sent item $ID$ to trash.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Viewed item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Viewed password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Viewed hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Viewed security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Copied password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Copied hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Copied security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Auto-filled item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Created collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Edited collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Deleted collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Edited policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Created group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Edited group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Deleted group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Removed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Created attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Deleted attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Edited collections for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Invited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Confirmed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Edited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Edited groups for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Device" + }, + "view": { + "message": "View" + }, + "invalidDateRange": { + "message": "Invalid date range." + }, + "errorOccurred": { + "message": "An error has occurred." + }, + "userAccess": { + "message": "User Access" + }, + "userType": { + "message": "User Type" + }, + "groupAccess": { + "message": "Group Access" + }, + "groupAccessUserDesc": { + "message": "Edit the groups that this user belongs to." + }, + "invitedUsers": { + "message": "Invited user(s)." + }, + "resendInvitation": { + "message": "Resend Invitation" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ has been reinvited.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirm" + }, + "confirmUser": { + "message": "Confirm User" + }, + "hasBeenConfirmed": { + "message": "$USER$ has been confirmed.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirm Users" + }, + "usersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organization until they are confirmed." + }, + "startDate": { + "message": "Start Date" + }, + "endDate": { + "message": "End Date" + }, + "verifyEmail": { + "message": "Verify Email" + }, + "verifyEmailDesc": { + "message": "Verify your account's email address to unlock access to all features." + }, + "verifyEmailFirst": { + "message": "Your account's email address first must be verified." + }, + "checkInboxForVerification": { + "message": "Check your email inbox for a verification link." + }, + "emailVerified": { + "message": "Your email has been verified." + }, + "emailVerifiedFailed": { + "message": "Unable to verify your email. Try sending a new verification email." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "Update Browser" + }, + "updateBrowserDesc": { + "message": "You are using an unsupported web browser. The web vault may not function properly." + }, + "joinOrganization": { + "message": "Join Organization" + }, + "joinOrganizationDesc": { + "message": "You've been invited to join the organization listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "inviteAccepted": { + "message": "Invitation Accepted" + }, + "inviteAcceptedDesc": { + "message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens." + }, + "inviteAcceptFailed": { + "message": "Unable to accept invitation. Ask an organization admin to send a new invitation." + }, + "inviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Remember email" + }, + "recoverAccountTwoStepDesc": { + "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + }, + "recoverAccountTwoStep": { + "message": "Recover Account Two-Step Login" + }, + "twoStepRecoverDisabled": { + "message": "Two-step login has been disabled on your account." + }, + "learnMore": { + "message": "Learn more" + }, + "deleteRecoverDesc": { + "message": "Enter your email address below to recover and delete your account." + }, + "deleteRecoverEmailSent": { + "message": "If your account exists, we've sent you an email with further instructions." + }, + "deleteRecoverConfirmDesc": { + "message": "You have requested to delete your Bitwarden account. Click the button below to confirm." + }, + "myOrganization": { + "message": "My Organization" + }, + "deleteOrganization": { + "message": "Delete Organization" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organization Deleted" + }, + "organizationDeletedDesc": { + "message": "The organization and all associated data has been deleted." + }, + "organizationUpdated": { + "message": "Organization updated" + }, + "taxInformation": { + "message": "Tax Information" + }, + "taxInformationDesc": { + "message": "For customers within the US, ZIP code is required to satisfy sales tax requirements, for other countries you may optionally provide a tax identification number (VAT/GST) and/or address to appear on your invoices." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Upgrade Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade your account to another plan by providing the information below. Please ensure that you have an active payment method added to the account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Invoice #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "View Invoice" + }, + "downloadInvoice": { + "message": "Download Invoice" + }, + "verifyBankAccount": { + "message": "Verify Bank Account" + }, + "verifyBankAccountDesc": { + "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." + }, + "verifyBankAccountInitialDesc": { + "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organization's billing page to verify the bank account." + }, + "verifyBankAccountFailureWarning": { + "message": "Failure to verify the bank account will result in a missed payment and your subscription being disabled." + }, + "verifiedBankAccount": { + "message": "Bank account has been verified." + }, + "bankAccount": { + "message": "Bank Account" + }, + "amountX": { + "message": "Amount $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Account Number" + }, + "accountHolderName": { + "message": "Account Holder Name" + }, + "bankAccountType": { + "message": "Account Type" + }, + "bankAccountTypeCompany": { + "message": "Company (Business)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Personal)" + }, + "enterInstallationId": { + "message": "Enter your installation id" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Add Seats", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remove Seats", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Your subscription allows for a total of $COUNT$ users.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seats To Add" + }, + "seatsToRemove": { + "message": "Seats To Remove" + }, + "seatsAddNote": { + "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "seatsRemoveNote": { + "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedSeats": { + "message": "Adjusted $AMOUNT$ user seats.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Key Updated" + }, + "updateKeyTitle": { + "message": "Update Key" + }, + "updateEncryptionKey": { + "message": "Update Encryption Key" + }, + "updateEncryptionKeyShortDesc": { + "message": "You are currently using an outdated encryption scheme." + }, + "updateEncryptionKeyDesc": { + "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, however, it may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "Subscription" + }, + "loading": { + "message": "Loading" + }, + "upgrade": { + "message": "Upgrade" + }, + "upgradeOrganization": { + "message": "Upgrade Organization" + }, + "upgradeOrganizationDesc": { + "message": "This feature is not available for free organizations. Switch to a paid plan to unlock more features." + }, + "createOrganizationStep1": { + "message": "Create Organization: Step 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Before creating your organization, you first need to create a free personal account." + }, + "refunded": { + "message": "Refunded" + }, + "nothingSelected": { + "message": "You have not selected anything." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." + }, + "termsOfService": { + "message": "Terms of Service" + }, + "privacyPolicy": { + "message": "Privacy Policy" + }, + "filters": { + "message": "Filters" + }, + "vaultTimeout": { + "message": "Vault Timeout" + }, + "vaultTimeoutDesc": { + "message": "Choose when your vault will timeout and perform the selected action." + }, + "oneMinute": { + "message": "1 minute" + }, + "fiveMinutes": { + "message": "5 minutes" + }, + "fifteenMinutes": { + "message": "15 minutes" + }, + "thirtyMinutes": { + "message": "30 minutes" + }, + "oneHour": { + "message": "1 hour" + }, + "fourHours": { + "message": "4 hours" + }, + "onRefresh": { + "message": "On Browser Refresh" + }, + "dateUpdated": { + "message": "Updated", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Password Updated", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organization is disabled." + }, + "licenseIsExpired": { + "message": "License is expired." + }, + "updatedUsers": { + "message": "Updated users" + }, + "selected": { + "message": "Selected" + }, + "ownership": { + "message": "Ownership" + }, + "whoOwnsThisItem": { + "message": "Who owns this item?" + }, + "strong": { + "message": "Strong", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Good", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Weak", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Very Weak", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Weak Master Password" + }, + "weakMasterPasswordDesc": { + "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + }, + "rotateAccountEncKey": { + "message": "Also rotate my account's encryption key" + }, + "rotateEncKeyTitle": { + "message": "Rotate Encryption Key" + }, + "rotateEncKeyConfirmation": { + "message": "Are you sure you want to rotate your account's encryption key?" + }, + "attachmentsNeedFix": { + "message": "This item has old file attachments that need to be fixed." + }, + "attachmentFixDesc": { + "message": "This is an old file attachment the needs to be fixed. Click to learn more." + }, + "fix": { + "message": "Fix", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key." + }, + "yourAccountsFingerprint": { + "message": "Your account's fingerprint phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Never prompt to verify fingerprint phrases for invited users (Not recommended)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Free", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API Key" + }, + "apiKeyDesc": { + "message": "Your API key can be used to authenticate to the Bitwarden public API." + }, + "apiKeyRotateDesc": { + "message": "Rotating the API key will invalidate the previous key. You can rotate your API key if you believe that the current key is no longer safe to use." + }, + "apiKeyWarning": { + "message": "Your API key has full access to the organization. It should be kept secret." + }, + "userApiKeyDesc": { + "message": "Your API key can be used to authenticate in the Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 Client Credentials", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "View API Key" + }, + "rotateApiKey": { + "message": "Rotate API Key" + }, + "selectOneCollection": { + "message": "You must select at least one collection." + }, + "couldNotChargeCardPayInvoice": { + "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + }, + "inAppPurchase": { + "message": "In-app Purchase" + }, + "cannotPerformInAppPurchase": { + "message": "You cannot perform this action while using an in-app purchase payment method." + }, + "manageSubscriptionFromStore": { + "message": "You must manage your subscription from the store where your in-app purchase was made." + }, + "minLength": { + "message": "Minimum Length" + }, + "clone": { + "message": "Clone" + }, + "masterPassPolicyDesc": { + "message": "Set minimum requirements for master password strength." + }, + "twoStepLoginPolicyDesc": { + "message": "Require users to set up two-step login on their personal accounts." + }, + "twoStepLoginPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and do not have two-step login enabled for their personal account will be removed from the organization and will receive an email notifying them about the change." + }, + "twoStepLoginPolicyUserWarning": { + "message": "You are a member of an organization that requires two-step login to be enabled on your user account. If you disable all two-step login providers you will be automatically removed from these organizations." + }, + "passwordGeneratorPolicyDesc": { + "message": "Set minimum requirements for password generator configuration." + }, + "passwordGeneratorPolicyInEffect": { + "message": "One or more organization policies are affecting your generator settings." + }, + "masterPasswordPolicyInEffect": { + "message": "One or more organization policies require your master password to meet the following requirements:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum complexity score of $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum length of $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contain one or more uppercase characters" + }, + "policyInEffectLowercase": { + "message": "Contain one or more lowercase characters" + }, + "policyInEffectNumbers": { + "message": "Contain one or more numbers" + }, + "policyInEffectSpecial": { + "message": "Contain one or more of the following special characters $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Your new master password does not meet the policy requirements." + }, + "minimumNumberOfWords": { + "message": "Minimum Number of Words" + }, + "defaultType": { + "message": "Default Type" + }, + "userPreference": { + "message": "User Preference" + }, + "vaultTimeoutAction": { + "message": "Vault Timeout Action" + }, + "vaultTimeoutActionLockDesc": { + "message": "A locked vault requires that you re-enter your master password to access it again." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "A logged out vault requires that you re-authenticate to access it again." + }, + "lock": { + "message": "Lock", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Trash", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Search Trash" + }, + "permanentlyDelete": { + "message": "Permanently Delete" + }, + "permanentlyDeleteSelected": { + "message": "Permanently Delete Selected" + }, + "permanentlyDeleteItem": { + "message": "Permanently Delete Item" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Are you sure you want to permanently delete this item?" + }, + "permanentlyDeletedItem": { + "message": "Permanently Deleted item" + }, + "permanentlyDeletedItems": { + "message": "Permanently Deleted items" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Permanently Deleted item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restore" + }, + "restoreSelected": { + "message": "Restore Selected" + }, + "restoreItem": { + "message": "Restore Item" + }, + "restoredItem": { + "message": "Restored Item" + }, + "restoredItems": { + "message": "Restored Items" + }, + "restoreItemConfirmation": { + "message": "Are you sure you want to restore this item?" + }, + "restoreItems": { + "message": "Restore items" + }, + "restoreSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Restored item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout Action Confirmation" + }, + "hidePasswords": { + "message": "Hide Passwords" + }, + "countryPostalCodeRequiredDesc": { + "message": "We require this information for calculating sales tax and financial reporting only." + }, + "includeVAT": { + "message": "Include VAT/GST Information (optional)" + }, + "taxIdNumber": { + "message": "VAT/GST Tax ID" + }, + "taxInfoUpdated": { + "message": "Tax information updated." + }, + "setMasterPassword": { + "message": "Set Master Password" + }, + "ssoCompleteRegistration": { + "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + }, + "identifier": { + "message": "Identifier" + }, + "organizationIdentifier": { + "message": "Organization Identifier" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Log in using your organization's single sign-on portal. Please enter your organization's identifier to begin." + }, + "enterpriseSingleSignOn": { + "message": "Enterprise Single Sign-On" + }, + "ssoHandOff": { + "message": "You may now close this tab and continue in the extension." + }, + "includeAllTeamsFeatures": { + "message": "All Teams features, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO Authentication via SAML2.0 and OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Enterprise Policies" + }, + "ssoValidationFailed": { + "message": "SSO Validation Failed" + }, + "ssoIdentifierRequired": { + "message": "Organization Identifier is required." + }, + "unlinkSso": { + "message": "Unlink SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Link SSO" + }, + "singleOrg": { + "message": "Single Organization" + }, + "singleOrgDesc": { + "message": "Restrict users from being able to join any other organizations." + }, + "singleOrgBlockCreateMessage": { + "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + }, + "singleOrgPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + }, + "requireSso": { + "message": "Single Sign-On Authentication" + }, + "requireSsoPolicyDesc": { + "message": "Require users to log in with the Enterprise Single Sign-On method." + }, + "prerequisite": { + "message": "Prerequisite" + }, + "requireSsoPolicyReq": { + "message": "The Single Organization enterprise policy must be enabled before activating this policy." + }, + "requireSsoPolicyReqError": { + "message": "Single Organization policy not enabled." + }, + "requireSsoExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "sendTypeFile": { + "message": "File" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Create New Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edit Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Created Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Edited Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Deleted Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Delete Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Are you sure you want to delete this Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "What type of Send is this?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Deletion Date" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Expiration Date" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximum Access Count" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Current Access Count" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Disabled" + }, + "sendLink": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copy Send Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remove Password" + }, + "removedPassword": { + "message": "Removed Password" + }, + "removePasswordConfirmation": { + "message": "Are you sure you want to remove the password?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "All Sends" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "expired": { + "message": "Expired" + }, + "searchSends": { + "message": "Search Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "This Send is protected with a password. Please type the password below to continue.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Download File" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "There are no Sends to list.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Emergency Access" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Request Access" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approve" + }, + "reject": { + "message": "Reject" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Disable Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "Estimated tax" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Manage All Collections" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Manage Groups" + }, + "managePolicies": { + "message": "Manage Policies" + }, + "manageSso": { + "message": "Manage SSO" + }, + "manageUsers": { + "message": "Manage Users" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organization users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Learn more about", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Learn more", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "try it now", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "sign up", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "to try it today.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organization policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organization administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/hr/messages.json b/apps/web/src/locales/hr/messages.json new file mode 100644 index 0000000000..78332f502f --- /dev/null +++ b/apps/web/src/locales/hr/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Web trezor", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Koja je ovo vrsta stavke?" + }, + "name": { + "message": "Naziv" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Novi URI" + }, + "username": { + "message": "Korisničko ime" + }, + "password": { + "message": "Lozinka" + }, + "newPassword": { + "message": "Nova lozinka" + }, + "passphrase": { + "message": "Frazna lozinka" + }, + "notes": { + "message": "Bilješke" + }, + "customFields": { + "message": "Prilagođena polja" + }, + "cardholderName": { + "message": "Vlasnik kartice" + }, + "number": { + "message": "Broj" + }, + "brand": { + "message": "Vrsta kartice" + }, + "expiration": { + "message": "Istek" + }, + "securityCode": { + "message": "Kontrolni broj" + }, + "identityName": { + "message": "Ime identiteta" + }, + "company": { + "message": "Tvrtka" + }, + "ssn": { + "message": "Broj socijalnog osiguranja" + }, + "passportNumber": { + "message": "Broj putovnice" + }, + "licenseNumber": { + "message": "Broj vozačke dozvole" + }, + "email": { + "message": "E-pošta" + }, + "phone": { + "message": "Telefon" + }, + "january": { + "message": "siječanj" + }, + "february": { + "message": "veljača" + }, + "march": { + "message": "ožujak" + }, + "april": { + "message": "travanj" + }, + "may": { + "message": "svibanj" + }, + "june": { + "message": "lipanj" + }, + "july": { + "message": "srpanj" + }, + "august": { + "message": "kolovoz" + }, + "september": { + "message": "rujan" + }, + "october": { + "message": "listopad" + }, + "november": { + "message": "studeni" + }, + "december": { + "message": "prosinac" + }, + "title": { + "message": "Titula" + }, + "mr": { + "message": "g." + }, + "mrs": { + "message": "gđa." + }, + "ms": { + "message": "gđica." + }, + "dr": { + "message": "dr." + }, + "expirationMonth": { + "message": "Mjesec isteka" + }, + "expirationYear": { + "message": "Godina isteka" + }, + "authenticatorKeyTotp": { + "message": "Ključ autentifikatora (TOTP)" + }, + "folder": { + "message": "Mapa" + }, + "newCustomField": { + "message": "Novo prilagođeno polje" + }, + "value": { + "message": "Vrijednost" + }, + "dragToSort": { + "message": "Povuci za sortiranje" + }, + "cfTypeText": { + "message": "Tekst" + }, + "cfTypeHidden": { + "message": "Skriveno" + }, + "cfTypeBoolean": { + "message": "Boolean" + }, + "cfTypeLinked": { + "message": "Povezano", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Ukloni" + }, + "unassigned": { + "message": "Nedodijeljeno" + }, + "noneFolder": { + "message": "Nema mape", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Dodaj mapu" + }, + "editFolder": { + "message": "Uredi mapu" + }, + "baseDomain": { + "message": "Primarna domena", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Točno" + }, + "startsWith": { + "message": "Počinje s" + }, + "regEx": { + "message": "Regularni izraz", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Otkrivanje podudaranja", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Zadano otkrivanje podudaranja", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Nikad" + }, + "toggleVisibility": { + "message": "Prikaži/Sakrij" + }, + "toggleCollapse": { + "message": "Sažmi/Proširi", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generiraj lozinku" + }, + "checkPassword": { + "message": "Provjeri je li lozinka bila ukradena." + }, + "passwordExposed": { + "message": "Ova lozinka je otkrivena $VALUE$ put(a) prilikom krađe podataka. Trebalo bi ju promijeniti.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Lozinka nije pronađena niti u jednoj krađi podataka. Sigurna je za korištenje." + }, + "save": { + "message": "Spremi" + }, + "cancel": { + "message": "Odustani" + }, + "canceled": { + "message": "Otkazano" + }, + "close": { + "message": "Zatvori" + }, + "delete": { + "message": "Izbriši" + }, + "favorite": { + "message": "Favorit" + }, + "unfavorite": { + "message": "Ukloni iz favorita" + }, + "edit": { + "message": "Uredi" + }, + "searchCollection": { + "message": "Pretraživanje zbirke" + }, + "searchFolder": { + "message": "Pretraživanje mape" + }, + "searchFavorites": { + "message": "Pretraživanje favorita" + }, + "searchType": { + "message": "Tip pretrage", + "description": "Search item type" + }, + "searchVault": { + "message": "Pretraživanje trezora" + }, + "allItems": { + "message": "Sve stavke" + }, + "favorites": { + "message": "Favoriti" + }, + "types": { + "message": "Vrste" + }, + "typeLogin": { + "message": "Prijava" + }, + "typeCard": { + "message": "Platna kartica" + }, + "typeIdentity": { + "message": "Identitet" + }, + "typeSecureNote": { + "message": "Sigurna bilješka" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "Mape" + }, + "collections": { + "message": "Zbirke" + }, + "firstName": { + "message": "Ime" + }, + "middleName": { + "message": "Srednje ime" + }, + "lastName": { + "message": "Prezime" + }, + "fullName": { + "message": "Ime i prezime" + }, + "address1": { + "message": "Adresa 1" + }, + "address2": { + "message": "Adresa 2" + }, + "address3": { + "message": "Adresa 3" + }, + "cityTown": { + "message": "Grad / Mjesto" + }, + "stateProvince": { + "message": "State / Province" + }, + "zipPostalCode": { + "message": "Poštanski broj" + }, + "country": { + "message": "Zemlja" + }, + "shared": { + "message": "Dijeljeno" + }, + "attachments": { + "message": "Privitci" + }, + "select": { + "message": "Odaberi" + }, + "addItem": { + "message": "Dodaj stavku" + }, + "editItem": { + "message": "Uredi stavku" + }, + "viewItem": { + "message": "Prikaz stavke" + }, + "ex": { + "message": "npr.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Ostalo" + }, + "share": { + "message": "Podijeli" + }, + "moveToOrganization": { + "message": "Premjesti u organizaciju" + }, + "valueCopied": { + "message": " kopirano", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Kopiraj vrijednost", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Kopiraj lozinku", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Kopiraj korisničko ime", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Kopiraj broj", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Kopiraj kontrolni broj", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Kopiraj URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Moj trezor" + }, + "vault": { + "message": "Trezor" + }, + "moveSelectedToOrg": { + "message": "Premjesti odabrano u Organizaciju" + }, + "deleteSelected": { + "message": "Obriši odabrano" + }, + "moveSelected": { + "message": "Premjesti odabrano" + }, + "selectAll": { + "message": "Odaberi sve" + }, + "unselectAll": { + "message": "Poništi odabir" + }, + "launch": { + "message": "Pokreni" + }, + "newAttachment": { + "message": "Dodaj novi privitak" + }, + "deletedAttachment": { + "message": "Izbrisani privitak" + }, + "deleteAttachmentConfirmation": { + "message": "Sigurno želiš izbrisati ovaj privitak?" + }, + "attachmentSaved": { + "message": "Privitak je spremljen." + }, + "file": { + "message": "Datoteka" + }, + "selectFile": { + "message": "Odaberi datoteku." + }, + "maxFileSize": { + "message": "Najveća veličina datoteke je 500 MB." + }, + "updateKey": { + "message": "Ne možeš koristiti ovu značajku prije nego ažuriraš ključ za šifriranje." + }, + "addedItem": { + "message": "Stavka dodana" + }, + "editedItem": { + "message": "Uređena stavka" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ premješteno u $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Odabrane stavke premještene u $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Izbriši stavku" + }, + "deleteFolder": { + "message": "Izbriši mapu" + }, + "deleteAttachment": { + "message": "Izbriši privitak" + }, + "deleteItemConfirmation": { + "message": "Želiš li zaista poslati u smeće?" + }, + "deletedItem": { + "message": "Stavka poslana u smeće" + }, + "deletedItems": { + "message": "Stavke poslane u smeće" + }, + "movedItems": { + "message": "Premještene stavke" + }, + "overwritePasswordConfirmation": { + "message": "Sigurno želiš prebrisati trenutnu lozinku?" + }, + "editedFolder": { + "message": "Uređena mapa" + }, + "addedFolder": { + "message": "Mapa dodana" + }, + "deleteFolderConfirmation": { + "message": "Sigurno želiš izbrisati ovu mapu?" + }, + "deletedFolder": { + "message": "Mapa izbrisana" + }, + "loggedOut": { + "message": "Odjavljen/a" + }, + "loginExpired": { + "message": "Sesija je istekla." + }, + "logOutConfirmation": { + "message": "Sigurno se želiš odjaviti?" + }, + "logOut": { + "message": "Odjavi se" + }, + "ok": { + "message": "U redu" + }, + "yes": { + "message": "Da" + }, + "no": { + "message": "Ne" + }, + "loginOrCreateNewAccount": { + "message": "Prijavi se ili stvori novi račun za pristup svojem sigurnom trezoru." + }, + "createAccount": { + "message": "Stvori račun" + }, + "logIn": { + "message": "Prijavi se" + }, + "submit": { + "message": "Pošalji" + }, + "emailAddressDesc": { + "message": "Upotrijebi svoju adresu e-pošte za prijavu." + }, + "yourName": { + "message": "Tvoje ime" + }, + "yourNameDesc": { + "message": "Kako da te zovemo?" + }, + "masterPass": { + "message": "Glavna lozinka" + }, + "masterPassDesc": { + "message": "Glavnu lozinku koristiš za pristup svom trezoru. Vrlo je važno da ne zaboraviš glavnu lozinku. Ne postoji način za oporavak lozinke u slučaju da ju zaboraviš." + }, + "masterPassHintDesc": { + "message": "Podsjetnik glavne lozinke ti može pomoći da se prisjetiš svoje lozinke ako ju zaboraviš." + }, + "reTypeMasterPass": { + "message": "Ponovno upiši glavnu lozinku" + }, + "masterPassHint": { + "message": "Podsjetnik glavne lozinke (neobavezno)" + }, + "masterPassHintLabel": { + "message": "Podsjetnik glavne lozinke" + }, + "settings": { + "message": "Postavke" + }, + "passwordHint": { + "message": "Podsjetnik za lozinku" + }, + "enterEmailToGetHint": { + "message": "Unesi adresu e-pošte svog računa za primitak podsjetnika glavne lozinke." + }, + "getMasterPasswordHint": { + "message": "Slanje podsjetnika glavne lozinke" + }, + "emailRequired": { + "message": "Adresa e-pošte je obavezna." + }, + "invalidEmail": { + "message": "Neispravna adresa e-pošte." + }, + "masterPassRequired": { + "message": "Potrebna je glavna lozinka." + }, + "masterPassLength": { + "message": "Glavna lozinka mora imati najmanje 8 znakova." + }, + "masterPassDoesntMatch": { + "message": "Potvrda glavne lozinke se ne podudara." + }, + "newAccountCreated": { + "message": "Tvoj novi račun je kreiran! Sada se možeš prijaviti." + }, + "masterPassSent": { + "message": "Poslali smo e-poštu s podsjetnikom glavne lozinke." + }, + "unexpectedError": { + "message": "Došlo je do neočekivane pogreške." + }, + "emailAddress": { + "message": "Adresa e-pošte" + }, + "yourVaultIsLocked": { + "message": "Tvoj trezor je zaključan. Potvrdi glavnu lozinku za nastavak." + }, + "unlock": { + "message": "Otključaj" + }, + "loggedInAsEmailOn": { + "message": "Prijavljen kao $EMAIL$ na $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Neispravna glavna lozinka" + }, + "lockNow": { + "message": "Zaključaj sada" + }, + "noItemsInList": { + "message": "Nema stavki za prikaz." + }, + "noCollectionsInList": { + "message": "Nema zbirki za prikaz." + }, + "noGroupsInList": { + "message": "Nema grupa za prikaz." + }, + "noUsersInList": { + "message": "Nema korisnika za prikaz." + }, + "noEventsInList": { + "message": "Nema događaja za prikaz." + }, + "newOrganization": { + "message": "Nova organizacija" + }, + "noOrganizationsList": { + "message": "Ne pripadaš niti jednoj organizaciji. Organizacije omogućuju sigurno dijeljenje stavki s drugim korisnicima." + }, + "versionNumber": { + "message": "Verzija $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Unesi 6-znamenkasti kontrolni kôd iz autentifikatorske aplikacije." + }, + "enterVerificationCodeEmail": { + "message": "Unesi 6-znamenkasti kontrolni kôd poslan e-poštom na $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "E-pošta za potvrdu poslana je na $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Zapamti me" + }, + "sendVerificationCodeEmailAgain": { + "message": "Ponovno slanje kontrolnog koda e-poštom" + }, + "useAnotherTwoStepMethod": { + "message": "Koristiti drugi način prijave u dva koraka" + }, + "insertYubiKey": { + "message": "Umetni svoj YubiKey u USB priključak računala, a zatim dodirni njegovu tipku." + }, + "insertU2f": { + "message": "Umetni svoj sigurnosni ključ u USB priključak računala. Ako ima tipku, dodirni ju." + }, + "loginUnavailable": { + "message": "Prijava nije dostupna" + }, + "noTwoStepProviders": { + "message": "Ovaj račun ima omogućenu prijavu u dva koraka, međutim ovaj web preglednik ne podržava niti jednog konfiguriranog pružatelja prijave u dva koraka." + }, + "noTwoStepProviders2": { + "message": "Koristi podržani web-preglednik (npr. Chrome) i/ili dodaj dodatne usluge koje su bolje podržane u web preglednicima (npr. aplikacija Autentifikator)." + }, + "twoStepOptions": { + "message": "Mogućnosti prijave u dva koraka" + }, + "recoveryCodeDesc": { + "message": "Izgubljen je pristup uređaju za dvostruku autentifikaciju? Koristi svoj kôd za oporavak za onemogućavanje svih pružatelja usluga dvostruke autentifikacije na tvojem računu." + }, + "recoveryCodeTitle": { + "message": "Kôd za oporavak" + }, + "authenticatorAppTitle": { + "message": "Autentifikatorska aplikacija" + }, + "authenticatorAppDesc": { + "message": "Koristi autentifikatorsku aplikaciju (npr. Authy ili Google Authentifikator) za generiranje kontrolnih kodova.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP sigurnosni ključ" + }, + "yubiKeyDesc": { + "message": "Koristi YubiKey za pristup svojem računu. Radi s YubiKey 4, 4 Nano, 4C i NEO uređajima." + }, + "duoDesc": { + "message": "Potvrdi s Duo Security pomoću aplikacije Duo Mobile, SMS-om, telefonskim pozivom ili U2F sigurnosnim ključem.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Potvrdi s Duo Security za svoju organizaciju pomoću aplikacije Duo Mobile, SMS-om, telefonskim pozivom ili U2F sigurnosnim ključem.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Koristi bilo koji FIDO U2F omogućen sigurnosni ključ za pristup svojem računu." + }, + "u2fTitle": { + "message": "FIDO U2F sigurnosni ključ" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Koristi WebAuthn sigurnosni ključ za pristup svojem računu." + }, + "webAuthnMigrated": { + "message": "(migrirano s FIDO)" + }, + "emailTitle": { + "message": "E-pošta" + }, + "emailDesc": { + "message": "Verifikacijski kodovi će biti poslani e-poštom." + }, + "continue": { + "message": "Nastavi" + }, + "organization": { + "message": "Organizacija" + }, + "organizations": { + "message": "Organizacije" + }, + "moveToOrgDesc": { + "message": "Odaberi organizaciju u koju želiš premjestiti ovu stavku. Premještanje prenosi vlasništvo stavke na organizaciju. Nakon premještanja više nećeš biti izravni vlasnik ove stavke." + }, + "moveManyToOrgDesc": { + "message": "Odaberi organizaciju u koju želiš premjestiti ovu stavku. Premještanje prenosi vlasništvo stavke na organizaciju. Nakon premještanja više nećeš biti izravni vlasnik ove stavke." + }, + "collectionsDesc": { + "message": "Uredi zbirke s kojima se ova stavka koristi. Samo korisnici organizacije s pristupom ovim zbirkama će ih moći vidjeti." + }, + "deleteSelectedItemsDesc": { + "message": "Odabrano je $COUNT$ stavke/i za brisanje. Sigurno želiš obrisati sve ove stavke?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Odaberi mapu u koju želiš premjestiti odabranih $COUNT$ stavke/i.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "$MOVEABLE_COUNT$ od $COUNT$ odabranih stavki može biti premješteno u Organiziaciju; $NONMOVEABLE_COUNT$ nije moguće premjestiti.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Kôd za provjeru (TOTP)" + }, + "copyVerificationCode": { + "message": "Kopiraj kôd za provjeru" + }, + "warning": { + "message": "Upozorenje" + }, + "confirmVaultExport": { + "message": "Potvrdi izvoz trezora" + }, + "exportWarningDesc": { + "message": "Ovaj izvoz sadrži podatke trezora u nešifriranom obliku! Izvezenu datoteku se ne bi smjelo pohranjivati ili slati putem nesigurnih kanala (npr. e-poštom). Izbriši ju odmah nakon završetka korištenja." + }, + "encExportKeyWarningDesc": { + "message": "Ovaj izvoz šifrira tvoje podatke koristeći ključ za šifriranje. Promijeniš li naknadno ključ za šifriranje, potrebno je ponovno napraviti izvoz jer nećeš moći dešifrirati ovu izvezenu datoteku." + }, + "encExportAccountWarningDesc": { + "message": "Ključ za šifriranje jedinstven je za svakog Bitwarden korisnika, kako bi se šifrirani izvoz mogao uvesti u drugi korisnički račun." + }, + "export": { + "message": "Izvoz" + }, + "exportVault": { + "message": "Izvezi trezor" + }, + "fileFormat": { + "message": "Format datoteke" + }, + "exportSuccess": { + "message": "Tvoji podaci iz trezora su izvezeni." + }, + "passwordGenerator": { + "message": "Generator lozinki" + }, + "minComplexityScore": { + "message": "Minimalna ocjena složenosti" + }, + "minNumbers": { + "message": "Najmanje brojeva" + }, + "minSpecial": { + "message": "Najmanje specijalnih", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Izbjegavaj dvosmislene znakove" + }, + "regeneratePassword": { + "message": "Ponovno generiraj lozinku" + }, + "length": { + "message": "Duljina" + }, + "numWords": { + "message": "Broj riječi" + }, + "wordSeparator": { + "message": "Razdjelitelj riječi" + }, + "capitalize": { + "message": "Prva slova velika", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Uključi broj" + }, + "passwordHistory": { + "message": "Povijest" + }, + "noPasswordsInList": { + "message": "Nema lozinki na popisu." + }, + "clear": { + "message": "Očisti", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Račun je ažuriran" + }, + "changeEmail": { + "message": "Promijeni e-poštu" + }, + "changeEmailTwoFactorWarning": { + "message": "Promijeniti ćeš adresu e-pošte računa. Ovo neće promijeniti adresu e-pošte za dvostruku autentifikaciju (ovo se može promijeniti u postavkama dvostruke autentifikacije)." + }, + "newEmail": { + "message": "Nova adresa e-pošte" + }, + "code": { + "message": "Kôd" + }, + "changeEmailDesc": { + "message": "Verifikacijski kôd je poslan na $EMAIL$. Provjeri poštu i unesi primljeni verifikacijski kôd za završetak promjene adrese e-pošte.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Ako nastaviš, biti će zatvorena trenutna sesija, što će zahtijevati ponovnu prijavu uklljučujući i dvostruku autentifikaciju, ako je aktivna. Aktivne sesije na drugim uređajima ostati će aktivne još jedan sat." + }, + "emailChanged": { + "message": "Adresa e-pošte je promijenjena" + }, + "logBackIn": { + "message": "Molimo, ponovno se prijavi." + }, + "logBackInOthersToo": { + "message": "Molimo, ponovno se prijavi. Ako koristiš druge aplikacije Bitwarden i u njima napravi odjavu/prijavu." + }, + "changeMasterPassword": { + "message": "Promjeni glavnu lozinku" + }, + "masterPasswordChanged": { + "message": "Glavna lozinka promijenjena" + }, + "currentMasterPass": { + "message": "Trenutna glavna lozinka" + }, + "newMasterPass": { + "message": "Nova glavna lozinka" + }, + "confirmNewMasterPass": { + "message": "Potvrdi novu glavnu lozinku" + }, + "encKeySettings": { + "message": "Postavke ključa za šifriranje" + }, + "kdfAlgorithm": { + "message": "KDF algoritam" + }, + "kdfIterations": { + "message": "KDF iteracija" + }, + "kdfIterationsDesc": { + "message": "Veće KDF iteracije mogu pomoći zaštititi tvoju glavnu lozinku kako ju napadač ne bi pogodio. Predlažemo vrijednost od $VALUE$ ili više.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Postavljanje previsoke KDF iteracije može rezultirati slabijom izvedbom prilikom otključavanja Bitwardena na uređajima sa sporijim CPU-om. Predlažemo da vrijednost povećavaš za $INCREMENT$ i isprobaš na svim svojim uređajima.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Promijeni KDF" + }, + "encKeySettingsChanged": { + "message": "Postavke ključa za šifriranje promijenjene" + }, + "dangerZone": { + "message": "Opasna zona" + }, + "dangerZoneDesc": { + "message": "Pažljivo, ove akcije su konačne i ne mogu se poništiti!" + }, + "deauthorizeSessions": { + "message": "Deautoriziraj sesije" + }, + "deauthorizeSessionsDesc": { + "message": "Sumnjaš da je na tvoj račun prijavljeno s nekog drugog uređaja? Deautoriziranje sesija koje su prethodno korištene je sigurnosni korak koji se savjetuje ako je prethodno korišteno neko javno računalo ili je lozinka slučajno spremljena na tuđe računalo. Ovaj će koriak, također, očistiti sve prehodno zapamćene prijave u dva koraka." + }, + "deauthorizeSessionsWarning": { + "message": "Ako nastaviš, biti će zatvorena trenutna sesija, što će zahtijevati ponovnu prijavu uklljučujući i prijavu u dva koraka, ako je aktivna. Aktivne sesije na drugim uređajima mogu ostati aktivne još jedan sat." + }, + "sessionsDeauthorized": { + "message": "Sve sesije deautorizirane" + }, + "purgeVault": { + "message": "Izbriši sve iz trezora" + }, + "purgedOrganizationVault": { + "message": "Pročišćen organizacijski trezor." + }, + "vaultAccessedByProvider": { + "message": "Trezoru pristupio davatelj." + }, + "purgeVaultDesc": { + "message": "Nastavi za brisanje SVIH stavki i mapa u tvom trezoru. Stavke koje pripadaju organizaciji s kojom dijeliš neće biti izbrisane." + }, + "purgeOrgVaultDesc": { + "message": "Nastavi za brisanje SVIH stavki u organizacijskom trezoru." + }, + "purgeVaultWarning": { + "message": "Pročišćénje tvog trezora je TRAJNO i NEPOVRATNO i naknadno ga nije moguće vratiti." + }, + "vaultPurged": { + "message": "Vaš trezor je pročišćen." + }, + "deleteAccount": { + "message": "Obriši račun" + }, + "deleteAccountDesc": { + "message": "Nastavite za brisanje tvog računa i SVIH povezanih podataka." + }, + "deleteAccountWarning": { + "message": "Brisanje tvog računa je TRAJNO i NEPOVRATNO i naknadno ga nije moguće vratiti." + }, + "accountDeleted": { + "message": "Račun izbrisan" + }, + "accountDeletedDesc": { + "message": "Tvoj račun je zatvoren i svi povezani podaci su obrisani." + }, + "myAccount": { + "message": "Moj račun" + }, + "tools": { + "message": "Alati" + }, + "importData": { + "message": "Uvezi podatke" + }, + "importError": { + "message": "Greška prilikom uvoza" + }, + "importErrorDesc": { + "message": "Postoji problem s podacima za uvoz. Potrebno je razriješiti doljenavedene greške u izvornoj datoteci i pokušati ponovno." + }, + "importSuccess": { + "message": "Uvoz podataka u trezor je uspjelo." + }, + "importWarning": { + "message": "Uvoziš podatke u $ORGANIZATION$. Tvoji podaci možda će biti podijeljeni s članovima ove organizacije. Želiš li svejedno uvesti podatke?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Podaci nisu ispravno formatirani. Provjeri uvoznu datoteku i pokušaj ponovno." + }, + "importNothingError": { + "message": "Ništa nije uvezeno." + }, + "importEncKeyError": { + "message": "Greška u dešifriranju izvozne datoteke. Ovaj ključ za šifriranje ne odgovara ključu za šifriranje korištenom pri izvozu datoteke." + }, + "selectFormat": { + "message": "Odaberi format datoteke za uvoz" + }, + "selectImportFile": { + "message": "Odaberi datoteku za uvoz" + }, + "orCopyPasteFileContents": { + "message": "ili kopiraj/zalijepi sadržaj uvozne datoteke" + }, + "instructionsFor": { + "message": "$NAME$ upute", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Mogućnosti" + }, + "optionsDesc": { + "message": "Prilagodi svoje iskustvo trezora." + }, + "optionsUpdated": { + "message": "Mogućnosti su ažurirane" + }, + "language": { + "message": "Jezik" + }, + "languageDesc": { + "message": "Promijeni jezik web trezora." + }, + "disableIcons": { + "message": "Onemogući ikone web mjesta" + }, + "disableIconsDesc": { + "message": "Ikone web mjesta nude prepoznatljivu ikonu pokraj svake stavke za prijavu u vašem trezoru." + }, + "enableGravatars": { + "message": "Omogući Gravatar", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Koristi slike učitane s gravatar.com." + }, + "enableFullWidth": { + "message": "Uključi raspored s punom širinom", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Dozvoli web trezoru da koristi cijelu širinu prozora preglednika." + }, + "default": { + "message": "Zadano" + }, + "domainRules": { + "message": "Pravila domene" + }, + "domainRulesDesc": { + "message": "Ako imaš iste pristupne podatke na više web domena, možeš web mjesto označiti kao „ekvivalentno”. Globalne domene su one koje je za tebe već stvorio Bitwarden." + }, + "globalEqDomains": { + "message": "Globalne ekvivalentne domene" + }, + "customEqDomains": { + "message": "Prilagođene ekvivalentne domene" + }, + "exclude": { + "message": "Izuzmi" + }, + "include": { + "message": "Obuhvati" + }, + "customize": { + "message": "Prilagodi" + }, + "newCustomDomain": { + "message": "Nova prilagođena domena" + }, + "newCustomDomainDesc": { + "message": "Unesi listu domena odvojenu zarezima. Dozvoljene su samo osnovne domene. Ne unosi poddomene. Npr. unesi „google.com” umjesto „www.google.com”. Možeš, također, unijeti „androidapp://package.name” za asociranje android aplikacoje s drugim web domenama." + }, + "customDomainX": { + "message": "Prilagođena domena $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domene ažurirane" + }, + "twoStepLogin": { + "message": "Prijava u dva koraka" + }, + "twoStepLoginDesc": { + "message": "Osiguraj svoj račun dodavanjem dodatnog koraka prilikom prijave." + }, + "twoStepLoginOrganizationDesc": { + "message": "Zahtjevaj prijavu u dva koraka za svoje korisnike u organiziaciji konfigurirajući pružatelje usluga na razini organizacije." + }, + "twoStepLoginRecoveryWarning": { + "message": "Uključivanje prijave u dva koraka ti može trajno onemogućiti pristup Bitwarden računu. Kôd za oporavak ti omogućuje pristup računu u slučaju da više ne možeš koristiti redovnog pružatelja prijave u dva koraka (npr. izgubiš svoj uređaj). Bitwarden podrška ti neće moći pomoći ako izgubiš pristup svojem računu. Savjetujemo da zapišeš ili ispišeš kôd za oporavak i spremiš ga na sigurno mjesto." + }, + "viewRecoveryCode": { + "message": "Kôd za oporavak" + }, + "providers": { + "message": "Pružatelji", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Omogući" + }, + "enabled": { + "message": "Omogućeno" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium članstvo" + }, + "premiumRequired": { + "message": "Potrebno je premium članstvo" + }, + "premiumRequiredDesc": { + "message": "Za korištenje ove značajke potrebno je premium članstvo." + }, + "youHavePremiumAccess": { + "message": "Imaš premium pristup" + }, + "alreadyPremiumFromOrg": { + "message": "Već imaš pristup premium značajkama zbog organizacije čiji si član." + }, + "manage": { + "message": "Upravljaj" + }, + "disable": { + "message": "Onemogući" + }, + "twoStepLoginProviderEnabled": { + "message": "Ovaj pružatelj prijave u dva koraka je omogućen na tvojem računu." + }, + "twoStepLoginAuthDesc": { + "message": "Unesi svoju glavnu lozinku za promjenu postavki prijave u dva koraka." + }, + "twoStepAuthenticatorDesc": { + "message": "Za aktivaciju prijave u dva koraka autentifikatorskom aplikacijom slijedi ove korake:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Preuzmi autentifikatorsku aplikaciju" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Trebaš aplikaciju za dvostruku autentifikaciju? Preuzmi jednu od ovih" + }, + "iosDevices": { + "message": "iOS uređaji" + }, + "androidDevices": { + "message": "Android uređaji" + }, + "windowsDevices": { + "message": "Windows uređaji" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Ove su aplikacije preporučene, no također je moguće koristiti i druge autentifikatorske aplikacije." + }, + "twoStepAuthenticatorScanCode": { + "message": "Skeniraj ovaj QR kôd svojom autentifikatorskom aplikacijom" + }, + "key": { + "message": "Ključ" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Unesi 6-znamenkasti kontrolni kôd iz autentifikatorske aplikacije" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Ako trebaš dodati novi uređaj, dolje se nalazi QR kôd (ili ključ) kojeg zahtijeva tvoja autentifikatorska aplikacija." + }, + "twoStepDisableDesc": { + "message": "Sigurno želiš onemogućiti ovog pružatelja prijave u dva koraka?" + }, + "twoStepDisabled": { + "message": "Pružatelj usluge prijave u dva koraka je onemogućen." + }, + "twoFactorYubikeyAdd": { + "message": "Dodaj novi YubiKey u vaš račun" + }, + "twoFactorYubikeyPlugIn": { + "message": "Umetni YubiKey u USB priključak računala." + }, + "twoFactorYubikeySelectKey": { + "message": "Odaberi prvo prazno YubiKey polje za unos." + }, + "twoFactorYubikeyTouchButton": { + "message": "Dodirni tipku na YubiKey-u." + }, + "twoFactorYubikeySaveForm": { + "message": "Spremite obrazac." + }, + "twoFactorYubikeyWarning": { + "message": "Zbog platformskih ograničenja, YubiKey nije moguće koristiti s Bitwarden aplikacijama na svim platformama. Za pristup računu kada nije moguće koristiti YubiKey, trebalo bi uključiti drugog pružatelja prijave u dva koraka. Platforme na kojima je YubiKey podržan:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web trezor, desktop aplikacija, CLI i sva proširenja preglednika na uređajima s USB priključkom na koji se može spojiti tvoj YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobilne aplikacije na uređajima s NFC-om ili podatkovni priključak u koji se može priključiti tvoj YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F ključ $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn ključ $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC podrška" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Jedan od mojih ključeva podržava NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Ako jedan od tvojih YubiKey-eva podržava NFC (npr. YubiKey NEO), kod detektiranog NFC-a će mobilni uređaj upitati za korištenje YubiKey-a." + }, + "yubikeysUpdated": { + "message": "YubiKey ažuriran" + }, + "disableAllKeys": { + "message": "Onemogući sve ključeve" + }, + "twoFactorDuoDesc": { + "message": "Unesi podatke o Bitwarden aplikaciji iz svoje Duo Admin ploče." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integracijski ključ" + }, + "twoFactorDuoSecretKey": { + "message": "Tajni ključ" + }, + "twoFactorDuoApiHostname": { + "message": "API Hostname" + }, + "twoFactorEmailDesc": { + "message": "Za korištenje prijave u dva koraka e-poštom prati ove korake:" + }, + "twoFactorEmailEnterEmail": { + "message": "Unesi e-poštu na koju želiš primati verifikacijske kodove" + }, + "twoFactorEmailEnterCode": { + "message": "Unesi 6-znamenkasti verifikacijski kôd primljen e-poštom" + }, + "sendEmail": { + "message": "Pošalji poruku e-pošte" + }, + "twoFactorU2fAdd": { + "message": "Dodaj FIDO U2F sigurnosni ključ svojem računu" + }, + "removeU2fConfirmation": { + "message": "Sigurno želiš ukloniti ovaj sigurnosni ključ?" + }, + "twoFactorWebAuthnAdd": { + "message": "Dodaj WebAuthn sigurnosni ključ svojem računu" + }, + "readKey": { + "message": "Očitaj ključ" + }, + "keyCompromised": { + "message": "Ključ je kompromitiran." + }, + "twoFactorU2fGiveName": { + "message": "Dodaj sigurnosom ključu neko prepoznatljivo ime." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Priključi sigurnosni ključ u USB priključak svojeg računala i klikni na tipku „Očitaj ključ”." + }, + "twoFactorU2fTouchButton": { + "message": "Ako sigurnosni ključ ima tipku, dodirni ju." + }, + "twoFactorU2fSaveForm": { + "message": "Spremi obrazac." + }, + "twoFactorU2fWarning": { + "message": "Zbog platformskih ograničenja, FIDO U2F nije moguće koristiti s Bitwarden aplikacijama na svim platformama. Za pristup računu kada nije moguće koristiti FIDO U2F trebalo bi uključiti drugog pružatelja prijave u dva koraka. Platforme na kojima je FIDO U2F podržan:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web trezor i proširenja preglednika na stolnim/prijenosnim računalima s U2F omogućenim preglednikom (npr. Chrome, Opera, Vivaldi ili Firefox s omogućenim FIDO U2F)." + }, + "twoFactorU2fWaiting": { + "message": "Sustav čeka da dodirneš tipku na svom sigurnosnom ključu" + }, + "twoFactorU2fClickSave": { + "message": "Klikni na tipku „Spremi” za omogućavanje ovog sigurnosnog ključa za prijavu u dva koraka." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Došlo je do pogreške kod očitavanja sigurnosnog ključa. Pokušaj ponovno." + }, + "twoFactorWebAuthnWarning": { + "message": "Zbog platformskih ograničenja, WebAuthn nije moguće koristiti s Bitwarden aplikacijama na svim platformama. Za pristup računu kada nije moguće koristiti WebAuthn, trebalo bi uključiti drugog pružatelja prijave u dva koraka. Platforme na kojima je WebAuthn podržan:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web trezor i proširenja preglednika na stolnim/prijenosnim računalima s WebAuthn omogućenim preglednikom (npr. Chrome, Opera, Vivaldi ili Firefox s omogućenim WebAuthn)." + }, + "twoFactorRecoveryYourCode": { + "message": "Tvoj kôd za oporavak Bitwarden prijave u dva koraka" + }, + "twoFactorRecoveryNoCode": { + "message": "Još nije omogućen niti jedan pružatelj prijave u dva koraka. Nakon omogućavanja prijave u dva koraka, ovdje ćeš pronaći svoj kôd za oporavak." + }, + "printCode": { + "message": "Ispis kôda", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Izvještaji" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Izvještaj neosiguranih web mjesta" + }, + "unsecuredWebsitesReportDesc": { + "message": "Pristupanje neosiguranim web stranicama (http://) može biti opasno. Ako web mjesto omogućuje, uvijek mu pristupaj koristeći siguran način (https://) kako bi tvoja veza bila šifrirana." + }, + "unsecuredWebsitesFound": { + "message": "Pronađena neosigurana web mjesta" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Pronašli smo $COUNT$ stavki u tvom trezoru koje koriste neosigurane URI-je (http://). Ako web mjesto omogućuje trebalo bi URI-je promijeniti na https://", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Niti jedna stavka u tvom trezoru nema neosigurane URI-je." + }, + "inactive2faReport": { + "message": "Izvještaj o neaktivnim 2FA" + }, + "inactive2faReportDesc": { + "message": "Dvostruka autentifikacija (2FA) je važna postavka sigurnosti koja ti pomaže osigurati svoj račun. Ako web mjesto nudi, uvijek bi trebalo omogućiti dvostruku autentifikaciju." + }, + "inactive2faFound": { + "message": "Pronađene prijave bez 2FA" + }, + "inactive2faFoundDesc": { + "message": "Pronašli smo $COUNT$ web mjesta u tvom trezoru za koje nije omogućena dvostruka autentifikacija (izvor: 2fa.directory). Za bolju zaštitu ovih računa, treba na njima omogućiti dvostruku autentifikaciju.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Nije pronađeno niti jedno web mjesto u tvom trezoru za koje nedostaje dvostruka autentifikacija." + }, + "instructions": { + "message": "Upute" + }, + "exposedPasswordsReport": { + "message": "Izvještaj o izloženim lozinkama" + }, + "exposedPasswordsReportDesc": { + "message": "Izložene lozinke su su one otkrivene prilikom znanih krađa podataka pri čemu su javno objavljene ili su ih hakeri prodavali na dark webu." + }, + "exposedPasswordsFound": { + "message": "Pronađene izložene lozinke" + }, + "exposedPasswordsFoundDesc": { + "message": "Pronašli smo $COUNT$ stavki u tvom trezoru koje imaju lozinke koje su otkrivene prilikom znanih curenja podataka. Trebalo bi ih zamijentii novim lozinkama.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Niti jedna lozinka u tvom trezoru nije bila izložena prilikom znanih krađa podataka." + }, + "checkExposedPasswords": { + "message": "Provjeri izložene lozinke" + }, + "exposedXTimes": { + "message": "Izložene $COUNT$ put(a)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Izvještaj o slabim lozinkama" + }, + "weakPasswordsReportDesc": { + "message": "Slabe lozinke relativno jednostanvo mogu pogoditi hakeri i automatski alati koji se koriste za probijanje lozniki. Bitwardenov generator lozinki ti može pomoći stvoriti jake lozinke." + }, + "weakPasswordsFound": { + "message": "Pronađene slabe lozinke" + }, + "weakPasswordsFoundDesc": { + "message": "Pronašli smo $COUNT$ stavki u tvom trezoru s lozinkama koje nisu jake. Trebalo bi ih zamijeniti jakim lozinkama.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Niti jedna stavka u tvom trezoru nema slabu lozinku." + }, + "reusedPasswordsReport": { + "message": "Izvještaj o istim lozinkama" + }, + "reusedPasswordsReportDesc": { + "message": "Ako je usluga koju koristiš kompromitirana, korištenje iste lozinke negdje drugdje omogućuješ hakerima da jednostavno pristupe tvojim drugim računima. Za svaku bi uslugu trebalo korsititi drugu lozinku." + }, + "reusedPasswordsFound": { + "message": "Pronađene iste lozinke" + }, + "reusedPasswordsFoundDesc": { + "message": "Pronašli smo $COUNT$ istih lozinki u tvom trezoru. Trebalo bi ih zamijeniti jedinstvenim lozinkama.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Niti jedna prijava u tvom trezoru ne koristi iste lozinke." + }, + "reusedXTimes": { + "message": "Korišteno $COUNT$ puta", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Izvještaj o probojima" + }, + "breachDesc": { + "message": "Proboj je incident u kojem su hakeri ilegalno pristupili podacima nekog web mjesta i javno ih objavili. Treba provjeriti koja vrsta podataka je iscurila (adrese e-pošte, lozinke, kreditne kartice, itd.) i poduzeti odgovarajuće korake, kao npr. promijeniti lozinke." + }, + "breachCheckUsernameEmail": { + "message": "Provjeri sva korisnička imena ili adrese e-pošte koje koristiš." + }, + "checkBreaches": { + "message": "Provjerite proboje" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ nije pronađeno u znanim curenjima podataka.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Dobre vijesti", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ je pronađeno u $COUNT$ slučajeva različitih curenja podataka.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Pronađeni probijeni računi" + }, + "compromisedData": { + "message": "Kompromitirani podaci" + }, + "website": { + "message": "Web stranica" + }, + "affectedUsers": { + "message": "Pogođeni korisnici" + }, + "breachOccurred": { + "message": "Došlo je do proboja" + }, + "breachReported": { + "message": "Proboj je prijavljen" + }, + "reportError": { + "message": "Došlo je do greške kod pokušaja učitavanja izvještaja. Pokušaj ponovno." + }, + "billing": { + "message": "Naplata" + }, + "accountCredit": { + "message": "Sredstva računa", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Stanje računa", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Dodaj sredstva", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Iznos", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Dodana sredstva biti će vidljiva na tvom računu nakon što se plaćanje u potpunosti obradi. Neki načini plaćanja mogu kasniti i trajati duže od ostalih." + }, + "makeSureEnoughCredit": { + "message": "Osiguraj da tvoj račun ima dovoljno raspoloživih sredstava za kupnju. Ako tvoj račun nema dovoljno sredstava za kupnju, sredstva će biti dopunjena iz tvojeg zadanog spremljenog načina plaćanja. Sredstva svojem računu možeš dodati na stranici Naplata." + }, + "creditAppliedDesc": { + "message": "Sredstva na tvojem računu mogu se koristiti za kupnju. Sva raspoloživa sredstva će automatski biti upotrijebljena za plaćanje kupnji napravljenih na tvojem računu." + }, + "goPremium": { + "message": "Prijeđi na premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Premium nadogradnja uspješna." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Nadogradi svoj račun na premium članstvo i omogući pristup odličnim dodatnim značajkama." + }, + "premiumSignUpStorage": { + "message": "1 GB šifriranog prostora za pohranu podataka." + }, + "premiumSignUpTwoStep": { + "message": "Dodatne mogućnosti za prijavu u dva koraka kao što su YubiKey, FIDO U2F i Duo." + }, + "premiumSignUpEmergency": { + "message": "Pristup u nuždi" + }, + "premiumSignUpReports": { + "message": "Higijenu lozinki, zdravlje računa i izvještaje o krađi podatak radi zaštite svojeg trezora." + }, + "premiumSignUpTotp": { + "message": "Generator TOTP kontrolnog koda (2FA) za prijave u tvom trezoru." + }, + "premiumSignUpSupport": { + "message": "Prioritetnu korisničku podršku." + }, + "premiumSignUpFuture": { + "message": "Sve buduće premium značajke. Uskoro više!" + }, + "premiumPrice": { + "message": "Sve za samo $PRICE$ /godišnje!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Dodaci" + }, + "premiumAccess": { + "message": "Premium pristup" + }, + "premiumAccessDesc": { + "message": "Možeš dodati premium pristup svim članovima tvoje organizacije za $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Dodatni prostor za pohranu (GB)" + }, + "additionalStorageGbDesc": { + "message": "dodatnih GB" + }, + "additionalStorageIntervalDesc": { + "message": "Tvoj paket uključuje $SIZE$ šifriranog prostora za pohranu. Možeš dokupiti dodatni prostor za $PRICE$ po GB/$INTERVAL$", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Sažetak" + }, + "total": { + "message": "Ukupno" + }, + "year": { + "message": "godišnje" + }, + "month": { + "message": "mjesečno" + }, + "monthAbbr": { + "message": "mj.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Tvoj način plaćanja biti će terećen sada i onda ponovno svake godine. Možeš otkazati u bilo kojem trenutku." + }, + "paymentCharged": { + "message": "Tvoj način plaćanja biti će terećen sada i onda ponovno jednom $INTERVAL$. Možeš otkazati u bilo kojem trenutku.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Vaš plan dolazi s besplatnom probnom verzijom od 7 dana. Vaš način plaćanja neće biti naplaćen dok probno razdoblje ne završi. Možete otkazati u bilo kojem trenutku." + }, + "paymentInformation": { + "message": "Podaci o plaćanju" + }, + "billingInformation": { + "message": "Podaci za dostavu računa" + }, + "creditCard": { + "message": "Kreditna kartica" + }, + "paypalClickSubmit": { + "message": "Klikni PayPay za prijavu na svoj PayPal račun, a zatim „Nastavi” za plaćanje." + }, + "cancelSubscription": { + "message": "Otkaži pretplatu" + }, + "subscriptionCanceled": { + "message": "Pretplata otkazana." + }, + "pendingCancellation": { + "message": "Otkaz u tijeku" + }, + "subscriptionPendingCanceled": { + "message": "Pretplata traje do isteka roka naplate i neće biti ponovno naplaćena." + }, + "reinstateSubscription": { + "message": "Vrati pretplatu" + }, + "reinstateConfirmation": { + "message": "Sigurno želiš poništiti zahtjev za otkaz pretplate i vratiti svoju pretplatu?" + }, + "reinstated": { + "message": "Pretplata je vraćena" + }, + "cancelConfirmation": { + "message": "Sigurno želiš otkazati? Izgubiti ćeš pristup svim ovim pretplatnim značajkama kad istekne rok naplate." + }, + "canceledSubscription": { + "message": "Pretplata otkazana." + }, + "neverExpires": { + "message": "Nikada ne istječe" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Sljedeća naplata" + }, + "details": { + "message": "Detalji" + }, + "downloadLicense": { + "message": "Preuzmi licencu" + }, + "updateLicense": { + "message": "Ažuriraj licencu" + }, + "updatedLicense": { + "message": "Licenca ažurirana" + }, + "manageSubscription": { + "message": "Upravljaj pretplatom" + }, + "storage": { + "message": "Prostor za pohranu" + }, + "addStorage": { + "message": "Dodaj prostor za pohranu" + }, + "removeStorage": { + "message": "Ukloni prostor za pohranu" + }, + "subscriptionStorage": { + "message": "Tvoja pretplata uključuje $MAX_STORAGE$ GB šifriranog prostora za pohranu od čega trenutno koristiš $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Način plaćanja" + }, + "noPaymentMethod": { + "message": "Nema spremljenih načina plaćanja." + }, + "addPaymentMethod": { + "message": "Dodaj način plaćanja" + }, + "changePaymentMethod": { + "message": "Promijeni način plaćanja" + }, + "invoices": { + "message": "Fakture" + }, + "noInvoices": { + "message": "Nema faktura." + }, + "paid": { + "message": "Plaćeno", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Neplaćeno", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transakcije", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Nema transakcija." + }, + "chargeNoun": { + "message": "Terećenje", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Povrat", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Stavke će na izvodu kartice biti navedene kao $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB pohrane za dodati" + }, + "gbStorageRemove": { + "message": "GB pokrane za ukloniti" + }, + "storageAddNote": { + "message": "Dodavanje pohrane rezultirati će povećanjem ukupnog zaduženja i trenutnim terećenjem spremljenog sredstva plaćanja. Iznos će biti umanjen proporcionalno ostatku tekućeg obračunskog razdoblja." + }, + "storageRemoveNote": { + "message": "Uklanjanje pohrane rezultirati će smanjenjem ukupnog zaduženja. Iznos će biti umanjen proporcionalno ostatku tekućeg razdoblja i iskorišten kao umanjenje kod sljedeće naplate." + }, + "adjustedStorage": { + "message": "Prilagođeno $AMOUNT$ GB prostora za pohranu.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Kontaktiraj službu za korisnike" + }, + "updatedPaymentMethod": { + "message": "Ažurirani način plaćanja." + }, + "purchasePremium": { + "message": "Kupi Premium članstvo" + }, + "licenseFile": { + "message": "Licencna datoteka" + }, + "licenseFileDesc": { + "message": "Tvoja licencna datoteka zvati će se nekako ovako $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Za nadogradnju svojeg računa na premium članstvo, trebaš prenijeti valjanu licencnu datoteku." + }, + "uploadLicenseFileOrg": { + "message": "Za stvaranje svoje vlastite lokalno smještene organizacije, potrrebno je prenijeti valjanu licencnu datoteku." + }, + "accountEmailMustBeVerified": { + "message": "Adresa e-pošte tvog računa mora biti verificirana." + }, + "newOrganizationDesc": { + "message": "Organizacije omogućuju dijeljenje dijelova svog trezora s drugima, kao i upravljanje povezanim korisnicima za određeni entitent kap. npr. obitelj, mali tim ili velika tvrtka." + }, + "generalInformation": { + "message": "Opće informacije" + }, + "organizationName": { + "message": "Naziv organizacije" + }, + "accountOwnedBusiness": { + "message": "Ovaj je račun vlasništvo tvrtke." + }, + "billingEmail": { + "message": "Adresa e-pošte za naplatu" + }, + "businessName": { + "message": "Naziv tvrtke" + }, + "chooseYourPlan": { + "message": "Odaberi svoju paket" + }, + "users": { + "message": "Korisnici" + }, + "userSeats": { + "message": "Korisničke licence" + }, + "additionalUserSeats": { + "message": "Dodatna korisnička licenca" + }, + "userSeatsDesc": { + "message": "Broj korisničkih licenci" + }, + "userSeatsAdditionalDesc": { + "message": "Tvoj paket uključuje $BASE_SEATS$ korisničkih licenci. Možeš dokupiti dodatne korisničke licence za $SEAT_PRICE$ po korisniku mjesečno.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Koliko trebaš korisničkih licenci? Kasnije možeš dodati još, ako je potrebno." + }, + "planNameFree": { + "message": "Besplatno", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Za testiranje ili privatne korisnike za dijeljenje s $COUNT$ drugih korisnika.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Obitelji" + }, + "planDescFamilies": { + "message": "Za privatnu upotrebu, za dijeljenje s obitelji i prijateljima." + }, + "planNameTeams": { + "message": "Timovi" + }, + "planDescTeams": { + "message": "Za male tvtke ili druge manje organizacije." + }, + "planNameEnterprise": { + "message": "Tvrtke" + }, + "planDescEnterprise": { + "message": "Za srednje i velike tvrtke ili druge velike organizacije." + }, + "freeForever": { + "message": "Besplatno zauvijek" + }, + "includesXUsers": { + "message": "uključuje $COUNT$ korisnika", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Dodatni korisnici" + }, + "costPerUser": { + "message": "$COST$ po korisniku", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Ograničeno na $COUNT$ korisnika (uključujći tebe)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Ograničeno na $COUNT$ zbirki", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Dodaj i dijeli sa do $COUNT$ korisnika", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Dodaj i dijeli s neograničenim brojem korisnika" + }, + "createUnlimitedCollections": { + "message": "Neograničen broj zbirki" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ šifriranog prostora za pohranu podataka", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Lokalni poslužitelj (neobavezno)" + }, + "usersGetPremium": { + "message": "Korisnici imaju pristup premium značajkama" + }, + "controlAccessWithGroups": { + "message": "Upravljanje korisničkim pristupom pomoću grupa" + }, + "syncUsersFromDirectory": { + "message": "Sinkronizacija korisnika i grupa iz adresara" + }, + "trackAuditLogs": { + "message": "Praćenje aktivnosti korisnika sa zapisnicima" + }, + "enforce2faDuo": { + "message": "Uvjetovanje 2FA s Duo" + }, + "priorityCustomerSupport": { + "message": "Prioritetna korisnička podrška" + }, + "xDayFreeTrial": { + "message": "$COUNT$ dana besplatnog probnog korištenje. Može se otkazati bilo kada.", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "mjesečno" + }, + "annually": { + "message": "godišnje" + }, + "basePrice": { + "message": "Osnovna cijena" + }, + "organizationCreated": { + "message": "Organizacija stvorena" + }, + "organizationReadyToGo": { + "message": "Tvoja nova organizacija je spremna za početak!" + }, + "organizationUpgraded": { + "message": "Tvoja organizacija je nadograđena." + }, + "leave": { + "message": "Izađi" + }, + "leaveOrganizationConfirmation": { + "message": "Sigurno želiš napustiti ovu organizaciju?" + }, + "leftOrganization": { + "message": "Organizacija napuštena." + }, + "defaultCollection": { + "message": "Zadana Zbirka" + }, + "getHelp": { + "message": "Potraži pomoć" + }, + "getApps": { + "message": "Preuzmi aplikacije" + }, + "loggedInAs": { + "message": "Prijavljeni kao" + }, + "eventLogs": { + "message": "Zapisnici o događajima" + }, + "people": { + "message": "Ljudi" + }, + "policies": { + "message": "Smjernice" + }, + "singleSignOn": { + "message": "Jedinstvena prijava (SSO)" + }, + "editPolicy": { + "message": "Uredi smjernice" + }, + "groups": { + "message": "Grupe" + }, + "newGroup": { + "message": "Nova grupa" + }, + "addGroup": { + "message": "Dodaj grupu" + }, + "editGroup": { + "message": "Uredi grupu" + }, + "deleteGroupConfirmation": { + "message": "Sigurno želiš obrisati ovu grupu?" + }, + "removeUserConfirmation": { + "message": "Sigurno želiš ukoniti ovog korisnika?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Upozorenje! Ovaj korisnik koristi konektor za ključ kako bi upravljao svojim šifriranjem. Uklanjanjem korisnika iz tvoje organizacije korisnički će račun biti trajno onemogućen. Ovu opciju nije moguće opozvati. Sigurno želiš nastaviti?" + }, + "externalId": { + "message": "Vanjski Id" + }, + "externalIdDesc": { + "message": "Vanjski id se može koristiti kao referenca ili vezati ovaj resurs na vanjski sustav kao što je npr. direktorij korisnika." + }, + "accessControl": { + "message": "Kontrola pristupa" + }, + "groupAccessAllItems": { + "message": "Ova grupa može pristupiti i urediti sve stavke." + }, + "groupAccessSelectedCollections": { + "message": "Ova grupa može pristupiti samo određenim zbirkama." + }, + "readOnly": { + "message": "Samo za čitanje" + }, + "newCollection": { + "message": "Nova zbirka" + }, + "addCollection": { + "message": "Dodaj zbirku" + }, + "editCollection": { + "message": "Uredi zbirku" + }, + "deleteCollectionConfirmation": { + "message": "Sigurno želiš obrisati ovu zbirku?" + }, + "editUser": { + "message": "Uredi korisnika" + }, + "inviteUser": { + "message": "Pozovi korisnika" + }, + "inviteUserDesc": { + "message": "Pozovi novog korisnika u svoju organizaciju unosom njihove Bitwarden adrese e-pošte. Ako još nemaju Bitwarden račun, biti će pozvani da stvore novi." + }, + "inviteMultipleEmailDesc": { + "message": "Možeš pozvati do $COUNT$ korisnika odjednom. Odvoji adrese e-pošte zarezima.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Ovaj korisnik upotrebljava prijavu u dva koraka za zaštitu svog računa." + }, + "userAccessAllItems": { + "message": "Ovaj korisnik može pristupiti i urediti sve stavke." + }, + "userAccessSelectedCollections": { + "message": "Ovaj korisnik može pristupiti samo određenim zbirkama." + }, + "search": { + "message": "Traži" + }, + "invited": { + "message": "Pozvan" + }, + "accepted": { + "message": "Prihvaćeno" + }, + "confirmed": { + "message": "Potvrđeno" + }, + "clientOwnerEmail": { + "message": "e-pošta vlasnika klijenta" + }, + "owner": { + "message": "Vlasnik" + }, + "ownerDesc": { + "message": "Korisnik s najvišim pravima pristupa koji može upravljati svim mogućnostima tvoje organziacije." + }, + "clientOwnerDesc": { + "message": "Korisnik bi trebao biti neovisan o davatelju. Ako se davatelja razdvoji od organizacije, ovaj će korisnik zadržati vlasništvo nad organizacijom." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admini mogu pristupiti i upravljati svim stavkama, zbirkama i korisnicima u organizaciji." + }, + "user": { + "message": "Korisnik" + }, + "userDesc": { + "message": "Obični korisnik s pristupom dodijeljenim zbirkama u tvojoj organizaciji." + }, + "manager": { + "message": "Upravitelj" + }, + "managerDesc": { + "message": "Upravitelji mogu pristupiti i upravljati dodijeljenim zbirkama u tvojoj organizaciji." + }, + "all": { + "message": "Sve" + }, + "refresh": { + "message": "Osvježi" + }, + "timestamp": { + "message": "Vremenska oznaka" + }, + "event": { + "message": "Događaj" + }, + "unknown": { + "message": "Nepoznato" + }, + "loadMore": { + "message": "Učitaj više" + }, + "mobile": { + "message": "Mobitel", + "description": "Mobile app" + }, + "extension": { + "message": "Proširenje", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Web trezor" + }, + "loggedIn": { + "message": "Prijava" + }, + "changedPassword": { + "message": "Promijenjena lozinka računa." + }, + "enabledUpdated2fa": { + "message": "Omogućena/ažurirana prijava u dva koraka." + }, + "disabled2fa": { + "message": "Onemogućena prijava u dva koraka." + }, + "recovered2fa": { + "message": "Račun oporavljen prijavom u dva koraka." + }, + "failedLogin": { + "message": "Prijava pogrešnom lozinkom neuspješna." + }, + "failedLogin2fa": { + "message": "Prijava pogrešnom prijavom u dva koraka neuspješna." + }, + "exportedVault": { + "message": "Izvezeni trezor." + }, + "exportedOrganizationVault": { + "message": "Izvezen organizacijski trezor." + }, + "editedOrgSettings": { + "message": "Uređene mogućnosti organizacije." + }, + "createdItemId": { + "message": "Stvorena stavka $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Uređena stavka $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Stavka $ID$ poslana u smeće.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Stavka $ID$ je premještena u Organizaciju.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Gledana stavka $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Gledana lozinka za stavku $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Gledano skriveno polje za stavku $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Gledan kontrolni broj za stavku $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Kopirana lozinka za stavku $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Kopirano skriveno polje za stavku $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Kopiran kontrolni broj za stavku $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Auto-ispuna za stavku $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Stvorena zbirka $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Uređena zbirka $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Izbrisana zbirka $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Uređene smjernice $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Stvorena grupa $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Uređena grupa $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Izbrisana grupa $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Uklonjen korisnik $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Stvoren privitak za stavku $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Izbrisan privitak za stavku $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Uređene zbirke za stavku $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Pozvan korisnik $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Potvrđen korisnik $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Uređen korisnik $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Uređene grupe za korisnika $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Odspojen SSO za korisnika $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Organizacija $ID$ stvorena.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Organizacija $ID$ dodana.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Organizacija $ID$ uklonjena.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Pristupljeno trezoru organizacije $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Uređaj" + }, + "view": { + "message": "Prikaz" + }, + "invalidDateRange": { + "message": "Neispravan raspon datuma." + }, + "errorOccurred": { + "message": "Došlo je do pogreške." + }, + "userAccess": { + "message": "Korisnički pristup" + }, + "userType": { + "message": "Vrsta korisnika" + }, + "groupAccess": { + "message": "Grupni pristup" + }, + "groupAccessUserDesc": { + "message": "Uredi grupe kojima ovaj korisnik pripada." + }, + "invitedUsers": { + "message": "Pozvan/i korisnik/ci." + }, + "resendInvitation": { + "message": "Ponovno slanje pozivnice" + }, + "resendEmail": { + "message": "Ponovno slanje e-pošte" + }, + "hasBeenReinvited": { + "message": "$USER$ je ponovno pozvan.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Autoriziraj" + }, + "confirmUser": { + "message": "Autoriziraj korisnika" + }, + "hasBeenConfirmed": { + "message": "$USER$ je autoriziran.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Autoriziraj korisnike" + }, + "usersNeedConfirmed": { + "message": "Postoje korisnici koji su potvrdili svoj poziv, ali neće imati pristup organizaciji sve dok ih se ne autorizira." + }, + "startDate": { + "message": "Datum početka" + }, + "endDate": { + "message": "Datum završetka" + }, + "verifyEmail": { + "message": "Potvrdi adresu e-pošte" + }, + "verifyEmailDesc": { + "message": "Potvrdi e-poštu svojeg računa za otključavanje svih značajki." + }, + "verifyEmailFirst": { + "message": "Adresa e-pošte tvojeg računa mora biti potvrđena." + }, + "checkInboxForVerification": { + "message": "U primljenoj e-pošti nalazi se veza za potvrdu." + }, + "emailVerified": { + "message": "Adresa e-pošte je provjerena." + }, + "emailVerifiedFailed": { + "message": "Ne možeš potvrditi svoju e-poštu? Pošalji novu poruku." + }, + "emailVerificationRequired": { + "message": "Potrebna je potvrda e-pošte" + }, + "emailVerificationRequiredDesc": { + "message": "Za korištenje ove značajke, potrebna je ovjera e-pošte." + }, + "updateBrowser": { + "message": "Ažuriraj preglednik" + }, + "updateBrowserDesc": { + "message": "Koristiš nepodržani preglednik. Web trezor možda neće ispravno raditi." + }, + "joinOrganization": { + "message": "Pridruži se organizaciji" + }, + "joinOrganizationDesc": { + "message": "Primljen je poziv za pridruživanje gore navedenoj organizaciji. Za prihvaćanje poziva potrebno je prijaviti se na svoj postojeći Bitwarden račun ili stvoriti novi." + }, + "inviteAccepted": { + "message": "Poziv prihvaćen" + }, + "inviteAcceptedDesc": { + "message": "Pristup organizaciji biti će ti omogućen čim administrator potvrdi tvoje članstvo, o čemu ćemo te obavijestiti e-poštom." + }, + "inviteAcceptFailed": { + "message": "Nije moguće prihvatiti poziv. Zamoli administratora organizacije da ti pošalje novi poziv." + }, + "inviteAcceptFailedShort": { + "message": "Nije moguće prihvatiti poziv. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Zapamti adresu e-pošte" + }, + "recoverAccountTwoStepDesc": { + "message": "Ako ne možeš pristupiti računu koristeći svoje redovne metode prijave u dva koraka, možeš iskoristiti svoj kôd za oporavak kako bi se u potpunosti onesposobili svi pružatelji prijave u dva koraka na tvojem računu." + }, + "recoverAccountTwoStep": { + "message": "Oporavi račun prijave u dva koraka" + }, + "twoStepRecoverDisabled": { + "message": "Prijava u dva koraka je onemogućena na tvojem računu." + }, + "learnMore": { + "message": "Saznaj više" + }, + "deleteRecoverDesc": { + "message": "Unesi svoju e-poštu za oporavak i brisanje svojeg računa." + }, + "deleteRecoverEmailSent": { + "message": "Ako tvoj račun postoji, poslali smo ti e-poštu s daljnjim uputama." + }, + "deleteRecoverConfirmDesc": { + "message": "Zatraženo je brisanje tvojeg Bitwarden računa. Klikni u nastavku za potvrdu brisanja računa." + }, + "myOrganization": { + "message": "Moja organizacija" + }, + "deleteOrganization": { + "message": "Izbriši organizaciju" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organizacija izbrisana" + }, + "organizationDeletedDesc": { + "message": "Organizacija i svi njeni povezani podaci su izbrisani." + }, + "organizationUpdated": { + "message": "Organizacija izmijenjena" + }, + "taxInformation": { + "message": "Porezne informacije" + }, + "taxInformationDesc": { + "message": "Možete unijeti svoj porezni broj (VAT ID) i/ili adresu za prikaz na fakturama." + }, + "billingPlan": { + "message": "Paket", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Promijeni paket", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Unesi podatke u nastavku za nadogradnju svog računa na drugi paket. Provjeri imaš li na svom računu aktivno neko sredstvo plaćanja.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Faktura br. $NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Prikaz fakture" + }, + "downloadInvoice": { + "message": "Preuzmi fakturu" + }, + "verifyBankAccount": { + "message": "Potvrdi broj računa u banci" + }, + "verifyBankAccountDesc": { + "message": "Izvršili smo dvije male uplate na račun u banci (možda će trebati 1 do 2 radna dana da budu vidljive). Unesi iznose ovih uplata za potvrdu broja računa." + }, + "verifyBankAccountInitialDesc": { + "message": "Plaćanje putem računa u banci dostupno je samo korisnicima u SAD-u. Biti će potrebno potvrditi broj računa u banci. Izvršiti ćemo dvije male uplate na račun u banci (možda će trebati 1 do 2 radna dana da budu vidljive). Unesi iznose ovih uplata za potvrdu broja računa." + }, + "verifyBankAccountFailureWarning": { + "message": "Neuspješna provjera računa u banci rezultirati će propuštenim plaćanjem i prekidom pretplate." + }, + "verifiedBankAccount": { + "message": "Račun u banci potvrđen." + }, + "bankAccount": { + "message": "Račun u banci" + }, + "amountX": { + "message": "Iznos $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number (SAD)", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Broj računa" + }, + "accountHolderName": { + "message": "Vlasnik računa" + }, + "bankAccountType": { + "message": "Vrsta računa" + }, + "bankAccountTypeCompany": { + "message": "Pravna osoba" + }, + "bankAccountTypeIndividual": { + "message": "Fizička osoba" + }, + "enterInstallationId": { + "message": "Unesi id instalacije" + }, + "limitSubscriptionDesc": { + "message": "Ograničite broj korisnika u pretplati. Kada je broj dosegnut, neće biti moguće pozvati nove korisnike." + }, + "maxSeatLimit": { + "message": "Najveći dozvoljeni broj korisnika (opcionalno)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Najveći dozvoljeni trošak licenci" + }, + "addSeats": { + "message": "Dodaj licence", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Ukloni licence", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Promjene na pretplati rezultirati će proporcionalnim izmjenama ukupnog zaduženja. Ako novopozvanim korisnikom prekoračiš broj licenci, odmah će biti naplaćeno proporcionalno uvećanje za nove korisnike." + }, + "subscriptionUserSeats": { + "message": "Tvoja pretplata uključuje $COUNT$ korisnika.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Ograniči pretplatu (opcionalno)" + }, + "subscriptionSeats": { + "message": "Broj licenci" + }, + "subscriptionUpdated": { + "message": "Preplata ažurirana" + }, + "additionalOptions": { + "message": "Dodatne postavke" + }, + "additionalOptionsDesc": { + "message": "Za dodatnu pomoć u upravljanju pretplatom, kontaktiraj korisničku podršku." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Promjene na pretplati rezultirati će proporcionalnim izmjenama ukupnog zaduženja. Ako novopozvanim korisnikom prekoračiš broj licenci, odmah će biti naplaćeno proporcionalno uvećanje za nove korisnike." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Promjene na pretplati rezultirati će proporcionalnim izmjenama ukupnog zaduženja. Ako novopozvanim korisnikom prekoračiš broj licenci, odmah će biti naplaćeno proporcionalno uvećanje za nove korisnike dok se ne dosegne krajnji broj licenci ($MAX$).", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Nije moguće pozvati više od $COUNT$ korisnika bez nadogradnje plana.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Nije moguće pozvati više od $COUNT$ korisnika bez promjene plana. Kontaktiraj podršku za nadogradnju.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Tvoja pretplata dozvoljava najviše $COUNT$ korisnika. Tvoj plan je sponzoriran i naplaćuje se vanjskoj organizaciji.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Promjene na pretplati rezultirati će proporcionalnim izmjenama ukupnog zaduženja. Nećeš moći pozvati više od $COUNT$ novih korisnika bez prethodne promjene broja licenci.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Licence za dodati" + }, + "seatsToRemove": { + "message": "Licence za ukloniti" + }, + "seatsAddNote": { + "message": "Dodavanje korisničkih licenci rezultirati će povećanjem ukupnog zaduženja i trenutnim terećenjem spremljenog sredstva plaćanja. Iznos će biti umanjen proporcionalno ostatku tekućeg obračunskog razdoblja." + }, + "seatsRemoveNote": { + "message": "Uklanjanje korisničkih licenci rezultirati će smanjenjem ukupnog zaduženja. Iznos će biti umanjen proporcionalno ostatku tekućeg razdoblja i iskorišten kao umanjenje kod sljedeće naplate." + }, + "adjustedSeats": { + "message": "Prilagođeno $AMOUNT$ korisničkih licenci.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Ključ ažuriran" + }, + "updateKeyTitle": { + "message": "Ažuriraj ključ" + }, + "updateEncryptionKey": { + "message": "Ažuriraj ključ za šifriranje" + }, + "updateEncryptionKeyShortDesc": { + "message": "Trenutno koristiš zastarjeli način šifriranja." + }, + "updateEncryptionKeyDesc": { + "message": "Prešli smo na korištenje duljih ključeva za šifriranje koji pružaju bolju zaštitu kao i pristup novim uslugama. Ažuriranje ključa za šifriranje je brzo i jednostavno. Samo unesi svoju glavnu lozinku. Ova nadogradnja će uskoro postati obavezna." + }, + "updateEncryptionKeyWarning": { + "message": "Nakon ažuriranja svojeg ključa za šifriranje, obavezno se trebaš odjaviti i ponovno prijaviti u sve Bitwarden aplikacije koje trenutno koristiš (npr. mobilna aplikacija, proširenje preglednika, ...). Ako se ne odjaviš i ponovno prijaviš (čime se preuzima tvoj novi ključ za šifriranje) može doći do oštećenja spremljenih podataka. Pokušati ćemo te automatski odjaviti, no, to bi možda moglo potrajati." + }, + "updateEncryptionKeyExportWarning": { + "message": "Svi spremljeni šifrirani izvozi također će postati nevažeći." + }, + "subscription": { + "message": "Pretplata" + }, + "loading": { + "message": "Učitavanje" + }, + "upgrade": { + "message": "Nadogradnja" + }, + "upgradeOrganization": { + "message": "Nadogradi organizaciju" + }, + "upgradeOrganizationDesc": { + "message": "Ova značajka nije dostupna organizacijama koje koriste besplatnu uslugu. Prebaci se na plaćeni paket za pristup ovoj i drugim značajkama." + }, + "createOrganizationStep1": { + "message": "Stvori organizaciju: 1. korak" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Prije stvaranja svoje organizacije, moraš napraviti svoj privatni, besplatni račun." + }, + "refunded": { + "message": "Refundirano" + }, + "nothingSelected": { + "message": "Ništa nije odabrano." + }, + "acceptPolicies": { + "message": "Označavanjem ove kućice slažete se sa sljedećim:" + }, + "acceptPoliciesError": { + "message": "Uvjeti korištenja i Pravila privatnosti nisu prihvaćeni." + }, + "termsOfService": { + "message": "Uvjeti korištenja" + }, + "privacyPolicy": { + "message": "Pravila privatnosti" + }, + "filters": { + "message": "Filtri" + }, + "vaultTimeout": { + "message": "Istek trezora" + }, + "vaultTimeoutDesc": { + "message": "Odaberi kada će isteći trezor i koja će se radnja izvršiti." + }, + "oneMinute": { + "message": "1 minuta" + }, + "fiveMinutes": { + "message": "5 minuta" + }, + "fifteenMinutes": { + "message": "15 minuta" + }, + "thirtyMinutes": { + "message": "30 minuta" + }, + "oneHour": { + "message": "1 sat" + }, + "fourHours": { + "message": "4 sata" + }, + "onRefresh": { + "message": "Pri osvježavanju preglednika" + }, + "dateUpdated": { + "message": "Ažurirano", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Lozinka ažurirana", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organizacija je onemogućena." + }, + "licenseIsExpired": { + "message": "Licenca je istekla." + }, + "updatedUsers": { + "message": "Ažurirani korisnici" + }, + "selected": { + "message": "Odabrano" + }, + "ownership": { + "message": "Vlasništvo" + }, + "whoOwnsThisItem": { + "message": "Tko je vlasnik ove stavke?" + }, + "strong": { + "message": "Jaka", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Dobra", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Slaba", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Vrlo slaba", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Slaba glavna lozinka" + }, + "weakMasterPasswordDesc": { + "message": "Odabrana glavna lozinka je slaba. Trebaš koristiti jaču glavnu lozinku (ili frazu) kako bi tvoj Bitwarden račun bio pravilno zaštićen. Sigurno želiš koristiti ovakvu, slabu glavnu lozinku?" + }, + "rotateAccountEncKey": { + "message": "Dodatno rotiraj ključ za šifriranje mojeg računa" + }, + "rotateEncKeyTitle": { + "message": "Rotiraj ključ za šifriranje" + }, + "rotateEncKeyConfirmation": { + "message": "Sigurno želiš rotirati ključ za šifriranje svojeg računa?" + }, + "attachmentsNeedFix": { + "message": "Ova stavka ima stare privitke koje je potrebno popraviti." + }, + "attachmentFixDesc": { + "message": "Ovo je stari privitak kojeg je potrebno popraviti. Klikni ovdje za više informacija." + }, + "fix": { + "message": "Popravi", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Postoje stari privitci u tvom trezoru koje je potrebno popraviti prije rotacije ključa za šifriranje." + }, + "yourAccountsFingerprint": { + "message": "Jedinstvena fraza tvog računa", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Kako bi se osgurala cjelovitost tvojih ključeva za šifriranje, provjeri korisnikovu jedinstvenu frazu prije nastavka.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Ne pitaj više za potvrdu jedinstvene fraze (Nije pozeljno)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Besplatno", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API ključ" + }, + "apiKeyDesc": { + "message": "API ključ se može koristiti za autentifikaciju prema javnom Bitwarden API-ju." + }, + "apiKeyRotateDesc": { + "message": "Rotacija API ključa poništiti će prethodno važeći ključ. Možeš napraviti rotaciju svog API ključa ako misliš da treutni ključ više nije siguran za upotrebu." + }, + "apiKeyWarning": { + "message": "API ključ ima potpuni pristup organizaciji. Treba ga držati tajnim." + }, + "userApiKeyDesc": { + "message": "API ključ se može koristiti za autentifikaciju u Bitwarden CLI-ju." + }, + "userApiKeyWarning": { + "message": "API ključ je zamjenska mogućnost autentifikacije. Treba ga držati tajnim." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 vjerodajnice klijenta", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Pogledaj API ključ" + }, + "rotateApiKey": { + "message": "Rotiraj API ključ" + }, + "selectOneCollection": { + "message": "Moraš odabrati barem jednu zbirku." + }, + "couldNotChargeCardPayInvoice": { + "message": "Nismo uspjeli teretiti karticu. Molimo, pogledaj i plati sljedeću neplaćenu fakturu." + }, + "inAppPurchase": { + "message": "Kupnja putem aplikacije" + }, + "cannotPerformInAppPurchase": { + "message": "Nije moguće izvršiti ovu radnju dok se koristi način plaćanja putem aplikcaije." + }, + "manageSubscriptionFromStore": { + "message": "Upravljanje pretplatom moguće je samo iz dućana u kojem je napravljena kupnja iz aplikacije." + }, + "minLength": { + "message": "Najmanja duljina" + }, + "clone": { + "message": "Kloniraj" + }, + "masterPassPolicyDesc": { + "message": "Postavi smjernice sigurnosti koju glavna lozinka mora zadovoljiti." + }, + "twoStepLoginPolicyDesc": { + "message": "Zahtijevaj da korisnici uključe prijavu u dva koraka na svojim osobnim računima." + }, + "twoStepLoginPolicyWarning": { + "message": "Članovi organizacije koji nisu Vlasnici ili Administratori i nemaju uključenu prijavu u dva koraka na svojim osobnim računima biti će uklonjeni iz organizacije i primiti će o tome obavijest e-poštom." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Član si organizacije koja zahtijeva uključenu prijavu u dva koraka na tvojem računu. Ako onemogućiš sve pružatelje prijave u dva koraka, automatski ćeš biti uklonjen/a iz organizacije." + }, + "passwordGeneratorPolicyDesc": { + "message": "Postavi smjernice sigurnosti koju generirana lozinka mora zadovoljiti." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Jedna ili više organizacijskih smjernica utječe na postavke generatora." + }, + "masterPasswordPolicyInEffect": { + "message": "Jedna ili više organizacijskih smjernica zahtijeva da tvoja glavna lozinka ispunjava sljedeće uvjete:" + }, + "policyInEffectMinComplexity": { + "message": "Minimalna ocjena složenosti od $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Duljina najmanje $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Sadrži jedno ili više velikih slova" + }, + "policyInEffectLowercase": { + "message": "Sadrži jedno ili više malih slova" + }, + "policyInEffectNumbers": { + "message": "Sadrži jedan ili više brojeva" + }, + "policyInEffectSpecial": { + "message": "Sadrži jedan ili više sljedećih posebnih znakova $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Tvoja nova glavna lozinka ne ispunjava zahtjeve." + }, + "minimumNumberOfWords": { + "message": "Najmanji broj riječi" + }, + "defaultType": { + "message": "Zadana vrsta" + }, + "userPreference": { + "message": "Korisnički definirano" + }, + "vaultTimeoutAction": { + "message": "Nakon isteka trezora" + }, + "vaultTimeoutActionLockDesc": { + "message": "Zaključani trezor, za ponovni pristup, zahtijeva ponovni unos tvoje glavne lozinke." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Odjavljeni trezor, za ponovni pristup, zahtijeva ponovnu provjeru autentičnosti." + }, + "lock": { + "message": "Zaključaj", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Smeće", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Pretraži smeće" + }, + "permanentlyDelete": { + "message": "Trajno izbriši" + }, + "permanentlyDeleteSelected": { + "message": "Trajno izbriši odabrano" + }, + "permanentlyDeleteItem": { + "message": "Trajno izbriši stavku" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Želiš li zaista trajno izbrisati ovu stavku?" + }, + "permanentlyDeletedItem": { + "message": "Trajno izbrisana stavka" + }, + "permanentlyDeletedItems": { + "message": "Trajno izbrisane stavke" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Odabrano je $COUNT$ stavke/i za trajno brisanje. Sigurno želiš trajno izbrisati sve ove stavke?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Trajno izbrisana stavka $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Vrati" + }, + "restoreSelected": { + "message": "Vrati odabrano" + }, + "restoreItem": { + "message": "Vrati stavku" + }, + "restoredItem": { + "message": "Stavka vraćena" + }, + "restoredItems": { + "message": "Stavke vraćene" + }, + "restoreItemConfirmation": { + "message": "Želiš li sigurno vratiti ovu stavku?" + }, + "restoreItems": { + "message": "Vrati stavke" + }, + "restoreSelectedItemsDesc": { + "message": "Odabrano je $COUNT$ stavke/i za vraćanje. Sigurno želiš vratiti sve ove stavke?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Stavka vraćena $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Odjava će ukloniti pristup tvojem trezoru i zahtijeva mrežnu potvrdu identiteta nakon isteka vremenske neaktivnosti. Sigurno želiš koristiti ovu postavku?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Potvrda akcije vremenske neaktivnosti" + }, + "hidePasswords": { + "message": "Sakrij lozinke" + }, + "countryPostalCodeRequiredDesc": { + "message": "Ovaj podatak nam je potreban samo za izračun poreza i računovosdtvo." + }, + "includeVAT": { + "message": "Uključi podatke o PDV-u (neobavezno)" + }, + "taxIdNumber": { + "message": "OIB/porezni broj" + }, + "taxInfoUpdated": { + "message": "Podaci oporezu ažurirani." + }, + "setMasterPassword": { + "message": "Postavi glavnu lozinku" + }, + "ssoCompleteRegistration": { + "message": "Za dovršetak jedinstvene prijave na razini tvrtke (SSO), postavi glavnu lozinku za pristup i zaštitu tvog trezora." + }, + "identifier": { + "message": "Identifikator" + }, + "organizationIdentifier": { + "message": "Identifikator organizacije" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Prijavi se koristeći SSO portal tvoje tvrtke. Za nastavak unesi identifikator organizacije." + }, + "enterpriseSingleSignOn": { + "message": "Jedinstvena prijava na razini tvrtke (SSO)" + }, + "ssoHandOff": { + "message": "Sada možeš zatvoriti ovu karticu i nastaviti koristiti proširenje." + }, + "includeAllTeamsFeatures": { + "message": "Sve značajke Team, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO autentifikacija putem SAML2.0 i OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Smjernice za tvrtke" + }, + "ssoValidationFailed": { + "message": "SSO provjera nije uspjela" + }, + "ssoIdentifierRequired": { + "message": "Potreban je identifikator organizacije." + }, + "unlinkSso": { + "message": "Odspoji SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Spoji SSO" + }, + "singleOrg": { + "message": "Isključiva organizacija" + }, + "singleOrgDesc": { + "message": "Onemogući korisnicima da se pridruže drugim organizacijama." + }, + "singleOrgBlockCreateMessage": { + "message": "Tvoja organizacija ima pravilo koje ti ne dozvoljava pridruživanje drugim organizacijama. Molimo kontaktiraj administratora svoje organizacije ili se prijavi s privatnim Bitwarden računom." + }, + "singleOrgPolicyWarning": { + "message": "Članovi organizacije koji nisu Vlasnici ili Administratori, a već su članovi neke druge organizacije, biti će uklonjeni iz tvoje organizacije." + }, + "requireSso": { + "message": "SSO autentifikacija" + }, + "requireSsoPolicyDesc": { + "message": "Zahtijeva da se korisnici prijave koristeći tvrtkin SSO." + }, + "prerequisite": { + "message": "Preduvjet" + }, + "requireSsoPolicyReq": { + "message": "Pravilo Isključive organizacije mora biti uključeno prije aktivacije ovog pravila." + }, + "requireSsoPolicyReqError": { + "message": "Pravilo Isključive organizacije nije omogućeno." + }, + "requireSsoExemption": { + "message": "Vlasnici i Administratori organizacije nisu obuhvaćeni za provedbu ovog pravila." + }, + "sendTypeFile": { + "message": "Datoteka" + }, + "sendTypeText": { + "message": "Tekst" + }, + "createSend": { + "message": "Stvori novi Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Uredi Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send stvoren", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Send uređen", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send izbrisan", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Izbriši Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Sigurno želiš izbrisati ovaj Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Koja je ovo vrsta Send-a?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Datum brisanja" + }, + "deletionDateDesc": { + "message": "Send će biti trajno izbrisan navedenog datuma.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Datum isteka" + }, + "expirationDateDesc": { + "message": "Ako je određeno, pristup ovom Sendu će isteći navedenog dana u navedeno vrijeme.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Najveći proj pristupanja" + }, + "maxAccessCountDesc": { + "message": "Ako je uključeno, korisnici neće moći pristupiti ovom Sendu nakon što se postigne najveći broj pristupanja.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Trenutni broj pristupanja" + }, + "sendPasswordDesc": { + "message": "Neobavezno zahtijevaj korisnika lozinku za pristup ovom Sendu.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Privatne bilješke o Sendu.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Onemogućeno" + }, + "sendLink": { + "message": "Veza na Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Kopiraj vezu na Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Ukloni lozinku" + }, + "removedPassword": { + "message": "Lozinka uklonjena" + }, + "removePasswordConfirmation": { + "message": "Sigurno želiš ukloniti lozinku?" + }, + "hideEmail": { + "message": "Sakrij moju adresu e-pošte od primatelja." + }, + "disableThisSend": { + "message": "Onemogući ovaj Send da mu nitko ne može pristupiti.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Svi Sendovi" + }, + "maxAccessCountReached": { + "message": "Dostignut najveći broj pristupanja", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Čeka brisanje" + }, + "expired": { + "message": "Isteklo" + }, + "searchSends": { + "message": "Pretraži Sendove", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Ovaj Send je zaštićen lozinkom. Unesi lozinku za nastavak.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Ne znaš lozinku? Upitaj pošiljatelja za lozinku za pristup ovom Sendu.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Ovaj je Send zadano skriven. Moguće mu je promijeniti vidljivost.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Preuzmi datoteku" + }, + "sendAccessUnavailable": { + "message": "Send kojem pokušavaš pristupiti više ne postoji ili više nije dostupan.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Datoteka povezana s ovim Sendom nije pronađena.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Nema Sendova.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Pristup u nuždi" + }, + "emergencyAccessDesc": { + "message": "Odobri i upravljaj pristupu u nuždi za pouzdane kontakte. Oni, u slučaju nužde, mogu vidjeti ili preuzeti tvoj račun. Posjeti našu stranicu pomoći za više detalja kako funkcionira dijeljene na principu nula-znanja." + }, + "emergencyAccessOwnerWarning": { + "message": "Vlasnik si jedne ili više organizacija. Ako dozvoliš preuzimanje računa kontaktu u nuždi, moći će koristiti sva tvoja dopuštenja kao Vlasnika nakon preuzimanja." + }, + "trustedEmergencyContacts": { + "message": "Pouzdani kontakti u nuždi" + }, + "noTrustedContacts": { + "message": "Još nije dodan niti jedan kontakt u nuždi. Za početak, pozovi pouzdani kontakt." + }, + "addEmergencyContact": { + "message": "Dodaj kontakt u nuždi" + }, + "designatedEmergencyContacts": { + "message": "Određen kao kontakt u nuždi" + }, + "noGrantedAccess": { + "message": "Nitko vas još nije odredio kao kontakt u nuždi." + }, + "inviteEmergencyContact": { + "message": "Pozovi kontakt u nuždi" + }, + "editEmergencyContact": { + "message": "Uredi kontakt u nuždi" + }, + "inviteEmergencyContactDesc": { + "message": "Pozovi novi kontakt u nuždi unosom njihove Bitwarden adrese e-pošte. Ako još nemaju Bitwarden račun, biti će pozvani da stvore novi." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Pokrenut pristup u nuždi" + }, + "emergencyAccessRecoveryApproved": { + "message": "Odobren pristup u nuždi" + }, + "viewDesc": { + "message": "Može vidjeti sve stavke u tvom trezoru." + }, + "takeover": { + "message": "Preuzimanje" + }, + "takeoverDesc": { + "message": "Može resetirati tvoj račun novom glavnom lozinkom." + }, + "waitTime": { + "message": "Vrijeme čekanja" + }, + "waitTimeDesc": { + "message": "Potrebni vremenski period prije automatskog odobravanja pristupa." + }, + "oneDay": { + "message": "1 dan" + }, + "days": { + "message": "$DAYS$ dana", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Pozvani korisnik." + }, + "acceptEmergencyAccess": { + "message": "Pozvani ste da postanete kontakt u nuždi za našeg gore navedenog korisnika. Za prihvat poziva, prijavite se u Bitwarden. Ako još nemate Bitwarden račun, možete jednostavno stvoriti novi." + }, + "emergencyInviteAcceptFailed": { + "message": "Nije moguće prihvatiti poziv. Zamolite korisnika da pošalje novi poziv." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Nije moguće prihvatiti poziv. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Možeš pristupiti opcijama u nuždi za ovog korisnika nakon potvrde tvog identiteta o čemu ćemo te obavijestiti e-poštom." + }, + "requestAccess": { + "message": "Zatraži pristup" + }, + "requestAccessConfirmation": { + "message": "Sigurno želiš zatražiti pristup u nuždi? Pristup će biti odobren nakon isteka roka od $WAITTIME$ dan(a) ili kad drugi korisnik ručo odobri zahtjev.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Pristup u nuždi je zatražen za $USER$. Obavijesitti ćemo te e-poštem kada će biti moguće nastaviti.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "ODOBRI" + }, + "reject": { + "message": "Odbij" + }, + "approveAccessConfirmation": { + "message": "Sigurno želiš odobriti pristup u nuždi svojem računu? Korisnik $USER$ će imati sljedeću mogućnost na tovm računu: $ACTION$.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Pristup u nuždi odobren." + }, + "emergencyRejected": { + "message": "Pristup u nuždi odbijen" + }, + "passwordResetFor": { + "message": "Lozinka za $USER$ resetirana. Sada se možeš prijaviti novom lozinkom.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Osobno vlasništvo" + }, + "personalOwnershipPolicyDesc": { + "message": "Zahtijevaj korisnike spremanje stavki trezora u organizaciju tako što će ukloniti opciju osobnog vlasništva." + }, + "personalOwnershipExemption": { + "message": "Vlasnici i Administratori organizacije nisu obuhvaćeni za provedbu ovog pravila." + }, + "personalOwnershipSubmitError": { + "message": "Pravila tvrtke onemogućuju spremanje stavki u osobni trezor. Promijeni vlasništvo stavke na tvrtku i odaberi dostupnu Zbirku." + }, + "disableSend": { + "message": "Onemogući Send" + }, + "disableSendPolicyDesc": { + "message": "Ne dozvoli korisnicima stvaranje ili uređivanje Sendova. Brisanje postojećeg Senda je dozvoljeno.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organizacijski korisnici koji mogu mijenjati pravila tvrtke nisu obuhvaćeni za provedbu ovog pravila." + }, + "sendDisabled": { + "message": "Send onemogućen", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Pravila tvrtke omogućuju brisanje samo postojećeg Senda.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Opcije Senda", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Postavljanje opcija za stvaranje i mijenjanje Sendova.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organizacijski korisnici koji mogu mijenjati pravila tvrtke nisu obuhvaćeni za provedbu ovog pravila." + }, + "disableHideEmail": { + "message": "Ne dopusti skrivanje e-pošte kod stvaranja Senda.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Organizacijske smjernice trenutno na snazi:" + }, + "sendDisableHideEmailInEffect": { + "message": "Korisnicima nije dopušteno skrivati adresu e-pošte od primatelja kod stvaranja ili uređivanja Senda.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Izmijenjena polica $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Cijena paketa" + }, + "estimatedTax": { + "message": "Procjena poreza" + }, + "custom": { + "message": "Prilagođeno" + }, + "customDesc": { + "message": "Omogućuje detaljnije upravljanje korisničkim dozvolama za napredne konfiguracije." + }, + "permissions": { + "message": "Dozvole" + }, + "accessEventLogs": { + "message": "Pristup zapisnicima događaja" + }, + "accessImportExport": { + "message": "Pristup uvozu/izvozu" + }, + "accessReports": { + "message": "Pristup izvještajima" + }, + "missingPermissions": { + "message": "Nedostaju ti potrebna dopuštenja za izvođenje ove radnje." + }, + "manageAllCollections": { + "message": "Upravljanje svim zbirkama" + }, + "createNewCollections": { + "message": "Stvori novu zbirku" + }, + "editAnyCollection": { + "message": "Uredi zbirku" + }, + "deleteAnyCollection": { + "message": "Obriši zbirku" + }, + "manageAssignedCollections": { + "message": "Upravljanje dodijeljenim zbirkama" + }, + "editAssignedCollections": { + "message": "Uredi dodijeljene zbirke" + }, + "deleteAssignedCollections": { + "message": "Obriši dodijeljene zbirke" + }, + "manageGroups": { + "message": "Upravljanje grupama" + }, + "managePolicies": { + "message": "Upravljanje pravilima" + }, + "manageSso": { + "message": "Upravljanje SSO" + }, + "manageUsers": { + "message": "Upravljanje korisnicima" + }, + "manageResetPassword": { + "message": "Upravljanje ponovnim postavljanjem lozinke" + }, + "disableRequiredError": { + "message": "Prije onemogućavanja ovog pravila, potrebno je onemogućiti pravilo $POLICYNAME$.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Pravila organizacije utječu na tvoje mogućnosti vlasništva." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "Organizacijsko pravilo onemogućuje uvoz stavki u tvoj osobni trezor." + }, + "personalOwnershipCheckboxDesc": { + "message": "Onemogući osobno vlasnišvo za organizacijske korisnike" + }, + "textHiddenByDefault": { + "message": "Zadano sakrij tekst pri pristupanju Sendu", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Nadimak za ovaj Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Tekst kojeg želiš poslati." + }, + "sendFileDesc": { + "message": "Datoteka koju želiš poslati." + }, + "copySendLinkOnSave": { + "message": "Kopiraj vezu za dijeljenje ovog Senda nakon spremanja." + }, + "sendLinkLabel": { + "message": "Veza na Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Pomoću Bitwarden Send jednostavno i sigurno pošalji osjetljive, privremene podatke.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Saznaj više o", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Dijeli tekst ili datoteke s bilo kim." + }, + "sendVaultCardLearnMore": { + "message": "Saznaj više", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "pogledaj", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "kako funkcionira", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "ili", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "isprobaj odmah", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "ili", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "registriraj se", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "za isprobavanje.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden korisnik $USER_IDENTIFIER$ je s tobom podijelio", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Bitwarden korisnik koji je stvorio ovaj Send odabrao/la je sakriti svoju e-poštu. Koristi i/ili preuzmi ove podatke samo ako vjeruješ izvoru iz kojeg je primljena ova vezu.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Navedeni rok isteka nije valjan." + }, + "deletionDateIsInvalid": { + "message": "Navedeni datum brisanja nije valjan." + }, + "expirationDateAndTimeRequired": { + "message": "Potrebno je unijeti datum i vrijeme isteka." + }, + "deletionDateAndTimeRequired": { + "message": "Potrebno je unijeti datum i vrijeme brisanja." + }, + "dateParsingError": { + "message": "Došlo je do greške kod spremanja vaših datuma isteka i brisanja." + }, + "webAuthnFallbackMsg": { + "message": "Za ovjeru tvoje 2FA, odaberi donju tipku." + }, + "webAuthnAuthenticate": { + "message": "Ovjeri WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn nije podržan u ovom pregledniku." + }, + "webAuthnSuccess": { + "message": "WebAuthn uspješno ovjeren! Možeš zatvoriti ovu karticu." + }, + "hintEqualsPassword": { + "message": "Podsjetnik za lozinku ne može biti isti kao lozinka." + }, + "enrollPasswordReset": { + "message": "Uključi mogućnost ponovnog postavljanja lozinke" + }, + "enrolledPasswordReset": { + "message": "Mogućnost ponovnog postavljanja lozinke je uključena" + }, + "withdrawPasswordReset": { + "message": "Isključi mogućnost ponovnog postavljanja lozinke" + }, + "enrollPasswordResetSuccess": { + "message": "Prijava uspješna!" + }, + "withdrawPasswordResetSuccess": { + "message": "Odjava uspješna!" + }, + "eventEnrollPasswordReset": { + "message": "Korisnik $ID$ ima uključenu mogućnost pomoći za ponovno postavljanje lozinke.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Korisnik $ID$ ima isključenu mogućnost pomoći za ponovno postavljanje lozinke.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Ponovno postavljanje glavne lozinke za korisnika $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Poništi SSO vezu za korisnika $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "Prva prijava korisnika $ID$ koristeći SSO", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Ponovno postavljanje lozinke" + }, + "resetPasswordLoggedOutWarning": { + "message": "Ako nastaviš, biti će zatvorena trenutna sesija za $NAME$, što će zahtijevati ponovnu prijavu. Aktivne sesije na drugim uređajima ostati će aktivne još jedan sat.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "ovaj korisnik" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Jedna ili više organizacijskih smjernica zahtijeva da glavna lozinka ispunjava sljedeće uvjete:" + }, + "resetPasswordSuccess": { + "message": "Uspješno ponovno postalvjena lozinka!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Učlanjenje će administratorima organizacije omogućiti promjenu tvoje glavne lozinke. Sigurno se želiš učlaniti?" + }, + "resetPasswordPolicy": { + "message": "Ponovno postavljanje glavne lozinke" + }, + "resetPasswordPolicyDescription": { + "message": "Dozvoli organizacijskim administratorima ponovno postavljanje glavnih lozniki korisnika." + }, + "resetPasswordPolicyWarning": { + "message": "Korisnici u organizaciji se trebaju ili sami učlaniti ili biti automatski učlanjeni da bi administratori mogli ponovno postavljati njihove lozinke." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatsko učlanjenje" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Svi korisnici će automatski biti učlanjeni u ponovno postavljanje lozinke čim njihov poziv bude prihvaćen." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Postojeći korisnici organizacije neće biti retroaktivno učlanjeni u ponovno postavljanje lozinke. Morati će se sami učlaniti da bi administratori mogli ponovno postaviti njihove glaven lozinke." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Primoraj nove korisnike da budu automatski učlanjeni" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Pravilo ove organizacija automatski će te učlaniti u ponovno postalvjanje lozinke. Učlanjenje će omogućiti administratorima organizacije promjenu tvoje glavne lozinke." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Stavke koje se nalaze u Smeću duže od 30 dana će biti automatski izbrisane." + }, + "trashCleanupWarningSelfHosted": { + "message": "Stavke koje se duže vrijeme nalaze u Smeću će btii automatski obrisane." + }, + "passwordPrompt": { + "message": "Ponovno zatraži glavnu lozinku" + }, + "passwordConfirmation": { + "message": "Potvrda glavne lozinke" + }, + "passwordConfirmationDesc": { + "message": "Ova radnja je zaštićena. Za nastavak i potvrdu identiteta, unesi svoju glavnu lozinku." + }, + "reinviteSelected": { + "message": "Ponovno slanje pozivnica" + }, + "noSelectedUsersApplicable": { + "message": "Ova radnja nije primjenjiva niti na jednog odabranog korisnika." + }, + "removeUsersWarning": { + "message": "Sigurno želiš ukloniti sljedeće korisnike? Ova radnja može potrajati i nije ga moguće prekinuti ili poništiti." + }, + "theme": { + "message": "Tema" + }, + "themeDesc": { + "message": "Odaberi temu za svoj mrežni trezor." + }, + "themeSystem": { + "message": "Koristi temu sustava" + }, + "themeDark": { + "message": "Tamna" + }, + "themeLight": { + "message": "Svijetla" + }, + "confirmSelected": { + "message": "Odabrano potvrđivanje" + }, + "bulkConfirmStatus": { + "message": "Status skupne radnje" + }, + "bulkConfirmMessage": { + "message": "Uspještno potvđeno." + }, + "bulkReinviteMessage": { + "message": "Uspješno ponovno pozvano." + }, + "bulkRemovedMessage": { + "message": "Uspješno uklonjeno" + }, + "bulkFilteredMessage": { + "message": "Isključeno, nije primijenjivo na ovu radnju." + }, + "fingerprint": { + "message": "Otisak prsta" + }, + "removeUsers": { + "message": "Ukloni korisnike" + }, + "error": { + "message": "Greška" + }, + "resetPasswordManageUsers": { + "message": "Upravljanje korisnicima mora također biti uključeno s dozvolom za Upravljanje ponovnim postavljanjem lozinke" + }, + "setupProvider": { + "message": "Postavke davatelja" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Naziv davatelja" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Klijenti" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Servisni korisnik" + }, + "serviceUserDesc": { + "message": "Servisni korisnik može pristupiti i upravljati svim organizacijama." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Davatelj" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Dodaj postojeću organizaciju" + }, + "myProvider": { + "message": "Moj davatelj" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organizacija uspješno dodana davatelju" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Davatelj je onemogućen." + }, + "providerUpdated": { + "message": "Davatelj ažuriran" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Dodaj" + }, + "updatedMasterPassword": { + "message": "Glavna lozinka ažurirana" + }, + "updateMasterPassword": { + "message": "Ažuriraj glavnu lozinku" + }, + "updateMasterPasswordWarning": { + "message": "Tvoju glavnu lozinku je nedavno promijenio administrator tvoje organizacije. Za pristup trezoru, potrebno je ažurirati glavnu lozinku, što će te odjaviti iz trenutne sesije, te ćeš se morati ponovno prijaviti. Aktivne sesije na drugim uređajima mogu ostati aktivne još sat vremena." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Istek trezora" + }, + "maximumVaultTimeoutDesc": { + "message": "Najveći dozvoljeni istek trezora za sve korisnike." + }, + "maximumVaultTimeoutLabel": { + "message": "Najveći istek trezora" + }, + "invalidMaximumVaultTimeout": { + "message": "Najveći istek trezora nije ispravan." + }, + "hours": { + "message": "sat(i)" + }, + "minutes": { + "message": "min." + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Osobni istek trezora" + }, + "vaultTimeoutToLarge": { + "message": "Vrijeme isteka premašuje ograničenje koju je postavila tvoja organizacija." + }, + "disablePersonalVaultExport": { + "message": "Onemogući izvoz osobnog trezora" + }, + "disablePersonalVaultExportDesc": { + "message": "Onemogućuje korisnike da izvezu svoj osobni trezor." + }, + "vaultExportDisabled": { + "message": "Izvoz trezora onemogućen" + }, + "personalVaultExportPolicyInEffect": { + "message": "Jedno ili više pravila organizacija onemogućuje izvoz osobnog trezora." + }, + "selectType": { + "message": "Odaberi vrstu SSO" + }, + "type": { + "message": "Vrsta" + }, + "openIdConnectConfig": { + "message": "Konfiguracija OpenID connect" + }, + "samlSpConfig": { + "message": "Konfiguracija SAML Service Provider" + }, + "samlIdpConfig": { + "message": "Konfiguracija SAML Identity Provider" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "ID klijenta" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Provjeri certifikate" + }, + "idpEntityId": { + "message": "ID entiteta" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 javni certifikat" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Konfiguracija za jedinstvenu prijavu (SSO) je spremljena." + }, + "sponsoredFamilies": { + "message": "Besplatan Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "Vi i vaša obitelj ispunjavate uvjete za besplatne Bitwarden obitelji. Koristite ponudu sa svojom e-poštom kako biste zaštitili svoje podatke čak i kada niste na poslu." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "Bitwarden plan za obitelji uključuje" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium pristup do 6 korisnika" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Dijeljene zbirke za obiteljske tajne" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Upotrijebi kod" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Ponuđena vam je besplatna organizacija Bitwarden Families Plan. Da biste nastavili, morate se prijaviti na račun koji je primio ponudu." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Nije moguće prihvatiti ponudu. Ponovo pošaljite email ponudu sa svog poslovnog računa i pokušajte ponovno." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Nije moguće prihvatiti ponudu. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Prihvatite besplatan Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Besplatna ponuda Bitwarden Families uspješno je iskorištena" + }, + "redeemed": { + "message": "Kod upotrijebljen" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Besplatni obiteljski plan" + }, + "redeemNow": { + "message": "Upotrijebi kod sada" + }, + "recipient": { + "message": "Primatelj" + }, + "removeSponsorship": { + "message": "Ukloni sponzorstvo" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Opozovi" + }, + "emailSent": { + "message": "e-pošta poslana" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponzorstvo uklonjeno" + }, + "ssoKeyConnectorUnavailable": { + "message": "Nije moguće spajanje s konektorom za ključ, pokušaj kasnije." + }, + "keyConnectorUrl": { + "message": "URL konektora za ključ" + }, + "sendVerificationCode": { + "message": "Slanje verifikacijskog kôda e-poštom" + }, + "sendCode": { + "message": "Pošalji kôd" + }, + "codeSent": { + "message": "Kôd poslan" + }, + "verificationCode": { + "message": "Kôd za provjeru" + }, + "confirmIdentity": { + "message": "Potvrdite lozinku za nastavak." + }, + "verificationCodeRequired": { + "message": "Potvrdni kôd je obavezan." + }, + "invalidVerificationCode": { + "message": "Nevažeći kôd za provjeru" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ koristi jedinstvenu prijavu SSO s vlastitim poslužiteljem. Članovima organizacije glavna lozinka više nije potrebna.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Napusti organizaciju" + }, + "removeMasterPassword": { + "message": "Ukloni glavnu lozinku" + }, + "removedMasterPassword": { + "message": "Glavna lozinka uklonjena." + }, + "allowSso": { + "message": "Dopusti jedinstvenu SSO autentifikaciju" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Omogući", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO autentifikaciju", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "kako bi se svi članovi mogli prijaviti sa SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Opcije dešifriranja za članove" + }, + "memberDecryptionPassDesc": { + "message": "Članovi će moći dešifrirati podatke u trezoru koristeći svoje glavne lozinke." + }, + "keyConnector": { + "message": "Konektor za ključ" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "SSO omogućen" + }, + "disabledSso": { + "message": "SSO onemogućen" + }, + "enabledKeyConnector": { + "message": "Konektor za ključ omogućen" + }, + "disabledKeyConnector": { + "message": "Konektor za ključ onemogućen" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "Ponuda za sponzorstvo je istekla. Možete izbrisati organizaciju koju ste stvorili kako biste izbjegli naplatu na kraju probnog perioda od 7 dana. U suprotnom možete zatvoriti ovaj upit kako biste zadržali organizaciju i preuzeli odgovornost za naplatu." + }, + "newFamiliesOrganization": { + "message": "Nova obiteljska organizacija" + }, + "acceptOffer": { + "message": "Prihvati ponudu" + }, + "sponsoringOrg": { + "message": "Organizacija sponzor" + }, + "keyConnectorTest": { + "message": "Testiraj" + }, + "keyConnectorTestSuccess": { + "message": "Uspjeh! Konektor za ključ spojen." + }, + "keyConnectorTestFail": { + "message": "Nije moguće spojiti se na konektor za ključ. Provjeri URL." + }, + "sponsorshipTokenHasExpired": { + "message": "Ponuda za sponzorstvo je istekla." + }, + "freeWithSponsorship": { + "message": "BESPLATNO sa sponzorstvom" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/hu/messages.json b/apps/web/src/locales/hu/messages.json new file mode 100644 index 0000000000..b38a77a006 --- /dev/null +++ b/apps/web/src/locales/hu/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ webes széf", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Milyen típusú elem ez?" + }, + "name": { + "message": "Név" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Új URI" + }, + "username": { + "message": "Felhasználónév" + }, + "password": { + "message": "Jelszó" + }, + "newPassword": { + "message": "Új jelszó" + }, + "passphrase": { + "message": "Kulcskifejezés" + }, + "notes": { + "message": "Jegyzetek" + }, + "customFields": { + "message": "Egyedi mezők" + }, + "cardholderName": { + "message": "Kártyatulajdonos neve" + }, + "number": { + "message": "Szám" + }, + "brand": { + "message": "Márka" + }, + "expiration": { + "message": "Lejárat" + }, + "securityCode": { + "message": "Biztonsági kód (CVV)" + }, + "identityName": { + "message": "Személyazonosság megnevezés" + }, + "company": { + "message": "Cég" + }, + "ssn": { + "message": "Társadalombiztosítási szám" + }, + "passportNumber": { + "message": "Útlevélszám" + }, + "licenseNumber": { + "message": "Vezetői engedély száma" + }, + "email": { + "message": "Email cím" + }, + "phone": { + "message": "Telefonszám" + }, + "january": { + "message": "Január" + }, + "february": { + "message": "Február" + }, + "march": { + "message": "Március" + }, + "april": { + "message": "Április" + }, + "may": { + "message": "Május" + }, + "june": { + "message": "Június" + }, + "july": { + "message": "Július" + }, + "august": { + "message": "Augusztus" + }, + "september": { + "message": "Szeptember" + }, + "october": { + "message": "Október" + }, + "november": { + "message": "November" + }, + "december": { + "message": "December" + }, + "title": { + "message": "Címzés" + }, + "mr": { + "message": "Úr" + }, + "mrs": { + "message": "Asszony" + }, + "ms": { + "message": "Kisasszony" + }, + "dr": { + "message": "Dr." + }, + "expirationMonth": { + "message": "Lejárati hónap" + }, + "expirationYear": { + "message": "Lejárati év" + }, + "authenticatorKeyTotp": { + "message": "Hitelesítő kulcs (egyszeri idő alapú)" + }, + "folder": { + "message": "Mappa" + }, + "newCustomField": { + "message": "Új egyedi mező" + }, + "value": { + "message": "Érték" + }, + "dragToSort": { + "message": "Húzás a rendezéshez" + }, + "cfTypeText": { + "message": "Szöveg" + }, + "cfTypeHidden": { + "message": "Rejtett" + }, + "cfTypeBoolean": { + "message": "Logikai" + }, + "cfTypeLinked": { + "message": "Csatolt", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Eltávolítás" + }, + "unassigned": { + "message": "Nincs hozzárendelve" + }, + "noneFolder": { + "message": "Nincs mappa", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Mappa hozzáadása" + }, + "editFolder": { + "message": "Mappa szerkesztése" + }, + "baseDomain": { + "message": "Alap domain", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Kiszolgáló", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Pontos" + }, + "startsWith": { + "message": "Ezzel kezdődik:" + }, + "regEx": { + "message": "Reguláris kifejezés", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Találat érzékelés", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Alapértelmezett találat érzékelés", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Soha" + }, + "toggleVisibility": { + "message": "Láthatóság váltása" + }, + "toggleCollapse": { + "message": "Összezárás váltás", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Jelszó generálása" + }, + "checkPassword": { + "message": "A jelszóvédelmi állapot ellenőrzése." + }, + "passwordExposed": { + "message": "Ez a jelszó már $VALUE$ alkalommal volt kitéve az adatszivárgásnak. Célszerű megváltoztatni.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Ez a jelszó nem érintett egyetlen ismert adatszivárgásban sem. Biztonságos a használata." + }, + "save": { + "message": "Mentés" + }, + "cancel": { + "message": "Mégsem" + }, + "canceled": { + "message": "Megszakítva" + }, + "close": { + "message": "Bezárás" + }, + "delete": { + "message": "Törlés" + }, + "favorite": { + "message": "Kedvenc" + }, + "unfavorite": { + "message": "Nem kedvenc" + }, + "edit": { + "message": "Szerkesztés" + }, + "searchCollection": { + "message": "Gyűjtemény keresése" + }, + "searchFolder": { + "message": "Mappa keresése" + }, + "searchFavorites": { + "message": "Kedvencek keresése" + }, + "searchType": { + "message": "Típus keresése", + "description": "Search item type" + }, + "searchVault": { + "message": "Keresés a széfben" + }, + "allItems": { + "message": "Összes elem" + }, + "favorites": { + "message": "Kedvencek" + }, + "types": { + "message": "Típusok" + }, + "typeLogin": { + "message": "Bejelentkezés" + }, + "typeCard": { + "message": "Kártya" + }, + "typeIdentity": { + "message": "Személyazonosság" + }, + "typeSecureNote": { + "message": "Biztonságos jegyzet" + }, + "typeLoginPlural": { + "message": "Bejelentkezések" + }, + "typeCardPlural": { + "message": "Kártyák" + }, + "typeIdentityPlural": { + "message": "Azonosságok" + }, + "typeSecureNotePlural": { + "message": "Biztonságos jegyzetek" + }, + "folders": { + "message": "Mappák" + }, + "collections": { + "message": "Gyűjtemények" + }, + "firstName": { + "message": "Személynév" + }, + "middleName": { + "message": "Középső név" + }, + "lastName": { + "message": "Családnév" + }, + "fullName": { + "message": "Teljes név" + }, + "address1": { + "message": "Cím 1" + }, + "address2": { + "message": "Cím 2" + }, + "address3": { + "message": "Cím 3" + }, + "cityTown": { + "message": "Település" + }, + "stateProvince": { + "message": "Állam/Megye" + }, + "zipPostalCode": { + "message": "Irányítószám" + }, + "country": { + "message": "Ország" + }, + "shared": { + "message": "Megosztott" + }, + "attachments": { + "message": "Mellékletek" + }, + "select": { + "message": "Kijelölés" + }, + "addItem": { + "message": "Elem hozzáadása" + }, + "editItem": { + "message": "Elem szerkesztése" + }, + "viewItem": { + "message": "Elem megtekintése" + }, + "ex": { + "message": "Példa:", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Egyéb" + }, + "share": { + "message": "Megosztás" + }, + "moveToOrganization": { + "message": "Áthelyezés szervezetbe" + }, + "valueCopied": { + "message": "$VALUE$ másolásra került.", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Érték másolása", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Jelszó másolása", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Felhasználónév másolása", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Szám másolása", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Biztonsági kód másolása", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "URI másolása", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Saját széf" + }, + "vault": { + "message": "Széf" + }, + "moveSelectedToOrg": { + "message": "A kiválasztott áthelyezése szervezetbe" + }, + "deleteSelected": { + "message": "Kijelöltek törlése" + }, + "moveSelected": { + "message": "Kijelöltek áthelyezése" + }, + "selectAll": { + "message": "Összes kijelölése" + }, + "unselectAll": { + "message": "Összes kijelölés megszüntetése" + }, + "launch": { + "message": "Indítás" + }, + "newAttachment": { + "message": "Új melléklet hozzáadása" + }, + "deletedAttachment": { + "message": "A melléklet törlésre került." + }, + "deleteAttachmentConfirmation": { + "message": "Biztos törlésre kerüljön ez a melléklet?" + }, + "attachmentSaved": { + "message": "A melléklet mentésre került." + }, + "file": { + "message": "Fájl" + }, + "selectFile": { + "message": "Válasszunk egy fájlt." + }, + "maxFileSize": { + "message": "A maximális fájl méret 500 MB." + }, + "updateKey": { + "message": "Ez a funkció nem használható a titkosítási kulcs frissítéséig." + }, + "addedItem": { + "message": "Az elem hozzáadásra került." + }, + "editedItem": { + "message": "Az elem szerkesztésre került." + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ átkerült $ORGNAME$ szervezethez", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "A kiválasztott elemek átkerültek $ORGNAME$ szervezethez", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Elem törlése" + }, + "deleteFolder": { + "message": "Mappa törlése" + }, + "deleteAttachment": { + "message": "Melléklet törlése" + }, + "deleteItemConfirmation": { + "message": "Biztosan törlésre kerüljön ezt az elem?" + }, + "deletedItem": { + "message": "Az elem törlésre került." + }, + "deletedItems": { + "message": "Törölt elemek" + }, + "movedItems": { + "message": "Áthelyezett elemek" + }, + "overwritePasswordConfirmation": { + "message": "Biztosan felülírásra kerüljön a jelenlegi jelszó?" + }, + "editedFolder": { + "message": "A mappa szerkesztésre került." + }, + "addedFolder": { + "message": "A mappa hozzáadásra került." + }, + "deleteFolderConfirmation": { + "message": "Biztosan törlésre kerüljön ez a mappa?" + }, + "deletedFolder": { + "message": "A mappa törlésre került." + }, + "loggedOut": { + "message": "Megtörtént a kijelentkezés." + }, + "loginExpired": { + "message": "A bejelentkezési munkamenet lejárt." + }, + "logOutConfirmation": { + "message": "Biztosan szeretnénk kijelentkezni?" + }, + "logOut": { + "message": "Kijelentkezés" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Igen" + }, + "no": { + "message": "Nem" + }, + "loginOrCreateNewAccount": { + "message": "Bejelentkezés vagy új fiók létrehozása a biztonsági széf eléréséhez." + }, + "createAccount": { + "message": "Fiók létrehozása" + }, + "logIn": { + "message": "Bejelentkezés" + }, + "submit": { + "message": "Elküldés" + }, + "emailAddressDesc": { + "message": "Az email címmel lehet bejelentkezni." + }, + "yourName": { + "message": "Név" + }, + "yourNameDesc": { + "message": "Mi legyen a megszólítás?" + }, + "masterPass": { + "message": "Mesterjelszó" + }, + "masterPassDesc": { + "message": "A mesterjelszó a jelszó a széf eléréséhez. Nagyon fontos a mesterjelszó ismerete. Nincs mód a jelszó visszaállítására." + }, + "masterPassHintDesc": { + "message": "A mesterjelszó emlékeztető segíthet emlékezni a jelszóra elfelejtése esetén." + }, + "reTypeMasterPass": { + "message": "Mesterjelszó ismételt beírása" + }, + "masterPassHint": { + "message": "Mesterjelszó emlékeztető (nem kötelező)" + }, + "masterPassHintLabel": { + "message": "Mesterjelszó emlékeztető" + }, + "settings": { + "message": "Beállítások" + }, + "passwordHint": { + "message": "Jelszó emlékeztető" + }, + "enterEmailToGetHint": { + "message": "A fiók email címének megadása a mesterjelszó emlékeztető fogadásához." + }, + "getMasterPasswordHint": { + "message": "Mesterjelszó emlékeztető kérése" + }, + "emailRequired": { + "message": "Az email cím megadása kötelező." + }, + "invalidEmail": { + "message": "Az email cím érvénytelen." + }, + "masterPassRequired": { + "message": "A mesterjelszó megadása kötelező." + }, + "masterPassLength": { + "message": "A mesterjelszó legyen legalább 8 karakter hosszú." + }, + "masterPassDoesntMatch": { + "message": "A megadott két jelszó nem egyezik meg." + }, + "newAccountCreated": { + "message": "A fiók létrehozásra került. Most már be lehet jelentkezni." + }, + "masterPassSent": { + "message": "A mesterjelszó emlékeztetőt tartalmazó email elküldésre került." + }, + "unexpectedError": { + "message": "Váratlan hiba történt." + }, + "emailAddress": { + "message": "Email cím" + }, + "yourVaultIsLocked": { + "message": "A széf zárolásra került. A folytatáshoz meg kell adni a mesterjelszót." + }, + "unlock": { + "message": "Feloldás" + }, + "loggedInAsEmailOn": { + "message": "Bejelentkezve mint $EMAIL$ $HOSTNAME$ webhelyen.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "A mesterjelszó érvénytelen." + }, + "lockNow": { + "message": "Zárolás most" + }, + "noItemsInList": { + "message": "Nincsenek megjeleníthető elemek." + }, + "noCollectionsInList": { + "message": "Nincsenek megjeleníthető gyűjtemények." + }, + "noGroupsInList": { + "message": "Nincsenek megjeleníthető csoportok." + }, + "noUsersInList": { + "message": "Nincsenek megjeleníthető felhasználók." + }, + "noEventsInList": { + "message": "Nincsenek megjeleníthető események." + }, + "newOrganization": { + "message": "Új szervezet" + }, + "noOrganizationsList": { + "message": "Még nem tartozunk egyik szervezethez sem. A szervezetek lehetővé teszik az elemek megosztását más felhasználókkal." + }, + "versionNumber": { + "message": "Verzió: $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "A 6 számjegyű ellenőrző kód megadása a hitelesítő alkalmazásból." + }, + "enterVerificationCodeEmail": { + "message": "$EMAIL$ email címre elküldött 6 számjegyű ellenőrző kód megadása.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Az ellenőrző kód elküldésre került $EMAIL$ email címre.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Adatok megjegyzése" + }, + "sendVerificationCodeEmailAgain": { + "message": "Megerősítő kód ismételt elküldése emailben" + }, + "useAnotherTwoStepMethod": { + "message": "Másik kétlépcsős bejelentkezés használata" + }, + "insertYubiKey": { + "message": "A YubiKey beillesztése a számítógép USB portjába és a rajta levő gomb megnyomása." + }, + "insertU2f": { + "message": "A biztonsági kulcs beillesztése a számítógép USB portjába. Ha van rajta gomb, nyomjuk meg." + }, + "loginUnavailable": { + "message": "A bejelentkezés nem érhető el." + }, + "noTwoStepProviders": { + "message": "Ezen a fiókon kétlépcsős bejelentkezés van engedélyezve, de ez az eszköz nem támogatja egyik beállított kétlépcsős szolgáltatót sem." + }, + "noTwoStepProviders2": { + "message": "Támogatott böngészőt (mint például a Chrome) kell használni és/vagy a böngészők között jobb támogatást nyújtó szolgáltatót kell megadni (mint például egy hitelesítő alkalmazás)." + }, + "twoStepOptions": { + "message": "Kétlépcsős bejelentkezés opciók" + }, + "recoveryCodeDesc": { + "message": "Elveszett a hozzáférés az összes kétlépcsős szolgáltatóhoz? A visszaállítókód használatával letilthatók fiókból a kétlépcsős szolgáltatók." + }, + "recoveryCodeTitle": { + "message": "Helyreállító kód" + }, + "authenticatorAppTitle": { + "message": "Hitelesítő alkalmazás" + }, + "authenticatorAppDesc": { + "message": "Hitelesítő alkalmazás használata (mint például az Authy vagy a Google Authenticator) idő alapú ellenőrzőkód generálásához.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP egyszeri időalapú jelszó biztonsági kulcs" + }, + "yubiKeyDesc": { + "message": "YubiKey használata a fiók eléréséhez. Működik a YubiKey 4, 4 Nano, 4C, és NEO eszközökkel." + }, + "duoDesc": { + "message": "Ellenőrzés Duo Security-val, a Duo Mobile alkalmazás, SMS, telefonhívás vagy U2F biztonsági kulcs használatával.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Ellenőrzés szervezeti Duo Security segítségével a Duo Mobile alkalmazás, SMS, telefonhívás vagy U2F biztonsági kulcs használatával.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Bármilyen FIDO U2F által engedélyezett biztonsági kulcs használata a fiók eléréséhez." + }, + "u2fTitle": { + "message": "FIDO U2F Biztonsági kulcs" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Használjunk bármilyen WebAuthn engedélyezett biztonsági kulcsot a saját fiók eléréséhez." + }, + "webAuthnMigrated": { + "message": "(FIDO-ból áthelyezve)" + }, + "emailTitle": { + "message": "Email cím" + }, + "emailDesc": { + "message": "Az ellenőrző kódok emailben kerülnek elküldésre." + }, + "continue": { + "message": "Folytatás" + }, + "organization": { + "message": "Szervezet" + }, + "organizations": { + "message": "Szervezetek" + }, + "moveToOrgDesc": { + "message": "Válasszunk egy szervezetet, ahová áthelyezni szeretnénk ezt az elemet. A szervezetbe áthelyezés átruházza az elem tulajdonjogát az adott szervezetre. Az áthelyezés után többé nem leszünk az elem közvetlen tulajdonosa." + }, + "moveManyToOrgDesc": { + "message": "Válasszunk egy szervezetet, ahová áthelyezni szeretnénk ezeket az elemeket. A szervezetbe áthelyezés átruházza az elemek tulajdonjogát az adott szervezetre. Az áthelyezés után többé nem leszünk az elemek közvetlen tulajdonosa." + }, + "collectionsDesc": { + "message": "A megosztásra kerülő elem gyűjteményének szerkesztése. Csak az ezeket a gyűjteményeket elérő szervezeti felhasználók látják ezt az elemet." + }, + "deleteSelectedItemsDesc": { + "message": "$COUNT$ elem törlésre lett kijelölve. Biztosan törölni szeretnénk az összes ilyen elemet?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Célmappa kiválasztás $COUNT$ kijelölt elem áthelyezéséhez.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "$COUNT$ elem került kiválasztásra. $MOVEABLE_COUNT$ elem áthelyezhető szervezethezi, $NONMOVEABLE_COUNT$ nem.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Ellenőrző kód (egyszeri időalapú)" + }, + "copyVerificationCode": { + "message": "Ellenőrző kód másolása" + }, + "warning": { + "message": "Figyelmeztetés" + }, + "confirmVaultExport": { + "message": "Széf export megerősítése" + }, + "exportWarningDesc": { + "message": "Ez az exportálás titkosítás nélkül tartalmazza a széfadatokat.Nem célszerű az exportált fájlt nem biztonságos csatornákon tárolni és továbbküldeni (például emailben). A felhasználás után erősen ajánlott a törlés." + }, + "encExportKeyWarningDesc": { + "message": "Ez az exportálás titkosítja az adatokat a fiók titkosítási kulcsával. Ha valaha a diók forgatási kulcsa más lesz, akkor újra exportálni kell, mert nem lehet visszafejteni ezt az exportálási fájlt." + }, + "encExportAccountWarningDesc": { + "message": "A fiók titkosítási kulcsai minden Bitwarden felhasználói fiókhoz egyediek, ezért nem importálhatunk titkosított exportálást egy másik fiókba." + }, + "export": { + "message": "Exportálás" + }, + "exportVault": { + "message": "Széf exportálása" + }, + "fileFormat": { + "message": "Fájlformátum" + }, + "exportSuccess": { + "message": "A széfadatok exportálásra kerültek." + }, + "passwordGenerator": { + "message": "Jelszó generátor" + }, + "minComplexityScore": { + "message": "Minimális összetettségi pontszám" + }, + "minNumbers": { + "message": "Minimális szám" + }, + "minSpecial": { + "message": "Minimális speciális", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Félreérthető karakterek mellőzése" + }, + "regeneratePassword": { + "message": "Jelszó újragenerálása" + }, + "length": { + "message": "Hossz" + }, + "numWords": { + "message": "Szavak száma" + }, + "wordSeparator": { + "message": "Szóelválasztó" + }, + "capitalize": { + "message": "Nagy kezdőbetű", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Szám is" + }, + "passwordHistory": { + "message": "Jelszó előzmények" + }, + "noPasswordsInList": { + "message": "Nincsenek listázható jelszavak." + }, + "clear": { + "message": "Kiürítés", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "A fiók frissítésre került." + }, + "changeEmail": { + "message": "Email cím módosítása" + }, + "changeEmailTwoFactorWarning": { + "message": "A folytatás megváltoztatja fiók email címét. Nem változtatja meg a kétlépcsős hitelesítéshez használt email címet. Ez az email cím a kétlépcsős bejelentkezés beállításaiban módosítható." + }, + "newEmail": { + "message": "Új email cím" + }, + "code": { + "message": "Kód" + }, + "changeEmailDesc": { + "message": "Az ellenőrző kód elküldésre került $EMAIL$ email címre. Ellenőrizzük az kódot tartalmazó emailt és adjuk meg azt itt az email cím megváltoztatásához.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "A folytatásban a felhasználó kiléptetésre kerül a jelenlegi munkamenetből, szükséges az ismételt bejelentkezés. Más eszközökön aktív munkamenetek akár egy órán keresztül is aktívak maradhatnak." + }, + "emailChanged": { + "message": "Az email cím megváltozott." + }, + "logBackIn": { + "message": "Ismételten be kell jelentkezni." + }, + "logBackInOthersToo": { + "message": "Ismételten be kell jelentkezni. Ha másik Bitwarden alkalmazásokat használunk, ott is jelentkezzünk ki és ismételten be." + }, + "changeMasterPassword": { + "message": "Mesterjelszó módosítása" + }, + "masterPasswordChanged": { + "message": "A mesterjelszó megváltozott." + }, + "currentMasterPass": { + "message": "Jelenlegi mesterjelszó" + }, + "newMasterPass": { + "message": "Új mesterjelszó" + }, + "confirmNewMasterPass": { + "message": "Új jelszó megerősítése" + }, + "encKeySettings": { + "message": "Kulcs beállítások titkosítása" + }, + "kdfAlgorithm": { + "message": "KDF algoritmus" + }, + "kdfIterations": { + "message": "KDF iterációk" + }, + "kdfIterationsDesc": { + "message": "A magasabb KDF iterációk segíthetnek a megvédeni a mesterjelszót a \"brute force\" jellegű támadásoktól. Javaslunk $VALUE$, vagy magasabb értéket.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "A túl magas KDF iterációk lelassíthatják a lassabb CPU-val rendelkező eszközökön a bejelentkezést a Bitwardenbe (és a lezárást is). Javasoljuk az érték növelését $INCREMENT$ lépéssel és teszteljük azt az összes eszközön.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "KDF megváltoztatása" + }, + "encKeySettingsChanged": { + "message": "A kulcs beállítás titkosítása megváltozott." + }, + "dangerZone": { + "message": "Veszélyes terület" + }, + "dangerZoneDesc": { + "message": "Óvatosan! Ezeket a műveleteket nem lehet visszaállítani." + }, + "deauthorizeSessions": { + "message": "Munkamenetek hitelesítésének eldobása" + }, + "deauthorizeSessionsDesc": { + "message": "Aggódunk a egy másik eszközön történő bejelentkezés miatt? Az alábbiakban ismertetett módon dobjuk el az összes hitelesítést az összes számítógépen és eszközön. Ez a biztonsági lépés akkor ajánlott, ha korábban nyilvános helyen levő számítógépet használtunk vagy véletlenül mentettünk jelszót egy olyan eszközön, amely nem a sajátunk. Ez a lépés törli az összes korábban megjegyzett kétlépéses bejelentkezési munkamenetet." + }, + "deauthorizeSessionsWarning": { + "message": "A folytatásban s felhasználó kiléptetésre kerül az aktuális munkamenetből, szükséges az ismételt bejelentkezés. Ismételten megjelenik a kétlépcsős bejelentkezés, ha az engedélyezett. Más eszközök aktív munkamenetei akár egy óráig is aktívak maradhatnak." + }, + "sessionsDeauthorized": { + "message": "Az összes munkamenet hitelesítése eldobásra került." + }, + "purgeVault": { + "message": "Széf kitakarítása" + }, + "purgedOrganizationVault": { + "message": "A szervezeti széf kitakarításra került." + }, + "vaultAccessedByProvider": { + "message": "A tárolóhoz a szolgáltató fér hozzá." + }, + "purgeVaultDesc": { + "message": "Az alábbiak szerint törölhetjük a széfben található összes elemet és mappát. Nem kerülnek törlésre azok az elemek,, amelyek egy megosztott szervezethez tartoznak." + }, + "purgeOrgVaultDesc": { + "message": "Folytatás lentebb a szervezeti széf összes elemének törléséhez." + }, + "purgeVaultWarning": { + "message": "A széf kitakarítása végleges. A művelet nem vonható vissza." + }, + "vaultPurged": { + "message": "A széf kitakarításra került." + }, + "deleteAccount": { + "message": "Fiók törlése" + }, + "deleteAccountDesc": { + "message": "A továbbiakban a fiók és összes társított adata törlésre kerül.." + }, + "deleteAccountWarning": { + "message": "A fiók végleges törlése következik. A művelet nem vonható vissza." + }, + "accountDeleted": { + "message": "A fiók törlésre került." + }, + "accountDeletedDesc": { + "message": "A fiók bezárásra került és minden társított adat törölve lett." + }, + "myAccount": { + "message": "Saját fiók" + }, + "tools": { + "message": "Eszközök" + }, + "importData": { + "message": "Adatok importálása" + }, + "importError": { + "message": "Importálási hiba" + }, + "importErrorDesc": { + "message": "Hiba történt az importálni próbált adatokkal. Javítsuk a felsorolt hibákat a forrásfájlban és próbáljuk újra." + }, + "importSuccess": { + "message": "Az adatok sikeresen importálásra kerültek a széfbe." + }, + "importWarning": { + "message": "Adatokat importálunk $ORGANIZATION$ mappába. Az adatok megoszthatók a szervezet tagjaival. Folytatjuk?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Az adatok formázása nem megfelelő. Ellenőrizzük az import 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." + }, + "selectFormat": { + "message": "Válasszuk ki az import fájl formátumát." + }, + "selectImportFile": { + "message": "Válasszuk ki az import fájlt" + }, + "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)" + } + } + }, + "options": { + "message": "Opciók" + }, + "optionsDesc": { + "message": "A webes széf működésének testreszabása." + }, + "optionsUpdated": { + "message": "Az opciók frissítésre kerültek." + }, + "language": { + "message": "Nyelv" + }, + "languageDesc": { + "message": "A webes széf nyelvének megváltoztatása." + }, + "disableIcons": { + "message": "Webhely ikonok letiltása" + }, + "disableIconsDesc": { + "message": "A webhelyek ikonjai felismerhető ikonként jelennek meg a széf összes eleme mellett." + }, + "enableGravatars": { + "message": "Gravatarok engedélyezése", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Avatar képek használata a gravatar.com webhelyről." + }, + "enableFullWidth": { + "message": "Teljes szélességű elrendezés engedélyezése", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "A webes széf teljes szélességűre tágításának engedélyezése a böngészőablakban." + }, + "default": { + "message": "Alapértelmezett" + }, + "domainRules": { + "message": "Domain szabályok" + }, + "domainRulesDesc": { + "message": "Ha ugyanazokat a bejelentkezési adatokat használjuk több különböző webhely domainen, ezeket \"azonos\"-ként jelölhetjük meg. A \"Globális\" domainek a Bitwarden által már létrehozottak." + }, + "globalEqDomains": { + "message": "Globális azonos domainek" + }, + "customEqDomains": { + "message": "Egyedi azonos domainek" + }, + "exclude": { + "message": "Kizárás" + }, + "include": { + "message": "Bevonás" + }, + "customize": { + "message": "Testreszabás" + }, + "newCustomDomain": { + "message": "Új egyedi domain" + }, + "newCustomDomainDesc": { + "message": "A domainek listája vesszővel elválasztva. Csak \"alap\" domainek engedélyezettek. Ne adjunk meg aldomaineket. Például \"google.com\" legyen \"www.google.com\" helyett. Megadható \"androidapp://csomag.nev forma android alkalmazás társításához ás webhely domainekhez." + }, + "customDomainX": { + "message": "Egyedi domain $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "A domainek frissítésre kerültek." + }, + "twoStepLogin": { + "message": "Kétlépcsős bejelentkezés" + }, + "twoStepLoginDesc": { + "message": "A fiók biztosítása kiegészítő lépéssel bejelentkezéskor." + }, + "twoStepLoginOrganizationDesc": { + "message": "Kétlépéses bejelentkezés szükséges a szervezet felhasználói számára a szolgáltatók szervezeti szintű konfigurálásával." + }, + "twoStepLoginRecoveryWarning": { + "message": "A kétlépcsős bejelentkezés engedélyezése véglegesen kizárhatja a felhasználót a Bitwarden fiókból. A helyreállítási kód lehetővé teszi a fiókjához való hozzáférést abban az esetben, ha már nem tudjuk használni a szokásos kétlépcsős bejelentkezési szolgáltatást (pl. készülék elvesztése). A Bitwarden támogatás nem tud segíteni abban az esetben, ha elveszítjük a hozzáférést a fiókhoz. Célszerű leírni vagy kinyomtatni a helyreállítási kódot és azt biztonságos helyen tartani." + }, + "viewRecoveryCode": { + "message": "Helyreállító kód megtekintése" + }, + "providers": { + "message": "Szolgáltatók", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Engedélyezés" + }, + "enabled": { + "message": "Engedélyezve" + }, + "premium": { + "message": "Prémium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Prémium tagság" + }, + "premiumRequired": { + "message": "Prémium funkció szükséges" + }, + "premiumRequiredDesc": { + "message": "A funkció használatához prémium tagság szükséges." + }, + "youHavePremiumAccess": { + "message": "Már rendelkezünk prémium tagsággal." + }, + "alreadyPremiumFromOrg": { + "message": "Már rendelkezünk a prémium funkciókkal, mert egy szervezet tagjai vagyunk." + }, + "manage": { + "message": "Kezelés" + }, + "disable": { + "message": "Letiltás" + }, + "twoStepLoginProviderEnabled": { + "message": "Ez a kétlépéses bejelentkezés szolgáltató már engedélyezett a fiókon." + }, + "twoStepLoginAuthDesc": { + "message": "A kétlépéses bejelentkezési beállítások módosításához meg kell adni a mesterjelszót." + }, + "twoStepAuthenticatorDesc": { + "message": "Kövesük a következő lépéseket a kétlépéses bejelentkezés beállításához egy hitelesítő alkalmazással:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Kétlépéses hitelesítő alkalmazás letöltése" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Szükség van egy kétlépéses hitelesítő alkalmazásra? Töltsük le a következők egyikét." + }, + "iosDevices": { + "message": "iOS eszközök" + }, + "androidDevices": { + "message": "Android eszközök" + }, + "windowsDevices": { + "message": "Windows eszközök" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Ezek az alkalmazások ajánlottak, de más hitelesítő alkalmazások is működnek." + }, + "twoStepAuthenticatorScanCode": { + "message": "Ezt a kódot kell beolvasni a hitelesítő alkalmazással." + }, + "key": { + "message": "Kulcs" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Adjuk meg az alkalmazásból kapott 6 számjegyű ellenőrző kódot." + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Ha ezt egy másik eszközhöz is hozzá kell adni, lentebb található a hitelesítő alkalmazás QR kódja (vagy kulcsa)." + }, + "twoStepDisableDesc": { + "message": "Biztosan szeretnénk kapcsolni ezt a kétlépcsős bejelentkezés szolgáltatót?" + }, + "twoStepDisabled": { + "message": "A kétlépcsős azonosító szolgáltatás kikapcsolásra került." + }, + "twoFactorYubikeyAdd": { + "message": "Új YubiKey hozzáadása a fiókhoz." + }, + "twoFactorYubikeyPlugIn": { + "message": "Helyezzük be a YubiKey eszközt a számítógép USB portjába." + }, + "twoFactorYubikeySelectKey": { + "message": "Válasszuk ki az első üres YubiKey beviteli mezőt lentebb." + }, + "twoFactorYubikeyTouchButton": { + "message": "Érintsük meg a YubiKey gombját." + }, + "twoFactorYubikeySaveForm": { + "message": "Az űrlap mentése." + }, + "twoFactorYubikeyWarning": { + "message": "Platform korlátozások miatt nem lehetséges minden Bitwarden alkalmazásban YubiKey eszközt használni. Engedélyezzünk egy másik kétlépcsős bejelentkezés szolgáltatót, hogy hozzáférhessünk a fiókhoz akkor is, ha a YubiKey nem használható. Támogatott platformok:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Webes széf, asztali alkalmazás, CLI, és minden egyéb böngésző bővítmény olyan USB porttal rendelkező eszközön, amely elfogadja a YubiKey eszközt." + }, + "twoFactorYubikeySupportMobile": { + "message": "Az NFC szolgáltatással vagy adatporttal ellátott eszközök mobil alkalmazásai elfogadhatják a YubiKey eszközt." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F kulcs $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Kulcs $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC támogatás" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Az egyik kulcs támogatja az NFC-t." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Ha van NFC támogatott YubiKey eszköz (pl. YubiKey NEO), akkor a mobileszközök jelzik az NFC elérhetőség észlelését." + }, + "yubikeysUpdated": { + "message": "A YubiKey eszközök frissítésre kerültek." + }, + "disableAllKeys": { + "message": "Összes kulcs letiltása" + }, + "twoFactorDuoDesc": { + "message": "A Bitwarden alkalmazás információjának megadása a Duo Admin panelről." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integrációs kulcs" + }, + "twoFactorDuoSecretKey": { + "message": "Titkos kulcs" + }, + "twoFactorDuoApiHostname": { + "message": "API kiszolgálónév" + }, + "twoFactorEmailDesc": { + "message": "Kövessük a következő lépéseket a kétlépcsős bejelentkezés beállításához email segítségével:" + }, + "twoFactorEmailEnterEmail": { + "message": "Adjuk meg azt az email címet, ahol az ellenőrző kódokat fogadjuk." + }, + "twoFactorEmailEnterCode": { + "message": "Adjuk meg az emailbőll kapott 6 számjegyű ellenőrző kódot." + }, + "sendEmail": { + "message": "Email küldés" + }, + "twoFactorU2fAdd": { + "message": "Adjunk meg egy FIDO U2F biztonsági kulcsot a fiókhoz." + }, + "removeU2fConfirmation": { + "message": "Biztosan eltávolításra kerüljön a biztonsági kulcs?" + }, + "twoFactorWebAuthnAdd": { + "message": "Adjunk meg egy Webauthn biztonsági kulcsot a felhasználói fiókhoz" + }, + "readKey": { + "message": "Kulcs beolvasása" + }, + "keyCompromised": { + "message": "A kulcs megsérült." + }, + "twoFactorU2fGiveName": { + "message": "Adjunk egy megfelelő nevet a biztonsági kulcsnak az azonosításhoz." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Helyezzük be a biztonsági kulcsot a számítógép USB portjába ás kattintsunk a \"Kulcs beolvasása\" gombra." + }, + "twoFactorU2fTouchButton": { + "message": "Ha biztonsági kulcsnak van gombja, érintsük meg azt." + }, + "twoFactorU2fSaveForm": { + "message": "Az űrlap mentése." + }, + "twoFactorU2fWarning": { + "message": "A platform korlátozások miatt nem lehet minden Bitwarden alkalmazásban FIDO U2F-t használni. Célszerű engedélyezni egy másik kétlépcsős bejelentkezés szolgáltatót a fiók eléréséhez akkor, ha a FIDO U2F nem használható. Támogatott platformok:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web széf és böngésző kiegészítők asztali gépen / laptopon engedélyezett U2F böngészővel (Chrome, Opera, Vivaldi, vagy Firefox bekapcsolt FIDO U2F-fel)." + }, + "twoFactorU2fWaiting": { + "message": "Várakozás a biztonsági kulcs gombjának megérintésére." + }, + "twoFactorU2fClickSave": { + "message": "Kattintás lentebb a \"Mentés\" gombra a kétlépcsős bejelentkezés biztonsági kulcsának engedélyezéséhez." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Probléma lépett fel a biztonsági kulcs olvasásakor. Próbáljuk újra." + }, + "twoFactorWebAuthnWarning": { + "message": "A platform korlátozások miatt nem lehetséges minden Bitwarden alkalmazásban YubiKey eszközt használni. Engedélyezzünk egy másik kétlépcsős bejelentkezés szolgáltatót, hogy hozzáférhessünk a fiókhoz akkor is, ha a YubiKey nem használható. Támogatott platformok:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web széf és böngésző kiegészítők asztali gépen / laptopon engedélyezett U2F böngészővel (Chrome, Opera, Vivaldi, vagy Firefox bekapcsolt FIDO U2F-fel)." + }, + "twoFactorRecoveryYourCode": { + "message": "Bitwarden kétlépcsős bejelentkezés helyreállító kód" + }, + "twoFactorRecoveryNoCode": { + "message": "Még nem lett engedélyezve kétlépcsős bejelentkezés szolgáltató. A kétlépcsős bejelentkezés szolgáltató engedélyezése után visszatérhetünk ide a helyreállító kódért." + }, + "printCode": { + "message": "Kód nyomtatása", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Jelentések" + }, + "reportsDesc": { + "message": "Az alábbi jelentésekre kattintva azonosítsuk és zárjuk le a webes kiókjaink biztonsági hiányosságait." + }, + "unsecuredWebsitesReport": { + "message": "Nem-biztonságos webhelyek jelentés" + }, + "unsecuredWebsitesReportDesc": { + "message": "A http:// sémájú nem-biztonságos webhelyek használata veszélyes lehet. Ha a webhely engedi, mindig használuk a https:// sémát a kapcsolat titkosítására." + }, + "unsecuredWebsitesFound": { + "message": "Nem-biztonságos webhelyek találhatók." + }, + "unsecuredWebsitesFoundDesc": { + "message": "$COUNT$ elem található a széfben nem-biztonságos URI-val. Ezeket URI sémáját célszerű módosítani https://-re.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "A széfben nincs nem-biztonságos URI-val rendelkező elem." + }, + "inactive2faReport": { + "message": "2FA jelentés kikapcsolása" + }, + "inactive2faReportDesc": { + "message": "A kétlépcsős hitelesítés (2FA) egy fontos biztonsági beállítás, amely biztosítja a fiókokat. Ha egy webhely felkínálja ezt, célszerű mindig engedélyezni a kétlépcsős hitelesítést." + }, + "inactive2faFound": { + "message": "2FA nélküli bejelentkezések találhatók." + }, + "inactive2faFoundDesc": { + "message": "$COUNT$ olyan webhelyet találtunk a széfben, amely nincs kétlépcsős hitelesítéssel konfigurálva (a 2fa.directory adatbázisa alapján). Ezen fiókok további védelme érdekében, javasolt a kétlépcsős hitelesítés használata.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "A széfben nincs hiányzó kétlépcsős hitelesítés konfigurációval rendelkező webhely." + }, + "instructions": { + "message": "Utasítások" + }, + "exposedPasswordsReport": { + "message": "Kiszivárgott jelszavak jelentés" + }, + "exposedPasswordsReportDesc": { + "message": "A kiszivárgott jelszavak olyan jelszavak, amelyek ismert adatsértések miatt nyilvánosságra kerültek vagy a sötét interneten hackerek értékesítettek azokat." + }, + "exposedPasswordsFound": { + "message": "Kiszivárgott jelszavak találhatók." + }, + "exposedPasswordsFoundDesc": { + "message": "$COUNT$ elem található a széfben, amelyek érintve voltak ismert adatszivárgásban. Célszerű új jelszavakra lecserélni ezeket.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Nem található a széfben ismert adatszivárgásban érintett jelszó." + }, + "checkExposedPasswords": { + "message": "Kiszivárgott jelszavak ellenőrzése" + }, + "exposedXTimes": { + "message": "$COUNT$ alkalommal szivárgott ki", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Gyenge jelszavak jelentés" + }, + "weakPasswordsReportDesc": { + "message": "A gyenge jelszavakat könnyen megfejthetik hackerek és jelszótöréshez használt eszközök. A Bitwarden jelszógenerátor segít erős jelszót készíteni." + }, + "weakPasswordsFound": { + "message": "Gyenge jelszavak találhatók." + }, + "weakPasswordsFoundDesc": { + "message": "$COUNT$ gyenge jelszó van a széfben. Célszerű lenne ezeket lecserélni erősebb jelszóra.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Egyik elemnél sincsenek gyenge jelszavak." + }, + "reusedPasswordsReport": { + "message": "Újrahasznált jelszavak jelentés" + }, + "reusedPasswordsReportDesc": { + "message": "Ha használatban levő szolgáltatást feltörtek, ugyanannak a jelszónak a használata máshol lehetővé teszi a hackereknek a hozzáférés elérését több webes fióknál is. Fontos, hogy egyedi jelszavakat használjunk minden fiókhoz vagy szolgáltatáshoz." + }, + "reusedPasswordsFound": { + "message": "Újrahasznált jelszavak találhatók." + }, + "reusedPasswordsFoundDesc": { + "message": "$COUNT$ újrahasznált jelszó van a széfben. Változtassuk meg ezeket egyedi értékűre.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "A széfben nincsenek újrahasznált jelszóval rendelkező bejelentkezések." + }, + "reusedXTimes": { + "message": "$COUNT$ alkalommal újrafelhasználva", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Adatszivárgás jelentés" + }, + "breachDesc": { + "message": "Adatszivárgásnak hívják azokat az incidenseket, amelyek során a webhelyek adataihoz illegálisan férnek hozzá hackerek és az így megszerzett adatokat nyilvánosságra hozzák. Ellenőrizzük a kompromittálódott adatok típusait (email cím, jelszó, hitelkártya adatok, stb.) és hajtsuk végre a megfelelő műveleteket, ilyen a jelszócsere." + }, + "breachCheckUsernameEmail": { + "message": "Ellenőriztük a használatban levő felhasználóneveket vagy email címeket." + }, + "checkBreaches": { + "message": "Szivárgás ellenőrzés" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ nem található egyik ismert adatszivárgásban sem.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Jó hírek", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ $COUNT$ különböző webes adatszivárgásban megtalálható.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Kiszivárgott fiókok találhatók." + }, + "compromisedData": { + "message": "Sérült adatok" + }, + "website": { + "message": "Webhely" + }, + "affectedUsers": { + "message": "Érintett felhasználók" + }, + "breachOccurred": { + "message": "Adatszivárgás történt." + }, + "breachReported": { + "message": "Az adatszivárgás jelentésre került." + }, + "reportError": { + "message": "Hiba történt a jelentés betöltése közben. Próbáljuk újra." + }, + "billing": { + "message": "Számlázás" + }, + "accountCredit": { + "message": "Fiók hitelkeret", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Számla egyenleg", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Hitelkeret hozzáadása", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Összeg", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "A feltöltött hitelkeret megjelenik a fiókban a fizetés teljes feldolgozása után. Néhány fizetési mód késhet és hosszabb időt is igénybe vehet." + }, + "makeSureEnoughCredit": { + "message": "Ellenőrizzük, hogy a fióknak elég hitelkerete van a vásárláshoz. Ha nincs elég keret, akkor az alapértelmezett fizetési mód kerül használatba a különbségnél. Hitelkeretet a Számlázás oldalon adhatunk hozzá." + }, + "creditAppliedDesc": { + "message": "A fiók hitelkeret vásárlásra használható. A rendelkezésre álló keret automatikusan ehhez a fiókhoz generálódó számlákra kerül alkalmazásra." + }, + "goPremium": { + "message": "Váltás Prémiumra", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Megtörtént az áttérés a Prémium verzióra." + }, + "premiumUpgradeUnlockFeatures": { + "message": "A fiók átállítása prémium tagságra és sok kiegészítő lehetőség feloldása." + }, + "premiumSignUpStorage": { + "message": "1 GB titkosított tárhely a fájlmellékleteknek." + }, + "premiumSignUpTwoStep": { + "message": "További olyan kétlépcsős bejelentkezési opciók mint a YubiKey, FIDO U2F és Duo." + }, + "premiumSignUpEmergency": { + "message": "Sürgősségi hozzáférés" + }, + "premiumSignUpReports": { + "message": "Jelszó higiénia, felhasználói fiók biztonsága, és adatszivárgási jelentések a széf biztonsága érdekében." + }, + "premiumSignUpTotp": { + "message": "Egyszeri időalapú TOTP ellenőrző kód (2FA) generátor a széfbe bejelentkezésekhez." + }, + "premiumSignUpSupport": { + "message": "Elsőbbségi ügyfélszolgálat." + }, + "premiumSignUpFuture": { + "message": "Minden jövőbeli prémium funkció. Hamarosan jön még több!" + }, + "premiumPrice": { + "message": "Mindez csak $PRICE$ /év.", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Kiegészítők" + }, + "premiumAccess": { + "message": "Prémium hozzáférés" + }, + "premiumAccessDesc": { + "message": "Prémium hozzáférés adható a szervezet összes tagjának $PRICE$ /$INTERVAL$ összegért.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Kiegészítő tárhely (GB)" + }, + "additionalStorageGbDesc": { + "message": "További # GB" + }, + "additionalStorageIntervalDesc": { + "message": "Az előfizetői díjcsomag $SIZE$ titkosított tárhelyet tartalmaz. További tárhellyel bővíthető $PRICE$ /GB /$INTERVAL$ összegben.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Összegzés" + }, + "total": { + "message": "Összesen" + }, + "year": { + "message": "év" + }, + "month": { + "message": "hónap" + }, + "monthAbbr": { + "message": "hó.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "A fizetési mód azonnal, ezután évente kerül ráterhelésre. Bármikor lemondható." + }, + "paymentCharged": { + "message": "A fizetési mód azonnal, ezután $INTERVAL$ időszakonként kerül ráterhelésre. Bármikor lemondható.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "A csomagod 7 napos ingyenes próbaidőszakot tartalmaz. A fizetési módját az időszak végéig nem terheljük. A csomag bármikor lemondható." + }, + "paymentInformation": { + "message": "Fizetési információ" + }, + "billingInformation": { + "message": "Számlázási adatok" + }, + "creditCard": { + "message": "Hitelkártya" + }, + "paypalClickSubmit": { + "message": "Kattintás a PayPal gombra a PayPal fiókba bejelentkezéshez, ezután kattintás a Beküldés gombra a folytatáshoz." + }, + "cancelSubscription": { + "message": "Előfizetés megszüntetése" + }, + "subscriptionCanceled": { + "message": "Az előfizetés törlésre került." + }, + "pendingCancellation": { + "message": "Függő törlés" + }, + "subscriptionPendingCanceled": { + "message": "Az előfizetés törlésre lett kijelölve az aktuális számlázási időszak végéig." + }, + "reinstateSubscription": { + "message": "Előfizetés visszaállítása" + }, + "reinstateConfirmation": { + "message": "Biztosan eltávolításra kerüljön a függőben levő törlés kérés és visszaállításra kerüljön az előfizetés?" + }, + "reinstated": { + "message": "Az előfizetés visszaállításra került." + }, + "cancelConfirmation": { + "message": "Biztosan törlésre kerüljön? A számlázási időszak végén az összes előfizetési hozzáférés elveszik." + }, + "canceledSubscription": { + "message": "Az előfizetés törlésre került." + }, + "neverExpires": { + "message": "Nincs lejárat" + }, + "status": { + "message": "Állapot" + }, + "nextCharge": { + "message": "Következő terhelés" + }, + "details": { + "message": "Részletek" + }, + "downloadLicense": { + "message": "Licensz letöltése" + }, + "updateLicense": { + "message": "Licensz frissítése" + }, + "updatedLicense": { + "message": "A licensz frissítésre került." + }, + "manageSubscription": { + "message": "Előfizetés kezelése" + }, + "storage": { + "message": "Tárhely" + }, + "addStorage": { + "message": "Tárhely hozzáadása" + }, + "removeStorage": { + "message": "Tárhely eltávolítása" + }, + "subscriptionStorage": { + "message": "Az előfizetéshez összesen $MAX_STORAGE$ GB titkosított tárhely tartozik. Jelenleg $USED_STORAGE$ GB van használatban.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Fizetési mód" + }, + "noPaymentMethod": { + "message": "Nincs fizetési mód beállítva." + }, + "addPaymentMethod": { + "message": "Fizetési mód hozzáadása" + }, + "changePaymentMethod": { + "message": "Fizetési mód módosítása" + }, + "invoices": { + "message": "Számlák" + }, + "noInvoices": { + "message": "Nincsenek számlák." + }, + "paid": { + "message": "Fizetve", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Nincs fizetve", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Tranzakciók", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Nincsenek tranzakciók." + }, + "chargeNoun": { + "message": "Terhelés", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Visszatérítés", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "A kivonaton minden terhelés $STATEMENT_NAME$ néven jelenik meg.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "Hozzáadandó tárhely GB mennyiség" + }, + "gbStorageRemove": { + "message": "Eltávolítandó tárhely GB mennyiség" + }, + "storageAddNote": { + "message": "A tárhely bővítés megjelenik a számlaösszesítőben és azonnal terheli a fizetési módot. Az első díj az aktuális számlázási időszak időarányos fennmaradó részére kerül számlázásra." + }, + "storageRemoveNote": { + "message": "A tárhely eltávolítás módosítja a számlázási összegeket, amelyeket jóváírásként számítanak be a következő számlázási díjhoz." + }, + "adjustedStorage": { + "message": "A módosított tárhely mérete $AMOUNT$ GB.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Ügyfélszolgálat elérése" + }, + "updatedPaymentMethod": { + "message": "A fizetési mód frissítésre került." + }, + "purchasePremium": { + "message": "Prémium vásárlása" + }, + "licenseFile": { + "message": "Licenszfájl" + }, + "licenseFileDesc": { + "message": "A licenszfájl elnevezése ehhez hasonló: $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "A fiók prémium tagságira frissítéséhez fel kell tölteni egy érvényes licenszfájlt." + }, + "uploadLicenseFileOrg": { + "message": "Saját tárolt szervezet létrehozásához feltölteni kell egy érvényes licenszfájlt." + }, + "accountEmailMustBeVerified": { + "message": "Ellenőrizni kell a fiókhoz tartozó email címet." + }, + "newOrganizationDesc": { + "message": "A szervezetek lehetővé teszik a széf részeinek megosztását másokkal, valamint egy adott entitással kapcsolatos olyan felhasználók kezelését mint például egy család, kis csapat vagy nagyvállalat." + }, + "generalInformation": { + "message": "Általános információk" + }, + "organizationName": { + "message": "Szervezet neve" + }, + "accountOwnedBusiness": { + "message": "Ez a fiók egy vállalkozás tulajdonában van." + }, + "billingEmail": { + "message": "Számlázási email cím" + }, + "businessName": { + "message": "Vállalkozás neve" + }, + "chooseYourPlan": { + "message": "Díjcsomag választás" + }, + "users": { + "message": "Felhasználók" + }, + "userSeats": { + "message": "Felhasználói helyek" + }, + "additionalUserSeats": { + "message": "Kiegészítő felhasználói helyek" + }, + "userSeatsDesc": { + "message": "Felhasználói helyek száma" + }, + "userSeatsAdditionalDesc": { + "message": "A díjcsomag $BASE_SEATS$ felhasználói helyet tartalmaz. További felhasználókat havi $SEAT_PRICE$/felhasználó/hónap áron lehet felvenni.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Mennyi felhasználói helyre van szükséged? A felhasználói helyeket később szükség esetén bővítheted." + }, + "planNameFree": { + "message": "Ingyenes", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Tesztelésre vagy személyes felhasználóknál megosztás $COUNT$ egyéb felhasználóval.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Családok" + }, + "planDescFamilies": { + "message": "Személyes használatra, családtagokkal és ismerősökkel történő megosztásra." + }, + "planNameTeams": { + "message": "Csoportok" + }, + "planDescTeams": { + "message": "Vállalkozásoknak és más szervezeti csoportoknak." + }, + "planNameEnterprise": { + "message": "Vállalatok" + }, + "planDescEnterprise": { + "message": "Vállalkozásoknak és más nagy szervezeteknek." + }, + "freeForever": { + "message": "Örökre ingyenes" + }, + "includesXUsers": { + "message": "$COUNT$ felhasználót tartalmaz", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "További felhasználók" + }, + "costPerUser": { + "message": "$COST$/felhasználó", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "$COUNT$ felhasználóra korlátozva (az aktuálissal együtt)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "$COUNT$ gyűjteményre korlátozva", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Hozzáadás és megosztás legfeljebb $COUNT$ felhasználóval", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Hozzáadás és megosztás legfeljebb korlátlan felhasználóval" + }, + "createUnlimitedCollections": { + "message": "Korlátlan gyűjtemény létrehozása" + }, + "gbEncryptedFileStorage": { + "message": "1 GB titkosított fájl tárhely.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Saját tárolás (opcionális)" + }, + "usersGetPremium": { + "message": "A felhasználók hozzáférést kapnak a prémium tagság funkcióihoz." + }, + "controlAccessWithGroups": { + "message": "Felhasználó hozzáférés vezérlése csoportokkal." + }, + "syncUsersFromDirectory": { + "message": "A felhasználók és csoportok szinkronizálása könyvtárból." + }, + "trackAuditLogs": { + "message": "Felhasználói műveletek nyomon követése elemző naplózással." + }, + "enforce2faDuo": { + "message": "2FA Duo erőltetése" + }, + "priorityCustomerSupport": { + "message": "Elsőbbségi felhasználói támogatás" + }, + "xDayFreeTrial": { + "message": "$COUNT$ ingyenes nap van még, bármikor megszakítható.", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Havi" + }, + "annually": { + "message": "Évente" + }, + "basePrice": { + "message": "Alapár" + }, + "organizationCreated": { + "message": "A szervezet létrehozásra került." + }, + "organizationReadyToGo": { + "message": "A szervezet használatra kész." + }, + "organizationUpgraded": { + "message": "A szervezet felminősítésre került." + }, + "leave": { + "message": "Kilépés" + }, + "leaveOrganizationConfirmation": { + "message": "Biztosan kilépünk ebből a szervezetből?" + }, + "leftOrganization": { + "message": "Megtörtént a kilépés a szervezetből." + }, + "defaultCollection": { + "message": "Alapértelmezett gyűjtemény" + }, + "getHelp": { + "message": "Segítségkérés" + }, + "getApps": { + "message": "Alkalmazások letöltése" + }, + "loggedInAs": { + "message": "Bejelentkezve mint" + }, + "eventLogs": { + "message": "Eseménynapló" + }, + "people": { + "message": "Emberek" + }, + "policies": { + "message": "Szabályok" + }, + "singleSignOn": { + "message": "Egyszeri bejelentkezés" + }, + "editPolicy": { + "message": "Szabály szerkesztése" + }, + "groups": { + "message": "Csoportok" + }, + "newGroup": { + "message": "Új csoport" + }, + "addGroup": { + "message": "Csoport hozzáadása" + }, + "editGroup": { + "message": "Csoport szerkesztése" + }, + "deleteGroupConfirmation": { + "message": "Biztosan törlésre kerüljön ez a csoport?" + }, + "removeUserConfirmation": { + "message": "Biztosan eltávolításra kerüljön ez a felhasználó?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Figyelem! Ennek a felhasználónak kulcskapcsolóra van szüksége a titkosítás kezeléséhez. Ha eltávolítjuk ezt a felhasználót a szervezetből, azzal véglegesen letiltjuk a fiókját. Ez a művelet nem visszavonható. Folytatás?" + }, + "externalId": { + "message": "Külső azonosító" + }, + "externalIdDesc": { + "message": "A külső azonosító hivatkozásként használható, vagy ahhoz, hogy ezt az erőforrást egy külső rendszerhez, például felhasználói könyvtárhoz kapcsoljuk." + }, + "accessControl": { + "message": "Hozzáférés vezérlés" + }, + "groupAccessAllItems": { + "message": "Ez a csoport minden elemhez hozzáfér és módosíthatja azokat." + }, + "groupAccessSelectedCollections": { + "message": "Ez a csoport csak a kiválasztott gyűjteményekhez fér hozzá." + }, + "readOnly": { + "message": "Csak olvasható" + }, + "newCollection": { + "message": "Új gyűjtemény" + }, + "addCollection": { + "message": "Gyűjtemény hozzáadása" + }, + "editCollection": { + "message": "Gyűjtemény szerkesztése" + }, + "deleteCollectionConfirmation": { + "message": "Biztosan törlésre kerüljön ez a gyűjtemény?" + }, + "editUser": { + "message": "Felhasználó szerkesztése" + }, + "inviteUser": { + "message": "Felhasználó meghívása" + }, + "inviteUserDesc": { + "message": "Új felhasználó meghívása a szervezetéhez a Bitwarden fiók e-mail címének megadásával. Ha még nem rendelkezik Bitwarden-fiókkal, felkérjük új fiók létrehozására.\n" + }, + "inviteMultipleEmailDesc": { + "message": "Egymástól vesszővel elválasztott email címek megadásával egyszerre akár $COUNT$ felhasználó meghívható.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Ez a felhasználó kétlépcsős bejelentkezést használ fiókja védelmére." + }, + "userAccessAllItems": { + "message": "Ez a felhasználó minden elemhez hozzáfér és módosítani tudja azokat." + }, + "userAccessSelectedCollections": { + "message": "Ez a felhasználó csak a kiválasztott gyűjteményekhez fér hozzá." + }, + "search": { + "message": "Keresés" + }, + "invited": { + "message": "Meghívott" + }, + "accepted": { + "message": "Elfogadva" + }, + "confirmed": { + "message": "Megerősítve" + }, + "clientOwnerEmail": { + "message": "Ügyféltulajdonos e-mail cím" + }, + "owner": { + "message": "Tulajdonos" + }, + "ownerDesc": { + "message": "A legmagasabb hozzáféréssel rendelkező felhasználó kezelheti a szervezet összes lehetőségét." + }, + "clientOwnerDesc": { + "message": "Ennek a felhasználónak függetlennek kell lennie a szolgáltatótól. Ha a Szolgáltató nincs kapcsolatban a szervezettel, akkor ez a felhasználó tartja fenn a szervezet tulajdonjogát." + }, + "admin": { + "message": "Adminisztrátor" + }, + "adminDesc": { + "message": "Az adminisztrátorok hozzáférhetnek a szervezet összes eleméhez, gyűjteményéhez és felhasználójához, valamint kezelhetik azokat." + }, + "user": { + "message": "Felhasználó" + }, + "userDesc": { + "message": "Normál felhasználó a szervezeti gyűjtemények elérésével." + }, + "manager": { + "message": "Menedzser" + }, + "managerDesc": { + "message": "A menedzserek hozzáférhetnek a szervezet összes gyűjteményéhez, valamint kezelhetik azokat." + }, + "all": { + "message": "Összes" + }, + "refresh": { + "message": "Frissítés" + }, + "timestamp": { + "message": "Időbélyeg" + }, + "event": { + "message": "Esemény" + }, + "unknown": { + "message": "Ismeretlen" + }, + "loadMore": { + "message": "Továbbiak betöltése" + }, + "mobile": { + "message": "Mobil", + "description": "Mobile app" + }, + "extension": { + "message": "Bővítmény", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Asztali", + "description": "Desktop app" + }, + "webVault": { + "message": "Webes széf" + }, + "loggedIn": { + "message": "Megtörtént a bejelentkezés." + }, + "changedPassword": { + "message": "A fiók jelszava megváltozott." + }, + "enabledUpdated2fa": { + "message": "A kétlépcsős bejelentkezés bekapcsolásra/frissítésre került." + }, + "disabled2fa": { + "message": "A kétlépcsős bejelentkezés kikapcsolásra került." + }, + "recovered2fa": { + "message": "38/5000\nA fiók visszaállításra került a kétlépcsős bejelentkezésről." + }, + "failedLogin": { + "message": "A bejelentkezési kísérlet hibás jelszó miatt meghiúsult." + }, + "failedLogin2fa": { + "message": "A bejelentkezés meghiúsult hibás kétlépcsős bejelentkezés miatt." + }, + "exportedVault": { + "message": "A széf exportálásra került." + }, + "exportedOrganizationVault": { + "message": "A szervezeti széf exportálásra került." + }, + "editedOrgSettings": { + "message": "A szervezeti beállítások módosításra kerültek." + }, + "createdItemId": { + "message": "$ID$ azonosítójú elem létrehozásra került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "$ID$ azonosítójú elem módosításra került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "$ID$ azonosítójú elemtörlésre került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "$ID$ elem átkerült egy szervezethez.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "$ID$ azonosítójú elem megtekintésre került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "$ID$ azonosítójú elem jelszava megtekintésre került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "$ID$ azonosítójú elem rejhtett mezője megtekintésre került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "$ID$ azonosítójú elem biztonsági kódja megtekintésre került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "$ID$ azonosítójú elem jelszava másolásra került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "$ID$ azonosítójú elem rejtett mezője másolásra került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "$ID$ azonosítójú elem biztonsági kódja másolásra került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "$ID$ azonosítójú elem automatikusan kitöltésre került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "$ID$ azonosítójú gyűjtemény létrehozásra került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "$ID$ azonosítójú gyűjtemény módosításra került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "$ID$ azonosítójú gyűjtemény törlésre került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "$ID$ szabály szerkesztésre került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "$ID$ azonosítójú csoport létrehozásra került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "$ID$ azonosítójú csoport módosításra került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "$ID$ azonosítójú csoport törlésre került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "$ID$ azonosítójú felhasználó eltávolításra került.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "$ID$ azonosítójú elem melléklete létrehozásra került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "$ID$ azonosítójú elem melléklete törlésre került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "$ID$ azonosítójú elem gyűjteménye módosításra került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "$ID$ azonosítójú felhasználó meghívásra került.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "$ID$ azonosítójú felhasználó megerősítésre került.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "$ID$ azonosítójú felhasználó módosításra került.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "$ID$ azonosítójú felhasználó csoportjai módosításra kerültek.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "SSO szétkapcsolva $ID$ felhasználónál.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Létrehozott szervezet: $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Hozzáadott szervezet: $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Eltávolított szervezet: $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Hozzáfért $ID$ szervezeti széf.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Eszköz" + }, + "view": { + "message": "Megtekintés" + }, + "invalidDateRange": { + "message": "Az időintervallum érvénytelen." + }, + "errorOccurred": { + "message": "Valamilyen hiba történt." + }, + "userAccess": { + "message": "Felhasználói hozzáférés" + }, + "userType": { + "message": "Felhasználó típus" + }, + "groupAccess": { + "message": "Csoport hozzáférés" + }, + "groupAccessUserDesc": { + "message": "A felhasználóhoz tartozó csoportok szerkesztése." + }, + "invitedUsers": { + "message": "A meghívott felhasználók." + }, + "resendInvitation": { + "message": "Meghívás újraküldése" + }, + "resendEmail": { + "message": "Email újraküldése" + }, + "hasBeenReinvited": { + "message": "$USER$ ismételten meghívásra került.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Megerősítés" + }, + "confirmUser": { + "message": "Felhasználó megerősítése" + }, + "hasBeenConfirmed": { + "message": "$USER$ felhasználó megerősítésre került.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Felhasználók megerősítése" + }, + "usersNeedConfirmed": { + "message": "Vannak olyan felhasználók, akik elfogadták a meghívást, de ezt még meg kell erősíteni. A felhasználók csak a megerősítésük utánt férhetnek hozzá a szervezethez." + }, + "startDate": { + "message": "Kezdő dátum" + }, + "endDate": { + "message": "Végdátum" + }, + "verifyEmail": { + "message": "Email cím ellenőrzése" + }, + "verifyEmailDesc": { + "message": "A fiók email címének ellenőrzése az összes funkció feloldásához." + }, + "verifyEmailFirst": { + "message": "A fiók email címét először ellenőrizni kell." + }, + "checkInboxForVerification": { + "message": "A bejövő postaláda ellenőrzése az ellenőrző linkért." + }, + "emailVerified": { + "message": "Az email cím megerősítésre került." + }, + "emailVerifiedFailed": { + "message": "Nem sikerült az email cím ellenőrzése. Új ellenőrző email küldése." + }, + "emailVerificationRequired": { + "message": "E-mail hitelesítés szükséges" + }, + "emailVerificationRequiredDesc": { + "message": "A funkció használatához ellenőrizni kell az email címet." + }, + "updateBrowser": { + "message": "Böngésző frissítése" + }, + "updateBrowserDesc": { + "message": "Nem támogatott böngészőt használunk. Előfordulhat, hogy a webes széf nem működik megfelelően." + }, + "joinOrganization": { + "message": "Csatlakozás szervezethez" + }, + "joinOrganizationDesc": { + "message": "Meghívást érkezett a fenti szervezethez csatlakozáshoz. A meghívás elfogadásához be kell jelentkezni vagy új Bitwarden fiókot kell létrehozni." + }, + "inviteAccepted": { + "message": "A meghívás elfogadásra került." + }, + "inviteAcceptedDesc": { + "message": "A szervezet elérhető, amikor az adminisztrátor jóváhagyja a tagságot. Amint ez megtörténik, értesítő email érkezik." + }, + "inviteAcceptFailed": { + "message": "A meghívás nem fogadható el. Kérjük fel a szervezet adminisztrátorát új meghívó küldésére." + }, + "inviteAcceptFailedShort": { + "message": "Nem lehet elfogadni a meghívást. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "E-mail megjegyzése" + }, + "recoverAccountTwoStepDesc": { + "message": "Ha nem férünk hozzá a fiókhoz a normál kétlépcsős bejelentkezési módokkal, használhatjuk a kétlépcsős bejelentkezés helyreállító kódot a fiókra vonatkozó összes kétlépcsős szolgáltató kikapcsolásához." + }, + "recoverAccountTwoStep": { + "message": "Fiók kétlépcsős bejelentkezés helyreállítása" + }, + "twoStepRecoverDisabled": { + "message": "A kétlécsős hitelesítés kikapcsolásra került a fióknál." + }, + "learnMore": { + "message": "További információ" + }, + "deleteRecoverDesc": { + "message": "Az email cím megadása lentebb a fiók helyreállításához és törléséhez." + }, + "deleteRecoverEmailSent": { + "message": "Ha létezik a fiók, egy email kerül kiküldésre további utasításokkal." + }, + "deleteRecoverConfirmDesc": { + "message": "A Bitwarden fiók törlését kértük. Kattintás a lenti gombra a megerősítéshez." + }, + "myOrganization": { + "message": "Saját szervezet" + }, + "deleteOrganization": { + "message": "Szervezet törlése" + }, + "deletingOrganizationContentWarning": { + "message": "Adjuk meg a mesterjelszót $ORGANIZATION$ és az összes társított adat törlésének megerősítéséhez. $ORGANIZATION$ széfadatainak tartalma:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "A felhasználói fiókok aktívak maradnak a törlés után, de a továbbiakben nincsenek társítva ehhez a szervezethez." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "$ORGANIZATION$ törlése végleges és nincs visszaállítási lehetőség.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "A szervezet törlésre került." + }, + "organizationDeletedDesc": { + "message": "A szervezet és az összes társított adat törlésre került." + }, + "organizationUpdated": { + "message": "A szervezet frissítésre került." + }, + "taxInformation": { + "message": "Adó információ" + }, + "taxInformationDesc": { + "message": "Vegyük fel a kapcsolatot a támogatással a számlához tartozó adóinformáció megadásával (vagy frissítésével) kapcsolatban." + }, + "billingPlan": { + "message": "Díjcsomag", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Díjcsomag változtatása", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "A fiók felminősítése másik díjcsomagra az alábbi megadott információ alapján. Ellenőrizzük a fiókhoz adott aktív fizetési módot.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "#$NUMBER$ számla", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Számla megtekintése" + }, + "downloadInvoice": { + "message": "Számla letöltése" + }, + "verifyBankAccount": { + "message": "Bankfiók ellenőrzése" + }, + "verifyBankAccountDesc": { + "message": "Két mikroterhelést végeztünk a bankszámlán (akár 1-2 napot is igénybe vehet a megjelenésig). Adjuk meg ezeket az összegeket a bankszámla ellenőrzéséhez." + }, + "verifyBankAccountInitialDesc": { + "message": "A bankszámlával történő fizetés csak az USA ügyfelek számára érhető el. Ehhez ellenőrizni kell a bankszámlát. Két mikroterhelést végeztünk a bankszámlán a következő 1-2 napban. Adjuk meg ezeket az összegeket a szervezet számlázási oldalán a bankszámla ellenőrzéséhez." + }, + "verifyBankAccountFailureWarning": { + "message": "A bankszámla ellenőrzésének sikertelensége elmaradt fizetéshez és az előfizetés leállításához vezet." + }, + "verifiedBankAccount": { + "message": "A bankszámla megerősítésre került." + }, + "bankAccount": { + "message": "Bankszámla" + }, + "amountX": { + "message": "$COUNT$. összeg", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Banki azonosító szám", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Számlaszám" + }, + "accountHolderName": { + "message": "Számlatulajdonos neve" + }, + "bankAccountType": { + "message": "Számlatípus" + }, + "bankAccountTypeCompany": { + "message": "Cég (üzleti)" + }, + "bankAccountTypeIndividual": { + "message": "Egyéni (személyes)" + }, + "enterInstallationId": { + "message": "Telepítési azonosító megadása" + }, + "limitSubscriptionDesc": { + "message": "Állítsunk be helykorlátot az előfizetéshez. Ha elérjük ezt a korlátot, nem tudunk új felhasználókat meghívni." + }, + "maxSeatLimit": { + "message": "Maximális helykorlát (opcionális)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Maximális lehetséges helyköltség" + }, + "addSeats": { + "message": "Helyek hozzáadása", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Helyek eltávolítása", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Az előfizetés módosítása a számlázási összegek arányos módosítását eredményezi. Ha az újonnan meghívott felhasználók túllépik az előfizetői helyeket, akkor haladéktalanul külön díjat kapunk a további felhasználókért." + }, + "subscriptionUserSeats": { + "message": "Az előfizetés összesen $COUNT$ felhasználót tesz lehetővé.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Előfizetés korlát (opcionális)" + }, + "subscriptionSeats": { + "message": "Előfizetői helyek" + }, + "subscriptionUpdated": { + "message": "Az előfizetés frissítésre került." + }, + "additionalOptions": { + "message": "Kiegészítő opciók" + }, + "additionalOptionsDesc": { + "message": "Az előfizetés kezelésével kapcsolatos további segítségért forduljunk az Ügyfélszolgálathoz." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Az előfizetés módosítása a számlázási összegek arányos módosítását eredményezi. Ha az újonnan meghívott felhasználók túllépik az előfizetői helyeket, akkor haladéktalanul külön díjat kapunk a további felhasználókért." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Az előfizetés módosítása a számlázási összegek arányos módosítását eredményezi. Ha az újonnan meghívott felhasználók túllépik az előfizetési helyeket, akkor haladéktalanul külön díjat kapunk a további felhasználókért, amíg el nem érjük a $MAX$ helykorlátot.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "$COUNT$ felhasználónál több nem hívható meg magasabb szintű előfizetés nélkül.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "$COUNT$ felhasználónál több nem hívható meg magasabb szintű előfizetés nélkül. Az áttéréshez vegyük fel a kapcsolatot a vevőszolgálattal.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Az előfizetés összesen $COUNT$ felhasználót tesz lehetővé. A csomagot egy külső szervezet szponzorálja és számlázza ki.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Az előfizetés módosítása a számlázási összegek arányos módosítását eredményezi. Nem hívhatunk meg több, mint $COUNT$ felhasználót az előfizetői helyek növelése nélkül.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Hozzáadandó helyek" + }, + "seatsToRemove": { + "message": "Eltávolítandó helyek" + }, + "seatsAddNote": { + "message": "A felhasználó helyek hozzáadása megjelenik a számlaösszesítőben és azonnal terheli a fizetési módot. Az első terhelés az aktuális számlázási ciklus időarányos fennmaradó része eszerint kerül számlázásra." + }, + "seatsRemoveNote": { + "message": "A felhasználó helyek eltávolítása megjelenik a számlaösszesítőben és előlegként jelenik meg a következő számlázási terheléskor." + }, + "adjustedSeats": { + "message": "$AMOUNT$ felhasználói hely beállításra került.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "A kulcs frissítésre került." + }, + "updateKeyTitle": { + "message": "Kulcs frissítés" + }, + "updateEncryptionKey": { + "message": "Titkosítási kulcs frissítés" + }, + "updateEncryptionKeyShortDesc": { + "message": "Jelenleg elavult titkosítási séma van használatban." + }, + "updateEncryptionKeyDesc": { + "message": "Hosszabb titkosítókulcsok kerültek használatba, amelyek jobb biztonságot és hozzáférést biztosítanak új funkciókhoz. A titkosító kulcs frissítése könnyű és gyors. Csak meg kell adni a mesterjelszót. Ez a frissítés kötelezővé válik." + }, + "updateEncryptionKeyWarning": { + "message": "A titkosítási kulcs frissítése után ki kell jelentkezni és vissza kell jelentkezni az összes jelenleg használt Bitwarden alkalmazásba (például a mobilalkalmazás vagy a böngésző bővítmények). A kijelentkezés és a bejelentkezés elmulasztása (amely letölti az új titkosítási kulcsot) adatvesztést okozhat. Megkíséreljük az automatikusan kijelentkeztetést, azonban ez késhet." + }, + "updateEncryptionKeyExportWarning": { + "message": "Az el nem mentett titkosított exportok szintén érvénytelenné válnak." + }, + "subscription": { + "message": "Előfizetés" + }, + "loading": { + "message": "A betöltés folyamatban van." + }, + "upgrade": { + "message": "Áttérés" + }, + "upgradeOrganization": { + "message": "Szervezeti áttérés" + }, + "upgradeOrganizationDesc": { + "message": "Ez a szolgáltatás nem elérhető ingyenes szervezeteknek. Váltás fizetős díjcsomagra a további funkciók feloldásához." + }, + "createOrganizationStep1": { + "message": "Szervezet létrehozása: 1. lépés" + }, + "createOrganizationCreatePersonalAccount": { + "message": "A szervezet létrehozása előtt létre kell hozni egy ingyenes személyes fiókot." + }, + "refunded": { + "message": "Visszatérített" + }, + "nothingSelected": { + "message": "Nincs kiválasztva semmi." + }, + "acceptPolicies": { + "message": "A doboz bejelölésével elfogadjuk a következőket:" + }, + "acceptPoliciesError": { + "message": "A szolgáltatási feltételeket és az adatvédelmi irányelveket nem vették figyelembe." + }, + "termsOfService": { + "message": "Felhasználási feltételek" + }, + "privacyPolicy": { + "message": "Adatvédelem" + }, + "filters": { + "message": "Szűrők" + }, + "vaultTimeout": { + "message": "Széf időkifutás" + }, + "vaultTimeoutDesc": { + "message": "Válasszuk ki, hogy a széfnél mikor legyen időkifutás és a kiválasztott művelet végrehajtása." + }, + "oneMinute": { + "message": "1 perc" + }, + "fiveMinutes": { + "message": "5 perc" + }, + "fifteenMinutes": { + "message": "15 perc" + }, + "thirtyMinutes": { + "message": "30 perc" + }, + "oneHour": { + "message": "1 óra" + }, + "fourHours": { + "message": "4 óra" + }, + "onRefresh": { + "message": "Böngésző újraindításkor" + }, + "dateUpdated": { + "message": "A frissítés megtörtént.", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "A jelszó frissítésre került.", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "A szervezet letiltásra került." + }, + "licenseIsExpired": { + "message": "A licensz lejárt." + }, + "updatedUsers": { + "message": "A felhasználók frissítésre kerültek." + }, + "selected": { + "message": "Kiválasztva" + }, + "ownership": { + "message": "Tulajdonjog" + }, + "whoOwnsThisItem": { + "message": "Ki tulajdonolja ezt az elemet?" + }, + "strong": { + "message": "Erős", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Jó", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Gyenge", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Nagyon gyenge", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Gyenge mesterjelszó" + }, + "weakMasterPasswordDesc": { + "message": "A választott mesterjelszó gyenge. Erős jelszót kell használni a Bitwarden fiók megfelelő védelme érdekében. Biztosan ezt a mesterjelszót szeretnénk használni?" + }, + "rotateAccountEncKey": { + "message": "A fiók titkosító kulcs forgatása is" + }, + "rotateEncKeyTitle": { + "message": "Titkosító kulcs forgatása" + }, + "rotateEncKeyConfirmation": { + "message": "Biztosan fordításra kerüljön a fiók titkosító kulcsa?" + }, + "attachmentsNeedFix": { + "message": "Ennek az elemnek régi fájl mellékletei vannak, amelyeket javítani kell." + }, + "attachmentFixDesc": { + "message": "Ez egy régi melléklet, amelyet javítani kell. Kattintás több információért." + }, + "fix": { + "message": "Javítás", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "A széfben régi mellékletek vannak, amelyeket javítani kell a fiók titkosító kulcsának fordítása előtt." + }, + "yourAccountsFingerprint": { + "message": "Fók ujjnyomat kifejezés", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "A titkosítási kulcs integritásának biztosítása érdekében ellenőrizzük a felhasználói ujjlenyomat kifejezést a folytatás előtt.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Soha ne kérje a meghívottak ujjlenyomat kifejezésének ellenőrzését (nem ajánlott)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Ingyenes", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API kulcs" + }, + "apiKeyDesc": { + "message": "Az API kulcs használható a Bitwarden nyilvános API hitelesítéséhez." + }, + "apiKeyRotateDesc": { + "message": "Az API kulcs forgatása érvényteleníti a korábbi kulcsot. Az API kulcs forgatható, ha a jelenlegi kulcs már nem tűnik biztonságosnak." + }, + "apiKeyWarning": { + "message": "Az API kulcs teljes hozzáférést biztosít a szervezethez. Célszerű titokban tartani." + }, + "userApiKeyDesc": { + "message": "Az API kulcs használható a Bitwarden CLI hitelesítéséhez." + }, + "userApiKeyWarning": { + "message": "API kulcs alternatív hitelesítési mechanizmus. Célszerű titokban tartani." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 ügyfél hitelesítések", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "API kulcs megtekintése" + }, + "rotateApiKey": { + "message": "API kulcs forgatása" + }, + "selectOneCollection": { + "message": "Legalább egy gyűjteményt ki kell választani." + }, + "couldNotChargeCardPayInvoice": { + "message": "Nem lehet megterhelni a kártyát. Nézzük át és fizessük ki az alább felsorolt kifizetés nélküli számlát." + }, + "inAppPurchase": { + "message": "Alkalmazáson belüli vásárlás" + }, + "cannotPerformInAppPurchase": { + "message": "Nem hajtható végre ez a művelet az alkalmazáson belüli vásárlás fizetési módjának használatával." + }, + "manageSubscriptionFromStore": { + "message": "Az előfizetés annál az üzletnél kell kezelni, ahol az alkalmazáson belüli vásárlás történt." + }, + "minLength": { + "message": "Minimális hossz" + }, + "clone": { + "message": "Klónozás" + }, + "masterPassPolicyDesc": { + "message": "A minimális követelmények beállítása a mesterjelszó hozzához." + }, + "twoStepLoginPolicyDesc": { + "message": "A felhasználók számára kétlépcsős bejelentkezés szükséges a személyes fióknál." + }, + "twoStepLoginPolicyWarning": { + "message": "A személyes fióknál a kétlépcsős bejelentkezéssel nem rendelkező szervezet tagok eltávolításra kerülnek a szervezetből és a változásról értesítő emailt kapnak." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Egy szervezet tag számára szükséges a személyes fióknál a kétlépcsős bejelentkezés. Az összes kétlépcsős szolgáltató letiltása esetén az összes ilyen szervezetből eltávolításra kerül a tag." + }, + "passwordGeneratorPolicyDesc": { + "message": "A minimális követelmények beállítása a jelszó generáló konfigurációhoz." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Egy vagy több szervezeti szabály érinti a generátor beállításokat." + }, + "masterPasswordPolicyInEffect": { + "message": "Egy vagy több szervezeti szabály előírja a mesterjelszóhoz a következő követelményeket:" + }, + "policyInEffectMinComplexity": { + "message": "Minimális összetettségi pontszám $SCORE$ értékhez", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimális hossz $LENGTH$ értékből", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Egy vagy több nagybetűs karaktert tartalmaz" + }, + "policyInEffectLowercase": { + "message": "Egy vagy több kisbetűs karaktert tartalmaz" + }, + "policyInEffectNumbers": { + "message": "Egy vagy több számot tartalmaz" + }, + "policyInEffectSpecial": { + "message": "$CHARS$ speciális karakterekből egyet vagy többet tartalmaz", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Az új mesterjelszó nem felel meg a szabály követelményeknek." + }, + "minimumNumberOfWords": { + "message": "Szavak minimális száma" + }, + "defaultType": { + "message": "Alapértelmezett típus" + }, + "userPreference": { + "message": "Felhasználói előbeállítás" + }, + "vaultTimeoutAction": { + "message": "Széf időkifutás művelet" + }, + "vaultTimeoutActionLockDesc": { + "message": "Egy zárolt széfnél újra meg kell adni a mesterjelszót az ismételt hozzáféréshez." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "A lezárt széfnél szükséges az újra hitelesítés az ismételt eléréshez." + }, + "lock": { + "message": "Lezárás", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Lomtár", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Keresés a lomtárban" + }, + "permanentlyDelete": { + "message": "Végleges törlés" + }, + "permanentlyDeleteSelected": { + "message": "A kiválasztottak végleges törlése" + }, + "permanentlyDeleteItem": { + "message": "Az elem végleges törlése" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Biztosan véglegesen törlésre kerüljön ez az elem?" + }, + "permanentlyDeletedItem": { + "message": "Elem végleges törlése" + }, + "permanentlyDeletedItems": { + "message": "Elemek végleges törlése" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "$COUNT$ elem lett kiválasztva végleges törlésre. Biztosan végleges törlésre kerüljön az összes elem?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "$ID$ elem véglegesen törlésre került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Visszaállítás" + }, + "restoreSelected": { + "message": "Kiválasztottak visszaállítása" + }, + "restoreItem": { + "message": "Elem visszaállítása" + }, + "restoredItem": { + "message": "Visszaállított elem" + }, + "restoredItems": { + "message": "Visszaállított elemek" + }, + "restoreItemConfirmation": { + "message": "Biztosan visszaállításra kerüljön ez az elem?" + }, + "restoreItems": { + "message": "Elemek visszaállítása" + }, + "restoreSelectedItemsDesc": { + "message": "$COUNT$ elem lett kiválasztva visszaállításra. Biztosan visszaállításra kerüljön az összes elem?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "$ID$ azonosítójú elem visszaállításra került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Kijelentkezve az összes széf elérés eltávolításra kerül és webes hitelesítésre van szükség az időkifutás után. Biztosan szeretnénk használni ezt a beállítást?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Időkifutás művelet megerősítés" + }, + "hidePasswords": { + "message": "Jelszavak elrejtése" + }, + "countryPostalCodeRequiredDesc": { + "message": "Ez az információ csak adószámításhoz és pénzügyi jelentéshez szükséges." + }, + "includeVAT": { + "message": "ÁFA/GST információval (opcionális)" + }, + "taxIdNumber": { + "message": "ÁFA/GST adó azonosító" + }, + "taxInfoUpdated": { + "message": "Az adóinformáció frissítésre került." + }, + "setMasterPassword": { + "message": "Mesterjelszó beállítása" + }, + "ssoCompleteRegistration": { + "message": "Az SSO-val történő bejelentkezés befejezéséhez mesterjelszót kell beállítani a széf eléréséhez és védelméhez." + }, + "identifier": { + "message": "Azonosító" + }, + "organizationIdentifier": { + "message": "Szervezeti azonosító" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Bejelentkezés a szervezeti önálló portálba. A kezdéshez meg kell adni a szervezeti azonosítót." + }, + "enterpriseSingleSignOn": { + "message": "Vállalati önálló bejelentkezés" + }, + "ssoHandOff": { + "message": "Bezárható ez a fül és folytatás a bővítményben." + }, + "includeAllTeamsFeatures": { + "message": "Összes Csapat funkció, továbbá:" + }, + "includeSsoAuthentication": { + "message": "SSO hitelesítés SAML2.0 és OpenID Connect kapcsolaton keresztül" + }, + "includeEnterprisePolicies": { + "message": "Vállalati rendszabályok" + }, + "ssoValidationFailed": { + "message": "SSO érvényesítési mező" + }, + "ssoIdentifierRequired": { + "message": "A szervezeti azonosító megadása szükséges." + }, + "unlinkSso": { + "message": "SSO szétkapcsolása" + }, + "unlinkSsoConfirmation": { + "message": "Biztosan szeretnénk az SSO leválasztását ennél a szervezetnél?" + }, + "linkSso": { + "message": "SSO csatolása" + }, + "singleOrg": { + "message": "Önálló szervezet" + }, + "singleOrgDesc": { + "message": "Korlátozza a felhasználókat más szervezetekhez csatlakozásban." + }, + "singleOrgBlockCreateMessage": { + "message": "Jelenlegi szervezetének van olyan irányelve, amely nem engedélyezi, hogy több szervezethez csatlakozzunk. Lépjünk kapcsolatba szervezetünk adminisztrátorával vagy regisztráljunk egy másik Bitwarden fiókból." + }, + "singleOrgPolicyWarning": { + "message": "A szervezet azon tagjait, akik nem tulajdonosok vagy rendszergazdák, és már egy másik szervezet tagjai, eltávolítjáara kerülnek a szervezetből." + }, + "requireSso": { + "message": "Egyszeri bejelentkezés hitelesítése" + }, + "requireSsoPolicyDesc": { + "message": "A felhasználóknál az Vállalati egyszeri vejelentkezés hitelesítési mód megkövetelése." + }, + "prerequisite": { + "message": "Előfeltétel" + }, + "requireSsoPolicyReq": { + "message": "Az irányelv bekapcsolása előtt engedélyezni kell az Önálló szervezet vállalati irányelvét." + }, + "requireSsoPolicyReqError": { + "message": "Az Önálló szervezet irányelv nem engedélyezett." + }, + "requireSsoExemption": { + "message": "A szervezet tulajdonosai és adminisztrátorai mentesülnek az irányelv végrehajtása alól." + }, + "sendTypeFile": { + "message": "Fájl" + }, + "sendTypeText": { + "message": "Szöveg" + }, + "createSend": { + "message": "Új küldés létrehozása", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Küldés szerkesztése", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "A küldés létrejött.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "A küldés szerkesztésre került.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "A küldés törlésre került.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Küldés törlése", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Biztosan törlésre kerüljön ez a küldés?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Milyen típusú ez a küldés?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Törlési dátum" + }, + "deletionDateDesc": { + "message": "A Send véglegesen törölve lesz a meghatározott időpontban.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Lejárati dátum" + }, + "expirationDateDesc": { + "message": "Amennyiben be van állítva, a hozzáférés ehhez a Küldéshez lejár a meghatározott időpontban.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximális elérési szám" + }, + "maxAccessCountDesc": { + "message": "Amennyiben be van állítva, a Send elérhetetlen lesz, amint elérik a meghatározott hozzáférések számát.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Aktuális elérési szám" + }, + "sendPasswordDesc": { + "message": "Opcionálissan egy jelszó kérhető a felhasználóktól a Küldés eléréséhez.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Személyes megjegyzések erről a Küldésről.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Letiltva" + }, + "sendLink": { + "message": "Send hivatkozás", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Hivatkozás küldés másolása", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Jelszó eltávolítása" + }, + "removedPassword": { + "message": "A jelszó eltávolításra került." + }, + "removePasswordConfirmation": { + "message": "Biztosan eltávolításra kerüljön ez a jelszó?" + }, + "hideEmail": { + "message": "Saját email cím elrejtése a címzettek elől." + }, + "disableThisSend": { + "message": "A Küldés letiltásával mindenki hozzáférése megvonható.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Összes küldés" + }, + "maxAccessCountReached": { + "message": "A maximális hozzáférések száma elérésre került.", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Függőben lévő törlés" + }, + "expired": { + "message": "Lejárt" + }, + "searchSends": { + "message": "Küldés keresése", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "A küldés jelszóval védett. A folytatáshoz lentebb meg kell adni a jelszót.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Nem ismerjük a jelszót? Kérdezzünk rá a küldőnél a küldés elérésére szükséges jelszóért.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Ez a küldés alapértelmezésben rejtett. Az alábbi gombbal átváltható a láthatósága.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Fájl letöltése" + }, + "sendAccessUnavailable": { + "message": "Az elérendő küldés nem létezik vagy már nem elérhető.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "A Küldéshez társított fájl nem található.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "A listában nincs küldés.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Sürgősségi hozzáférés" + }, + "emergencyAccessDesc": { + "message": "Sürgősségi hozzáférés kezelése és megadása megbízható kapcsolatoknak. A megbízható kapcsolatok sürgősségi helyzet esetén hozzáférést kérhetnek a fiókhoz vagy átvehetik azt. További információkat a funkció működésével kapcsolatban a súgó oldalon találhatunk." + }, + "emergencyAccessOwnerWarning": { + "message": "Jelnleg egy vagy több szervezet tulajdonosa vagyunk. Ha átvételi hozzáférést adunk egy vészhelyzeti kapcsolattartónak, akkor az átvételt követően tulajdonosként használhatják az összes engedélyt." + }, + "trustedEmergencyContacts": { + "message": "Megbízható sürgősségi kapcsolatok" + }, + "noTrustedContacts": { + "message": "Még nem adták hozzá sürgősségi kapcsolatokat, hívjunk meg megbízható kapcsolatokat az induláshoz." + }, + "addEmergencyContact": { + "message": "Sürgősségi kapcsolat hozzáadása" + }, + "designatedEmergencyContacts": { + "message": "Sürgősségi kapcsolatnak kinevezve" + }, + "noGrantedAccess": { + "message": "Még senki nem nevezett ki sürgősségi kapcsolatként." + }, + "inviteEmergencyContact": { + "message": "Sürgősségi kapcsolat meghívása" + }, + "editEmergencyContact": { + "message": "Sürgősségi kapcsolat szerkesztése" + }, + "inviteEmergencyContactDesc": { + "message": "Új felhasználó meghívása sürgősségi kapcsolatként a Bitwarden fiók email címének megadásával. Ha még nem rendelkezik Bitwarden-fiókkal, felkérjük új fiók létrehozására." + }, + "emergencyAccessRecoveryInitiated": { + "message": "A sürgősségi hozzáférés kezdeményezésre került." + }, + "emergencyAccessRecoveryApproved": { + "message": "A sürgősségi hozzáférés jóváhagyásra került." + }, + "viewDesc": { + "message": "A széf valamennyi elemét láthatja." + }, + "takeover": { + "message": "Átvétel" + }, + "takeoverDesc": { + "message": "Visszaállíthatja a fiók egy új mesterjelszóval." + }, + "waitTime": { + "message": "Várakozási idő" + }, + "waitTimeDesc": { + "message": "Szükséges idő az automatikus hozzáférés megadásáig." + }, + "oneDay": { + "message": "1 nap" + }, + "days": { + "message": "$DAYS$ nap", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Meghívott felhasználó." + }, + "acceptEmergencyAccess": { + "message": "Meghívást érkezett a fenti személytől sürgősségi kapcsolat tekintetében. A meghívás elfogadásához be kell jelentkezni vagy új Bitwarden fiókot kell létrehozni." + }, + "emergencyInviteAcceptFailed": { + "message": "A meghívást nem lehet elfogadni. Kérjük meg a felhasználót új meghívó elküldésére." + }, + "emergencyInviteAcceptFailedShort": { + "message": "A meghívást nem lehet elfogadni. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "A felhasználó vészhelyzeti beállításai az azonosítás megerősítése után érhető el. Egy email kerül kiküldésre, ha ez megtörténik." + }, + "requestAccess": { + "message": "Hozzáférés kérése" + }, + "requestAccessConfirmation": { + "message": "Biztosan sürgősségi hozzáférést szeretnénk kérni? Hozzáférést kapunk $WAITTIME$ nap múlva vagy amikor a felhasználó manuálisan jóváhagyja a kérést.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Sürgősségi hozzáférést kértek $USER$ részére. Emailben értesítés érkezik, ha lehetséges a folytatás.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Jóváhagyás" + }, + "reject": { + "message": "Elutasítás" + }, + "approveAccessConfirmation": { + "message": "Biztosan jóváhagyásra kerüljön a sürgősségi hozzáférés? Ez lehetővé teszi, hogy $USER$ számára $ACTION$ végrehajtására a fiókban.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "A vészhelyzeti hozzáférés jóváhagyásra került." + }, + "emergencyRejected": { + "message": "A vészhelyzeti hozzáférés elutasításra került." + }, + "passwordResetFor": { + "message": "A jelszó alaphelyzetbe került $USER$ részére. Most az új jelszóval lehet bejelentkezni.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Személyes tulajdon" + }, + "personalOwnershipPolicyDesc": { + "message": "A személyes tulajdon opciójának eltávolításával megkövetelhetjük a felhasználóktól, hogy széfelemeket mentsenek a egy szervezethez." + }, + "personalOwnershipExemption": { + "message": "A szervezet tulajdonosai és adminisztrátorai mentesek az irányelv végrehajtása alól." + }, + "personalOwnershipSubmitError": { + "message": "Egy vállalati házirend miatt korlátozásra került az elemek személyes tárolóba történő mentése. Módosítsuk a Tulajdon opciót egy szervezetre és válasszunk az elérhető gyűjtemények közül." + }, + "disableSend": { + "message": "Küdlés letiltása" + }, + "disableSendPolicyDesc": { + "message": "Ne engedjük a felhasználóknak a Bitwarden Küldés létrehozását vagy szerkesztését. A meglévő küldés törlése továbbra is megengedett.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "A szervezet házirendjét kezeő szervezeti felhasználók, mentesülnek az irányelvek végrehajtása alól." + }, + "sendDisabled": { + "message": "A küldés kikapcsolásra került", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "A vállalati házirend miatt csak egy meglévő Küldés törölhető.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send opciók", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Opciók beállítása Send elem létrehozásához és szerkesztéséhez.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "A szervezet házirendjét kezelő szervezeti felhasználók mentesülnek az irányelvek végrehajtása alól." + }, + "disableHideEmail": { + "message": "Ne engedjük, hogy a felhasználók elrejtsék email címüket a címzettek elől a Send elem létrehozása vagy szerkesztése során.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "A következő szervezeti irányelvek vannak érvényben:" + }, + "sendDisableHideEmailInEffect": { + "message": "A felhasználók nem rejthetik el email címüket a címzettek elől egy Send elem létrehozásakor vagy szerkesztésekor.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "$ID$ szabály módosításra került.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Csomagár" + }, + "estimatedTax": { + "message": "Becsült adó" + }, + "custom": { + "message": "Egyedi" + }, + "customDesc": { + "message": "A fejlett konfigurációk felhasználói engedélyeinek részletesebb ellenőrzését teszi lehetővé." + }, + "permissions": { + "message": "Jogosultságok" + }, + "accessEventLogs": { + "message": "Eseménynapló elérése" + }, + "accessImportExport": { + "message": "Exportálás/importálás elérése" + }, + "accessReports": { + "message": "Elérési jelentések" + }, + "missingPermissions": { + "message": "Nincs megfelelő jogosultság a művelet végrehajtásához." + }, + "manageAllCollections": { + "message": "Összes gyűjtemény kezelése" + }, + "createNewCollections": { + "message": "Új gyűjtemények létrehozása" + }, + "editAnyCollection": { + "message": "Bármely gyűjtemény szerkesztése" + }, + "deleteAnyCollection": { + "message": "Bármely gyűjtemény törlése" + }, + "manageAssignedCollections": { + "message": "Hozzárendelt gyűjtemények kezelése" + }, + "editAssignedCollections": { + "message": "Hozzárendelt gyűjtemények szerkesztése" + }, + "deleteAssignedCollections": { + "message": "Hozzárendelt gyűjtemények törlése" + }, + "manageGroups": { + "message": "Csoportok kezelése" + }, + "managePolicies": { + "message": "Szabályok kezelése" + }, + "manageSso": { + "message": "SSO kezelése" + }, + "manageUsers": { + "message": "Felhasználók kezelése" + }, + "manageResetPassword": { + "message": "Jelszó alaphelyzet kezelés" + }, + "disableRequiredError": { + "message": "A szabály letiltása előtt manuálisan le kell tiltani $POLICYNAME$ házirendet.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "A szervezeti házirend befolyásolja a tulajdonosi opciókat." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "Egy szervezeti házirend letiltotta az elemek személyes tárolóba történő importálását." + }, + "personalOwnershipCheckboxDesc": { + "message": "A szervezeti felhasználók személyes tulajdon letiltása" + }, + "textHiddenByDefault": { + "message": "A Küldés elérésekor alapértelmezés szerint a szöveg elrejtése", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Barátságos név a Küldés leírására.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "A küldendő szöveg." + }, + "sendFileDesc": { + "message": "A küldendő fájl." + }, + "copySendLinkOnSave": { + "message": "A hivatkozás másolása a Küldés megosztásához a vágólapra mentéskor." + }, + "sendLinkLabel": { + "message": "Hivatkozás küldése", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Küldés", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "A Bitwarden Küldés könnyen és biztonságosan továbbítja az érzékeny, ideiglenes információkat másoknak.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Bővebben erről", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Szöveg és fájlok közvetlen megosztása bárkivel." + }, + "sendVaultCardLearnMore": { + "message": "További információ", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "nézzük", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "Hogyan működik?", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "vagy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "próbáljuk ki most", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "vagy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "regisztráció", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "próbáljuk ki még ma.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "$USER_IDENTIFIER$ Bitwarden felhasználó megosztotta a következőket", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Az ezt a Send elemet létrehozó Bitwarden felhasználó úgy döntött, hogy elrejti email címét. Mielőtt felhasználnánk vagy letöltenénk a tartalmát, ellenőrizzük a hivatkozás megbízhatóságát.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "A megadott lejárati idő nem érvényes." + }, + "deletionDateIsInvalid": { + "message": "A megadot törlési dátum nem érvényes." + }, + "expirationDateAndTimeRequired": { + "message": "Lejárati dátum és idő megadása szükséges." + }, + "deletionDateAndTimeRequired": { + "message": "Törlési dátum és idő megadása szükséges." + }, + "dateParsingError": { + "message": "Hiba történt a törlés és a lejárati dátum mentésekor." + }, + "webAuthnFallbackMsg": { + "message": "A 2FA ellenőrzéséhez kattintsunk az alábbi gombra." + }, + "webAuthnAuthenticate": { + "message": "WebAutn hitelesítés" + }, + "webAuthnNotSupported": { + "message": "Ezen a böngészőn a WebAuthn nem támogatott." + }, + "webAuthnSuccess": { + "message": "A WebAuthn sikeresen ellenőrzésre került.! A fül már bezárható." + }, + "hintEqualsPassword": { + "message": "A jelszavas tipp nem lehet azonos a jelszóval." + }, + "enrollPasswordReset": { + "message": "Bejelentkezés a Jelszó alaphelyzetbe állításba" + }, + "enrolledPasswordReset": { + "message": "A bejelentkezés megtörtént a Jelszó alaphelyzetbe állításba" + }, + "withdrawPasswordReset": { + "message": "Kijelentkezés a Jelszó alaphelyzetbe állításból" + }, + "enrollPasswordResetSuccess": { + "message": "A bejelentkezés sikeres." + }, + "withdrawPasswordResetSuccess": { + "message": "A kijelentkezés sikeres." + }, + "eventEnrollPasswordReset": { + "message": "$ID$ felhasználó bejelentkezett a jelszó alaphelyzetbe állítás támogatáshoz.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "$ID$ felhasználó kijelentkezett a jelszó alaphelyzetbe állítás támogatásból.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "A mesterjelszó alaphelyzetbe került $ID$ felhasználónál.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Sso hivatkozás visszaállítása $ID$ felhasználónál", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ első alkalommal jelentkezett be Sso szolgáltatássl.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Jelszó visszaállítása" + }, + "resetPasswordLoggedOutWarning": { + "message": "A folytatással $NAME$ kijelentkezik az aktuális munkamenetből és újra be kell jelentkeznie. A más eszközökön végzett aktív munkamenetek akár egy órán keresztül is aktívak maradhatnak.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "ez a felhasználó" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Egy vagy több szervezeti rendszabályhoz mesterjelszó szükséges a következő követelmények megfeleléséhez:" + }, + "resetPasswordSuccess": { + "message": "A jelszó alaphelyzetbe állítása sikeres volt." + }, + "resetPasswordEnrollmentWarning": { + "message": "A regisztráció lehetővé teszi a szervezet adminisztrátorainak a saját mesterjelszó megváltoztatását. Biztosan feliratkozunk?" + }, + "resetPasswordPolicy": { + "message": "Mesterjelszó alaphelyzetbe állítás" + }, + "resetPasswordPolicyDescription": { + "message": "A szervezet adminisztrátorai alaphelyzetbe állíthatják a szervezet mesterjelszavát." + }, + "resetPasswordPolicyWarning": { + "message": "A szervezet felhasználóinak regisztrálniuk kell magukat vagy automatikus regisztrálás szükséges mielőtt az adminisztrátorok alaphelyzetbe állíthatják a mesterjelszavukat." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatikus regisztráció" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "A meghívó elfogadását követően minden felhasználó automatikusan regisztrálásra kerül a jelszó alaphelyzetbe állításnál." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "A szervezetben már szereplő felhasználók nem kerülnek visszamenőleg regisztrálva a jelszó alaphelyzetbe állításnál. Regisztráln kell magunkat, mielőtt az adminisztrátorok alaphelyzetbe állíthatják a mesterjelszavukat." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Új felhasználók automatikus regisztrálása" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Ennek a szervezetnek van egy vállalati házirendje, amely automatikusan regisztrál a jelszó alaphelyzetbe állítására. A regisztráció lehetővé teszi a szervezet adminisztrátorainak a mesterjelszó megváltoztatását." + }, + "resetPasswordOrgKeysError": { + "message": "A szervezeti kulcs válasza null" + }, + "resetPasswordDetailsError": { + "message": "A jelszó alaphelyzetbe állítás válasza null" + }, + "trashCleanupWarning": { + "message": "A 30 napnál régebben lomtárba került elemek automatikusan törlésre kerülnek." + }, + "trashCleanupWarningSelfHosted": { + "message": "A már jó ideje a lomtárban lévő elemek automatikusan törlésre kerülnek." + }, + "passwordPrompt": { + "message": "Mesterjelszó ismételt megadás" + }, + "passwordConfirmation": { + "message": "Mesterjelszó megerősítése" + }, + "passwordConfirmationDesc": { + "message": "A művelet védett. A személyazonosság igazolásához adjuk meg ismét a mesterjelszót." + }, + "reinviteSelected": { + "message": "Meghívó újraküldése" + }, + "noSelectedUsersApplicable": { + "message": "Ez a művelet a kiválasztott felhasználók egyikére sem alkalmazható." + }, + "removeUsersWarning": { + "message": "Biztosan eltávolításra kerüljenek a következő felhasználók? A folyamat néhány másodpercet vehet igénybe és nem szakítható meg vagy törölhető." + }, + "theme": { + "message": "Téma" + }, + "themeDesc": { + "message": "Válasszunk témát az internetes széfhez." + }, + "themeSystem": { + "message": "Rendszertéma használata" + }, + "themeDark": { + "message": "Sötét" + }, + "themeLight": { + "message": "Világos" + }, + "confirmSelected": { + "message": "Kiválasztás megerősítése" + }, + "bulkConfirmStatus": { + "message": "Tömeges művelet állapot" + }, + "bulkConfirmMessage": { + "message": "A megerősítés sikeres volt." + }, + "bulkReinviteMessage": { + "message": "Az ismételt meghívás sikeres volt." + }, + "bulkRemovedMessage": { + "message": "Az eltávolítás sikeres volt." + }, + "bulkFilteredMessage": { + "message": "Kizárva, nem alkalmazható erre a műveletre." + }, + "fingerprint": { + "message": "Ujjlenyomat" + }, + "removeUsers": { + "message": "Felhasználók eltávolítása" + }, + "error": { + "message": "Hiba" + }, + "resetPasswordManageUsers": { + "message": "A felhasználók kezelését engedélyezni kell a Jelszó visszaállításának kezelése jogosultsággal is." + }, + "setupProvider": { + "message": "Szolgáltató beállítása" + }, + "setupProviderLoginDesc": { + "message": "Meghívás érkezett egy új szolgáltató beállítására. A folytatáshoz be kell jelentkezni vagy létre kell hozni egy új Bitwarden fiókot." + }, + "setupProviderDesc": { + "message": "Adjuk meg az alábbi adatokat a szolgáltató beállításának befejezéséhez. Ha bármilyen kérdés van, forduljunk az Ügyfélszolgálathoz." + }, + "providerName": { + "message": "Szolgáltató neve" + }, + "providerSetup": { + "message": "A szolgáltató beüzemelésre került." + }, + "clients": { + "message": "Ügyfelek" + }, + "providerAdmin": { + "message": "Szolgáltató adminisztrátor" + }, + "providerAdminDesc": { + "message": "Adjuk meg az alábbi adatokat a szolgáltató beállításának befejezéséhez. Ha bármilyen kérdés van, forduljunk az Ügyfélszolgálathoz." + }, + "serviceUser": { + "message": "Szolgáltatás felhasználó" + }, + "serviceUserDesc": { + "message": "A szolgáltatás felhasználói elérhetik és kezelhetik az összes ügyfélszervezetet." + }, + "providerInviteUserDesc": { + "message": "Új felhasználó meghívása a szervezetéhez a Bitwarden fiók email címének megadásával. Ha még nem rendelkeznek Bitwarden fiókkal, felkérjük új fiók létrehozására." + }, + "joinProvider": { + "message": "Csatlakozás szolgáltatóhoz" + }, + "joinProviderDesc": { + "message": "Meghívást érkezett a fenti szervezethez csatlakozáshoz. A meghívás elfogadásához be kell jelentkezni vagy új Bitwarden fiókot kell létrehozni." + }, + "providerInviteAcceptFailed": { + "message": "A meghívás nem fogadható el. Kérjük fel a szervezet adminisztrátorát új meghívó küldésére." + }, + "providerInviteAcceptedDesc": { + "message": "A szervezet elérhető, amikor az adminisztrátor jóváhagyja a tagságot. Amint ez megtörténik, értesítő email érkezik." + }, + "providerUsersNeedConfirmed": { + "message": "Vannak olyan felhasználók, akik elfogadták a meghívást, de ezt még meg kell erősíteni. A felhasználók csak a megerősítésük után férhetnek hozzá a szervezethez." + }, + "provider": { + "message": "Szolgáltató" + }, + "newClientOrganization": { + "message": "Új ügyfél szervezet" + }, + "newClientOrganizationDesc": { + "message": "Egy új ügyfélszervezet létrehozása társított szolgáltatásként. Lehetőség lesz a szervezet elérésére és kezelésére." + }, + "addExistingOrganization": { + "message": "Létező fordítások hozzáadása" + }, + "myProvider": { + "message": "Saját szolgáltató" + }, + "addOrganizationConfirmation": { + "message": "Biztosan hozzá szeretnénk adni $ORGANIZATION$ szervezetet ügyfélként $PROVIDER$ szolgáltatáshoz?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "A szervezet sikeresen hozzáadásra került a szolgáltatóhoz" + }, + "accessingUsingProvider": { + "message": "Hozzáférés a szervezethez $PROVIDER$ szolgáltató használatával", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "A szolgáltató letiltásra került." + }, + "providerUpdated": { + "message": "A szolgáltató frissítésre került." + }, + "yourProviderIs": { + "message": "A szolgáltató $PROVIDER$. Rendszergazdai és számlázási jogosultságokkal rendelkeznek a szervezet számára.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "$ORGANIZATION$ szervezet leválasztásra került a szolgáltatótól.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Biztosan leválasztjuk ezt a szervezetet? A szervezet továbbra is fennáll, de már nem a szolgáltató kezeli." + }, + "add": { + "message": "Hozzáadás" + }, + "updatedMasterPassword": { + "message": "A mesterjelszó frissítésre került." + }, + "updateMasterPassword": { + "message": "Mesterjelszó frissítése" + }, + "updateMasterPasswordWarning": { + "message": "A mesterjelszót nemrégiben megváltoztatta a szervezet rendszergazdája. A tároló eléréséhez most frissíteni kell a mesterjelszót. A folytatás kijelentkeztet az aktuális munkamenetből és újra be kell jelentkezni. A más eszközökön végzett aktív munkamenetek akár egy órán keresztül is aktívak maradhatnak." + }, + "masterPasswordInvalidWarning": { + "message": "A mesterjelszó nem felel meg a szervezet rendszabályainak. A szervezet eléréséhez most frissíteni kell a mesterjelszót. Továbblépéskor kijelentkezés történik a jelenlegi munkamenetből és újra be kell jelentkezni. Ha van aktív munkamenet más eszközön, az még legfeljebb egy óráig aktív maradhat." + }, + "maximumVaultTimeout": { + "message": "Széf időkifutás" + }, + "maximumVaultTimeoutDesc": { + "message": "Állítsunk be maximális széf időtúllépést minden felhasználó számára." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximális széf időkifutás" + }, + "invalidMaximumVaultTimeout": { + "message": "A maximális széf időkifutás érvénytelen." + }, + "hours": { + "message": "Óra" + }, + "minutes": { + "message": "Perc" + }, + "vaultTimeoutPolicyInEffect": { + "message": "A szervezeti házirendek hatással vannak a széf időkorlátjára. A széf időkorlátja legfeljebb $HOURS$ óra és $MINUTES$ perc lehet.", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Egyedi széf időkifutás" + }, + "vaultTimeoutToLarge": { + "message": "A széf időkorlátja túllépi a szervezet által beállított korlátozást." + }, + "disablePersonalVaultExport": { + "message": "A személyes széf exportálás nem engedélyezett." + }, + "disablePersonalVaultExportDesc": { + "message": "Biztosan leválasztjuk ezt a szervezetet? A szervezet továbbra is fennáll, de már nem a szolgáltató kezeli." + }, + "vaultExportDisabled": { + "message": "A széf exportálás nem engedélyezett." + }, + "personalVaultExportPolicyInEffect": { + "message": "Egy vagy több szervezeti házirend tiltja a személyes széf exportálását." + }, + "selectType": { + "message": "SSO típus választás" + }, + "type": { + "message": "Típus" + }, + "openIdConnectConfig": { + "message": "OpenID kapcsolat konfiguráció" + }, + "samlSpConfig": { + "message": "SAML szolgáltató konfiguráció" + }, + "samlIdpConfig": { + "message": "SAML azonosítási szolgáltató konfiguráció" + }, + "callbackPath": { + "message": "Tartalék útvonal" + }, + "signedOutCallbackPath": { + "message": "Kijelentkezett tartalék útvonal" + }, + "authority": { + "message": "Hitelesítés" + }, + "clientId": { + "message": "Ügyfél AZ" + }, + "clientSecret": { + "message": "Titkos ügyfélkód" + }, + "metadataAddress": { + "message": "Metaadat cím" + }, + "oidcRedirectBehavior": { + "message": "OIDC átirányítási viselkedés" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Követelések lekérése a felhasználói adatok végpontjáról" + }, + "additionalScopes": { + "message": "További/egyedi hatókörök (vesszővel elválasztva)" + }, + "additionalUserIdClaimTypes": { + "message": "További/egyedi felhasználó AZ követelések (vesszővel elválasztva)" + }, + "additionalEmailClaimTypes": { + "message": "További/egyedi email követelés típusok (vesszővel elválasztva)" + }, + "additionalNameClaimTypes": { + "message": "További/egyedi név követelés típusok (vesszővel elválasztva)" + }, + "acrValues": { + "message": "Kért hitelesítési kontextusosztály referenciaértékek (acr_values)" + }, + "expectedReturnAcrValue": { + "message": "Elvárt „acr” követelésérték a válaszban (acr érvényesítés)" + }, + "spEntityId": { + "message": "SP Szervezet AZ" + }, + "spMetadataUrl": { + "message": "SAML 2.0 metaadat webcím" + }, + "spAcsUrl": { + "message": "Az Assertion Consumer Service (ACS) webcíme" + }, + "spNameIdFormat": { + "message": "Név AZ formátum" + }, + "spOutboundSigningAlgorithm": { + "message": "Kimenő aláírási algoritmus" + }, + "spSigningBehavior": { + "message": "Aláírási viselkedés" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimális bejövő aláírási algoritmus" + }, + "spWantAssertionsSigned": { + "message": "Állításokat szeretnének aláírni" + }, + "spValidateCertificates": { + "message": "Tanúsítványok ellenőrzése" + }, + "idpEntityId": { + "message": "Szervezeti ID" + }, + "idpBindingType": { + "message": "Kötés típusa" + }, + "idpSingleSignOnServiceUrl": { + "message": "Egyszeri bejelentkezési szolgáltatás webcíme" + }, + "idpSingleLogoutServiceUrl": { + "message": "Egyszeri kijelentkezés szolgáltatás webcíme" + }, + "idpX509PublicCert": { + "message": "X509 Nyilvános tanúsítvány" + }, + "idpOutboundSigningAlgorithm": { + "message": "Kimenő aláírási algoritmus" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Kéretlen hitelesítési válasz engedélyezése" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Kimenü kijelentkezési kérések engedélyezése" + }, + "idpSignAuthenticationRequests": { + "message": "Hitelesítési kérések aláírása" + }, + "ssoSettingsSaved": { + "message": "Az egyszeri bejelentkezés konfigurációja mentésre került." + }, + "sponsoredFamilies": { + "message": "Díjmentes Bitwarden családi csomag" + }, + "sponsoredFamiliesEligible": { + "message": "A felhasználó és családja jogosult az ingyenes Bitwarden családok programra. Váltsuk ezt be személyes email címmel, hogy az adatok biztonságban legyenek még akkor is, amikor éppen nem dolgozunk." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Váltsuk be ingyenes Bitwarden családoknak előfizetést még ma, hogy az adatok biztonságban legyenek, még akkor is, amikor éppen nem dolgozunk." + }, + "sponsoredFamiliesInclude": { + "message": "A Bitwarden családoknak csomag tartalmazza:" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Prémium hozzáférés legfeljebb 6 felhasználónak" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Megosztott gyűjtemények a családi titkoknak" + }, + "badToken": { + "message": "A link már nem érvényes. Kérje szponzorától az ajánlat újraküldését." + }, + "reclaimedFreePlan": { + "message": "Visszaállás díjmentes csomagra" + }, + "redeem": { + "message": "Beváltás" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Válasszuk ki a szponzorálni kívánt szervezetet." + }, + "familiesSponsoringOrgSelect": { + "message": "Melyik ingyenes családi ajánlatot szeretné beváltani?" + }, + "sponsoredFamiliesEmail": { + "message": "A Bitwarden családok beváltásához adjuk meg a személyes email címünket." + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Ha kilépünk ebből a szervezetből vagy eltávolítás történik, a Családi csomag a számlázási időszak végén lejár." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Meglévő szervezet ajánlatának elfogadása vagy új Családi szervezet létrehozása." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Ingyenes Bitwarden Családi csomag szervezetet ajánlottak fel. A folytatáshoz be kell jelentkezni az ajánlatot fogadó fiókba." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Nem sikerült elfogadni az ajánlatot. Küldjük el ismét az ajánlati emailt a vállalati fiókból és próbáljuk újra." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Az ajánlatot nem lehet elfogadni. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Az ingyenes Bitwarden Családi csomag elfogadása" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Az ingyenes Bitwarden családi szervezet ajánlat beváltásra került." + }, + "redeemed": { + "message": "Beváltva" + }, + "redeemedAccount": { + "message": "Beváltott fiók" + }, + "revokeAccount": { + "message": "$NAME$ fiók visszavonása", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Szponzorálási email ismételt elküldése $NAME$ szponzorációnak", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Díjmentes családi csomag" + }, + "redeemNow": { + "message": "Beváltás most" + }, + "recipient": { + "message": "Címzett" + }, + "removeSponsorship": { + "message": "Szponzoráció eltávolítása" + }, + "removeSponsorshipConfirmation": { + "message": "A szponzorálás eltávolítása után felelősséget vállalunk az előfizetésért és a kapcsolódó számlákért. Biztosan folytatjuk?" + }, + "sponsorshipCreated": { + "message": "A szponzoráció létrejött" + }, + "revoke": { + "message": "Visszavonás" + }, + "emailSent": { + "message": "Az email elküldésre került." + }, + "revokeSponsorshipConfirmation": { + "message": "A fiók eltávolítása után a Családok szervezetének tulajdonosa lesz felelős az előfizetésért és a kapcsolódó számlákért. Biztosan folytatjuk?" + }, + "removeSponsorshipSuccess": { + "message": "A szponzoráció eltávolításra került." + }, + "ssoKeyConnectorUnavailable": { + "message": "Nem érhető el a kulcskapcsoló. Próbáljuk újra később." + }, + "keyConnectorUrl": { + "message": "Kulcskapcsoló webcím" + }, + "sendVerificationCode": { + "message": "Ellenőrző kód elküldése a saját email címre" + }, + "sendCode": { + "message": "Kód küldése" + }, + "codeSent": { + "message": "A kód elküldésre került." + }, + "verificationCode": { + "message": "Ellenőrző kód" + }, + "confirmIdentity": { + "message": "A folytatáshoz meg kell erősíteni a személyazonosságot." + }, + "verificationCodeRequired": { + "message": "Az ellenőrző kód kötelező." + }, + "invalidVerificationCode": { + "message": "Érvénytelen ellenőrző kód" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ jelenleg saját tárolású aláíráskulcsú SSO szervert használ. A mesterjelszó a továbbiakban nem szükséges a szervezeti tagsági bejelentkezéshez.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Szervezet elhagyása" + }, + "removeMasterPassword": { + "message": "Mesterjelszó eltávolítása" + }, + "removedMasterPassword": { + "message": "A mesterjelszó eltávolításra került." + }, + "allowSso": { + "message": "SSO hitelesítés engedélyezése" + }, + "allowSsoDesc": { + "message": "A beüzemeléskor a konfiguráció mentésre kerül és a tagok hitelesíthetnek az azonosítási szolgáltató hitelesítő adataival." + }, + "ssoPolicyHelpStart": { + "message": "Engedélyezzük az", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO hitelesítési szabályzat", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "szolgáltatást az összes tag bejelentkezéséhez SSO szolgáltatással.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "A kulcscsatlakozó visszafejtésének beállításához SSO hitelesítés és egy szervezeti szabályzat szükséges." + }, + "memberDecryptionOption": { + "message": "Tagi visszafejtési opciók" + }, + "memberDecryptionPassDesc": { + "message": "A hitelesítés után a tagok visszafejtik adataikat a mesterjelszavuk segítségével." + }, + "keyConnector": { + "message": "Kulcskapcsoló" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "SSO bejelentkezés bekapcsolása a saját üzemeltetésű kulcskiszolgálón. Ezzel az opcióval a tagoknak nem kell használniuk a mesterjelszavukat az adatok visszafejtéséhez. Segítségért keresse a Bitwarden ügyfélszolgálatot." + }, + "keyConnectorPolicyRestriction": { + "message": "A „Bejelentkezés SSO szolgáltatással és a kulcskapcsoló visszafejtésével” engedélyezve van. Ez a szabály csak a tulajdonosokra és a rendszergazdákra vonatkozik." + }, + "enabledSso": { + "message": "Bekapcsolt SSO" + }, + "disabledSso": { + "message": "Kikapcsolt SEO" + }, + "enabledKeyConnector": { + "message": "Bekapcsolt kulcskapcsoló" + }, + "disabledKeyConnector": { + "message": "Kikapcsolt kulcskapcsoló" + }, + "keyConnectorWarning": { + "message": "A kulcskiszolgáló beállítása után a szervezet nem térhet vissza a mesterjelszó használatához. Csak akkor folytassa, ha jól ismeri ennek telepítését és kezelését." + }, + "migratedKeyConnector": { + "message": "Áttérve kulcskapcsolóra" + }, + "paymentSponsored": { + "message": "Adjunk meg egy, a szervezethez társítandó fizetési módot. Nem kell aggódni, nem kerül semmi felszámításra, hacsak nem választunk további funkciókat vagy ha szponzorálás lejár. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "A szponzorálási ajánlat lejárt, törölhető a létrehozott szervezet a 7 napos próbaidőszak végén jelentkező díj elkerüléséért. Ellenkező esetben bezárhatjuk ezt az üzenetet a szervezet megtartásához és a számlázási felelősség vállalásához." + }, + "newFamiliesOrganization": { + "message": "Új családi szervezet" + }, + "acceptOffer": { + "message": "Ajánlat elfogadása" + }, + "sponsoringOrg": { + "message": "Szponzoráló szervezet" + }, + "keyConnectorTest": { + "message": "Teszt" + }, + "keyConnectorTestSuccess": { + "message": "A művelet sikeres. A kulcskapcsoló elérésre került." + }, + "keyConnectorTestFail": { + "message": "Nem érhető el a kulcskapcsoló. Ellenőrizzük a webcímet." + }, + "sponsorshipTokenHasExpired": { + "message": "A szponzorálási ajánlat lejárt." + }, + "freeWithSponsorship": { + "message": "INGYENES a szponzorációval" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ mező fentebb figyelmet érdemel.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 mező fentebb figyelmet érdemel." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ szükséges.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "kötelező" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Szükséges ha az entitás azonosító nem webcím." + }, + "openIdOptionalCustomizations": { + "message": "Opcionális testreszabások" + }, + "openIdAuthorityRequired": { + "message": "Szükséges, ha a hitelesítés nem érvényes." + }, + "separateMultipleWithComma": { + "message": "Több érték esetén elválasztás vesszővel." + }, + "sessionTimeout": { + "message": "A munkamenet lejárt. Lépjünk vissza és próbáljunk újra bejelentkezni." + }, + "exportingPersonalVaultTitle": { + "message": "Személyes széf exportálása" + }, + "exportingOrganizationVaultTitle": { + "message": "Szervezeti széf exportálása" + }, + "exportingPersonalVaultDescription": { + "message": "Csak $EMAIL$ email címmel társított személyes széf elemek kerülnek exportálásra. Ebbe nem kerülnek be a szervezeti széf elemek.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Csak$ORGANIZATION$ névvel társított szervezeti széf elemek kerülnek exportálásra. Ebbe nem kerülnek be a személyes és más szervezeti széf elemek.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Vissza a jelentésekhez" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/id/messages.json b/apps/web/src/locales/id/messages.json new file mode 100644 index 0000000000..0dd91cedb3 --- /dev/null +++ b/apps/web/src/locales/id/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Brankas Web", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Jenis barang apa ini?" + }, + "name": { + "message": "Nama" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "URl Baru" + }, + "username": { + "message": "Nama Pengguna" + }, + "password": { + "message": "Kata Sandi" + }, + "newPassword": { + "message": "Kata Sandi baru" + }, + "passphrase": { + "message": "Frasa sandi" + }, + "notes": { + "message": "Catatan" + }, + "customFields": { + "message": "Kolom Ubahsuai" + }, + "cardholderName": { + "message": "Nama Pemilik Kartu" + }, + "number": { + "message": "Nomor" + }, + "brand": { + "message": "Merek" + }, + "expiration": { + "message": "Masa Berlaku" + }, + "securityCode": { + "message": "Kode Keamanan (CVV)" + }, + "identityName": { + "message": "Nama Identitas" + }, + "company": { + "message": "Perusahaan" + }, + "ssn": { + "message": "Nomor Jaminan Sosial" + }, + "passportNumber": { + "message": "Nomor Paspor" + }, + "licenseNumber": { + "message": "Nomor Lisensi" + }, + "email": { + "message": "Surel" + }, + "phone": { + "message": "Telepon" + }, + "january": { + "message": "Januari" + }, + "february": { + "message": "Februari" + }, + "march": { + "message": "Maret" + }, + "april": { + "message": "April" + }, + "may": { + "message": "Mei" + }, + "june": { + "message": "Juni" + }, + "july": { + "message": "Juli" + }, + "august": { + "message": "Agustus" + }, + "september": { + "message": "September" + }, + "october": { + "message": "Oktober" + }, + "november": { + "message": "November" + }, + "december": { + "message": "Desember" + }, + "title": { + "message": "Panggilan" + }, + "mr": { + "message": "Tuan" + }, + "mrs": { + "message": "Nyonya" + }, + "ms": { + "message": "Nona" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Bulan Kedaluwarsa" + }, + "expirationYear": { + "message": "Tahun Kedaluwarsa" + }, + "authenticatorKeyTotp": { + "message": "Kunci Autentikasi (TOTP)" + }, + "folder": { + "message": "Folder" + }, + "newCustomField": { + "message": "Kolom Ubahsuai Baru" + }, + "value": { + "message": "Nilai" + }, + "dragToSort": { + "message": "Tarik untuk mengurutkan" + }, + "cfTypeText": { + "message": "Teks" + }, + "cfTypeHidden": { + "message": "Tersembunyi" + }, + "cfTypeBoolean": { + "message": "Boolean" + }, + "cfTypeLinked": { + "message": "Terhubung", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Hapus" + }, + "unassigned": { + "message": "Belum ditetapkan" + }, + "noneFolder": { + "message": "Tidak Ada Folder", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Tambah Folder" + }, + "editFolder": { + "message": "Edit Folder" + }, + "baseDomain": { + "message": "Domain basis", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Tepat" + }, + "startsWith": { + "message": "Mulai dengan" + }, + "regEx": { + "message": "Ekspresi umum", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Deteksi kecocokan", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Deteksi kecocokan standar", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Jangan pernah" + }, + "toggleVisibility": { + "message": "Alihkan Visibilitas" + }, + "toggleCollapse": { + "message": "Alihkan Ciutkan", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Buat Kata Sandi" + }, + "checkPassword": { + "message": "Periksa apakah kata sandi telah terekspos." + }, + "passwordExposed": { + "message": "Sandi ini telah dibuka $VALUE$ kali karena pelanggaran data. Anda harus mengubahnya.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Kata sandi ini tidak ditemukan dalam data pelanggaran yang dikenal. Kata sandi tersebut harusnya aman untuk digunakan." + }, + "save": { + "message": "Simpan" + }, + "cancel": { + "message": "Batal" + }, + "canceled": { + "message": "Dibatalkan" + }, + "close": { + "message": "Tutup" + }, + "delete": { + "message": "Hapus" + }, + "favorite": { + "message": "Favorit" + }, + "unfavorite": { + "message": "Batalkan favorit" + }, + "edit": { + "message": "Ubah" + }, + "searchCollection": { + "message": "Cari koleksi" + }, + "searchFolder": { + "message": "Cari Folder" + }, + "searchFavorites": { + "message": "Cari favorit" + }, + "searchType": { + "message": "Jenis pencarian", + "description": "Search item type" + }, + "searchVault": { + "message": "Cari Brankas" + }, + "allItems": { + "message": "Semua Item" + }, + "favorites": { + "message": "Favorit" + }, + "types": { + "message": "Jenis" + }, + "typeLogin": { + "message": "Masuk" + }, + "typeCard": { + "message": "Kartu" + }, + "typeIdentity": { + "message": "Identitas" + }, + "typeSecureNote": { + "message": "Catatan Aman" + }, + "typeLoginPlural": { + "message": "Masuk" + }, + "typeCardPlural": { + "message": "Kartu" + }, + "typeIdentityPlural": { + "message": "Identitas" + }, + "typeSecureNotePlural": { + "message": "Catatan Aman" + }, + "folders": { + "message": "Folder" + }, + "collections": { + "message": "Koleksi" + }, + "firstName": { + "message": "Nama Depan" + }, + "middleName": { + "message": "Nama Tengah" + }, + "lastName": { + "message": "Nama Belakang" + }, + "fullName": { + "message": "Nama Lengkap" + }, + "address1": { + "message": "Alamat 1" + }, + "address2": { + "message": "Alamat 2" + }, + "address3": { + "message": "Alamat 3" + }, + "cityTown": { + "message": "Kota / Kabupaten" + }, + "stateProvince": { + "message": "Negara Bagian / Provinsi" + }, + "zipPostalCode": { + "message": "Kode Pos" + }, + "country": { + "message": "Negara" + }, + "shared": { + "message": "Dibagikan" + }, + "attachments": { + "message": "Lampiran" + }, + "select": { + "message": "Pilih" + }, + "addItem": { + "message": "Tambah Item" + }, + "editItem": { + "message": "Ubah Item" + }, + "viewItem": { + "message": "Lihat Item" + }, + "ex": { + "message": "contoh", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Lainnya" + }, + "share": { + "message": "Bagikan" + }, + "moveToOrganization": { + "message": "Pindah ke Organisasi" + }, + "valueCopied": { + "message": "$VALUE$ disalin", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Salin Nilai", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Salin Kata Sandi", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Salin Nama Pengguna", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Salin Nomor", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Salin Kode Keamanan", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Salin URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Brankas Saya" + }, + "vault": { + "message": "Brankas" + }, + "moveSelectedToOrg": { + "message": "Pindahkan terpilih ke Organisasi" + }, + "deleteSelected": { + "message": "Hapus yang Dipilih" + }, + "moveSelected": { + "message": "Pindahkan yang Dipilih" + }, + "selectAll": { + "message": "Pilih Semua" + }, + "unselectAll": { + "message": "Batal Pilih Semua" + }, + "launch": { + "message": "Luncurkan" + }, + "newAttachment": { + "message": "Tambah Lampiran Baru" + }, + "deletedAttachment": { + "message": "Lampiran dihapus" + }, + "deleteAttachmentConfirmation": { + "message": "Apakah Anda yakin ingin menghapus lampiran ini?" + }, + "attachmentSaved": { + "message": "Lampiran telah disimpan." + }, + "file": { + "message": "Berkas" + }, + "selectFile": { + "message": "Pilih berkas." + }, + "maxFileSize": { + "message": "Ukuran berkas maksimal adalah 500 MB." + }, + "updateKey": { + "message": "Anda tidak dapat menggunakan fitur ini sampai Anda memperbarui kunci enkripsi Anda." + }, + "addedItem": { + "message": "Item yang Ditambahkan" + }, + "editedItem": { + "message": "Item yang Diedit" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ dipindah ke $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Item terpilih dipindah ke $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Hapus Item" + }, + "deleteFolder": { + "message": "Hapus Folder" + }, + "deleteAttachment": { + "message": "Hapus Lampiran" + }, + "deleteItemConfirmation": { + "message": "Anda yakin Anda ingin menghapus item ini?" + }, + "deletedItem": { + "message": "Item dikirim ke sampah" + }, + "deletedItems": { + "message": "Item dikirim ke sampah" + }, + "movedItems": { + "message": "Item yang dipindahkan" + }, + "overwritePasswordConfirmation": { + "message": "Anda yakin ingin menimpa sandi saat ini?" + }, + "editedFolder": { + "message": "Folder yang di Edit" + }, + "addedFolder": { + "message": "Folder ditambahkan" + }, + "deleteFolderConfirmation": { + "message": "Anda yakin Anda ingin menghapus folder ini?" + }, + "deletedFolder": { + "message": "Folder yang terhapus" + }, + "loggedOut": { + "message": "Keluar" + }, + "loginExpired": { + "message": "Sesi masuk Anda telah berakhir." + }, + "logOutConfirmation": { + "message": "Anda yakin ingin keluar?" + }, + "logOut": { + "message": "Keluar" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Ya" + }, + "no": { + "message": "Tidak" + }, + "loginOrCreateNewAccount": { + "message": "Masuk atau buat akun baru untuk mengakses brankas Anda." + }, + "createAccount": { + "message": "Buat Akun" + }, + "logIn": { + "message": "Masuk" + }, + "submit": { + "message": "Kirim" + }, + "emailAddressDesc": { + "message": "Anda akan menggunakan alamat email Anda untuk masuk." + }, + "yourName": { + "message": "Nama Anda" + }, + "yourNameDesc": { + "message": "Apakah kami harus memanggil Anda?" + }, + "masterPass": { + "message": "Kata Sandi Utama" + }, + "masterPassDesc": { + "message": "Kata sandi utama adalah kata sandi yang Anda gunakan untuk mengakses brankas Anda. Sangat penting bahwa Anda tidak lupa kata sandi utama Anda. Tidak ada cara untuk memulihkan kata sandi jika Anda melupakannya." + }, + "masterPassHintDesc": { + "message": "Petunjuk kata sandi utama dapat membantu Anda mengingat kata sandi Anda jika Anda melupakannya." + }, + "reTypeMasterPass": { + "message": "Ketik ulang Kata Sandi Utama" + }, + "masterPassHint": { + "message": "Petunjuk Kata Sandi Utama (pilihan)" + }, + "masterPassHintLabel": { + "message": "Petunjuk Kata Sandi Utama" + }, + "settings": { + "message": "Setelan" + }, + "passwordHint": { + "message": "Petunjuk Kata Sandi" + }, + "enterEmailToGetHint": { + "message": "Masukkan email akun Anda untuk menerima pentunjuk sandi utama Anda." + }, + "getMasterPasswordHint": { + "message": "Dapatkan petunjuk sandi utama" + }, + "emailRequired": { + "message": "Alamat surel diperlukan." + }, + "invalidEmail": { + "message": "Alamat surel tidak valid." + }, + "masterPassRequired": { + "message": "Sandi utama diperlukan." + }, + "masterPassLength": { + "message": "Kata sandi utama sedikitnya harus 8 karakter." + }, + "masterPassDoesntMatch": { + "message": "Konfirmasi sandi utama tidak cocok." + }, + "newAccountCreated": { + "message": "Akun baru Anda telah dibuat! Sekarang Anda bisa masuk." + }, + "masterPassSent": { + "message": "Kami telah mengirimi Anda email dengan petunjuk sandi utama Anda." + }, + "unexpectedError": { + "message": "Terjadi kesalahan yang tak diduga." + }, + "emailAddress": { + "message": "Alamat Surel" + }, + "yourVaultIsLocked": { + "message": "Brankas Anda terkunci. Verifikasi kata sandi utama Anda untuk melanjutkan." + }, + "unlock": { + "message": "Membuka kunci" + }, + "loggedInAsEmailOn": { + "message": "Telah log in sebagai $EMAIL$ di $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Sandi utama tidak valid" + }, + "lockNow": { + "message": "Kunci Sekarang" + }, + "noItemsInList": { + "message": "Tidak ada item yang dapat dicantumkan." + }, + "noCollectionsInList": { + "message": "Tidak ada koleksi yang akan ditampilkan." + }, + "noGroupsInList": { + "message": "Tidak ada grup untuk dicantumkan." + }, + "noUsersInList": { + "message": "Tidak ada pengguna untuk dicantumkan." + }, + "noEventsInList": { + "message": "Tidak ada acara untuk dicantumkan." + }, + "newOrganization": { + "message": "Organisasi Baru" + }, + "noOrganizationsList": { + "message": "Anda tidak berada dalam organisasi apapun. Organisasi memungkinkan Anda dengan aman berbagi item dengan pengguna lainnya." + }, + "versionNumber": { + "message": "Versi $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Masukkan 6 digit kode verifikasi dari aplikasi autentikasi Anda." + }, + "enterVerificationCodeEmail": { + "message": "Masukkan 6 digit kode verifikasi yang dikirim melalui email ke $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Email verifikasi dikirim ke $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Ingat saya" + }, + "sendVerificationCodeEmailAgain": { + "message": "Kirim ulang email kode verifikasi" + }, + "useAnotherTwoStepMethod": { + "message": "Gunakan metode masuk dua langkah lainnya" + }, + "insertYubiKey": { + "message": "Masukkan YubiKey Anda ke port USB komputer Anda, lalu sentuh tombol nya." + }, + "insertU2f": { + "message": "Masukkan kunci keamanan ke port USB komputer Anda. Jika ada tombolnya, tekanlah." + }, + "loginUnavailable": { + "message": "Info Masuk Tidak Tersedia" + }, + "noTwoStepProviders": { + "message": "Akun ini mengaktifkan info masuk dua langkah, namun, tidak satupun dari penyedia dua langkah yang dikonfigurasi didukung oleh peramban web ini." + }, + "noTwoStepProviders2": { + "message": "Silakan gunakan peramban web yang didukung (seperti Chrome) dan/atau tambahkan penyedia tambahan yang didukung di semua peramban web (seperti aplikasi autentikasi)." + }, + "twoStepOptions": { + "message": "Pilihan Info Masuk Dua Langkah" + }, + "recoveryCodeDesc": { + "message": "Kehilangan akses ke semua penyedia dua faktor Anda? Gunakan kode pemulihan untuk menonaktifkan semua penyedia dua faktor dari akun Anda." + }, + "recoveryCodeTitle": { + "message": "Kode Pemulihan" + }, + "authenticatorAppTitle": { + "message": "Aplikasi Autentikasi" + }, + "authenticatorAppDesc": { + "message": "Gunakan aplikasi autentikasi (seperti Authy atau Google Authenticator) untuk menghasilkan kode verifikasi berbasis waktu.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "Kunci Keamanan OTP YubiKey" + }, + "yubiKeyDesc": { + "message": "Gunakan YubiKey untuk mengakses akun Anda. Bekerja dengan YubiKey 4, 4 Nano, 4C, dan peranti NEO." + }, + "duoDesc": { + "message": "Verifikasi dengan Duo Security menggunakan aplikasi Duo Mobile, SMS, panggilan telepon, atau kunci keamanan U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verifikasi dengan Duo Security untuk organisasi Anda menggunakan aplikasi Duo Mobile, SMS, panggilan telepon, atau kunci keamanan U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Menggunakan FIDO U2F mengaktifkan kunci keamanan untuk mengakses akun anda." + }, + "u2fTitle": { + "message": "Kunci Keamanan FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Gunakan kunci yang mendukung WebAUthn untuk mengakses akun anda." + }, + "webAuthnMigrated": { + "message": "(Dipindahkan dari FIDO)" + }, + "emailTitle": { + "message": "Surel" + }, + "emailDesc": { + "message": "Kode verifikasi akan dikirim via email kepada Anda." + }, + "continue": { + "message": "Lanjutkan" + }, + "organization": { + "message": "Organisasi" + }, + "organizations": { + "message": "Organisasi" + }, + "moveToOrgDesc": { + "message": "Pilihlah sebuah organisasi yang Anda ingin memindahkan item ini. Memindahkan berarti memberikan kepemilikan kepada organisasi tersebut. Anda tidak akan lagi menjadi pemilik item ini." + }, + "moveManyToOrgDesc": { + "message": "Pilihlah sebuah organisasi yang Anda ingin memindahkan item ini. Memindahkan berarti memberikan kepemilikan kepada organisasi tersebut. Anda tidak akan lagi menjadi pemilik item ini." + }, + "collectionsDesc": { + "message": "Edit koleksi tempat item ini dibagikan. Hanya pengguna organisasi dengan akses ke koleksi ini yang dapat melihat item ini." + }, + "deleteSelectedItemsDesc": { + "message": "Anda telah memilih $COUNT$ item untuk dihapus. Anda yakin ingin menghapus semua item ini?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Pilih folder tempat Anda ingin memindahkan $COUNT$ item yang dipilih.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Anda telah memilih $COUNT$ item. $MOVEABLE_COUNT$ item bisa dipindahkan ke sebuah organisasi, $NONMOVEABLE_COUNT$ tidak bisa.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Kode Verifikasi (TOTP)" + }, + "copyVerificationCode": { + "message": "Salin Kode Verifikasi" + }, + "warning": { + "message": "Peringatan" + }, + "confirmVaultExport": { + "message": "Konfirmasi Ekspor Vault" + }, + "exportWarningDesc": { + "message": "Ekspor ini berisi data vault Anda dalam format yang tidak dienkripsi. Anda tidak boleh menyimpan atau mengirim file yang diekspor melalui saluran yang tidak aman (seperti email). Hapus segera setelah Anda selesai menggunakannya." + }, + "encExportKeyWarningDesc": { + "message": "Ekspor ini mengenkripsi data Anda menggunakan kunci enkripsi akun Anda. Jika Anda pernah memutar kunci enkripsi akun Anda, Anda harus mengekspor lagi karena Anda tidak akan dapat mendekripsi file ekspor ini." + }, + "encExportAccountWarningDesc": { + "message": "Kunci enkripsi akun adalah unik untuk setiap akun pengguna Bitwarden, sehingga Anda tidak dapat mengimpor ekspor terenkripsi ke akun yang berbeda." + }, + "export": { + "message": "Ekspor" + }, + "exportVault": { + "message": "Ekspor Brankas" + }, + "fileFormat": { + "message": "Format Berkas" + }, + "exportSuccess": { + "message": "Data brankas Anda telah diekspor." + }, + "passwordGenerator": { + "message": "Pembuat Kata Sandi" + }, + "minComplexityScore": { + "message": "Skor Kompleksitas Minimum" + }, + "minNumbers": { + "message": "Angka Minimum" + }, + "minSpecial": { + "message": "Karakter Khusus Minimum", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Hindari Karakter Ambigu" + }, + "regeneratePassword": { + "message": "Buat Ulang Sandi" + }, + "length": { + "message": "Panjang" + }, + "numWords": { + "message": "Jumlah Kata" + }, + "wordSeparator": { + "message": "Pemisah Kata" + }, + "capitalize": { + "message": "Gunakan Huruf Besar", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Sertakan Digit" + }, + "passwordHistory": { + "message": "Riwayat Kata Sandi" + }, + "noPasswordsInList": { + "message": "Tidak ada sandi yang dapat dicantumkan." + }, + "clear": { + "message": "Bersihkan", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Akun Diperbarui" + }, + "changeEmail": { + "message": "Ubah Surel" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "Surel Baru" + }, + "code": { + "message": "Kode" + }, + "changeEmailDesc": { + "message": "Kami telah mengirimkan kode verifikasi melalui email ke $EMAIL$. Silakan periksa email Anda untuk kode ini dan masukkan di bawah ini untuk menyelesaikan perubahan alamat email.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Melanjutkan akan mengeluarkan Anda dari sesi saat ini, mengharuskan Anda untuk masuk kembali. Sesi aktif di perangkat lain dapat terus aktif hingga satu jam." + }, + "emailChanged": { + "message": "Surel Diubah" + }, + "logBackIn": { + "message": "Harap masuk kembali." + }, + "logBackInOthersToo": { + "message": "Harap masuk kembali. Jika Anda menggunakan aplikasi Bitwarden lain, keluarlah dan masuk kembali ke sana juga." + }, + "changeMasterPassword": { + "message": "Ubah Kata Sandi Utama" + }, + "masterPasswordChanged": { + "message": "Kata Sandi Utama Berubah" + }, + "currentMasterPass": { + "message": "Kata Sandi Utama Saat Ini" + }, + "newMasterPass": { + "message": "Kata Sandi Utama Baru" + }, + "confirmNewMasterPass": { + "message": "Konfirmasi Kata Sandi Utama Baru" + }, + "encKeySettings": { + "message": "Pengaturan Kunci Enkripsi" + }, + "kdfAlgorithm": { + "message": "Algoritma KDF" + }, + "kdfIterations": { + "message": "Iterasi KDF" + }, + "kdfIterationsDesc": { + "message": "Iterasi KDF yang lebih tinggi dapat membantu melindungi kata sandi utama Anda agar tidak dipaksakan secara brutal oleh penyerang. Kami merekomendasikan nilai $VALUE$ atau lebih.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Mengatur iterasi KDF Anda terlalu tinggi dapat mengakibatkan kinerja yang buruk saat masuk ke (dan membuka kunci) Bitwarden di perangkat dengan CPU yang lebih lambat. Kami menyarankan Anda untuk meningkatkan nilai dengan kelipatan $INCREMENT$ dan kemudian menguji semua perangkat Anda.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Ubah KDF" + }, + "encKeySettingsChanged": { + "message": "Pengaturan Kunci Enkripsi Berubah" + }, + "dangerZone": { + "message": "Zona Bahaya" + }, + "dangerZoneDesc": { + "message": "Hati-hati, tindakan ini tidak bisa dibatalkan!" + }, + "deauthorizeSessions": { + "message": "Batalkan Otorisasi Sesi" + }, + "deauthorizeSessionsDesc": { + "message": "Khawatir akun Anda masuk di perangkat lain? Lanjutkan di bawah untuk membatalkan otorisasi semua komputer atau perangkat yang pernah Anda gunakan sebelumnya. Langkah keamanan ini disarankan jika Anda sebelumnya menggunakan komputer publik atau secara tidak sengaja menyimpan sandi Anda di perangkat yang bukan milik Anda. Langkah ini juga akan menghapus semua sesi login dua langkah yang diingat sebelumnya." + }, + "deauthorizeSessionsWarning": { + "message": "Melanjutkan juga akan mengeluarkan Anda dari sesi saat ini, mengharuskan Anda untuk masuk kembali. Anda juga akan diminta untuk masuk dua langkah lagi, jika diaktifkan. Sesi aktif di perangkat lain dapat terus aktif hingga satu jam." + }, + "sessionsDeauthorized": { + "message": "Semua Sesi Dicabut Izinnya" + }, + "purgeVault": { + "message": "Bersihkan Vault" + }, + "purgedOrganizationVault": { + "message": "Kubah organisasi yang dibersihkan." + }, + "vaultAccessedByProvider": { + "message": "Brankas diakses oleh provider." + }, + "purgeVaultDesc": { + "message": "Lanjutkan di bawah untuk menghapus semua item dan folder di lemari besi Anda. Item milik organisasi yang Anda bagikan tidak akan dihapus." + }, + "purgeOrgVaultDesc": { + "message": "Lanjutkan di bawah untuk menghapus semua item di lemari besi organisasi." + }, + "purgeVaultWarning": { + "message": "Membersihkan lemari besi Anda bersifat permanen. Itu tidak bisa dibatalkan." + }, + "vaultPurged": { + "message": "Lemari besi Anda telah dibersihkan." + }, + "deleteAccount": { + "message": "Hapus akun" + }, + "deleteAccountDesc": { + "message": "Lanjutkan di bawah untuk menghapus akun Anda dan semua data terkait." + }, + "deleteAccountWarning": { + "message": "Menghapus akun Anda bersifat permanen. Itu tidak bisa dibatalkan." + }, + "accountDeleted": { + "message": "Akun Dihapus" + }, + "accountDeletedDesc": { + "message": "Akun Anda telah ditutup dan semua data terkait telah dihapus." + }, + "myAccount": { + "message": "Akun Saya" + }, + "tools": { + "message": "Alat" + }, + "importData": { + "message": "Impor Data" + }, + "importError": { + "message": "Impor Kesalahan" + }, + "importErrorDesc": { + "message": "Ada masalah dengan data yang Anda coba impor. Harap selesaikan kesalahan yang tercantum di bawah ini di file sumber Anda dan coba lagi." + }, + "importSuccess": { + "message": "Data telah berhasil diimpor ke lemari besi Anda." + }, + "importWarning": { + "message": "Anda mengimpor data ke $ORGANIZATION$. Data Anda dapat dibagikan dengan anggota organisasi ini. Apakah Anda ingin melanjutkan?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data tidak diformat dengan benar. Silakan periksa file impor Anda dan coba lagi." + }, + "importNothingError": { + "message": "Tidak ada yang diimpor." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "selectFormat": { + "message": "Pilih format file impor" + }, + "selectImportFile": { + "message": "Pilih file impor" + }, + "orCopyPasteFileContents": { + "message": "atau salin / tempel konten file impor" + }, + "instructionsFor": { + "message": "$NAME$ Instruksi", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Pilihan" + }, + "optionsDesc": { + "message": "Sesuaikan pengalaman web vault Anda." + }, + "optionsUpdated": { + "message": "Opsi diperbarui" + }, + "language": { + "message": "Bahasa" + }, + "languageDesc": { + "message": "Ubah bahasa yang digunakan oleh brankas web." + }, + "disableIcons": { + "message": "Nonaktifkan Ikon Situs Web" + }, + "disableIconsDesc": { + "message": "Ikon Situs Web memberikan gambar yang dapat dikenali di samping setiap item login di lemari besi Anda." + }, + "enableGravatars": { + "message": "Aktifkan Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Gunakan gambar avatar yang dimuat dari gravatar.com." + }, + "enableFullWidth": { + "message": "Aktifkan Tata Letak Lebar Penuh", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Izinkan kubah web memperluas lebar penuh jendela browser." + }, + "default": { + "message": "Bawaan" + }, + "domainRules": { + "message": "Aturan Domain" + }, + "domainRulesDesc": { + "message": "Jika Anda memiliki info masuk yang sama di beberapa domain situs web yang berbeda, Anda dapat menandai situs web tersebut sebagai \"setara\". Domain \"Global\" sudah dibuat untuk Anda oleh Bitwarden." + }, + "globalEqDomains": { + "message": "Domain Setara Global" + }, + "customEqDomains": { + "message": "Domain Setara Kustom" + }, + "exclude": { + "message": "Mengecualikan" + }, + "include": { + "message": "Termasuk" + }, + "customize": { + "message": "Sesuaikan" + }, + "newCustomDomain": { + "message": "Domain Kustom Baru" + }, + "newCustomDomainDesc": { + "message": "Masukkan daftar domain yang dipisahkan dengan koma. Hanya domain \"dasar\" yang diperbolehkan. Jangan masukkan subdomain. Misalnya, masukkan \"google.com\", bukan \"www.google.com\". Anda juga dapat memasukkan \"androidapp: //package.name\" untuk mengaitkan aplikasi android dengan domain situs lain." + }, + "customDomainX": { + "message": "Domain Khusus $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domain diperbaharui" + }, + "twoStepLogin": { + "message": "Info masuk dua langkah" + }, + "twoStepLoginDesc": { + "message": "Amankan akun Anda dengan meminta langkah tambahan saat masuk." + }, + "twoStepLoginOrganizationDesc": { + "message": "Mewajibkan login dua langkah untuk pengguna organisasi Anda dengan mengonfigurasi penyedia di tingkat organisasi." + }, + "twoStepLoginRecoveryWarning": { + "message": "Mengaktifkan login dua langkah dapat mengunci Anda secara permanen dari akun Bitwarden Anda. Kode pemulihan memungkinkan Anda untuk mengakses akun Anda jika Anda tidak dapat lagi menggunakan penyedia proses masuk dua langkah biasa (mis. Anda kehilangan perangkat). Dukungan Bitwarden tidak akan dapat membantu Anda jika Anda kehilangan akses ke akun Anda. Kami menyarankan Anda untuk menuliskan atau mencetak kode pemulihan dan menyimpannya di tempat yang aman." + }, + "viewRecoveryCode": { + "message": "Lihat Kode Pemulihan" + }, + "providers": { + "message": "Penyedia", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Aktifkan" + }, + "enabled": { + "message": "Diaktifkan" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Keanggotaan Premium" + }, + "premiumRequired": { + "message": "Memerlukan Keanggotaan Premium" + }, + "premiumRequiredDesc": { + "message": "Keanggotaan premium diperlukan untuk menggunakan fitur ini." + }, + "youHavePremiumAccess": { + "message": "Anda memiliki akses premium" + }, + "alreadyPremiumFromOrg": { + "message": "Anda sudah memiliki akses ke fitur premium karena organisasi tempat Anda menjadi anggota." + }, + "manage": { + "message": "Kelola" + }, + "disable": { + "message": "Nonaktifkan" + }, + "twoStepLoginProviderEnabled": { + "message": "Penyedia proses masuk dua langkah ini diaktifkan di akun Anda." + }, + "twoStepLoginAuthDesc": { + "message": "Masukkan kata sandi utama Anda untuk mengubah pengaturan login dua langkah." + }, + "twoStepAuthenticatorDesc": { + "message": "Ikuti langkah-langkah berikut untuk menyiapkan login dua langkah dengan aplikasi pengautentikasi:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Unduh aplikasi autentikator dua langkah" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Butuh aplikasi pengautentikasi dua langkah? Unduh salah satu dari yang berikut ini" + }, + "iosDevices": { + "message": "Perangkat iOS" + }, + "androidDevices": { + "message": "Perangkat Android" + }, + "windowsDevices": { + "message": "Perangkat Windows" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Aplikasi ini direkomendasikan, namun aplikasi pengautentikasi lain juga akan berfungsi." + }, + "twoStepAuthenticatorScanCode": { + "message": "Pindai kode QR ini dengan aplikasi pengautentikasi Anda" + }, + "key": { + "message": "Kunci" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Masukkan 6 digit kode verifikasi yang dihasilkan dari aplikasi" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Jika Anda perlu menambahkannya ke perangkat lain, di bawah ini adalah kode QR (atau kunci) yang diperlukan oleh aplikasi autentikator Anda." + }, + "twoStepDisableDesc": { + "message": "Anda yakin ingin menonaktifkan penyedia proses masuk dua langkah ini?" + }, + "twoStepDisabled": { + "message": "Penyedia proses masuk dua langkah dinonaktifkan." + }, + "twoFactorYubikeyAdd": { + "message": "Tambahkan YubiKey baru ke akun Anda" + }, + "twoFactorYubikeyPlugIn": { + "message": "Colokkan YubiKey ke port USB komputer Anda." + }, + "twoFactorYubikeySelectKey": { + "message": "Pilih bidang masukan YubiKey kosong pertama di bawah ini." + }, + "twoFactorYubikeyTouchButton": { + "message": "Sentuh tombol YubiKey." + }, + "twoFactorYubikeySaveForm": { + "message": "Simpan formulir." + }, + "twoFactorYubikeyWarning": { + "message": "Karena keterbatasan platform, YubiKeys tidak dapat digunakan di semua aplikasi Bitwarden. Anda harus mengaktifkan penyedia proses masuk dua langkah lainnya sehingga Anda dapat mengakses akun Anda saat YubiKeys tidak dapat digunakan. Platform yang didukung:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Kubah web, aplikasi desktop, CLI, dan semua ekstensi peramban di perangkat dengan port USB yang dapat menerima YubiKey Anda." + }, + "twoFactorYubikeySupportMobile": { + "message": "Aplikasi seluler di perangkat dengan kemampuan NFC atau port data yang dapat menerima YubiKey Anda." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "Kunci U2F $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "Kunci WebAuthn $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "Dukungan NFC" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Salah satu kunci saya mendukung NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Jika salah satu YubiKey Anda mendukung NFC (seperti YubiKey NEO), Anda akan diminta pada perangkat seluler setiap kali ketersediaan NFC terdeteksi." + }, + "yubikeysUpdated": { + "message": "YubiKeys diperbarui" + }, + "disableAllKeys": { + "message": "Nonaktifkan Semua Kunci" + }, + "twoFactorDuoDesc": { + "message": "Masukkan informasi aplikasi Bitwarden dari panel Duo Admin Anda." + }, + "twoFactorDuoIntegrationKey": { + "message": "Kunci Integrasi" + }, + "twoFactorDuoSecretKey": { + "message": "Kunci Rahasia" + }, + "twoFactorDuoApiHostname": { + "message": "Nama Host API" + }, + "twoFactorEmailDesc": { + "message": "Ikuti langkah-langkah berikut untuk menyiapkan login dua langkah dengan email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Masukkan email yang ingin Anda terima kode verifikasi" + }, + "twoFactorEmailEnterCode": { + "message": "Masukkan 6 digit kode verifikasi yang dihasilkan dari email" + }, + "sendEmail": { + "message": "Kirim Surel" + }, + "twoFactorU2fAdd": { + "message": "Tambahkan kunci keamanan FIDO U2F ke akun Anda" + }, + "removeU2fConfirmation": { + "message": "Anda yakin ingin menghapus kunci keamanan ini?" + }, + "twoFactorWebAuthnAdd": { + "message": "Tambahkan kunci keamanan WebAuthn ke akun Anda" + }, + "readKey": { + "message": "Baca Kunci" + }, + "keyCompromised": { + "message": "Kunci disusupi." + }, + "twoFactorU2fGiveName": { + "message": "Beri nama kunci keamanan untuk mengidentifikasinya." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Colokkan kunci keamanan ke port USB komputer Anda dan klik tombol \"Read Key\"." + }, + "twoFactorU2fTouchButton": { + "message": "Jika kunci keamanan memiliki tombol, sentuhlah." + }, + "twoFactorU2fSaveForm": { + "message": "Simpan formulir." + }, + "twoFactorU2fWarning": { + "message": "Karena keterbatasan platform, FIDO U2F tidak dapat digunakan di semua aplikasi Bitwarden. Anda harus mengaktifkan penyedia login dua langkah lainnya sehingga Anda dapat mengakses akun Anda saat FIDO U2F tidak dapat digunakan. Platform yang didukung:" + }, + "twoFactorU2fSupportWeb": { + "message": "Kubah web dan ekstensi browser di desktop / laptop dengan browser yang mendukung U2F (Chrome, Opera, Vivaldi, atau Firefox dengan FIDO U2F diaktifkan)." + }, + "twoFactorU2fWaiting": { + "message": "Menunggu Anda menyentuh tombol di kunci keamanan Anda" + }, + "twoFactorU2fClickSave": { + "message": "Klik tombol \"Simpan\" di bawah untuk mengaktifkan kunci keamanan ini untuk login dua langkah." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Ada masalah saat membaca kunci keamanan. Coba lagi." + }, + "twoFactorWebAuthnWarning": { + "message": "Karena keterbatasan platform, WebAuthn tidak dapat digunakan di semua aplikasi Bitwarden. Anda harus mengaktifkan penyedia proses masuk dua langkah lainnya sehingga Anda dapat mengakses akun Anda saat WebAUthn tidak dapat digunakan. Platform yang didukung:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Brankas web dan ekstensi browser di desktop / laptop dengan browser yang mendukung WebAuthn (Chrome, Opera, Vivaldi, atau Firefox dengan FIDO U2F diaktifkan)." + }, + "twoFactorRecoveryYourCode": { + "message": "Kode pemulihan masuk dua langkah Bitwarden Anda" + }, + "twoFactorRecoveryNoCode": { + "message": "Anda belum mengaktifkan penyedia proses masuk dua langkah apa pun. Setelah Anda mengaktifkan penyedia proses masuk dua langkah, Anda dapat memeriksa kembali di sini untuk kode pemulihan Anda." + }, + "printCode": { + "message": "Cetak Kode", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Laporan" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Laporan Situs Web Tidak Aman" + }, + "unsecuredWebsitesReportDesc": { + "message": "Menggunakan situs web tidak aman dengan skema http: // dapat berbahaya. Jika situs web memungkinkan, Anda harus selalu mengaksesnya menggunakan skema https: // sehingga koneksi Anda terenkripsi." + }, + "unsecuredWebsitesFound": { + "message": "Situs Web Tidak Aman Ditemukan" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Kami menemukan $COUNT$ item di lemari besi Anda dengan URI yang tidak aman. Anda harus mengubah skema URI mereka menjadi https: // jika situs web mengizinkannya.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Tidak ada item di vault Anda yang memiliki URI tidak aman." + }, + "inactive2faReport": { + "message": "Laporan 2FA tidak aktif" + }, + "inactive2faReportDesc": { + "message": "Otentikasi dua faktor (2FA) adalah pengaturan keamanan penting yang membantu mengamankan akun Anda. Jika situs web menawarkannya, Anda harus selalu mengaktifkan otentikasi dua faktor." + }, + "inactive2faFound": { + "message": "Login Tanpa Ditemukan 2FA" + }, + "inactive2faFoundDesc": { + "message": "Kami menemukan $COUNT$ situs web di lemari besi Anda yang mungkin tidak dikonfigurasi dengan otentikasi dua faktor (menurut twofactorauth.org). Untuk lebih melindungi akun ini, Anda harus mengaktifkan otentikasi dua faktor.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Tidak ada situs web yang ditemukan di lemari besi Anda dengan konfigurasi otentikasi dua faktor yang hilang." + }, + "instructions": { + "message": "Instruksi" + }, + "exposedPasswordsReport": { + "message": "Laporan Kata Sandi Terkena" + }, + "exposedPasswordsReportDesc": { + "message": "Kata sandi yang terbuka adalah kata sandi yang telah ditemukan dalam pelanggaran data yang diketahui yang dirilis secara publik atau dijual di web gelap oleh peretas." + }, + "exposedPasswordsFound": { + "message": "Kata Sandi Terkena Ditemukan" + }, + "exposedPasswordsFoundDesc": { + "message": "Kami menemukan $COUNT$ item di lemari besi Anda yang memiliki sandi yang diketahui dalam pelanggaran data yang diketahui. Anda harus mengubahnya untuk menggunakan kata sandi baru.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Tidak ada item di lemari besi Anda yang memiliki kata sandi yang telah terungkap dalam pelanggaran data yang diketahui." + }, + "checkExposedPasswords": { + "message": "Periksa Kata Sandi yang Terekspos" + }, + "exposedXTimes": { + "message": "Dipaparkan $COUNT$ kali", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Laporan Kata Sandi Lemah" + }, + "weakPasswordsReportDesc": { + "message": "Kata sandi yang lemah dapat dengan mudah ditebak oleh peretas dan alat otomatis yang digunakan untuk memecahkan kata sandi. Pembuat kata sandi Bitwarden dapat membantu Anda membuat kata sandi yang kuat." + }, + "weakPasswordsFound": { + "message": "Kata Sandi Lemah Ditemukan" + }, + "weakPasswordsFoundDesc": { + "message": "Kami menemukan $COUNT$ item di lemari besi Anda dengan sandi yang tidak kuat. Anda harus memperbaruinya untuk menggunakan kata sandi yang lebih kuat.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Tidak ada item di lemari besi Anda yang memiliki kata sandi yang lemah." + }, + "reusedPasswordsReport": { + "message": "Laporan Kata Sandi yang Digunakan Kembali" + }, + "reusedPasswordsReportDesc": { + "message": "Jika layanan yang Anda gunakan disusupi, menggunakan kembali kata sandi yang sama di tempat lain dapat memungkinkan peretas untuk dengan mudah mendapatkan akses ke lebih banyak akun online Anda. Anda harus menggunakan kata sandi unik untuk setiap akun atau layanan." + }, + "reusedPasswordsFound": { + "message": "Kata Sandi yang Digunakan Kembali Ditemukan" + }, + "reusedPasswordsFoundDesc": { + "message": "Kami menemukan $COUNT$ sandi yang digunakan kembali di lemari besi Anda. Anda harus mengubahnya menjadi nilai unik.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Tidak ada login di vault Anda yang memiliki sandi yang sedang digunakan kembali." + }, + "reusedXTimes": { + "message": "Digunakan kembali $COUNT$ kali", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Laporan Pelanggaran Data" + }, + "breachDesc": { + "message": "\"Pelanggaran\" adalah insiden ketika data situs telah diakses secara ilegal oleh peretas dan kemudian dirilis ke publik. Tinjau jenis data yang disusupi (alamat email, sandi, kartu kredit, dll.) Dan lakukan tindakan yang sesuai, seperti mengubah sandi." + }, + "breachCheckUsernameEmail": { + "message": "Periksa nama pengguna atau alamat email yang Anda gunakan." + }, + "checkBreaches": { + "message": "Periksa Pelanggaran" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ tidak ditemukan dalam pelanggaran data yang diketahui.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Kabar Baik", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ ditemukan dalam $COUNT$ pelanggaran data online yang berbeda.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Ditemukan Akun yang Dilanggar" + }, + "compromisedData": { + "message": "Data yang disusupi" + }, + "website": { + "message": "Situs Web" + }, + "affectedUsers": { + "message": "Pengguna yang Terkena Dampak" + }, + "breachOccurred": { + "message": "Terjadi Pelanggaran" + }, + "breachReported": { + "message": "Pelanggaran Dilaporkan" + }, + "reportError": { + "message": "Terjadi kesalahan saat mencoba memuat laporan. Coba lagi" + }, + "billing": { + "message": "Penagihan" + }, + "accountCredit": { + "message": "Kredit Akun", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Saldo rekening", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Tambahkan Pulsa", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Jumlah", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Kredit tambahan akan muncul di akun Anda setelah pembayaran selesai diproses. Beberapa metode pembayaran tertunda dan dapat memakan waktu lebih lama untuk diproses daripada yang lain." + }, + "makeSureEnoughCredit": { + "message": "Harap pastikan bahwa akun Anda memiliki cukup kredit yang tersedia untuk pembelian ini. Jika akun Anda tidak memiliki cukup kredit yang tersedia, metode pembayaran default Anda yang tercatat akan digunakan untuk selisihnya. Anda dapat menambahkan kredit ke akun Anda dari halaman Penagihan." + }, + "creditAppliedDesc": { + "message": "Kredit akun Anda dapat digunakan untuk melakukan pembelian. Semua kredit yang tersedia akan secara otomatis diterapkan ke faktur yang dibuat untuk akun ini." + }, + "goPremium": { + "message": "Jadi Anggota Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Anda telah ditingkatkan ke premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Tingkatkan akun Anda ke keanggotaan premium dan buka beberapa fitur tambahan yang hebat." + }, + "premiumSignUpStorage": { + "message": "Penyimpanan terenkripsi 1 GB untuk lampiran file." + }, + "premiumSignUpTwoStep": { + "message": "Opsi login dua langkah tambahan seperti YubiKey, FIDO U2F, dan Duo." + }, + "premiumSignUpEmergency": { + "message": "Akses darurat" + }, + "premiumSignUpReports": { + "message": "Kebersihan kata sandi, kesehatan akun, dan laporan pelanggaran data untuk menjaga brankas Anda tetap aman." + }, + "premiumSignUpTotp": { + "message": "Generator kode verifikasi TOTP (2FA) untuk login di lemari besi Anda." + }, + "premiumSignUpSupport": { + "message": "Dukungan pelanggan prioritas." + }, + "premiumSignUpFuture": { + "message": "Semua fitur premium masa depan. Selebihnya datang segera!" + }, + "premiumPrice": { + "message": "Semuanya hanya dengan $PRICE$ / tahun!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Pengaya" + }, + "premiumAccess": { + "message": "Akses Premium" + }, + "premiumAccessDesc": { + "message": "Anda dapat menambahkan akses premium ke semua anggota organisasi Anda dengan $PRICE$ / $INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Tambahan Penyimpanan (GB)" + }, + "additionalStorageGbDesc": { + "message": "# dari GB tambahan" + }, + "additionalStorageIntervalDesc": { + "message": "Paket Anda dilengkapi dengan $SIZE$ penyimpanan file terenkripsi. Anda dapat menambahkan penyimpanan tambahan dengan $PRICE$ per GB / $INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Ringkasan" + }, + "total": { + "message": "Jumlah" + }, + "year": { + "message": "tahun" + }, + "month": { + "message": "bulan" + }, + "monthAbbr": { + "message": "mo.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Metode pembayaran Anda akan segera ditagih dan kemudian secara berulang setiap tahun. Anda dapat membatalkannya kapan saja." + }, + "paymentCharged": { + "message": "Metode pembayaran Anda akan segera ditagih dan kemudian secara berulang setiap $INTERVAL$. Anda dapat membatalkannya kapan saja.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Paket Anda dilengkapi dengan uji coba gratis selama 7 hari. Metode pembayaran Anda tidak akan ditagih hingga uji coba berakhir. Penagihan akan dilakukan secara berulang setiap $INTERVAL$. Anda dapat membatalkannya kapan saja." + }, + "paymentInformation": { + "message": "Informasi Pembayaran" + }, + "billingInformation": { + "message": "Informasi tagihan" + }, + "creditCard": { + "message": "Kartu kredit" + }, + "paypalClickSubmit": { + "message": "Klik tombol PayPal untuk masuk ke akun PayPal Anda, lalu klik tombol Kirim di bawah untuk melanjutkan." + }, + "cancelSubscription": { + "message": "Batalkan Langganan" + }, + "subscriptionCanceled": { + "message": "Langganan telah dibatalkan." + }, + "pendingCancellation": { + "message": "Pembatalan Menunggu Keputusan" + }, + "subscriptionPendingCanceled": { + "message": "Langganan telah ditandai untuk pembatalan pada akhir periode penagihan saat ini." + }, + "reinstateSubscription": { + "message": "Pulihkan Langganan" + }, + "reinstateConfirmation": { + "message": "Anda yakin ingin menghapus permintaan pembatalan yang menunggu keputusan dan memulihkan langganan Anda?" + }, + "reinstated": { + "message": "Langganan telah dipulihkan." + }, + "cancelConfirmation": { + "message": "Anda yakin ingin membatalkan? Anda akan kehilangan akses ke semua fitur langganan ini di akhir siklus penagihan ini." + }, + "canceledSubscription": { + "message": "Langganan telah dibatalkan." + }, + "neverExpires": { + "message": "Tidak Pernah berakhir" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Biaya berikutnya" + }, + "details": { + "message": "Detailnya" + }, + "downloadLicense": { + "message": "Mengunduh lisensi" + }, + "updateLicense": { + "message": "Perbarui Lisensi" + }, + "updatedLicense": { + "message": "Lisensi yang diperbarui" + }, + "manageSubscription": { + "message": "Kelola Langganan" + }, + "storage": { + "message": "Penyimpanan" + }, + "addStorage": { + "message": "Tambahkan Penyimpanan" + }, + "removeStorage": { + "message": "Hapus Penyimpanan" + }, + "subscriptionStorage": { + "message": "Langganan Anda memiliki total penyimpanan file terenkripsi $MAX_STORAGE$ GB. Anda saat ini menggunakan $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Cara Pembayaran" + }, + "noPaymentMethod": { + "message": "Tidak ada metode pembayaran yang tercatat." + }, + "addPaymentMethod": { + "message": "Tambahkan Metode Pembayaran" + }, + "changePaymentMethod": { + "message": "Ubah Metode Pembayaran" + }, + "invoices": { + "message": "Faktur" + }, + "noInvoices": { + "message": "Tidak ada faktur." + }, + "paid": { + "message": "Dibayar", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Belum dibayar", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transaksi", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Tidak ada transaksi." + }, + "chargeNoun": { + "message": "Biaya", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Pengembalian dana", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Tagihan apa pun akan muncul di laporan mutasi Anda sebagai $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB Penyimpanan Untuk Ditambahkan" + }, + "gbStorageRemove": { + "message": "GB Penyimpanan Untuk Menghapus" + }, + "storageAddNote": { + "message": "Menambahkan penyimpanan akan menghasilkan penyesuaian pada total penagihan Anda dan segera menagih metode pembayaran Anda yang tercatat. Tagihan pertama akan diprorata untuk sisa siklus penagihan saat ini." + }, + "storageRemoveNote": { + "message": "Menghapus penyimpanan akan mengakibatkan penyesuaian pada total penagihan Anda yang akan dihitung secara prorata sebagai kredit untuk tagihan penagihan Anda berikutnya." + }, + "adjustedStorage": { + "message": "Menyesuaikan penyimpanan $AMOUNT$ GB.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Hubungi Dukungan Pelanggan" + }, + "updatedPaymentMethod": { + "message": "Metode pembayaran yang diperbarui." + }, + "purchasePremium": { + "message": "Beli Premium" + }, + "licenseFile": { + "message": "File Lisensi" + }, + "licenseFileDesc": { + "message": "File lisensi Anda akan diberi nama seperti $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Untuk meningkatkan akun Anda ke keanggotaan premium, Anda perlu mengunggah file lisensi yang valid." + }, + "uploadLicenseFileOrg": { + "message": "Untuk membuat organisasi yang dihosting di lokasi, Anda perlu mengupload file lisensi yang valid." + }, + "accountEmailMustBeVerified": { + "message": "Alamat email akun Anda harus diverifikasi." + }, + "newOrganizationDesc": { + "message": "Organisasi memungkinkan Anda berbagi bagian lemari besi Anda dengan orang lain serta mengelola pengguna terkait untuk entitas tertentu seperti keluarga, tim kecil, atau perusahaan besar." + }, + "generalInformation": { + "message": "Informasi Umum" + }, + "organizationName": { + "message": "Nama Organisasi" + }, + "accountOwnedBusiness": { + "message": "Akun ini dimiliki oleh bisnis." + }, + "billingEmail": { + "message": "Email Penagihan" + }, + "businessName": { + "message": "Nama Bisnis" + }, + "chooseYourPlan": { + "message": "Pilih Paket Anda" + }, + "users": { + "message": "Pengguna" + }, + "userSeats": { + "message": "Kursi Pengguna" + }, + "additionalUserSeats": { + "message": "Kursi Pengguna Tambahan" + }, + "userSeatsDesc": { + "message": "# kursi pengguna" + }, + "userSeatsAdditionalDesc": { + "message": "Paket Anda dilengkapi dengan $BASE_SEATS$ kursi pengguna. Anda dapat menambahkan pengguna tambahan dengan $SEAT_PRICE$ per pengguna / bulan.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Berapa banyak kursi pengguna yang Anda butuhkan? Anda juga dapat menambahkan kursi tambahan nanti jika perlu." + }, + "planNameFree": { + "message": "Gratis", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Untuk pengujian atau pengguna pribadi untuk berbagi dengan $COUNT$ pengguna lain.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Keluarga" + }, + "planDescFamilies": { + "message": "Untuk penggunaan pribadi, untuk berbagi dengan keluarga & teman." + }, + "planNameTeams": { + "message": "Tim" + }, + "planDescTeams": { + "message": "Untuk bisnis dan organisasi tim lainnya." + }, + "planNameEnterprise": { + "message": "Perusahaan" + }, + "planDescEnterprise": { + "message": "Untuk bisnis dan organisasi besar lainnya." + }, + "freeForever": { + "message": "Bebas selamanya" + }, + "includesXUsers": { + "message": "termasuk $COUNT$ pengguna", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Pengguna Tambahan" + }, + "costPerUser": { + "message": "$COST$ per pengguna", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Terbatas untuk $COUNT$ pengguna (termasuk Anda)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Terbatas untuk $COUNT$ koleksi", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Tambahkan dan bagikan hingga $COUNT$ pengguna", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Tambahkan dan bagikan dengan pengguna tanpa batas" + }, + "createUnlimitedCollections": { + "message": "Buat Koleksi tanpa batas" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ penyimpanan file terenkripsi", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Hosting milik sendiri (opsional)" + }, + "usersGetPremium": { + "message": "Pengguna mendapatkan akses ke Fitur Premium" + }, + "controlAccessWithGroups": { + "message": "Kontrol akses pengguna dengan Grup" + }, + "syncUsersFromDirectory": { + "message": "Sinkronkan pengguna dan Grup Anda dari direktori" + }, + "trackAuditLogs": { + "message": "Lacak tindakan pengguna dengan log audit" + }, + "enforce2faDuo": { + "message": "Terapkan 2FA dengan Duo" + }, + "priorityCustomerSupport": { + "message": "Dukungan pelanggan prioritas" + }, + "xDayFreeTrial": { + "message": "$COUNT$ hari uji coba gratis, batalkan kapan saja", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Bulanan" + }, + "annually": { + "message": "Setiap tahun" + }, + "basePrice": { + "message": "Harga dasar" + }, + "organizationCreated": { + "message": "Organisasi Dibuat" + }, + "organizationReadyToGo": { + "message": "Organisasi baru Anda siap digunakan!" + }, + "organizationUpgraded": { + "message": "Organisasi Anda telah ditingkatkan." + }, + "leave": { + "message": "Meninggalkan" + }, + "leaveOrganizationConfirmation": { + "message": "Yakin ingin keluar dari organisasi ini?" + }, + "leftOrganization": { + "message": "Anda telah keluar dari organisasi." + }, + "defaultCollection": { + "message": "Koleksi Default" + }, + "getHelp": { + "message": "Dapatkan Bantuan" + }, + "getApps": { + "message": "Dapatkan Aplikasinya" + }, + "loggedInAs": { + "message": "Masuk sebagai" + }, + "eventLogs": { + "message": "Log Peristiwa" + }, + "people": { + "message": "Orang-orang" + }, + "policies": { + "message": "Kebijakan" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Edit Kebijakan" + }, + "groups": { + "message": "Grup" + }, + "newGroup": { + "message": "Grup baru" + }, + "addGroup": { + "message": "Tambahkan Grup" + }, + "editGroup": { + "message": "Sunting Grup" + }, + "deleteGroupConfirmation": { + "message": "Apakah Anda yakin ingin menghapus grup ini?" + }, + "removeUserConfirmation": { + "message": "Apakah Anda yakin ingin menghapus pengguna ini?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "Id Eksternal" + }, + "externalIdDesc": { + "message": "Id eksternal dapat digunakan sebagai referensi atau untuk menautkan sumber daya ini ke sistem eksternal seperti direktori pengguna." + }, + "accessControl": { + "message": "Kontrol akses" + }, + "groupAccessAllItems": { + "message": "Grup ini dapat mengakses dan mengubah semua item." + }, + "groupAccessSelectedCollections": { + "message": "Grup ini hanya dapat mengakses koleksi yang dipilih." + }, + "readOnly": { + "message": "Baca Saja" + }, + "newCollection": { + "message": "Koleksi baru" + }, + "addCollection": { + "message": "Tambahkan Koleksi" + }, + "editCollection": { + "message": "Edit Koleksi" + }, + "deleteCollectionConfirmation": { + "message": "Apakah Anda yakin ingin menghapus koleksi ini?" + }, + "editUser": { + "message": "Edit Pengguna" + }, + "inviteUser": { + "message": "Undang Pengguna" + }, + "inviteUserDesc": { + "message": "Undang pengguna baru ke organisasi Anda dengan memasukkan alamat email akun Bitwarden mereka di bawah ini. Jika mereka belum memiliki akun Bitwarden, mereka akan diminta untuk membuat akun baru." + }, + "inviteMultipleEmailDesc": { + "message": "Anda dapat mengundang hingga $COUNT$ pengguna sekaligus dengan memisahkan daftar alamat email dengan koma.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Pengguna ini menggunakan proses masuk dua langkah untuk melindungi akun mereka." + }, + "userAccessAllItems": { + "message": "Pengguna ini dapat mengakses dan mengubah semua item." + }, + "userAccessSelectedCollections": { + "message": "Pengguna ini hanya dapat mengakses koleksi yang dipilih." + }, + "search": { + "message": "Cari" + }, + "invited": { + "message": "Diundang" + }, + "accepted": { + "message": "Diterima" + }, + "confirmed": { + "message": "Dikonfirmasi" + }, + "clientOwnerEmail": { + "message": "Pemilik email klien" + }, + "owner": { + "message": "Pemilik" + }, + "ownerDesc": { + "message": "Pengguna dengan akses tertinggi yang dapat mengelola semua aspek organisasi Anda." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admin dapat mengakses dan mengelola semua item, koleksi, dan pengguna di organisasi Anda." + }, + "user": { + "message": "Pengguna" + }, + "userDesc": { + "message": "Pengguna biasa dengan akses ke koleksi yang ditetapkan di organisasi Anda." + }, + "manager": { + "message": "Pengelola" + }, + "managerDesc": { + "message": "Manajer dapat mengakses dan mengelola koleksi yang ditetapkan di organisasi Anda." + }, + "all": { + "message": "Semua" + }, + "refresh": { + "message": "Segarkan" + }, + "timestamp": { + "message": "Stempel waktu" + }, + "event": { + "message": "Peristiwa" + }, + "unknown": { + "message": "Tidak diketahui" + }, + "loadMore": { + "message": "Muat lebih banyak" + }, + "mobile": { + "message": "Seluler", + "description": "Mobile app" + }, + "extension": { + "message": "Ekstensi", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Brankas web" + }, + "loggedIn": { + "message": "Sudah masuk." + }, + "changedPassword": { + "message": "Kata sandi akun diubah." + }, + "enabledUpdated2fa": { + "message": "Proses masuk dua langkah diaktifkan / diperbarui." + }, + "disabled2fa": { + "message": "Proses masuk dua langkah dinonaktifkan." + }, + "recovered2fa": { + "message": "Akun yang dipulihkan dari login dua langkah." + }, + "failedLogin": { + "message": "Upaya login gagal dengan sandi yang salah." + }, + "failedLogin2fa": { + "message": "Upaya masuk gagal dengan proses masuk dua langkah yang salah." + }, + "exportedVault": { + "message": "Brankas yang diekspor." + }, + "exportedOrganizationVault": { + "message": "Brankas organisasi yang diekspor." + }, + "editedOrgSettings": { + "message": "Pengaturan organisasi yang diedit." + }, + "createdItemId": { + "message": "Membuat item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Item $ID$ telah diedit.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Mengirim item $ID$ ke sampah.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Memindahkan item $ID$ ke sebuah organisasi.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Melihat item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Melihat kata sandi untuk item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Melihat bidang tersembunyi untuk item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Melihat kode keamanan untuk item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Sandi disalin untuk item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Bidang tersembunyi disalin untuk item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Kode keamanan disalin untuk item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Item yang diisi otomatis $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Koleksi yang dibuat $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Koleksi $ID$ diedit.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Koleksi $ID$ dihapus.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Kebijakan $ID$ telah diedit.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Membuat grup $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Grup $ID$ diedit.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Grup $ID$ dihapus.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Pengguna $ID$ dihapus.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Lampiran dibuat untuk item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Lampiran dihapus untuk item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Koleksi yang diedit untuk item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "$ID$ pengguna yang diundang.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "$ID$ pengguna yang dikonfirmasi.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "$ID$ telah diedit.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Grup yang diedit untuk pengguna $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "SSO tidak ditautkan untuk pengguna $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Organisasi yang dibuat $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Organisasi yang ditambahkan $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Organisasi yang dihapus $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Perangkat" + }, + "view": { + "message": "Tampilan" + }, + "invalidDateRange": { + "message": "Rentang tanggal tidak valid." + }, + "errorOccurred": { + "message": "Sebuah kesalahan telah terjadi." + }, + "userAccess": { + "message": "Akses Pengguna" + }, + "userType": { + "message": "Tipe Pengguna" + }, + "groupAccess": { + "message": "Akses Grup" + }, + "groupAccessUserDesc": { + "message": "Edit grup tempat pengguna ini berada." + }, + "invitedUsers": { + "message": "Pengguna yang diundang." + }, + "resendInvitation": { + "message": "Mengirim kembali undangan" + }, + "resendEmail": { + "message": "Kirim Ulang Email" + }, + "hasBeenReinvited": { + "message": "$USER$ telah diundang.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Konfirmasi" + }, + "confirmUser": { + "message": "Konfirmasi Pengguna" + }, + "hasBeenConfirmed": { + "message": "$USER$ telah dikonfirmasi.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Konfirmasi Pengguna" + }, + "usersNeedConfirmed": { + "message": "Anda memiliki pengguna yang telah menerima undangannya, tetapi masih perlu dikonfirmasi. Pengguna tidak akan memiliki akses ke organisasi sampai mereka dikonfirmasi." + }, + "startDate": { + "message": "Mulai tanggal" + }, + "endDate": { + "message": "Tanggal Berakhir" + }, + "verifyEmail": { + "message": "Verifikasi email" + }, + "verifyEmailDesc": { + "message": "Verifikasi alamat email akun Anda untuk membuka akses ke semua fitur." + }, + "verifyEmailFirst": { + "message": "Alamat email akun Anda harus diverifikasi terlebih dahulu." + }, + "checkInboxForVerification": { + "message": "Periksa kotak masuk email Anda untuk tautan verifikasi." + }, + "emailVerified": { + "message": "Email Anda telah diverifikasi." + }, + "emailVerifiedFailed": { + "message": "Tidak dapat memverifikasi email Anda. Coba kirim email verifikasi baru." + }, + "emailVerificationRequired": { + "message": "Verifikasi Email Diperlukan" + }, + "emailVerificationRequiredDesc": { + "message": "Anda harus mengkonfirmasi email anda untuk menggunakan fitur ini." + }, + "updateBrowser": { + "message": "Perbarui Browser" + }, + "updateBrowserDesc": { + "message": "Anda menggunakan browser web yang tidak didukung. Kubah web mungkin tidak berfungsi dengan baik." + }, + "joinOrganization": { + "message": "Bergabunglah dengan Organisasi" + }, + "joinOrganizationDesc": { + "message": "Anda telah diundang untuk bergabung dengan organisasi yang tercantum di atas. Untuk menerima undangan, Anda harus masuk atau membuat akun Bitwarden baru." + }, + "inviteAccepted": { + "message": "Undangan Diterima" + }, + "inviteAcceptedDesc": { + "message": "Anda dapat mengakses organisasi ini setelah administrator mengonfirmasi keanggotaan Anda. Kami akan mengirimi Anda email jika itu terjadi." + }, + "inviteAcceptFailed": { + "message": "Tidak dapat menerima undangan. Minta admin organisasi untuk mengirim undangan baru." + }, + "inviteAcceptFailedShort": { + "message": "Tidak dapat menerima undangan. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Ingat email" + }, + "recoverAccountTwoStepDesc": { + "message": "Jika Anda tidak dapat mengakses akun Anda melalui metode masuk dua langkah biasa, Anda dapat menggunakan kode pemulihan masuk dua langkah untuk menonaktifkan semua penyedia dua langkah di akun Anda." + }, + "recoverAccountTwoStep": { + "message": "Pulihkan Akun Dua Langkah Masuk" + }, + "twoStepRecoverDisabled": { + "message": "Proses masuk dua langkah telah dinonaktifkan di akun Anda." + }, + "learnMore": { + "message": "Pelajari lebih lanjut" + }, + "deleteRecoverDesc": { + "message": "Masukkan alamat email Anda di bawah ini untuk memulihkan dan menghapus akun Anda." + }, + "deleteRecoverEmailSent": { + "message": "Jika akun Anda ada, kami telah mengirimi Anda email dengan instruksi lebih lanjut." + }, + "deleteRecoverConfirmDesc": { + "message": "Anda telah meminta untuk menghapus akun Bitwarden Anda. Klik tombol di bawah untuk konfirmasi." + }, + "myOrganization": { + "message": "Organisasi Saya" + }, + "deleteOrganization": { + "message": "Hapus Organisasi" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organisasi Dihapus" + }, + "organizationDeletedDesc": { + "message": "Organisasi dan semua data terkait telah dihapus." + }, + "organizationUpdated": { + "message": "Organisasi diperbarui" + }, + "taxInformation": { + "message": "Informasi pajak" + }, + "taxInformationDesc": { + "message": "Untuk pelanggan di AS, kode pos diperlukan untuk memenuhi persyaratan pajak penjualan, untuk negara lain Anda dapat memberikan nomor identifikasi pajak (PPN / GST) dan / atau alamat secara opsional yang akan muncul di faktur Anda." + }, + "billingPlan": { + "message": "Paket", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Ubah Paket", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Tingkatkan akun Anda ke paket lain dengan memberikan informasi di bawah ini. Harap pastikan bahwa Anda memiliki metode pembayaran aktif yang ditambahkan ke akun.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Faktur #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Lihat Faktur" + }, + "downloadInvoice": { + "message": "Mengunduh Faktur" + }, + "verifyBankAccount": { + "message": "Verifikasi Rekening Bank" + }, + "verifyBankAccountDesc": { + "message": "Kami telah melakukan dua setoran mikro ke rekening bank Anda (mungkin perlu 1-2 hari kerja untuk muncul). Masukkan jumlah ini untuk memverifikasi rekening bank." + }, + "verifyBankAccountInitialDesc": { + "message": "Pembayaran dengan rekening bank hanya tersedia untuk pelanggan di Amerika Serikat. Anda akan diminta untuk memverifikasi rekening bank Anda. Kami akan melakukan dua setoran mikro dalam 1-2 hari kerja ke depan. Masukkan jumlah ini di halaman penagihan organisasi untuk memverifikasi rekening bank." + }, + "verifyBankAccountFailureWarning": { + "message": "Kegagalan untuk memverifikasi rekening bank akan mengakibatkan pembayaran yang terlewat dan langganan Anda dinonaktifkan." + }, + "verifiedBankAccount": { + "message": "Rekening bank telah diverifikasi." + }, + "bankAccount": { + "message": "Akun bank" + }, + "amountX": { + "message": "Jumlah $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Nomor Perutean", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Nomor akun" + }, + "accountHolderName": { + "message": "Nama pemilik akun" + }, + "bankAccountType": { + "message": "Jenis akun" + }, + "bankAccountTypeCompany": { + "message": "Perusahaan (Bisnis)" + }, + "bankAccountTypeIndividual": { + "message": "Individu (Personal)" + }, + "enterInstallationId": { + "message": "Masukkan id instalasi Anda" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Tambahkan Kursi", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Hapus Kursi", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Langganan Anda memungkinkan total $COUNT$ pengguna.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Batasi Langganan (Opsional)" + }, + "subscriptionSeats": { + "message": "Kouta Langganan" + }, + "subscriptionUpdated": { + "message": "Langganan diperbarui" + }, + "additionalOptions": { + "message": "Opsi Tambahan" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Anda tidak dapat mengundang lebih dari $COUNT$ user tanpa mengupgrade langganan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Kursi Untuk Ditambahkan" + }, + "seatsToRemove": { + "message": "Kursi Untuk Dihapus" + }, + "seatsAddNote": { + "message": "Menambahkan kursi pengguna akan menghasilkan penyesuaian pada total penagihan Anda dan segera menagih metode pembayaran Anda yang tercatat. Tagihan pertama akan diprorata untuk sisa siklus penagihan saat ini." + }, + "seatsRemoveNote": { + "message": "Menghapus kursi pengguna akan mengakibatkan penyesuaian pada total penagihan Anda yang akan dihitung secara prorata sebagai kredit untuk tagihan penagihan Anda berikutnya." + }, + "adjustedSeats": { + "message": "Menyesuaikan kursi pengguna $AMOUNT$.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Kunci Diperbarui" + }, + "updateKeyTitle": { + "message": "Perbarui Kunci" + }, + "updateEncryptionKey": { + "message": "Perbarui Kunci Enkripsi" + }, + "updateEncryptionKeyShortDesc": { + "message": "Anda saat ini menggunakan skema enkripsi yang sudah ketinggalan zaman." + }, + "updateEncryptionKeyDesc": { + "message": "Kami telah pindah ke kunci enkripsi yang lebih besar yang memberikan keamanan lebih baik dan akses ke fitur yang lebih baru. Memperbarui kunci enkripsi Anda dengan cepat dan mudah. Cukup ketikkan kata sandi utama Anda di bawah ini. Pembaruan ini pada akhirnya akan menjadi wajib." + }, + "updateEncryptionKeyWarning": { + "message": "Setelah memperbarui kunci enkripsi Anda, Anda diminta untuk keluar dan masuk kembali ke semua aplikasi Bitwarden yang saat ini Anda gunakan (seperti aplikasi seluler atau ekstensi browser). Kegagalan untuk keluar dan masuk kembali (yang mengunduh kunci enkripsi baru Anda) dapat menyebabkan kerusakan data. Kami akan mencoba mengeluarkan Anda secara otomatis, namun, hal itu mungkin tertunda." + }, + "updateEncryptionKeyExportWarning": { + "message": "Ekspor terenkripsi apa pun yang telah Anda simpan juga akan menjadi tidak valid." + }, + "subscription": { + "message": "Langganan" + }, + "loading": { + "message": "Memuat" + }, + "upgrade": { + "message": "Meningkatkan" + }, + "upgradeOrganization": { + "message": "Tingkatkan Organisasi" + }, + "upgradeOrganizationDesc": { + "message": "Fitur ini tidak tersedia untuk organisasi gratis. Beralih ke paket berbayar untuk membuka lebih banyak fitur." + }, + "createOrganizationStep1": { + "message": "Buat Organisasi: Langkah 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Sebelum membuat organisasi Anda, Anda harus terlebih dahulu membuat akun pribadi gratis." + }, + "refunded": { + "message": "Dikembalikan" + }, + "nothingSelected": { + "message": "Anda belum memilih apa pun." + }, + "acceptPolicies": { + "message": "Dengan mencentang kotak ini, anda menyetujui yang berikut:" + }, + "acceptPoliciesError": { + "message": "Persyaratan Layanan dan Kebijakan Privasi belum diakui." + }, + "termsOfService": { + "message": "Persyaratan Layanan" + }, + "privacyPolicy": { + "message": "Kebijakan Privasi" + }, + "filters": { + "message": "Filter" + }, + "vaultTimeout": { + "message": "Batas Waktu Brankas" + }, + "vaultTimeoutDesc": { + "message": "Pilih kapan vault Anda akan habis waktu dan melakukan tindakan yang dipilih." + }, + "oneMinute": { + "message": "1 menit" + }, + "fiveMinutes": { + "message": "5 menit" + }, + "fifteenMinutes": { + "message": "15 menit" + }, + "thirtyMinutes": { + "message": "30 menit" + }, + "oneHour": { + "message": "1 jam" + }, + "fourHours": { + "message": "4 jam" + }, + "onRefresh": { + "message": "Di Segarkan Browser" + }, + "dateUpdated": { + "message": "Di perbarui", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Kata Sandi Diperbarui", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organisasi dinonaktifkan." + }, + "licenseIsExpired": { + "message": "Lisensi sudah kadaluarsa." + }, + "updatedUsers": { + "message": "Pengguna yang diperbarui" + }, + "selected": { + "message": "Terpilih" + }, + "ownership": { + "message": "Kepemilikan" + }, + "whoOwnsThisItem": { + "message": "Siapa pemilik item ini?" + }, + "strong": { + "message": "Kuat", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Baik", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Lemah", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Sangat Lemah", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Kata Sandi Utama Lemah" + }, + "weakMasterPasswordDesc": { + "message": "Kata sandi utama yang Anda pilih lemah. Anda harus menggunakan kata sandi utama yang kuat (atau frasa sandi) untuk melindungi akun Bitwarden Anda dengan benar. Apakah Anda yakin ingin menggunakan kata sandi utama ini?" + }, + "rotateAccountEncKey": { + "message": "Juga rotasikan kunci enkripsi akun saya" + }, + "rotateEncKeyTitle": { + "message": "Putar Kunci Enkripsi" + }, + "rotateEncKeyConfirmation": { + "message": "Anda yakin ingin merotasi kunci enkripsi akun Anda?" + }, + "attachmentsNeedFix": { + "message": "Item ini memiliki lampiran file lama yang perlu diperbaiki." + }, + "attachmentFixDesc": { + "message": "Ini adalah lampiran file lama yang perlu diperbaiki. Klik untuk mempelajari lebih lanjut." + }, + "fix": { + "message": "Perbaiki", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Ada lampiran file lama di lemari besi Anda yang perlu diperbaiki sebelum Anda dapat merotasi kunci enkripsi akun Anda." + }, + "yourAccountsFingerprint": { + "message": "Frase sidik jari akun Anda", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Untuk memastikan integritas kunci enkripsi Anda, harap verifikasi frasa sidik jari pengguna sebelum melanjutkan.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Jangan tanya untuk memverifikasi frase sidik jari lagi", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Gratis", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "Kunci API" + }, + "apiKeyDesc": { + "message": "Kunci API Anda dapat digunakan untuk mengautentikasi ke API publik Bitwarden." + }, + "apiKeyRotateDesc": { + "message": "Memutar kunci API akan membuat kunci sebelumnya tidak valid. Anda dapat merotasi kunci API Anda jika Anda yakin bahwa kunci saat ini tidak lagi aman untuk digunakan." + }, + "apiKeyWarning": { + "message": "Kunci API Anda memiliki akses penuh ke organisasi. Itu harus dirahasiakan." + }, + "userApiKeyDesc": { + "message": "Kunci API Anda dapat digunakan untuk mengautentikasi di Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Kunci API Anda adalah mekanisme otentikasi alternatif. Itu harus dirahasiakan." + }, + "oauth2ClientCredentials": { + "message": "Kredensial Klien OAuth 2.0", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Lihat Kunci API" + }, + "rotateApiKey": { + "message": "Rotasi Kunci API" + }, + "selectOneCollection": { + "message": "Anda harus memilih setidaknya satu koleksi." + }, + "couldNotChargeCardPayInvoice": { + "message": "Kami tidak dapat menagih kartu Anda. Harap lihat dan bayar faktur yang belum dibayar yang tercantum di bawah." + }, + "inAppPurchase": { + "message": "Pembelian dalam Aplikasi" + }, + "cannotPerformInAppPurchase": { + "message": "Anda tidak dapat melakukan tindakan ini saat menggunakan metode pembayaran pembelian dalam aplikasi." + }, + "manageSubscriptionFromStore": { + "message": "Anda harus mengelola langganan Anda dari toko tempat pembelian dalam aplikasi Anda dilakukan." + }, + "minLength": { + "message": "Panjang Minimum" + }, + "clone": { + "message": "Klon" + }, + "masterPassPolicyDesc": { + "message": "Tetapkan persyaratan minimum untuk kekuatan kata sandi utama." + }, + "twoStepLoginPolicyDesc": { + "message": "Mewajibkan pengguna untuk mengatur login dua langkah di akun pribadi mereka." + }, + "twoStepLoginPolicyWarning": { + "message": "Anggota organisasi yang tidak mengaktifkan login dua langkah untuk akun pribadinya akan dihapus dari organisasi dan akan menerima email yang memberi tahu mereka tentang perubahan tersebut." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Anda adalah anggota organisasi yang memerlukan login dua langkah untuk diaktifkan di akun pengguna Anda. Jika Anda menonaktifkan semua penyedia proses masuk dua langkah, Anda akan secara otomatis dihapus dari organisasi ini." + }, + "passwordGeneratorPolicyDesc": { + "message": "Tetapkan persyaratan minimum untuk konfigurasi pembuat kata sandi." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Satu atau beberapa kebijakan organisasi memengaruhi pengaturan generator Anda." + }, + "masterPasswordPolicyInEffect": { + "message": "Satu atau lebih kebijakan organisasi memerlukan kata sandi utama Anda untuk memenuhi persyaratan berikut:" + }, + "policyInEffectMinComplexity": { + "message": "Skor kompleksitas minimum $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Panjang minimum $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Berisi satu atau lebih karakter huruf besar" + }, + "policyInEffectLowercase": { + "message": "Berisi satu atau lebih karakter huruf kecil" + }, + "policyInEffectNumbers": { + "message": "Berisi satu atau lebih angka" + }, + "policyInEffectSpecial": { + "message": "Berisi satu atau lebih karakter khusus berikut $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Kata sandi utama Anda yang baru tidak memenuhi persyaratan kebijakan." + }, + "minimumNumberOfWords": { + "message": "Jumlah Kata Minimum" + }, + "defaultType": { + "message": "Jenis Default" + }, + "userPreference": { + "message": "Preferensi Pengguna" + }, + "vaultTimeoutAction": { + "message": "Tindakan Batas Waktu Vault" + }, + "vaultTimeoutActionLockDesc": { + "message": "Kubah yang terkunci mengharuskan Anda memasukkan kembali kata sandi utama Anda untuk mengaksesnya lagi." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Vault keluar mengharuskan Anda mengautentikasi ulang untuk mengaksesnya lagi." + }, + "lock": { + "message": "Mengunci", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Sampah", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Cari Sampah" + }, + "permanentlyDelete": { + "message": "Hapus Secara Permanen" + }, + "permanentlyDeleteSelected": { + "message": "Hapus yang Dipilih Secara Permanen" + }, + "permanentlyDeleteItem": { + "message": "Hapus Item Secara Permanen" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Apakah Anda yakin ingin menghapus item ini secara permanen?" + }, + "permanentlyDeletedItem": { + "message": "Item yang Dihapus Secara Permanen" + }, + "permanentlyDeletedItems": { + "message": "Item yang Dihapus Secara Permanen" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Anda telah memilih $COUNT$ item untuk dihapus secara permanen. Anda yakin ingin menghapus semua item ini secara permanen?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Item yang dihapus secara permanen $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Mengembalikan" + }, + "restoreSelected": { + "message": "Pulihkan yang Dipilih" + }, + "restoreItem": { + "message": "Pulihkan Item" + }, + "restoredItem": { + "message": "Item yang Dipulihkan" + }, + "restoredItems": { + "message": "Item yang Dipulihkan" + }, + "restoreItemConfirmation": { + "message": "Apakah Anda yakin ingin memulihkan item ini?" + }, + "restoreItems": { + "message": "Pulihkan Item" + }, + "restoreSelectedItemsDesc": { + "message": "Anda telah memilih $COUNT$ item untuk dipulihkan. Anda yakin ingin memulihkan semua item ini?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Item yang dipulihkan $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Keluar akan menghapus semua akses ke lemari besi Anda dan memerlukan otentikasi online setelah periode batas waktu. Anda yakin ingin menggunakan pengaturan ini?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Konfirmasi Tindakan Timeout" + }, + "hidePasswords": { + "message": "Sembunyikan Kata Sandi" + }, + "countryPostalCodeRequiredDesc": { + "message": "Kami memerlukan informasi ini untuk menghitung pajak penjualan dan pelaporan keuangan saja." + }, + "includeVAT": { + "message": "Sertakan Informasi VAT / GST (opsional)" + }, + "taxIdNumber": { + "message": "Nomor Pajak VAT / GST" + }, + "taxInfoUpdated": { + "message": "Informasi pajak diperbarui." + }, + "setMasterPassword": { + "message": "Atur Kata Sandi Utama" + }, + "ssoCompleteRegistration": { + "message": "Untuk menyelesaikan masuk dengan SSO, harap setel kata sandi utama untuk mengakses dan melindungi brankas Anda." + }, + "identifier": { + "message": "Pengenal" + }, + "organizationIdentifier": { + "message": "Pengenal Organisasi" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Masuk menggunakan portal sistem masuk tunggal organisasi Anda. Harap masukkan pengenal organisasi Anda untuk memulai." + }, + "enterpriseSingleSignOn": { + "message": "Sistem Masuk Tunggal Perusahaan" + }, + "ssoHandOff": { + "message": "Sekarang anda dapat menutup tab ini dan melanjutkan ekstensi." + }, + "includeAllTeamsFeatures": { + "message": "Semua fitur Teams, plus:" + }, + "includeSsoAuthentication": { + "message": "Autentikasi SSO melalui SAML2.0 dan OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Kebijakan Perusahaan" + }, + "ssoValidationFailed": { + "message": "Validasi SSO Gagal" + }, + "ssoIdentifierRequired": { + "message": "Pengenal Organisasi wajib diisi." + }, + "unlinkSso": { + "message": "Batalkan tautan SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Tautkan SSO" + }, + "singleOrg": { + "message": "Organisasi Tunggal" + }, + "singleOrgDesc": { + "message": "Batasi pengguna untuk dapat bergabung dengan organisasi lain." + }, + "singleOrgBlockCreateMessage": { + "message": "Organisasi Anda saat ini memiliki kebijakan yang tidak mengizinkan Anda untuk bergabung dengan lebih dari satu organisasi. Silakan hubungi admin organisasi Anda atau daftar dari akun Bitwarden yang berbeda." + }, + "singleOrgPolicyWarning": { + "message": "Anggota organisasi yang bukan Pemilik atau Administrator dan sudah menjadi anggota organisasi lain akan dihapus dari organisasi Anda." + }, + "requireSso": { + "message": "Autentikasi Sistem Masuk Tunggal" + }, + "requireSsoPolicyDesc": { + "message": "Wajibkan pengguna untuk masuk dengan metode Sistem Masuk Tunggal Perusahaan." + }, + "prerequisite": { + "message": "Prasyarat" + }, + "requireSsoPolicyReq": { + "message": "Kebijakan perusahaan Organisasi Tunggal harus diaktifkan sebelum mengaktifkan kebijakan ini." + }, + "requireSsoPolicyReqError": { + "message": "Kebijakan Organisasi Tunggal tidak diaktifkan." + }, + "requireSsoExemption": { + "message": "Pemilik dan Administrator Organisasi dibebaskan dari penegakan kebijakan ini." + }, + "sendTypeFile": { + "message": "Berkas" + }, + "sendTypeText": { + "message": "Teks" + }, + "createSend": { + "message": "Buat Pengiriman Baru", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edit Kirim", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Dibuat Kirim", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Pengiriman diedit", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Kirim Dihapus", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Hapus Kirim", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Anda yakin ingin menghapus Kirim ini?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Jenis Pengiriman apakah ini?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Tanggal Penghapusan" + }, + "deletionDateDesc": { + "message": "Pengiriman akan dihapus secara permanen pada tanggal dan waktu yang ditentukan.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Tanggal habis tempo" + }, + "expirationDateDesc": { + "message": "Jika disetel, akses ke Pengiriman ini akan berakhir pada tanggal dan waktu yang ditentukan.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Hitungan Akses Maksimum" + }, + "maxAccessCountDesc": { + "message": "Jika disetel, pengguna tidak dapat lagi mengakses pengiriman ini setelah jumlah akses maksimum tercapai.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Hitungan Akses Saat Ini" + }, + "sendPasswordDesc": { + "message": "Secara opsional, minta kata sandi bagi pengguna untuk mengakses Kirim ini.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Catatan pribadi tentang Send ini.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Dinonaktifkan" + }, + "sendLink": { + "message": "Kirim Tautan", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Salin Kirim Tautan", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Hapus Kata Sandi" + }, + "removedPassword": { + "message": "Kata Sandi yang Dihapus" + }, + "removePasswordConfirmation": { + "message": "Anda yakin ingin menghapus kata sandi?" + }, + "hideEmail": { + "message": "Sembunyikan alamat email dari penerima." + }, + "disableThisSend": { + "message": "Nonaktifkan Pengiriman ini sehingga tidak ada yang dapat mengaksesnya.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Semua Dikirim" + }, + "maxAccessCountReached": { + "message": "Jumlah akses maksimum tercapai", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Penghapusan menunggu keputusan" + }, + "expired": { + "message": "Kedaluwarsa" + }, + "searchSends": { + "message": "Pencarian Mengirim", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Pengiriman ini dilindungi dengan kata sandi. Silakan ketikkan kata sandi di bawah ini untuk melanjutkan.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Tidak tahu kata sandinya? Minta sandi yang dibutuhkan Pengirim untuk mengakses Kirim ini.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Pengiriman ini disembunyikan secara default. Anda dapat mengubah visibilitasnya menggunakan tombol di bawah ini.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Unduh berkas" + }, + "sendAccessUnavailable": { + "message": "Pengiriman yang Anda coba akses tidak ada atau tidak lagi tersedia.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "File yang terkait dengan kirim ini tidak dapat ditemukan.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Tidak ada Kiriman ke daftar.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Akses Darurat" + }, + "emergencyAccessDesc": { + "message": "Berikan dan kelola akses darurat untuk kontak tepercaya. Kontak tepercaya dapat meminta akses ke Lihat atau Ambil alih akun Anda jika terjadi keadaan darurat. Kunjungi halaman bantuan kami untuk informasi lebih lanjut dan detail tentang cara kerja zero knowledge sharing." + }, + "emergencyAccessOwnerWarning": { + "message": "Anda adalah pemilik satu atau lebih organisasi. Jika Anda memberikan pengambilalihan akses ke kontak darurat, mereka akan dapat menggunakan semua izin Anda sebagai pemilik setelah pengambilalihan." + }, + "trustedEmergencyContacts": { + "message": "Kontak darurat tepercaya" + }, + "noTrustedContacts": { + "message": "Anda belum menambahkan kontak darurat apa pun, undang kontak tepercaya untuk memulai." + }, + "addEmergencyContact": { + "message": "Tambahkan kontak darurat" + }, + "designatedEmergencyContacts": { + "message": "Ditunjuk sebagai kontak darurat" + }, + "noGrantedAccess": { + "message": "Anda belum ditunjuk sebagai kontak darurat untuk siapa pun." + }, + "inviteEmergencyContact": { + "message": "Undang kontak darurat" + }, + "editEmergencyContact": { + "message": "Edit kontak darurat" + }, + "inviteEmergencyContactDesc": { + "message": "Undang kontak darurat baru dengan memasukkan alamat email akun Bitwarden mereka di bawah ini. Jika mereka belum memiliki akun Bitwarden, mereka akan diminta untuk membuat akun baru." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Akses Darurat Dimulai" + }, + "emergencyAccessRecoveryApproved": { + "message": "Akses Darurat Disetujui" + }, + "viewDesc": { + "message": "Dapat melihat semua item di lemari besi Anda sendiri." + }, + "takeover": { + "message": "Pengambilalihan" + }, + "takeoverDesc": { + "message": "Dapat mengatur ulang akun Anda dengan kata sandi utama baru." + }, + "waitTime": { + "message": "Waktu Tunggu" + }, + "waitTimeDesc": { + "message": "Waktu yang diperlukan sebelum memberikan akses secara otomatis." + }, + "oneDay": { + "message": "1 hari" + }, + "days": { + "message": "$DAYS$ hari", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Pengguna yang diundang." + }, + "acceptEmergencyAccess": { + "message": "Anda telah diundang menjadi kontak darurat untuk pengguna yang tercantum di atas. Untuk menerima undangan, Anda harus masuk atau membuat akun Bitwarden baru." + }, + "emergencyInviteAcceptFailed": { + "message": "Tidak dapat menerima undangan. Minta pengguna untuk mengirim undangan baru." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Tidak dapat menerima undangan. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Anda dapat mengakses opsi darurat untuk pengguna ini setelah identitas Anda dikonfirmasi. Kami akan mengirimi Anda email jika itu terjadi." + }, + "requestAccess": { + "message": "Minta Akses" + }, + "requestAccessConfirmation": { + "message": "Anda yakin ingin meminta akses darurat? Anda akan diberi akses setelah $WAITTIME$ hari atau setiap kali pengguna menyetujui permintaan secara manual.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Akses darurat diminta sebesar $USER$. Kami akan memberi tahu Anda melalui email jika memungkinkan untuk melanjutkan.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Menyetujui" + }, + "reject": { + "message": "Menolak" + }, + "approveAccessConfirmation": { + "message": "Yakin ingin menyetujui akses darurat? Ini akan memungkinkan $USER$ menjadi $ACTION$ akun Anda.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Akses darurat disetujui." + }, + "emergencyRejected": { + "message": "Akses darurat ditolak" + }, + "passwordResetFor": { + "message": "Setel ulang sandi untuk $USER$. Sekarang Anda dapat masuk menggunakan kata sandi baru.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Kepemilikan Pribadi" + }, + "personalOwnershipPolicyDesc": { + "message": "Wajibkan pengguna untuk menyimpan item vault ke organisasi dengan menghapus opsi kepemilikan pribadi." + }, + "personalOwnershipExemption": { + "message": "Pemilik dan Administrator Organisasi dibebaskan dari penegakan kebijakan ini." + }, + "personalOwnershipSubmitError": { + "message": "Karena Kebijakan Perusahaan, Anda dilarang menyimpan item ke lemari besi pribadi Anda. Ubah opsi Kepemilikan ke organisasi dan pilih dari Koleksi yang tersedia." + }, + "disableSend": { + "message": "Nonaktifkan Kirim" + }, + "disableSendPolicyDesc": { + "message": "Jangan izinkan pengguna membuat atau mengedit Kirim Bitwarden. Menghapus kirim yang ada masih diperbolehkan.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Pengguna organisasi yang dapat mengelola kebijakan organisasi dibebaskan dari penegakan kebijakan ini." + }, + "sendDisabled": { + "message": "Kirim Dinonaktifkan", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Karena kebijakan perusahaan, Anda hanya dapat menghapus kirim yang sudah ada.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Pilihan Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Atur konfigurasi untuk membuat dan mengubah Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Ketentuan ini tidak diberlakukan untuk anggota organisasi yang bisa mengatur ketentuan organisasi." + }, + "disableHideEmail": { + "message": "Pengguna tidak boleh menyembunyikan alamat email dari penerima ketika membuat atau mengubah Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Ketentuan organization berikut ini sedang berlaku:" + }, + "sendDisableHideEmailInEffect": { + "message": "Pengguna tidak boleh menyembunyikan alamat email dari penerima ketika membuat atau mengubah Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Kebijakan yang diubah $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Harga paket" + }, + "estimatedTax": { + "message": "Cukai taksiran" + }, + "custom": { + "message": "Adat" + }, + "customDesc": { + "message": "Memungkinkan kontrol yang lebih terperinci atas izin pengguna untuk konfigurasi lanjutan." + }, + "permissions": { + "message": "Izin" + }, + "accessEventLogs": { + "message": "Akses Log Peristiwa" + }, + "accessImportExport": { + "message": "Akses Impor / Ekspor" + }, + "accessReports": { + "message": "Akses Laporan" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Kelola Semua Koleksi" + }, + "createNewCollections": { + "message": "Buat Koleksi Baru" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Hapus Koleksi" + }, + "manageAssignedCollections": { + "message": "Kelola Koleksi yang Ditugaskan" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Kelola Grup" + }, + "managePolicies": { + "message": "Kelola Kebijakan" + }, + "manageSso": { + "message": "Kelola SSO" + }, + "manageUsers": { + "message": "Kelola Pengguna" + }, + "manageResetPassword": { + "message": "Kelola Peyetelan Ulang Sandi" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Kebijakan organisasi memengaruhi opsi kepemilikan Anda." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Nonaktifkan kepemilikan pribadi untuk pengguna organisasi" + }, + "textHiddenByDefault": { + "message": "Saat mengakses Send, sembunyikan teks secara default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Nama yang ramah untuk menggambarkan kirim ini.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Teks yang ingin Anda kirim." + }, + "sendFileDesc": { + "message": "File yang ingin Anda kirim." + }, + "copySendLinkOnSave": { + "message": "Salin tautan untuk membagikan kirim ini ke clipboard saya saat menyimpan." + }, + "sendLinkLabel": { + "message": "Kirim tautan", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Kirim", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden mengirim mentransmisikan informasi sementara yang sensitif kepada orang lain dengan mudah dan aman.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Belajar lebih tentang", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Bagikan teks atau file secara langsung dengan siapa pun." + }, + "sendVaultCardLearnMore": { + "message": "Belajarlah lagi", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "lihat", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "bagaimana itu bekerja", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "atau", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "coba sekarang", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "atau", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "daftar", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "untuk mencobanya hari ini.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Pengguna Bitwarden $USER_IDENTIFIER$ berbagi yang berikut dengan Anda", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Pengguna Bitwarden yang membuat Send ini memilih untuk menyembunyikan alamat emailnya. Kamu harus yakin bahwa kamu mempercayai sumber dari link it sebelum mengunduh isinya.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Tanggal kedaluwarsa yang disediakan tidak valid." + }, + "deletionDateIsInvalid": { + "message": "Tanggal penghapusan yang disediakan tidak valid." + }, + "expirationDateAndTimeRequired": { + "message": "Diperlukan tanggal dan waktu kedaluwarsa." + }, + "deletionDateAndTimeRequired": { + "message": "Diperlukan tanggal dan waktu penghapusan." + }, + "dateParsingError": { + "message": "Ada kesalahan menyimpan penghapusan dan tanggal kedaluwarsa Anda." + }, + "webAuthnFallbackMsg": { + "message": "Untuk mengverifikasi dua-langkat autentikasi anda, silahkan click tombol dibawah." + }, + "webAuthnAuthenticate": { + "message": "Autentikasi dengan WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn tidak didukung oleh browser ini." + }, + "webAuthnSuccess": { + "message": "WebAuthn sudah diverifikasi dengan sukses. Anda dapat menutup tab ini." + }, + "hintEqualsPassword": { + "message": "Petunjuk kata sandi Anda tidak boleh sama dengan kata sandi Anda." + }, + "enrollPasswordReset": { + "message": "Ikut dalam pengubahan kata sandi" + }, + "enrolledPasswordReset": { + "message": "Anda telah ikut dalam pengubahan kata sandi" + }, + "withdrawPasswordReset": { + "message": "Keluar dari pengubahan kata sandi" + }, + "enrollPasswordResetSuccess": { + "message": "Sukses!" + }, + "withdrawPasswordResetSuccess": { + "message": "Penarikan sukses!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ sukses ikut dalam pengubahan kata sandi.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ keluar dalam pengubahan kata sandi.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Kata sandi utama sudah diubah untuk pengguna $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Setel ulang tautan Sso untuk user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Atur Ulang Kata Sandi" + }, + "resetPasswordLoggedOutWarning": { + "message": "Melanjutkan akan mengeluarkan Anda dari sesi saat ini, mengharuskan Anda untuk masuk kembali. Sesi aktif di perangkat lain dapat terus aktif hingga satu jam.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "pengguna ini" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Satu atau lebih kebijakan organisasi memerlukan kata sandi utama Anda untuk memenuhi persyaratan berikut:" + }, + "resetPasswordSuccess": { + "message": "Ubah kata kunci berhasil!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Dengan mengikuti fitur ini mengijinkan admin organisasi untuk merubah kata sandi utama anda. Anda yakin mau masuk fitur ini?" + }, + "resetPasswordPolicy": { + "message": "Pengubahan Kata Sandi Utama" + }, + "resetPasswordPolicyDescription": { + "message": "Mengijinkan admin dalam organisasi untuk mengubah kata sandi utama anda." + }, + "resetPasswordPolicyWarning": { + "message": "Pengguna dalam organisasi perlu untuk memilih untuk mengikuti atau diikutkan secara otomatis sebelum admin dapat merubah kata sandi utama." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Diikutkan secara otomatis" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Semua pengguna akan diikutan dalam fitur ubah kata sandi setelah undangan mereka diterima." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Pengguna yang sudah berada di dalam organisasi tidak akan diikutkan secara otomatis ke dalam fitur ubah kata sandi ini. Mereka perlu untuk mengikuti secara manual sebelum admin dapat merubah kata sandi mereka." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Ikutkan pengguna baru secara otomatis" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Pengingat ulang sandi utama" + }, + "passwordConfirmation": { + "message": "Konfirmasi sandi utama" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Kirim Ulang Undangan" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Tema" + }, + "themeDesc": { + "message": "Pilih tema untuk brankas web anda." + }, + "themeSystem": { + "message": "Gunakan Tema Sistem" + }, + "themeDark": { + "message": "Gelap" + }, + "themeLight": { + "message": "Terang" + }, + "confirmSelected": { + "message": "Konfirmasi Pilihan" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Berhasil dikonfirmasi." + }, + "bulkReinviteMessage": { + "message": "Berhasil mengundang kembali." + }, + "bulkRemovedMessage": { + "message": "Penghapusan sukses" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Sidik Jari" + }, + "removeUsers": { + "message": "Hapus pengguna" + }, + "error": { + "message": "Galat" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Pengaturan Provider" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Nama Provider" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Klien" + }, + "providerAdmin": { + "message": "Admin Provider" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Layanan Pengguna" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Gabung Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "Organisasi Klien Baru" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Tambah Organisasi yang sudah ada" + }, + "myProvider": { + "message": "Provider Saya" + }, + "addOrganizationConfirmation": { + "message": "Anda yakin ingin menambahkan $ORGANIZATION$ sebagai klien $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider dinonaktifkan." + }, + "providerUpdated": { + "message": "Provider diperbarui" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Tambah" + }, + "updatedMasterPassword": { + "message": "Kata Sandi Telah Diperbarui" + }, + "updateMasterPassword": { + "message": "Perbarui Kata Sandi Utama" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Batas Waktu Brankas" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Batas waktu Maksimal Brankas" + }, + "invalidMaximumVaultTimeout": { + "message": "Batas waktu Maksimal Brankas tidak valid." + }, + "hours": { + "message": "Jam" + }, + "minutes": { + "message": "Menit" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Ekspor Brankas Dinonaktifkan" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Pilih Tipe SSO" + }, + "type": { + "message": "Tipe" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Otoritas" + }, + "clientId": { + "message": "ID Klien" + }, + "clientSecret": { + "message": "Rahasia Klien" + }, + "metadataAddress": { + "message": "Alamat Metadata" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "ID Entitas SP" + }, + "spMetadataUrl": { + "message": "Metadata URL SAML 2.0" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "ID Entitas" + }, + "idpBindingType": { + "message": "Tipe Binding" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "Sertifikat Publik X509" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Terkirim" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Kirim Kode" + }, + "codeSent": { + "message": "Kode Terkirim" + }, + "verificationCode": { + "message": "Kode Verifikasi" + }, + "confirmIdentity": { + "message": "Konfirmasi identitas Anda untuk melanjutkan." + }, + "verificationCodeRequired": { + "message": "Kode verifikasi diperlukan." + }, + "invalidVerificationCode": { + "message": "Kode verifikasi tidak valid" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Tinggalkan Organisasi" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Izinkan autentikasi SSO" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Aktifkan", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "kebijakan Otentikasi SSO", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "untuk mewajibkan semua anggota masuk dengan SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Aktifkan SSO" + }, + "disabledSso": { + "message": "Matikan SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ diperlukan.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "diperlukan" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Kustomisasi Opsional" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/it/messages.json b/apps/web/src/locales/it/messages.json new file mode 100644 index 0000000000..61ea046c76 --- /dev/null +++ b/apps/web/src/locales/it/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "Cassaforte web di $APP_NAME$", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Di quale elemento si tratta?" + }, + "name": { + "message": "Nome" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Nuovo URI" + }, + "username": { + "message": "Nome utente" + }, + "password": { + "message": "Password" + }, + "newPassword": { + "message": "Nuova password" + }, + "passphrase": { + "message": "Frase segreta" + }, + "notes": { + "message": "Note" + }, + "customFields": { + "message": "Campi personalizzati" + }, + "cardholderName": { + "message": "Titolare della carta" + }, + "number": { + "message": "Numero" + }, + "brand": { + "message": "Marca" + }, + "expiration": { + "message": "Scadenza" + }, + "securityCode": { + "message": "Codice di sicurezza (CVV)" + }, + "identityName": { + "message": "Nome dell'identità" + }, + "company": { + "message": "Azienda" + }, + "ssn": { + "message": "Codice fiscale/Previdenza sociale" + }, + "passportNumber": { + "message": "Numero del passaporto" + }, + "licenseNumber": { + "message": "Numero della patente" + }, + "email": { + "message": "Email" + }, + "phone": { + "message": "Telefono" + }, + "january": { + "message": "Gennaio" + }, + "february": { + "message": "Febbraio" + }, + "march": { + "message": "Marzo" + }, + "april": { + "message": "Aprile" + }, + "may": { + "message": "Maggio" + }, + "june": { + "message": "Giugno" + }, + "july": { + "message": "Luglio" + }, + "august": { + "message": "Agosto" + }, + "september": { + "message": "Settembre" + }, + "october": { + "message": "Ottobre" + }, + "november": { + "message": "Novembre" + }, + "december": { + "message": "Dicembre" + }, + "title": { + "message": "Titolo" + }, + "mr": { + "message": "Sig" + }, + "mrs": { + "message": "Sig.ra" + }, + "ms": { + "message": "Sig.na" + }, + "dr": { + "message": "Dott." + }, + "expirationMonth": { + "message": "Mese di scadenza" + }, + "expirationYear": { + "message": "Anno di scadenza" + }, + "authenticatorKeyTotp": { + "message": "Chiave di autenticazione (TOTP)" + }, + "folder": { + "message": "Cartella" + }, + "newCustomField": { + "message": "Nuovo campo personalizzato" + }, + "value": { + "message": "Valore" + }, + "dragToSort": { + "message": "Trascina per ordinare" + }, + "cfTypeText": { + "message": "Testo" + }, + "cfTypeHidden": { + "message": "Nascosto" + }, + "cfTypeBoolean": { + "message": "Booleano" + }, + "cfTypeLinked": { + "message": "Collegato", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Rimuovi" + }, + "unassigned": { + "message": "Non assegnato" + }, + "noneFolder": { + "message": "Nessuna cartella", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Aggiungi cartella" + }, + "editFolder": { + "message": "Modifica cartella" + }, + "baseDomain": { + "message": "Dominio di base", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Nome dominio", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Esatto" + }, + "startsWith": { + "message": "Inizia con" + }, + "regEx": { + "message": "Espressione regolare", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Rilevamento di corrispondenza", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Rilevamento di corrispondenza predefinito", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Mai" + }, + "toggleVisibility": { + "message": "Mostra/nascondi" + }, + "toggleCollapse": { + "message": "Comprimi/espandi", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Genera password" + }, + "checkPassword": { + "message": "Verifica se la password è stata esposta." + }, + "passwordExposed": { + "message": "Questa password è presente $VALUE$ volta/e in database di violazioni. Dovresti cambiarla.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Questa password non è stata trovata in database di violazioni noti. Dovrebbe essere sicura da usare." + }, + "save": { + "message": "Salva" + }, + "cancel": { + "message": "Annulla" + }, + "canceled": { + "message": "Annullato" + }, + "close": { + "message": "Chiudi" + }, + "delete": { + "message": "Elimina" + }, + "favorite": { + "message": "Preferito" + }, + "unfavorite": { + "message": "Rimuovi dai preferiti" + }, + "edit": { + "message": "Modifica" + }, + "searchCollection": { + "message": "Cerca nella raccolta" + }, + "searchFolder": { + "message": "Cerca nella cartella" + }, + "searchFavorites": { + "message": "Cerca tra i preferiti" + }, + "searchType": { + "message": "Cerca tipo", + "description": "Search item type" + }, + "searchVault": { + "message": "Cerca nella cassaforte" + }, + "allItems": { + "message": "Tutti gli elementi" + }, + "favorites": { + "message": "Preferiti" + }, + "types": { + "message": "Tipi" + }, + "typeLogin": { + "message": "Accesso" + }, + "typeCard": { + "message": "Carta" + }, + "typeIdentity": { + "message": "Identità" + }, + "typeSecureNote": { + "message": "Nota sicura" + }, + "typeLoginPlural": { + "message": "Login" + }, + "typeCardPlural": { + "message": "Carte" + }, + "typeIdentityPlural": { + "message": "Identità" + }, + "typeSecureNotePlural": { + "message": "Note sicure" + }, + "folders": { + "message": "Cartelle" + }, + "collections": { + "message": "Raccolte" + }, + "firstName": { + "message": "Nome" + }, + "middleName": { + "message": "Secondo nome" + }, + "lastName": { + "message": "Cognome" + }, + "fullName": { + "message": "Nome completo" + }, + "address1": { + "message": "Indirizzo 1" + }, + "address2": { + "message": "Indirizzo 2" + }, + "address3": { + "message": "Indirizzo 3" + }, + "cityTown": { + "message": "Città / Comune" + }, + "stateProvince": { + "message": "Stato / Provincia" + }, + "zipPostalCode": { + "message": "CAP" + }, + "country": { + "message": "Nazione" + }, + "shared": { + "message": "Condiviso" + }, + "attachments": { + "message": "Allegati" + }, + "select": { + "message": "Seleziona" + }, + "addItem": { + "message": "Aggiungi elemento" + }, + "editItem": { + "message": "Modifica elemento" + }, + "viewItem": { + "message": "Visualizza elemento" + }, + "ex": { + "message": "es.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Altro" + }, + "share": { + "message": "Condividi" + }, + "moveToOrganization": { + "message": "Sposta in organizzazione" + }, + "valueCopied": { + "message": "$VALUE$ copiata", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Copia valore", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Copia password", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Copia nome utente", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Copia numero", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copia codice di sicurezza", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Copia URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "La mia cassaforte" + }, + "vault": { + "message": "Cassaforte" + }, + "moveSelectedToOrg": { + "message": "Sposta selezionati in organizzazione" + }, + "deleteSelected": { + "message": "Elimina selezionati" + }, + "moveSelected": { + "message": "Sposta selezionati" + }, + "selectAll": { + "message": "Seleziona tutto" + }, + "unselectAll": { + "message": "Deseleziona tutto" + }, + "launch": { + "message": "Avvia" + }, + "newAttachment": { + "message": "Aggiungi nuovo allegato" + }, + "deletedAttachment": { + "message": "Allegato eliminato" + }, + "deleteAttachmentConfirmation": { + "message": "Sei sicuro di voler eliminare questo allegato?" + }, + "attachmentSaved": { + "message": "L'allegato è stato salvato." + }, + "file": { + "message": "File" + }, + "selectFile": { + "message": "Seleziona un file." + }, + "maxFileSize": { + "message": "La dimensione massima del file è di 500 MB." + }, + "updateKey": { + "message": "Non puoi utilizzare questa funzione finché non aggiorni la tua chiave di cifratura." + }, + "addedItem": { + "message": "Elemento aggiunto" + }, + "editedItem": { + "message": "Elemento modificato" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ spostato in $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Elementi selezionati spostati in $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Elimina elemento" + }, + "deleteFolder": { + "message": "Elimina cartella" + }, + "deleteAttachment": { + "message": "Elimina allegato" + }, + "deleteItemConfirmation": { + "message": "Sei sicuro di voler eliminare questo elemento?" + }, + "deletedItem": { + "message": "Elemento cestinato" + }, + "deletedItems": { + "message": "Elementi cestinati" + }, + "movedItems": { + "message": "Elementi spostati" + }, + "overwritePasswordConfirmation": { + "message": "Sei sicuro di voler sovrascrivere la password corrente?" + }, + "editedFolder": { + "message": "Cartella modificata" + }, + "addedFolder": { + "message": "Cartella aggiunta" + }, + "deleteFolderConfirmation": { + "message": "Sei sicuro di voler eliminare questa cartella?" + }, + "deletedFolder": { + "message": "Cartella eliminata" + }, + "loggedOut": { + "message": "Disconnesso" + }, + "loginExpired": { + "message": "La tua sessione è scaduta." + }, + "logOutConfirmation": { + "message": "Sei sicuro di volerti disconnettere?" + }, + "logOut": { + "message": "Disconnetti" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Sì" + }, + "no": { + "message": "No" + }, + "loginOrCreateNewAccount": { + "message": "Accedi o crea un nuovo account per accedere alla tua cassaforte." + }, + "createAccount": { + "message": "Crea account" + }, + "logIn": { + "message": "Accedi" + }, + "submit": { + "message": "Invia" + }, + "emailAddressDesc": { + "message": "Utilizzerai il tuo indirizzo email per accedere." + }, + "yourName": { + "message": "Il tuo nome" + }, + "yourNameDesc": { + "message": "Come dovremmo chiamarti?" + }, + "masterPass": { + "message": "Password principale" + }, + "masterPassDesc": { + "message": "La password principale è la password che utilizzi per accedere alla tua cassaforte. È molto importante che tu non la dimentichi. Non c'è modo di recuperare questa password nel caso che tu la dimenticassi." + }, + "masterPassHintDesc": { + "message": "Un suggerimento che può aiutarti a ricordare la tua password principale se la dimentichi." + }, + "reTypeMasterPass": { + "message": "Digita nuovamente la password principale" + }, + "masterPassHint": { + "message": "Suggerimento per la password principale (facoltativo)" + }, + "masterPassHintLabel": { + "message": "Suggerimento per la password principale" + }, + "settings": { + "message": "Impostazioni" + }, + "passwordHint": { + "message": "Suggerimento password" + }, + "enterEmailToGetHint": { + "message": "Inserisci l'indirizzo email del tuo account per ricevere il suggerimento della password principale." + }, + "getMasterPasswordHint": { + "message": "Ottieni il suggerimento per la password principale" + }, + "emailRequired": { + "message": "L'indirizzo email è obbligatorio." + }, + "invalidEmail": { + "message": "L'indirizzo email non è valido." + }, + "masterPassRequired": { + "message": "La password principale è obbligatoria." + }, + "masterPassLength": { + "message": "La password principale deve essere almeno di 8 caratteri." + }, + "masterPassDoesntMatch": { + "message": "La conferma della password principale non corrisponde." + }, + "newAccountCreated": { + "message": "Il tuo nuovo account è stato creato! Ora puoi accedere." + }, + "masterPassSent": { + "message": "Ti abbiamo inviato un'email con il tuo suggerimento per la password principale." + }, + "unexpectedError": { + "message": "Si è verificato un errore imprevisto." + }, + "emailAddress": { + "message": "Indirizzo email" + }, + "yourVaultIsLocked": { + "message": "La tua cassaforte è bloccata. Verifica la tua password principale per continuare." + }, + "unlock": { + "message": "Sblocca" + }, + "loggedInAsEmailOn": { + "message": "Accesso effettuato come $EMAIL$ su $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Password principale errata" + }, + "lockNow": { + "message": "Blocca" + }, + "noItemsInList": { + "message": "Non ci sono elementi da mostrare." + }, + "noCollectionsInList": { + "message": "Nessuna raccolta da visualizzare." + }, + "noGroupsInList": { + "message": "Non ci sono gruppi da elencare." + }, + "noUsersInList": { + "message": "Non ci sono utenti da elencare." + }, + "noEventsInList": { + "message": "Non ci sono eventi da elencare." + }, + "newOrganization": { + "message": "Nuova organizzazione" + }, + "noOrganizationsList": { + "message": "Non appartieni ad alcuna organizzazione. Le organizzazioni ti consentono di condividere oggetti in modo sicuro con altri utenti." + }, + "versionNumber": { + "message": "Versione $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Inserisci il codice di verifica a 6 cifre dalla tua applicazione di autenticazione." + }, + "enterVerificationCodeEmail": { + "message": "Inserisci il codice di verifica a 6 cifre che è stato inviato all'indirizzo $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "L'email di verifica è stata inviata all'indirizzo $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Ricordami" + }, + "sendVerificationCodeEmailAgain": { + "message": "Invia nuovamente codice di verifica email" + }, + "useAnotherTwoStepMethod": { + "message": "Usa un altro metodo di verifica in due passaggi" + }, + "insertYubiKey": { + "message": "Inserisci la tua YubiKey nella porta USB del computer, poi premi il suo pulsante." + }, + "insertU2f": { + "message": "Inserisci la tua chiave di sicurezza nella porta USB del tuo computer. Se dispone di un pulsante, premilo." + }, + "loginUnavailable": { + "message": "Accesso non disponibile" + }, + "noTwoStepProviders": { + "message": "La verifica in due passaggi è abilitata su questo account, ma nessuno dei metodi configurati è supportato da questo browser." + }, + "noTwoStepProviders2": { + "message": "Utilizza un browser supportato (come Chrome) e/o aggiungi altri metodi per la verifica in due passaggi che sono supportati meglio dai browser (come un'applicazione di autenticazione)." + }, + "twoStepOptions": { + "message": "Opzioni verifica in due passaggi" + }, + "recoveryCodeDesc": { + "message": "Hai perso l'accesso a tutti i tuoi metodi di verifica in due passaggi? Usa il tuo codice di recupero per disattivare tutti i metodi di verifica sul tuo account." + }, + "recoveryCodeTitle": { + "message": "Codice di recupero" + }, + "authenticatorAppTitle": { + "message": "Applicazione di autenticazione" + }, + "authenticatorAppDesc": { + "message": "Usa un'applicazione di autenticazione (come Authy o Google Authenticator) per generare codici di verifica a tempo.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "Chiave di sicurezza YubiKey OTP" + }, + "yubiKeyDesc": { + "message": "Utilizza una YubiKey per accedere al tuo account. Funziona con dispositivi YubiKey serie 4, serie 5 e NEO." + }, + "duoDesc": { + "message": "Verifica con Duo Security usando l'applicazione Duo Mobile, SMS, chiamata telefonica, o chiave di sicurezza U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verifica con Duo Security per la tua organizzazione usando l'applicazione Duo Mobile, SMS, chiamata telefonica, o chiave di sicurezza U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Usa una chiave di sicurezza compatibile con FIDO U2F per accedere al tuo account." + }, + "u2fTitle": { + "message": "Chiave di sicurezza FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Usa qualsiasi chiave di sicurezza abilitata WebAuthn per accedere al tuo account." + }, + "webAuthnMigrated": { + "message": "(Migrati da FIDO)" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "I codici di verifica ti saranno inviati per email." + }, + "continue": { + "message": "Continua" + }, + "organization": { + "message": "Organizzazione" + }, + "organizations": { + "message": "Organizzazioni" + }, + "moveToOrgDesc": { + "message": "Scegli un'organizzazione in cui desideri spostare questo elemento. Lo spostamento in un'organizzazione trasferisce la proprietà dell'elemento all'organizzazione. Non sarai più il proprietario diretto di questo elemento una volta spostato." + }, + "moveManyToOrgDesc": { + "message": "Scegli un'organizzazione in cui desideri spostare questo elemento. Lo spostamento in un'organizzazione trasferisce la proprietà dell'elemento all'organizzazione. Non sarai più il proprietario diretto di questo elemento una volta spostato." + }, + "collectionsDesc": { + "message": "Modifica le raccolte con le quali questo elemento viene condiviso. Solo gli utenti di organizzazioni che hanno accesso a queste raccolte saranno in grado di visualizzare questo elemento." + }, + "deleteSelectedItemsDesc": { + "message": "La selezione comprende $COUNT$ elemento/i da eliminare. Sei sicuro di voler procedere con l'eliminazione?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "La selezione comprende $COUNT$ elemento/i da spostare. Scegli una cartella di destinazione.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Hai selezionato $COUNT$ elementi. $MOVEABLE_COUNT$ elementi possono essere spostati in un'organizzazione, $NONMOVEABLE_COUNT$ no.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Codice di verifica (TOTP)" + }, + "copyVerificationCode": { + "message": "Copia il codice di verifica" + }, + "warning": { + "message": "Attenzione" + }, + "confirmVaultExport": { + "message": "Conferma esportazione della cassaforte" + }, + "exportWarningDesc": { + "message": "Questa esportazione contiene i dati della tua cassaforte in un formato non cifrato. Non salvare o inviare il file esportato su canali non protetti (come la posta elettronica). Eliminalo immediatamente dopo l'utilizzo." + }, + "encExportKeyWarningDesc": { + "message": "Questa esportazione cifra i tuoi dati utilizzando la chiave di cifratura del tuo account. Se cambi la chiave di cifratura del tuo account, non sarai più in grado di decifrare il file esportato e sarà necessario eseguire una nuova esportazione." + }, + "encExportAccountWarningDesc": { + "message": "Le chiavi di cifratura dell'account sono uniche per ogni account utente Bitwarden, quindi non è possibile importare un'esportazione cifrata in un account diverso." + }, + "export": { + "message": "Esporta" + }, + "exportVault": { + "message": "Esporta cassaforte" + }, + "fileFormat": { + "message": "Formato file" + }, + "exportSuccess": { + "message": "I dati della tua cassaforte sono stati esportati." + }, + "passwordGenerator": { + "message": "Generatore di password" + }, + "minComplexityScore": { + "message": "Punteggio minimo di complessità" + }, + "minNumbers": { + "message": "Minimo di numeri" + }, + "minSpecial": { + "message": "Minimo di speciali", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Evita caratteri ambigui" + }, + "regeneratePassword": { + "message": "Rigenera password" + }, + "length": { + "message": "Lunghezza" + }, + "numWords": { + "message": "Numero di parole" + }, + "wordSeparator": { + "message": "Separatore parole" + }, + "capitalize": { + "message": "Rendi maiuscolo", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Includi numero" + }, + "passwordHistory": { + "message": "Cronologia delle password" + }, + "noPasswordsInList": { + "message": "Non ci sono password da elencare." + }, + "clear": { + "message": "Cancella", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Account aggiornato" + }, + "changeEmail": { + "message": "Cambia indirizzo email" + }, + "changeEmailTwoFactorWarning": { + "message": "Procedendo l'indirizzo email del tuo account sarà modificato ma non cambierà l'email utilizzata per l'autenticazione a due fattori. È possibile modificare questa email nelle impostazioni di accesso in due passaggi." + }, + "newEmail": { + "message": "Nuova email" + }, + "code": { + "message": "Codice" + }, + "changeEmailDesc": { + "message": "Abbiamo inviato un codice di verifica all'indirizzo $EMAIL$. Controlla la tua posta e inserisci il codice qui sotto per confermare la modifica al tuo indirizzo email.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Procedendo sarai disconnesso dalla sessione corrente, sarà necessario autenticarsi nuovamente. Le sessioni attive su altri dispositivi potrebbero rimanere attive per un massimo di un'ora." + }, + "emailChanged": { + "message": "Email modificata" + }, + "logBackIn": { + "message": "Accedi nuovamente." + }, + "logBackInOthersToo": { + "message": "Accedi nuovamente. Se ci sono altre sessioni di Bitwarden attive, ripeti l'accesso anche su quei dispositivi." + }, + "changeMasterPassword": { + "message": "Cambia password principale" + }, + "masterPasswordChanged": { + "message": "Password principale cambiata" + }, + "currentMasterPass": { + "message": "Password principale attuale" + }, + "newMasterPass": { + "message": "Nuova password principale" + }, + "confirmNewMasterPass": { + "message": "Conferma nuova password principale" + }, + "encKeySettings": { + "message": "Impostazioni chiave di cifratura" + }, + "kdfAlgorithm": { + "message": "Algoritmo KDF" + }, + "kdfIterations": { + "message": "Iterazioni KDF" + }, + "kdfIterationsDesc": { + "message": "Un numero di iterazioni KDF più elevato può aiutare a proteggere la tua password principale dall'essere forzata da un utente malintenzionato. Consigliamo un valore di $VALUE$ o più.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Impostare un numero troppo elevato di iterazioni KDF potrebbe comportare prestazioni scadenti durante l'accesso (e lo sblocco) di Bitwarden su dispositivi con CPU lente. Ti consigliamo di aumentare il valore con incrementi di $INCREMENT$ e poi provare tutti i tuoi dispositivi.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Cambia KDF" + }, + "encKeySettingsChanged": { + "message": "Impostazioni chiave di cifratura modificate" + }, + "dangerZone": { + "message": "Zona pericolosa" + }, + "dangerZoneDesc": { + "message": "Attento, queste azioni non sono reversibili!" + }, + "deauthorizeSessions": { + "message": "Annulla autorizzazione sessioni" + }, + "deauthorizeSessionsDesc": { + "message": "Preoccupato che il tuo account sia connesso su un altro dispositivo? Procedi di seguito per rimuovere l'autorizzazione a tutti i computer o dispositivi precedentemente utilizzati. Questo passaggio di sicurezza è consigliato se in precedenza hai utilizzato un PC pubblico o hai salvato per errore la tua password su un dispositivo che non è tuo. Questo passaggio cancellerà anche tutte le sessioni di verifica in due passaggi precedentemente salvate." + }, + "deauthorizeSessionsWarning": { + "message": "La procedura ti consentirà inoltre di disconnetterti dalla sessione corrente, richiedendoti di accedere di nuovo. Se abilitato, ti verrà richiesta nuovamente la verifica in due passaggi. Le sessioni attive su altri dispositivi possono continuare a rimanere attive per un massimo di un'ora." + }, + "sessionsDeauthorized": { + "message": "Tutte le sessioni sono state annullate" + }, + "purgeVault": { + "message": "Svuota cassaforte" + }, + "purgedOrganizationVault": { + "message": "Cassaforte dell'organizzazione svuotata." + }, + "vaultAccessedByProvider": { + "message": "Accesso della cassaforte da parte del fornitore." + }, + "purgeVaultDesc": { + "message": "Procedi in basso per eliminare tutti gli elementi e le cartelle nella cassaforte. Gli elementi che appartengono a un'organizzazione con cui condividi non saranno eliminati." + }, + "purgeOrgVaultDesc": { + "message": "Procedi sotto per eliminare tutti gli elementi nella cassaforte dell'organizzazione." + }, + "purgeVaultWarning": { + "message": "Lo svuotamento della cassaforte è permanente. Questa azione non è reversibile." + }, + "vaultPurged": { + "message": "La tua cassaforte è stata svuotata." + }, + "deleteAccount": { + "message": "Elimina account" + }, + "deleteAccountDesc": { + "message": "Procedi qui sotto per eliminare il tuo account e tutti i dati ad esso associati." + }, + "deleteAccountWarning": { + "message": "L'eliminazione dell'account è permanente. Questa azione non è reversibile." + }, + "accountDeleted": { + "message": "Account eliminato" + }, + "accountDeletedDesc": { + "message": "Il tuo account è stato eliminato e tutti i dati associati sono stati rimossi." + }, + "myAccount": { + "message": "Il mio account" + }, + "tools": { + "message": "Strumenti" + }, + "importData": { + "message": "Importa dati" + }, + "importError": { + "message": "Errore di importazione" + }, + "importErrorDesc": { + "message": "Si è verificato un problema con i dati che hai provato a importare. Risolvi gli errori elencati di seguito nel file importato e riprova." + }, + "importSuccess": { + "message": "I dati sono stati importati correttamente nella tua cassaforte." + }, + "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. Ricontrolla il file da importare." + }, + "importNothingError": { + "message": "Non è stato importato nulla." + }, + "importEncKeyError": { + "message": "Errore durante la decifratura del file esportato. La chiave di cifratura non corrisponde alla chiave di cifratura utilizzata per esportare i dati." + }, + "selectFormat": { + "message": "Seleziona il formato del file da importare" + }, + "selectImportFile": { + "message": "Seleziona il file da importare" + }, + "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)" + } + } + }, + "options": { + "message": "Opzioni" + }, + "optionsDesc": { + "message": "Personalizza l'esperienza della tua cassaforte web." + }, + "optionsUpdated": { + "message": "Opzioni aggiornate" + }, + "language": { + "message": "Lingua" + }, + "languageDesc": { + "message": "Cambia la lingua utilizzata dalla cassaforte web." + }, + "disableIcons": { + "message": "Disabilita icone dei siti web" + }, + "disableIconsDesc": { + "message": "Le icone dei siti web forniscono un'immagine riconoscibile accanto a ogni elemento di accesso." + }, + "enableGravatars": { + "message": "Abilita Gravatar", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Usa immagine profilo caricata da gravatar.com." + }, + "enableFullWidth": { + "message": "Abilita disposizione a larghezza piena", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Consenti alla cassaforte web di sfruttare tutta la larghezza della finestra del browser." + }, + "default": { + "message": "Predefinito" + }, + "domainRules": { + "message": "Regole dei domini" + }, + "domainRulesDesc": { + "message": "Se utilizzi le stesse credenziali per accedere a servizi ospitati su domini diversi, puoi contrassegnare quei domini come \"equivalenti\". I domini \"globali\" sono già stati definiti da Bitwarden per te." + }, + "globalEqDomains": { + "message": "Domini globali equivalenti" + }, + "customEqDomains": { + "message": "Domini personalizzati equivalenti" + }, + "exclude": { + "message": "Escludi" + }, + "include": { + "message": "Includi" + }, + "customize": { + "message": "Personalizza" + }, + "newCustomDomain": { + "message": "Nuovo dominio personalizzato" + }, + "newCustomDomainDesc": { + "message": "Inserisci un elenco di domini separati da virgola. Sono permessi solo domini \"base\". Non inserire sottodomini. Per esempio, inserisci \"google.com\" invece di \"www.google.com\". Puoi inserire anche \"androidapp://package.name\" per associare un'applicazione android con altri domini." + }, + "customDomainX": { + "message": "Dominio personalizzato $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domini aggiornati" + }, + "twoStepLogin": { + "message": "Verifica in due passaggi" + }, + "twoStepLoginDesc": { + "message": "Proteggi il tuo account richiedendo un passaggio aggiuntivo all'accesso." + }, + "twoStepLoginOrganizationDesc": { + "message": "Richiedi la verifica in due passaggi per gli utenti della tua organizzazione configurando dei fornitori a livello di organizzazione." + }, + "twoStepLoginRecoveryWarning": { + "message": "Con la verifica in due passaggi potresti bloccare permanentemente il tuo account di Bitwarden. Un codice di recupero ti permette di accedere al tuo account nel caso in cui non fossi più in grado di utilizzare il tuo solito metodo di verifica (ad esempio se perdi il tuo telefono). L'assistenza di Bitwarden non sarà in grado di aiutarti qualora dovessi perdere l'accesso al tuo account. Ti consigliamo di scrivere o stampare il tuo codice di recupero e di conservarlo in un luogo sicuro." + }, + "viewRecoveryCode": { + "message": "Visualizza codice di recupero" + }, + "providers": { + "message": "Fornitori", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Abilita" + }, + "enabled": { + "message": "Abilitato" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Abbonamento Premium" + }, + "premiumRequired": { + "message": "Abbonamento Premium richiesto" + }, + "premiumRequiredDesc": { + "message": "Un abbonamento premium è richiesto per utilizzare questa funzionalità." + }, + "youHavePremiumAccess": { + "message": "Hai accesso premium" + }, + "alreadyPremiumFromOrg": { + "message": "Hai già accesso alle funzioni premium a causa di un'organizzazione di cui sei membro." + }, + "manage": { + "message": "Gestisci" + }, + "disable": { + "message": "Disabilita" + }, + "twoStepLoginProviderEnabled": { + "message": "Questo metodo di verifica in due passaggi è abilitato sul tuo account." + }, + "twoStepLoginAuthDesc": { + "message": "Inserisci la password principale per modificare le impostazioni di verifica in due passaggi." + }, + "twoStepAuthenticatorDesc": { + "message": "Segui questi passi per impostare la verifica in due passaggi con un'applicazione di autenticazione:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Scarica un'applicazione di autenticazione" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Hai bisogno di un'applicazione di autenticazione? Scarica una delle seguenti" + }, + "iosDevices": { + "message": "Dispositivi iOS" + }, + "androidDevices": { + "message": "Dispositivi Android" + }, + "windowsDevices": { + "message": "Dispositivi Windows" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Queste applicazioni sono consigliate, tuttavia funzioneranno anche altre applicazioni di autenticazione." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scansione questo QR code con la tua applicazione di autenticazione" + }, + "key": { + "message": "Chiave" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Inserisci il codice di verifica a 6 cifre dall'applicazione di autenticazione" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Nel caso in cui fosse necessario aggiungerlo ad un altro dispositivo, di seguito è riportato il QR code (o la chiave) richiesta dalla tua applicazione di autenticazione." + }, + "twoStepDisableDesc": { + "message": "Sei sicuro di voler disabilitare questo metodo di verifica in due passaggi?" + }, + "twoStepDisabled": { + "message": "Metodo di verifica in due passaggi disabilitato." + }, + "twoFactorYubikeyAdd": { + "message": "Aggiungi una nuova YubiKey al tuo account" + }, + "twoFactorYubikeyPlugIn": { + "message": "Collega la YubiKey nella porta USB del computer." + }, + "twoFactorYubikeySelectKey": { + "message": "Seleziona il primo campo vuoto Yubikey sotto." + }, + "twoFactorYubikeyTouchButton": { + "message": "Premere il tasto sulla YubiKey." + }, + "twoFactorYubikeySaveForm": { + "message": "Salva il modulo." + }, + "twoFactorYubikeyWarning": { + "message": "A causa di limitazioni della piattaforma, YubiKey non può essere utilizzato su tutte le applicazioni Bitwarden. Dovresti abilitare un altro metodo di verifica in due passaggi in modo da poter accedere al tuo account anche dove YubiKeys non può essere usato. Piattaforme supportate:" + }, + "twoFactorYubikeySupportUsb": { + "message": "La cassaforte web, l'applicazione desktop, la CLI e tutte le estensioni per browser su un dispositivo con una porta USB in grado di accettare la tua YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Le applicazioni su un dispositivo con NFC o una porta USB in grado di accettare la tua YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "Chiave U2F $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "Chiave WebAuthn $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "Supporto NFC" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Una delle mie chiavi supporta NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Se una delle tue YubiKey supporta NFC (come la Yubikey NEO), sarà richiesto dal dispositivo mobile nel caso la disponibilità NFC venga rilevata." + }, + "yubikeysUpdated": { + "message": "Yubikey aggiornate" + }, + "disableAllKeys": { + "message": "Disabilita tutte le chiavi" + }, + "twoFactorDuoDesc": { + "message": "Inserisci le informazioni della applicazione Bitwarden dal tuo pannello amministratore Duo." + }, + "twoFactorDuoIntegrationKey": { + "message": "Chiave di integrazione" + }, + "twoFactorDuoSecretKey": { + "message": "Chiave segreta" + }, + "twoFactorDuoApiHostname": { + "message": "Nome host API" + }, + "twoFactorEmailDesc": { + "message": "Segui questi passi per impostare la verifica in due passaggi con l'email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Inserisci l'email dove preferisci ricevere i codici di verifica" + }, + "twoFactorEmailEnterCode": { + "message": "Inserisci il codice di verifica di 6 cifre ricevuto tramite email" + }, + "sendEmail": { + "message": "Invia email" + }, + "twoFactorU2fAdd": { + "message": "Aggiungi una chiave di sicurezza di FIDO U2F al tuo account" + }, + "removeU2fConfirmation": { + "message": "Sei sicuro di voler rimuovere questa chiave di sicurezza?" + }, + "twoFactorWebAuthnAdd": { + "message": "Aggiungi una chiave di sicurezza WebAuthn al tuo account" + }, + "readKey": { + "message": "Leggi la chiave" + }, + "keyCompromised": { + "message": "La chiave è compromessa." + }, + "twoFactorU2fGiveName": { + "message": "Assegna alla chiave di sicurezza un nome descrittivo per identificarla." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Inserisci la chiave di sicurezza nella porta USB del tuo computer e fai clic sul pulsante \"Leggi chiave\"." + }, + "twoFactorU2fTouchButton": { + "message": "Se la chiave di protezione dispone di un pulsante, premilo." + }, + "twoFactorU2fSaveForm": { + "message": "Salva il modulo." + }, + "twoFactorU2fWarning": { + "message": "A causa di limitazioni della piattaforma, FIDO U2F non può essere utilizzato su tutte le applicazioni Bitwarden. Dovresti abilitare un altro metodo di verifica in due passaggi in modo da poter accedere al tuo account anche dove FIDO U2F non può essere usato. Piattaforme supportate:" + }, + "twoFactorU2fSupportWeb": { + "message": "Cassaforte web ed estensione per il browser desktop/laptop con un U2F browser abilitato (Chrome, Opera, Vivaldi o Firefox con FIDO U2F abilitato)." + }, + "twoFactorU2fWaiting": { + "message": "In attesa che venga premuto il pulsante della tua chiave di sicurezza" + }, + "twoFactorU2fClickSave": { + "message": "Fai clic sul pulsante \"Salva\" qui sotto per abilitare questa chiave di sicurezza per la verifica in due passaggi." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Si è verificato un problema durante la lettura della chiave di sicurezza. Riprova." + }, + "twoFactorWebAuthnWarning": { + "message": "A causa di limitazioni della piattaforma, WebAuthn non può essere utilizzato su tutte le applicazioni Bitwarden. Dovresti abilitare un altro metodo di verifica in due passaggi in modo da poter accedere al tuo account anche dove WebAuthn non può essere usato. Piattaforme supportate:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Cassaforte Web ed estensione per il browser desktop/portatile con un browser abilitato per WebAuthn (Chrome, Opera, Vivaldi o Firefox con FIDO U2F abilitato)." + }, + "twoFactorRecoveryYourCode": { + "message": "Il tuo codice di recupero Bitwarden per la verifica in due passaggi" + }, + "twoFactorRecoveryNoCode": { + "message": "Non hai ancora abilitato alcun metodo per la verifica in due passaggi. Dopo aver abilitato un metodo per la verifica in due passaggi torna qui per trovare il tuoi codice di recupero." + }, + "printCode": { + "message": "Stampa il codice", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Resoconti" + }, + "reportsDesc": { + "message": "Identifica e chiudi i problemi di sicurezza dei tuoi account online cliccando sui report in basso." + }, + "unsecuredWebsitesReport": { + "message": "Resoconto sui siti web non protetti" + }, + "unsecuredWebsitesReportDesc": { + "message": "L'utilizzo di siti web non protetti con lo schema http:// può essere pericoloso. Se il sito web lo consente, devi sempre accedervi utilizzando lo schema https:// in modo che la connessione sia cifrata." + }, + "unsecuredWebsitesFound": { + "message": "Trovati siti web non protetti" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Abbiamo trovato $COUNT$ elementi nella tua cassaforte con URI non protetti. Dovresti cambiare il loro schema URL in https:// se il sito lo consente.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Nessun elemento nella tua cassaforte ha URI non protetti." + }, + "inactive2faReport": { + "message": "Resoconto 2FA inattivi" + }, + "inactive2faReportDesc": { + "message": "L'autenticazione a due fattori (2FA) è un'impostazione di sicurezza importante che consente di proteggere i tuoi account. Se il sito web lo offre, dovresti sempre abilitare l'autenticazione a due fattori." + }, + "inactive2faFound": { + "message": "Accessi senza 2FA trovati" + }, + "inactive2faFoundDesc": { + "message": "Abbiamo trovato $COUNT$ siti web nella tua cassaforte che potrebbero non essere configurati con l'autenticazione a due fattori (secondo twofactorauth.org). Per proteggere ulteriormente questi account, è necessario abilitare l'autenticazione a due fattori.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Nessun sito web è stato trovato nella cassaforte con una configurazione di autenticazione a due fattori mancante." + }, + "instructions": { + "message": "Istruzioni" + }, + "exposedPasswordsReport": { + "message": "Resoconto sulle password esposte" + }, + "exposedPasswordsReportDesc": { + "message": "Le password esposte sono password che sono state scoperte in violazioni di dati note che sono state rilasciate pubblicamente o vendute sul dark web dagli hacker." + }, + "exposedPasswordsFound": { + "message": "Trovate password esposte" + }, + "exposedPasswordsFoundDesc": { + "message": "Abbiamo trovato $COUNT$ elementi nella tua cassaforte che hanno password che sono state esposte a violazioni di dati note. Dovresti modificarli per usare una nuova password.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Nessun elemento nella tua cassaforte ha password che sono state esposte a violazioni note dei dati." + }, + "checkExposedPasswords": { + "message": "Controlla password esposte" + }, + "exposedXTimes": { + "message": "Esposto $COUNT$ volte", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Resoconto sulle password deboli" + }, + "weakPasswordsReportDesc": { + "message": "Le password deboli possono essere facilmente intuite dagli hacker e dagli strumenti automatici utilizzati per decifrare le password. Il generatore di password di Bitwarden può aiutarti a creare password robuste." + }, + "weakPasswordsFound": { + "message": "Trovate password deboli" + }, + "weakPasswordsFoundDesc": { + "message": "Abbiamo trovato $COUNT$ elementi nella tua cassaforte con password non robuste. Dovresti aggiornarli per usare password più robuste.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Nessun elemento nella tua cassaforte ha password deboli." + }, + "reusedPasswordsReport": { + "message": "Resoconto sulle password riutilizzate" + }, + "reusedPasswordsReportDesc": { + "message": "Se un servizio che usi è compromesso, riutilizzare la stessa password altrove può consentire agli hacker di accedere facilmente a più account online. È necessario utilizzare una password univoca per ogni account o servizio." + }, + "reusedPasswordsFound": { + "message": "Trovate password riutilizzate" + }, + "reusedPasswordsFoundDesc": { + "message": "Abbiamo trovato $COUNT$ password che sono riutilizzate nella tua cassaforte. Dovresti cambiarle in un valore univoco.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Nessun login nella tua cassaforte ha password che vengono riutilizzate." + }, + "reusedXTimes": { + "message": "Riutilizzata $COUNT$ volte", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Resoconto sulle violazioni dei dati" + }, + "breachDesc": { + "message": "Una \"violazione\" è un incidente dove i dati di un sito sono stati illegalmente accessi dagli hacker e poi rilasciati pubblicamente. Esaminare i tipi di dati che sono stati compromessi (indirizzi email, password, carte di credito ecc.) e adottare azioni appropriate, ad esempio la modifica delle password." + }, + "breachCheckUsernameEmail": { + "message": "Controlla ogni nome utente o indirizzi email che usi." + }, + "checkBreaches": { + "message": "Verifica violazioni" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ non è stato trovato in nessuna violazione di dati conosciuta.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Buone notizie", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ è stato trovato in $COUNT$ diversi casi di violazione di dati online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Account violati trovati" + }, + "compromisedData": { + "message": "Dati compromessi" + }, + "website": { + "message": "Sito web" + }, + "affectedUsers": { + "message": "Utenti interessati" + }, + "breachOccurred": { + "message": "Violazione verificata" + }, + "breachReported": { + "message": "Violazione segnalata" + }, + "reportError": { + "message": "Si è verificato un errore durante il tentativo di caricare il resoconto. Riprova" + }, + "billing": { + "message": "Fatturazione" + }, + "accountCredit": { + "message": "Credito account", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Saldo account", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Aggiungi credito", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Importo", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Il credito aggiunto apparirà sul tuo account dopo che il pagamento è stato completamente elaborato. Alcuni metodi di pagamento sono in ritardo e possono richiedere più tempo per il processo rispetto ad altri." + }, + "makeSureEnoughCredit": { + "message": "Assicurati che il tuo account abbia abbastanza credito disponibile per questo acquisto. Se il tuo account non ha abbastanza credito disponibile, il tuo metodo di pagamento predefinito sarà utilizzato per la differenza. Puoi aggiungere credito al tuo account dalla pagina di fatturazione." + }, + "creditAppliedDesc": { + "message": "Il credito del tuo account può essere utilizzato per effettuare acquisti. Ogni credito disponibile sarà automaticamente applicato alle fatture generate per questo account." + }, + "goPremium": { + "message": "Passa a Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Hai effettuato l'aggiornamento a Premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Aggiorna il tuo account per un abbonamento premium e sblocca alcune funzioni aggiuntive." + }, + "premiumSignUpStorage": { + "message": "1 GB di spazio di archiviazione cifrato per gli allegati." + }, + "premiumSignUpTwoStep": { + "message": "Opzioni di verifica in due passaggi aggiuntivi come YubiKey, FIDO U2F, e Duo." + }, + "premiumSignUpEmergency": { + "message": "Accesso di emergenza" + }, + "premiumSignUpReports": { + "message": "Sicurezza delle password, integrità dell'account e resoconti sulle violazioni dei dati per mantenere sicura la tua cassaforte." + }, + "premiumSignUpTotp": { + "message": "Generatore di codice (2FA) di verifica di TOTP per i login della tua cassaforte." + }, + "premiumSignUpSupport": { + "message": "Supporto clienti prioritario." + }, + "premiumSignUpFuture": { + "message": "Tutte le funzioni premium. Nuove in arrivo!" + }, + "premiumPrice": { + "message": "Il tutto per solo $PRICE$ all'anno!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Estensioni" + }, + "premiumAccess": { + "message": "Accesso Premium" + }, + "premiumAccessDesc": { + "message": "Puoi aggiungere l'accesso premium a tutti i membri della tua organizzazione per $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Spazio di archiviazione aggiuntivo (GB)" + }, + "additionalStorageGbDesc": { + "message": "# di GB aggiuntivi" + }, + "additionalStorageIntervalDesc": { + "message": "Il tuo piano viene fornito con $SIZE$ di archiviazione cifrata. Puoi aggiungere ulteriore spazio di archiviazione per $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Riepilogo" + }, + "total": { + "message": "Totale" + }, + "year": { + "message": "anno" + }, + "month": { + "message": "mese" + }, + "monthAbbr": { + "message": "mese", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Il tuo metodo di pagamento verrà addebitato immediatamente e su base ricorrente ogni anno. È possibile annullare in qualsiasi momento." + }, + "paymentCharged": { + "message": "Il tuo metodo di pagamento sarà addebitato immediatamente e poi su base ricorrente ogni $INTERVAL$. Puoi annullare in qualsiasi momento.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Il tuo piano include una prova gratuita di 7 giorni. La tua carta non verrà addebitata fino alla fine del periodo di prova e su base ricorrente ogni $INTERVAL$. È possibile annullare in qualsiasi momento." + }, + "paymentInformation": { + "message": "Informazioni sul pagamento" + }, + "billingInformation": { + "message": "Dati di fatturazione" + }, + "creditCard": { + "message": "Carta di credito" + }, + "paypalClickSubmit": { + "message": "Fai clic sul pulsante di PayPal per accedere al tuo account PayPal, quindi fai clic sul pulsante Invia per continuare." + }, + "cancelSubscription": { + "message": "Annulla abbonamento" + }, + "subscriptionCanceled": { + "message": "L'abbonamento è stato annullato." + }, + "pendingCancellation": { + "message": "In attesa di annullamento" + }, + "subscriptionPendingCanceled": { + "message": "L'abbonamento è stato contrassegnato per l'annullamento alla fine del periodo di fatturazione corrente." + }, + "reinstateSubscription": { + "message": "Ripristina abbonamento" + }, + "reinstateConfirmation": { + "message": "Sei sicuro di voler rimuovere la richiesta di annullamento in sospeso e ripristinare l'abbonamento?" + }, + "reinstated": { + "message": "L'abbonamento è stato ripristinato." + }, + "cancelConfirmation": { + "message": "Sei sicuro di voler annullare il tuo abbonamento? Alla fine di questo ciclo di fatturazione perderai l'accesso a tutte le funzionalità aggiuntive date dall'abbonamento." + }, + "canceledSubscription": { + "message": "L'abbonamento è stato annullato." + }, + "neverExpires": { + "message": "Nessuna scadenza" + }, + "status": { + "message": "Stato" + }, + "nextCharge": { + "message": "Prossimo addebito" + }, + "details": { + "message": "Dettagli" + }, + "downloadLicense": { + "message": "Scarica licenza" + }, + "updateLicense": { + "message": "Aggiorna licenza" + }, + "updatedLicense": { + "message": "Licenza aggiornata" + }, + "manageSubscription": { + "message": "Gestisci abbonamento" + }, + "storage": { + "message": "Spazio di archiviazione" + }, + "addStorage": { + "message": "Aggiungi spazio di archiviazione" + }, + "removeStorage": { + "message": "Rimuovi spazio di archiviazione" + }, + "subscriptionStorage": { + "message": "Il tuo abbonamento ha un totale di $MAX_STORAGE$ GB di spazio di archiviazione cifrato. Stai usando $USED_STORAGE$ GB di spazio.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Metodo di pagamento" + }, + "noPaymentMethod": { + "message": "Nessun metodo di pagamento selezionato." + }, + "addPaymentMethod": { + "message": "Aggiungi metodo di pagamento" + }, + "changePaymentMethod": { + "message": "Cambia il metodo di pagamento" + }, + "invoices": { + "message": "Fatture" + }, + "noInvoices": { + "message": "Nessuna fattura." + }, + "paid": { + "message": "Pagata", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Non pagata", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transazioni", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Nessuna transazione." + }, + "chargeNoun": { + "message": "Addebito", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Rimborso", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Eventuali addebiti appariranno sul tuo estratto conto come $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB di spazio di archiviazione da aggiungere" + }, + "gbStorageRemove": { + "message": "GB di spazio di archiviazione da eliminare" + }, + "storageAddNote": { + "message": "L'aggiunta di spazio di archiviazione comporterà la modifica del costo di fatturazione e addebiterà immediatamente l'importo tramite il tuo metodo di pagamento salvato. Il primo addebito verrà ripartito per il resto del ciclo di fatturazione corrente." + }, + "storageRemoveNote": { + "message": "La rimozione dello spazio di archiviazione comporterà la modifica sul totale fatturato che sarà ripartito come credito per il prossimo addebito di fatturazione." + }, + "adjustedStorage": { + "message": "$AMOUNT$ GB di spazio di archiviazione modificato.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contattare il supporto clienti" + }, + "updatedPaymentMethod": { + "message": "Metodo di pagamento aggiornato." + }, + "purchasePremium": { + "message": "Acquista Premium" + }, + "licenseFile": { + "message": "File di licenza" + }, + "licenseFileDesc": { + "message": "Il tuo file di licenza sarà chiamato ad esempio $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Per aggiornare il tuo account a un abbonamento premium dovrai caricare un file di licenza valido." + }, + "uploadLicenseFileOrg": { + "message": "Per creare un'organizzazione sul tuo server è necessario caricare un file di licenza valido." + }, + "accountEmailMustBeVerified": { + "message": "La tua email è stata verificata." + }, + "newOrganizationDesc": { + "message": "Le organizzazioni ti consentono di condividere parti della tua cassaforte con altri e di gestire gli utenti correlati per un'entità specifica come una famiglia, un piccolo team o una grande azienda." + }, + "generalInformation": { + "message": "Informazioni generali" + }, + "organizationName": { + "message": "Nome organizzazione" + }, + "accountOwnedBusiness": { + "message": "Questo account è di proprietà di un'azienda." + }, + "billingEmail": { + "message": "Email di fatturazione" + }, + "businessName": { + "message": "Ragione sociale" + }, + "chooseYourPlan": { + "message": "Scegli un piano" + }, + "users": { + "message": "Utenti" + }, + "userSeats": { + "message": "Postazioni utente" + }, + "additionalUserSeats": { + "message": "Postazioni utente aggiuntive" + }, + "userSeatsDesc": { + "message": "# di postazioni utente" + }, + "userSeatsAdditionalDesc": { + "message": "Il piano è dotato di $BASE_SEATS$ postazioni utente. È possibile aggiungere ulteriori utenti per $SEAT_PRICE$ per utente/mese.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Quante postazioni utente occorrono? È inoltre possibile aggiungere ulteriori postazioni utente successivamente se necessario." + }, + "planNameFree": { + "message": "Gratis", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Per test o utenti personali da condividere con $COUNT$ altri utenti.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Famiglie" + }, + "planDescFamilies": { + "message": "Per uso personale, per condividere con la famiglia e gli amici." + }, + "planNameTeams": { + "message": "Gruppi" + }, + "planDescTeams": { + "message": "Per le imprese e altre organizzazioni di gruppi." + }, + "planNameEnterprise": { + "message": "Aziendale" + }, + "planDescEnterprise": { + "message": "Per le aziende e altre organizzazioni di grandi dimensioni." + }, + "freeForever": { + "message": "Gratis per sempre" + }, + "includesXUsers": { + "message": "include $COUNT$ utenti", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Utenti aggiuntivi" + }, + "costPerUser": { + "message": "$COST$ per ogni utente", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limitato a $COUNT$ utenti (tu compreso)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limitato a $COUNT$ raccolte", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Aggiungi e condividi con un massimo di $COUNT$ utenti", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Aggiungi e condividi con utenti illimitati" + }, + "createUnlimitedCollections": { + "message": "Crea raccolte illimitate" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ di spazio di archiviazione cifrato", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Self hosting (opzionale)" + }, + "usersGetPremium": { + "message": "Gli utenti ottengono l'accesso alle funzionalità premium" + }, + "controlAccessWithGroups": { + "message": "Controllare l'accesso utente con gruppi" + }, + "syncUsersFromDirectory": { + "message": "Sincronizzare gli utenti e gruppi da una directory" + }, + "trackAuditLogs": { + "message": "Tieni traccia delle azioni di utente con i registri di controllo" + }, + "enforce2faDuo": { + "message": "Applica 2FA con Duo" + }, + "priorityCustomerSupport": { + "message": "Assistenza clienti prioritaria" + }, + "xDayFreeTrial": { + "message": "$COUNT$ giorni di prova, annulla in qualsiasi momento", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Mensile" + }, + "annually": { + "message": "Annuale" + }, + "basePrice": { + "message": "Prezzo base" + }, + "organizationCreated": { + "message": "Organizzazione creata" + }, + "organizationReadyToGo": { + "message": "La nuova organizzazione è pronta per essere usata!" + }, + "organizationUpgraded": { + "message": "La tua organizzazione è stata aggiornata." + }, + "leave": { + "message": "Abbandona" + }, + "leaveOrganizationConfirmation": { + "message": "Sei sicuro di voler lasciare questa organizzazione?" + }, + "leftOrganization": { + "message": "Hai lasciato l'organizzazione." + }, + "defaultCollection": { + "message": "Raccolta predefinita" + }, + "getHelp": { + "message": "Ottieni aiuto" + }, + "getApps": { + "message": "Scarica le applicazioni" + }, + "loggedInAs": { + "message": "Accesso eseguito come" + }, + "eventLogs": { + "message": "Registro eventi" + }, + "people": { + "message": "Persone" + }, + "policies": { + "message": "Politiche" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Modifica politica" + }, + "groups": { + "message": "Gruppi" + }, + "newGroup": { + "message": "Nuovo gruppo" + }, + "addGroup": { + "message": "Aggiungi gruppo" + }, + "editGroup": { + "message": "Modifica gruppo" + }, + "deleteGroupConfirmation": { + "message": "Sei sicuro di voler eliminare questo gruppo?" + }, + "removeUserConfirmation": { + "message": "Confermi di voler rimuovere questo utente?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Attenzione! Questo utente richiede Key Connector per gestire la crittografia. Rimuovere questo utente dalla propria organizzazione disabiliterà definitivamente l'account. Questa azione non può essere annullata. Vuoi procedere?" + }, + "externalId": { + "message": "Id esterno" + }, + "externalIdDesc": { + "message": "L'id esterno può essere usato come un riferimento o per collegare questa risorsa ad un sistema esterno come ad esempio una directory utente." + }, + "accessControl": { + "message": "Controllo di accesso" + }, + "groupAccessAllItems": { + "message": "Questo gruppo può accedere e modificare tutti gli elementi." + }, + "groupAccessSelectedCollections": { + "message": "Questo gruppo può accedere solo alle raccolte selezionate." + }, + "readOnly": { + "message": "Sola lettura" + }, + "newCollection": { + "message": "Nuova raccolta" + }, + "addCollection": { + "message": "Aggiungi raccolta" + }, + "editCollection": { + "message": "Modifica raccolta" + }, + "deleteCollectionConfirmation": { + "message": "Sei sicuro di voler eliminare questa raccolta?" + }, + "editUser": { + "message": "Modifica utente" + }, + "inviteUser": { + "message": "Invita utente" + }, + "inviteUserDesc": { + "message": "Invita un nuovo utente alla tua organizzazione inserendo il suo indirizzo email dell'account Bitwarden di seguito. Se non hanno già un account Bitwarden, verrà richiesto di creare un nuovo account." + }, + "inviteMultipleEmailDesc": { + "message": "Puoi invitare fino a $COUNT$ utenti alla volta inserendo un elenco di indirizzi email separati da una virgola.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Questo utente utilizza l'accesso in due passaggi per proteggere il proprio account." + }, + "userAccessAllItems": { + "message": "Questo utente può accedere e modificare tutti gli elementi." + }, + "userAccessSelectedCollections": { + "message": "Questo utente può accedere solo alle raccolte selezionate." + }, + "search": { + "message": "Cerca" + }, + "invited": { + "message": "Invitato" + }, + "accepted": { + "message": "Accettato" + }, + "confirmed": { + "message": "Confermato" + }, + "clientOwnerEmail": { + "message": "Email del proprietario (cliente)" + }, + "owner": { + "message": "Proprietario" + }, + "ownerDesc": { + "message": "L'utente con accesso più alto sarà in grado di gestire tutti gli aspetti della tua organizzazione." + }, + "clientOwnerDesc": { + "message": "Questo utente non dovrebbe dipendere dal fornitore. Se il fornitore viene rimosso dall'organizzazione, questo utente manterrà la proprietà dell'organizzazione." + }, + "admin": { + "message": "Amministratore" + }, + "adminDesc": { + "message": "Gli amministratori possono accedere e gestire tutti gli elementi, le raccolte e gli utenti dell'organizzazione." + }, + "user": { + "message": "Utente" + }, + "userDesc": { + "message": "Un utente normale con accesso alle raccolte della tua organizzazione." + }, + "manager": { + "message": "Responsabile" + }, + "managerDesc": { + "message": "I responsabili possono accedere e gestire le raccolte assegnate nella propria organizzazione." + }, + "all": { + "message": "Tutti" + }, + "refresh": { + "message": "Aggiorna" + }, + "timestamp": { + "message": "Data e ora" + }, + "event": { + "message": "Evento" + }, + "unknown": { + "message": "Sconosciuto" + }, + "loadMore": { + "message": "Carica altro" + }, + "mobile": { + "message": "Mobile", + "description": "Mobile app" + }, + "extension": { + "message": "Estensione", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Cassaforte web" + }, + "loggedIn": { + "message": "Accesso effettuato." + }, + "changedPassword": { + "message": "Password dell'account modificata." + }, + "enabledUpdated2fa": { + "message": "Verifica in due passaggi abilitata/aggiornata." + }, + "disabled2fa": { + "message": "Verifica in due passaggi disabilitata." + }, + "recovered2fa": { + "message": "Account ripristinato dalla verifica in due passaggi." + }, + "failedLogin": { + "message": "Tentativo di accesso non riuscito. Password errata." + }, + "failedLogin2fa": { + "message": "Tentativo di accesso non riuscito. Verifica in due passaggi non riuscita." + }, + "exportedVault": { + "message": "Cassaforte esportata." + }, + "exportedOrganizationVault": { + "message": "Cassaforte dell'organizzazione esportata." + }, + "editedOrgSettings": { + "message": "Impostazioni dell'organizzazione modificate." + }, + "createdItemId": { + "message": "Elemento $ID$ creato.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Elemento $ID$ modificato.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Elemento $ID$ cestinato.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Spostato l'elemento $ID$ in un'organizzazione.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Elemento visualizzato $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Password visualizzata per l'elemento $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Campo nascosto visualizzato per l'elemento $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Codice di sicurezza visualizzato per l'elemento $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Password copiata per l'elemento $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Campo nascosto copiato per l'elemento $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Codice di sicurezza copiato per l'elemento $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Elemento auto-compilato $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Raccolta $ID$ creata.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Raccolta $ID$ modificata.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Raccolta $ID$ eliminata.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Policy $ID$ modificata.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Gruppo $ID$ creato.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Gruppo $ID$ modificato.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Gruppo $ID$ eliminato.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Utente $ID$ rimosso.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Allegato creato per elemento $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Allegato eliminato per elemento $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Raccolte per elemento $ID$ modificate.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Utente $ID$ invitato.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Utente $ID$ confermato.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Utente $ID$ modificato.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Modificati gruppi per l'utente $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "SSO scollegato per l'utente $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Organizzazione $ID$ creata.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Organizzazione $ID$ aggiunta.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Organizzazione $ID$ rimossa.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accesso alla cassaforte dell'organizzazione $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Dispositivo" + }, + "view": { + "message": "Visualizza" + }, + "invalidDateRange": { + "message": "Intervallo di date non valido." + }, + "errorOccurred": { + "message": "Si è verificato un errore." + }, + "userAccess": { + "message": "Accesso utente" + }, + "userType": { + "message": "Tipo di utente" + }, + "groupAccess": { + "message": "Gruppo di accesso" + }, + "groupAccessUserDesc": { + "message": "Modificare i gruppi a cui appartiene questo utente." + }, + "invitedUsers": { + "message": "Utenti invitati." + }, + "resendInvitation": { + "message": "Invia nuovamente l'invito" + }, + "resendEmail": { + "message": "Invia nuovamente l'email" + }, + "hasBeenReinvited": { + "message": "$USER$ è stato invitato.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Conferma" + }, + "confirmUser": { + "message": "Conferma utente" + }, + "hasBeenConfirmed": { + "message": "$USER$ è stato confermato.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Conferma utenti" + }, + "usersNeedConfirmed": { + "message": "Hai utenti che hanno accettato il loro invito, ma devono ancora essere confermati. Gli utenti non avranno accesso all'organizzazione fino a quando non sono confermati." + }, + "startDate": { + "message": "Data di inizio" + }, + "endDate": { + "message": "Data di fine" + }, + "verifyEmail": { + "message": "Verifica email" + }, + "verifyEmailDesc": { + "message": "Verificare l'indirizzo email del tuo account per sbloccare l'accesso a tutte le funzionalità." + }, + "verifyEmailFirst": { + "message": "L'indirizzo email del tuo account deve essere prima verificato." + }, + "checkInboxForVerification": { + "message": "Controlla la tua casella di posta per il collegamenti di verifica." + }, + "emailVerified": { + "message": "Il tuo indirizzo email è stato verificato." + }, + "emailVerifiedFailed": { + "message": "Impossibile verificare il tuo indirizzo email. Prova a inviare una nuova email di verifica." + }, + "emailVerificationRequired": { + "message": "Verifica email necessaria" + }, + "emailVerificationRequiredDesc": { + "message": "Devi verificare la tua email per utilizzare questa funzionalità." + }, + "updateBrowser": { + "message": "Aggiorna il browser" + }, + "updateBrowserDesc": { + "message": "Stai utilizzando un browser non supportato. La cassaforte web potrebbe non funzionare correttamente." + }, + "joinOrganization": { + "message": "Unisciti all'organizzazione" + }, + "joinOrganizationDesc": { + "message": "Sei stato invitato a far parte dell'organizzazione sopra elencata. Per accettare l'invito, è necessario accedere o creare un nuovo account di Bitwarden." + }, + "inviteAccepted": { + "message": "Invito accettato" + }, + "inviteAcceptedDesc": { + "message": "Puoi accedere a questa organizzazione una volta che un amministratore conferma la tua iscrizione. Ti invieremo una email quando accadrà." + }, + "inviteAcceptFailed": { + "message": "Non è possibile accettare l'invito. Chiedi ad un amministratore dell'organizzazione di inviare un nuovo invito." + }, + "inviteAcceptFailedShort": { + "message": "Impossibile accettare l'invito. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Ricorda email" + }, + "recoverAccountTwoStepDesc": { + "message": "Se non puoi accedere al tuo account attraverso i normali metodi di verifica in due passaggi, puoi usare il codice di recupero per la verifica in due passaggi per disabilitare tutti i metodi di verifica in due passaggi presenti sul tuo account." + }, + "recoverAccountTwoStep": { + "message": "Ripristina la verifica in due passaggi dell'account" + }, + "twoStepRecoverDisabled": { + "message": "La verifica in due passaggi è stata disabilitata sul tuo account." + }, + "learnMore": { + "message": "Ulteriori informazioni" + }, + "deleteRecoverDesc": { + "message": "Inserisci la tua email sotto per recuperare ed eliminare il tuo account." + }, + "deleteRecoverEmailSent": { + "message": "Se il tuo account è già esistente, ti invieremo una email con maggiori informazioni." + }, + "deleteRecoverConfirmDesc": { + "message": "Hai richiesto di eliminare il tuo account Bitwarden. Fai clic sul pulsante per confermare." + }, + "myOrganization": { + "message": "La mia organizzazione" + }, + "deleteOrganization": { + "message": "Elimina organizzazione" + }, + "deletingOrganizationContentWarning": { + "message": "Digita la password principale per confermare l'eliminazione di $ORGANIZATION$ e di tutti i dati associati. I dati della cassaforte in $ORGANIZATION$ includono:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Gli account utente rimarranno attivi dopo l'eliminazione, ma non saranno più associati a questa organizzazione." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "L'eliminazione di $ORGANIZATION$ è definitiva e irreversibile.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organizzazione eliminata" + }, + "organizationDeletedDesc": { + "message": "L'organizzazione e tutti i dati associati sono stati eliminati." + }, + "organizationUpdated": { + "message": "Organizzazione aggiornata" + }, + "taxInformation": { + "message": "Informazioni fiscali" + }, + "taxInformationDesc": { + "message": "Per i clienti negli Stati Uniti, il codice ZIP è necessario per soddisfare i requisiti relativi all'imposta sulle vendite, per altri paesi è possibile fornire facoltativamente un numero di identificazione fiscale (IVA/GST) e/o un indirizzo da visualizzare sulle fatture." + }, + "billingPlan": { + "message": "Piano", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Cambia piano", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Aggiorna il tuo account a un altro piano fornendo le informazioni qui sotto. Assicurati di avere un metodo di pagamento attivo aggiunto all'account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Fattura #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Visualizza fattura" + }, + "downloadInvoice": { + "message": "Scarica fattura" + }, + "verifyBankAccount": { + "message": "Verifica conto bancario" + }, + "verifyBankAccountDesc": { + "message": "Abbiamo fatto due micro-depositi sul tuo conto bancario (potrebbe richiedere 1-2 giorni lavorativi per presentarsi). Immetti questi importi per verificare il conto bancario." + }, + "verifyBankAccountInitialDesc": { + "message": "Il pagamento con un conto in banca è disponibile solo per i clienti negli Stati Uniti. Sarà necessario verificare il tuo conto in banca. Faremo due micro-depositi entro i prossimi 1-2 giorni lavorativi. Immettere questi importi nella pagina di fatturazione dell'organizzazione per verificare il conto bancario." + }, + "verifyBankAccountFailureWarning": { + "message": "La mancata verifica del conto bancario si tradurrà in un mancato pagamento e l'abbonamento sarà disattivato." + }, + "verifiedBankAccount": { + "message": "Il conto bancario è stato verificato." + }, + "bankAccount": { + "message": "Conto bancario" + }, + "amountX": { + "message": "Importo $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Coordinate bancarie", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Numero del conto" + }, + "accountHolderName": { + "message": "Titolare del conto" + }, + "bankAccountType": { + "message": "Tipo di conto" + }, + "bankAccountTypeCompany": { + "message": "Azienda (Lavoro)" + }, + "bankAccountTypeIndividual": { + "message": "Individuale (Personale)" + }, + "enterInstallationId": { + "message": "Inserisci il tuo id di installazione" + }, + "limitSubscriptionDesc": { + "message": "Imposta un limite di slot utenti per il tuo abbonamento. Una volta raggiunto questo limite, non potrai invitare nuovi utenti." + }, + "maxSeatLimit": { + "message": "Numero massimo di slot (opzionale)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Costo massimo dello slot" + }, + "addSeats": { + "message": "Aggiungi postazioni", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Rimuovi postazioni", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Le modifiche apportate al tuo abbonamento comporteranno corrispondenti cambi al totale in fattura. Se i nuovi utenti invitati superano gli slot del tuo abbonamento, riceverai immediatamente un addebito per gli utenti aggiuntivi." + }, + "subscriptionUserSeats": { + "message": "L'abbonamento consente un totale di $COUNT$ utenti.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limite di abbonamento (facoltativo)" + }, + "subscriptionSeats": { + "message": "Slot abbonamento" + }, + "subscriptionUpdated": { + "message": "Abbonamento aggiornato" + }, + "additionalOptions": { + "message": "Opzioni aggiuntive" + }, + "additionalOptionsDesc": { + "message": "Per ulteriori informazioni sulla gestione del tuo abbonamento, contatta il servizio clienti." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Le modifiche apportate al tuo abbonamento comporteranno corrispondenti cambi al totale in fattura. Se i nuovi utenti invitati superano gli slot del tuo abbonamento, riceverai immediatamente un addebito per gli utenti aggiuntivi." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Le modifiche apportate al tuo abbonamento comporteranno corrispondenti cambi al totale in fattura. Se i nuovi utenti invitati superano gli slot utente del tuo abbonamento, riceverai immediatamente un addebito per gli utenti aggiuntivi fino al raggiungimento del limite di $MAX$ slot.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Non puoi invitare più di $COUNT$ utenti senza aggiornare il tuo piano.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Non puoi invitare più di $COUNT$ utenti senza aggiornare il tuo piano. Contatta il supporto clienti per aggiornare.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Il tuo abbonamento consente un totale di $COUNT$ utenti. Il tuo piano è sponsorizzato e addebitato a un'organizzazione esterna.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Le modifiche apportate al tuo abbonamento comporteranno corrispondenti cambi al totale in fattura. Non è possibile invitare più di $COUNT$ utenti senza aumentare gli slot dell'abbonamento.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Postazioni da aggiungere" + }, + "seatsToRemove": { + "message": "Postazioni da rimuovere" + }, + "seatsAddNote": { + "message": "L'aggiunta di postazioni utente comporterà la modifica del costo di fatturazione e addebiterà immediatamente l'importo tramite il tuo metodo di pagamento salvato. Il primo addebito verrà ripartito per il resto del ciclo di fatturazione corrente." + }, + "seatsRemoveNote": { + "message": "La rimozione di postazioni utente comporterà la modifica sul totale fatturato che sarà ripartito come credito per il prossimo addebito di fatturazione." + }, + "adjustedSeats": { + "message": "Postazioni utente $AMOUNT$ rettificate.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Chiave aggiornata" + }, + "updateKeyTitle": { + "message": "Aggiorna chiave" + }, + "updateEncryptionKey": { + "message": "Aggiorna chiave di cifratura" + }, + "updateEncryptionKeyShortDesc": { + "message": "Stai utilizzando uno schema di cifratura obsoleto." + }, + "updateEncryptionKeyDesc": { + "message": "Siamo passati a chiavi di cifratura più grandi che forniscono maggiore sicurezza e accesso alle funzionalità più recenti. Aggiornare la chiave di cifratura è semplice e veloce. Basta digitare la password principale qui sotto. Questo aggiornamento diventerà obbligatorio in futuro." + }, + "updateEncryptionKeyWarning": { + "message": "Dopo aver aggiornato la chiave di cifratura, ti sarà richiesto di disconnetterti e connetterti in tutte le applicazioni Bitwarden che stai utilizzando (come l'applicazione mobile o l'estensione del browser). La mancata disconnessione e successiva riconnessione (per scaricare la nuova chiave di cifratura) potrebbe condurre al danneggiamento dei dati. Cercheremo di disconnetterti automaticamente, ma potrebbe esserci un ritardo." + }, + "updateEncryptionKeyExportWarning": { + "message": "Anche le esportazioni cifrate che hai salvato non saranno più valide." + }, + "subscription": { + "message": "Abbonamento" + }, + "loading": { + "message": "Caricamento" + }, + "upgrade": { + "message": "Aggiorna" + }, + "upgradeOrganization": { + "message": "Aggiorna organizzazione" + }, + "upgradeOrganizationDesc": { + "message": "Questa funzionalità non è disponibile per le organizzazioni con il piano base. Passa ad un piano a pagamento per sbloccare più funzioni." + }, + "createOrganizationStep1": { + "message": "Crea organizzazione: Passo 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Prima di creare la propria organizzazione, devi innanzitutto creare un account personale gratuito." + }, + "refunded": { + "message": "Rimborsato" + }, + "nothingSelected": { + "message": "Non hai selezionato nulla." + }, + "acceptPolicies": { + "message": "Selezionando la casella accetti quanto segue:" + }, + "acceptPoliciesError": { + "message": "I termini di servizio e l'informativa sulla privacy non sono stati accettati." + }, + "termsOfService": { + "message": "Termini del servizio" + }, + "privacyPolicy": { + "message": "Informativa sulla privacy" + }, + "filters": { + "message": "Filtri" + }, + "vaultTimeout": { + "message": "Timeout cassaforte" + }, + "vaultTimeoutDesc": { + "message": "Scegli quando la tua cassaforte andrà in timeout ed esegui l'azione selezionata." + }, + "oneMinute": { + "message": "1 minuto" + }, + "fiveMinutes": { + "message": "5 minuti" + }, + "fifteenMinutes": { + "message": "15 minuti" + }, + "thirtyMinutes": { + "message": "30 minuti" + }, + "oneHour": { + "message": "1 ora" + }, + "fourHours": { + "message": "4 ore" + }, + "onRefresh": { + "message": "All'aggiornamento del browser" + }, + "dateUpdated": { + "message": "Aggiornato", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Password aggiornata", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "L'organizzazione è disabilitata." + }, + "licenseIsExpired": { + "message": "La licenza è scaduta." + }, + "updatedUsers": { + "message": "Utenti aggiornati" + }, + "selected": { + "message": "Selezionato" + }, + "ownership": { + "message": "Proprietà" + }, + "whoOwnsThisItem": { + "message": "A chi appartiene questo elemento?" + }, + "strong": { + "message": "Forte", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Buona", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Debole", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Molto debole", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Password principale debole" + }, + "weakMasterPasswordDesc": { + "message": "La password principale che hai scelto è debole. È necessario utilizzare una password principale robusta (o una frase segreta) per proteggere adeguatamente il tuo account Bitwarden. Sei sicuro di voler utilizzare questa password principale?" + }, + "rotateAccountEncKey": { + "message": "Ruota anche la chiave di cifratura del mio account" + }, + "rotateEncKeyTitle": { + "message": "Ruota la chiave di cifratura" + }, + "rotateEncKeyConfirmation": { + "message": "Sei sicuro di voler ruotare la chiave di cifratura del tuo account?" + }, + "attachmentsNeedFix": { + "message": "Questo elemento ha vecchi file allegati che devono essere corretti." + }, + "attachmentFixDesc": { + "message": "Questo è un vecchio file allegato che deve essere corretto. Fai clic per saperne di più." + }, + "fix": { + "message": "Correggi", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Ci sono vecchi file allegati nella tua cassaforte che devono essere corretti prima di poter ruotare la chiave di cifratura del tuo account." + }, + "yourAccountsFingerprint": { + "message": "Frase impronta del tuo account", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Per garantire l'integrità delle tue chiavi di cifratura, verifica la frase impronta dell'utente prima di continuare.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Non chiedere di verificare di nuovo la frase impronta", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Gratis", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "Chiave API" + }, + "apiKeyDesc": { + "message": "La tua chiave API può essere usata per autenticarsi all'API pubblica Bitwarden." + }, + "apiKeyRotateDesc": { + "message": "Ruotare la chiave API invaliderà la chiave precedente. Puoi ruotare la tua chiave API se credi che la chiave attuale non sia più sicura da usare." + }, + "apiKeyWarning": { + "message": "La tua chiave API ha pieno accesso all'organizzazione. Dovrebbe essere tenuta segreta." + }, + "userApiKeyDesc": { + "message": "Puoi utilizzare la tua chiave API per autenticarti nella CLI di Bitwarden." + }, + "userApiKeyWarning": { + "message": "La tua chiave API è la tua autenticazione alternativa e dovrebbe rimanere segreta." + }, + "oauth2ClientCredentials": { + "message": "Credenziali client OAuth 2.0", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Visualizza chiave API" + }, + "rotateApiKey": { + "message": "Ruota chiave API" + }, + "selectOneCollection": { + "message": "Devi selezionare almeno una raccolta." + }, + "couldNotChargeCardPayInvoice": { + "message": "Non siamo stati in grado di addebitare sulla tua carta. Visualizza e paga la fattura non pagata presente qui sotto." + }, + "inAppPurchase": { + "message": "Acquisto in-app" + }, + "cannotPerformInAppPurchase": { + "message": "Non puoi eseguire questa azione mentre utilizzi un metodo di pagamento in-app." + }, + "manageSubscriptionFromStore": { + "message": "Devi gestire il tuo abbonamento dal negozio dove è stato effettuato l'acquisto in-app." + }, + "minLength": { + "message": "Lunghezza minima" + }, + "clone": { + "message": "Clona" + }, + "masterPassPolicyDesc": { + "message": "Imposta i requisiti minimi di complessità della password principale." + }, + "twoStepLoginPolicyDesc": { + "message": "Obbliga gli utenti a impostare l'autenticazione a due fattori sul loro account personale." + }, + "twoStepLoginPolicyWarning": { + "message": "I membri dell'organizzazione che non hanno attivato l'autenticazione a due fattori per il proprio account personale saranno espulsi dall'organizzazione e riceveranno a tale proposito un'email di notifica." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Sei membro di una organizzazione che richiede che sugli account personali sia attiva l'autenticazione a due fattori. Se disabiliti tutti i secondi fattori di autenticazione, sarai automaticamente rimosso dall'organizzazione." + }, + "passwordGeneratorPolicyDesc": { + "message": "Imposta i requisiti minimi per la configurazione del generatore di password." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Una o più politiche dell'organizzazione controllano le impostazioni del tuo generatore." + }, + "masterPasswordPolicyInEffect": { + "message": "Una o più regole dell'organizzazione richiedono che la password principale verifichi i seguenti requisiti:" + }, + "policyInEffectMinComplexity": { + "message": "Punteggio minimo di complessità di $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Lunghezza minima di $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contiene almeno un carattere maiuscolo" + }, + "policyInEffectLowercase": { + "message": "Contiene almeno un carattere minuscolo" + }, + "policyInEffectNumbers": { + "message": "Contiene almeno una cifra" + }, + "policyInEffectSpecial": { + "message": "Contiene almeno uno dei seguenti caratteri speciali $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "La tua nuova password principale non soddisfa i requisiti di sicurezza." + }, + "minimumNumberOfWords": { + "message": "Numero minimo di parole" + }, + "defaultType": { + "message": "Tipo predefinito" + }, + "userPreference": { + "message": "Preferenze utente" + }, + "vaultTimeoutAction": { + "message": "Azione timeout cassaforte" + }, + "vaultTimeoutActionLockDesc": { + "message": "Una cassaforte bloccata richiede l'inserimento della password principale per accedere nuovamente." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "La disconnessione dalla cassaforte richiede l'inserimento della password principale per accedere nuovamente." + }, + "lock": { + "message": "Blocca", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Cestino", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Cerca nel cestino" + }, + "permanentlyDelete": { + "message": "Elimina definitivamente" + }, + "permanentlyDeleteSelected": { + "message": "Elimina definitivamente l'elemento selezionato" + }, + "permanentlyDeleteItem": { + "message": "Elimina definitivamente l'elemento" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Sei sicuro di voler eliminare definitivamente questo elemento?" + }, + "permanentlyDeletedItem": { + "message": "Elemento eliminato definitivamente" + }, + "permanentlyDeletedItems": { + "message": "Elementi eliminati definitivamente" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Hai selezionato $COUNT$ elemento/i da eliminare definitivamente. Sei sicuro di voler eliminare definitivamente tutti gli elementi selezionati?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Elemento $ID$ definitivamente eliminato.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Ripristina" + }, + "restoreSelected": { + "message": "Ripristina selezionati" + }, + "restoreItem": { + "message": "Ripristina elemento" + }, + "restoredItem": { + "message": "Elemento ripristinato" + }, + "restoredItems": { + "message": "Elementi ripristinati" + }, + "restoreItemConfirmation": { + "message": "Sei sicuro di voler ripristinare questo elemento?" + }, + "restoreItems": { + "message": "Ripristina elementi" + }, + "restoreSelectedItemsDesc": { + "message": "Hai selezionato $COUNT$ elemento/i da ripristinare. Sei sicuro di voler ripristinare tutti gli elementi selezionati?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Elemento $ID$ ripristinato.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "La disconnessione rimuove tutti gli accessi alla tua cassaforte e richiede l'autenticazione online dopo il periodo di timeout. Sei sicuro di voler utilizzare questa impostazione?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Conferma azione di timeout" + }, + "hidePasswords": { + "message": "Nascondi password" + }, + "countryPostalCodeRequiredDesc": { + "message": "Informazioni richieste esclusivamente per il calcolo dell'IVA e rendicontazione finanziaria." + }, + "includeVAT": { + "message": "Aggiungi partita IVA/GST (facoltativo)" + }, + "taxIdNumber": { + "message": "Partita IVA/GST" + }, + "taxInfoUpdated": { + "message": "Dati fiscali aggiornati." + }, + "setMasterPassword": { + "message": "Imposta password principale" + }, + "ssoCompleteRegistration": { + "message": "Per completare l'accesso con SSO, imposta una password principale per accedere e proteggere la cassaforte." + }, + "identifier": { + "message": "Identificativo" + }, + "organizationIdentifier": { + "message": "Identificativo dell'organizzazione" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Accedi usando il portale di accesso Single Sign-On della tua organizzazione. Inserisci l'identificativo della tua organizzazione per iniziare." + }, + "enterpriseSingleSignOn": { + "message": "Single Sign-On aziendale" + }, + "ssoHandOff": { + "message": "Puoi chiudere questa scheda e continuare nell'estensione." + }, + "includeAllTeamsFeatures": { + "message": "Tutte le funzionalità Teams e in più:" + }, + "includeSsoAuthentication": { + "message": "Autenticazione SSO tramite SAML2.0 e OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Policy aziendali" + }, + "ssoValidationFailed": { + "message": "Convalida SSO non riuscita" + }, + "ssoIdentifierRequired": { + "message": "L'identificativo dell'organizzazione è obbligatorio." + }, + "unlinkSso": { + "message": "Scollega SSO" + }, + "unlinkSsoConfirmation": { + "message": "Sei sicuro di voler scollegare SSO per questa organizzazione?" + }, + "linkSso": { + "message": "Collega SSO" + }, + "singleOrg": { + "message": "Organizzazione unica" + }, + "singleOrgDesc": { + "message": "Impedisci agli utenti di unirsi dalle altre organizzazioni." + }, + "singleOrgBlockCreateMessage": { + "message": "La tua attuale organizzazione ha una policy che non ti consente di unirti ad altre organizzazioni. Contatta gli amministratori della tua organizzazione o registrati da un altro account Bitwarden." + }, + "singleOrgPolicyWarning": { + "message": "I membri dell'organizzazione che non sono proprietari o amministratori e sono già membri di un'altra organizzazione saranno rimossi dalla tua organizzazione." + }, + "requireSso": { + "message": "Autenticazione Single Sign-On" + }, + "requireSsoPolicyDesc": { + "message": "Richiedi agli utenti di accedere con il metodo di Single Sign-On aziendale." + }, + "prerequisite": { + "message": "Prerequisito" + }, + "requireSsoPolicyReq": { + "message": "La policy aziendale per l'organizzazione unica deve essere abilitata prima di attivare questa policy." + }, + "requireSsoPolicyReqError": { + "message": "La policy dell'organizzazione unica non è abilitata." + }, + "requireSsoExemption": { + "message": "I proprietari e gli amministratori dell'organizzazione sono esenti dall'applicazione di questa policy." + }, + "sendTypeFile": { + "message": "File" + }, + "sendTypeText": { + "message": "Testo" + }, + "createSend": { + "message": "Crea nuovo Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Modifica Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send creato", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Send modificato", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send eliminato", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Elimina Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Sei sicuro di voler eliminare questo Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Di quale tipo di Send si tratta?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Data di eliminazione" + }, + "deletionDateDesc": { + "message": "Il Send sarà definitivamente eliminato alla data e all'ora specificate.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Data di scadenza" + }, + "expirationDateDesc": { + "message": "Se impostato, l'accesso a questo Send scadrà alla data e all'ora specificate.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Numero massimo di accessi" + }, + "maxAccessCountDesc": { + "message": "Se impostato, gli utenti non saranno più in grado di accedere a questo Send una volta raggiunto il numero massimo di accessi.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Numero di accessi attuale" + }, + "sendPasswordDesc": { + "message": "Facoltativamente, richiedi una password agli utenti per accedere al Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Note private su questo Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Disabilitato" + }, + "sendLink": { + "message": "Collegamento del Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copia collegamento Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Rimuovi password" + }, + "removedPassword": { + "message": "Password rimossa" + }, + "removePasswordConfirmation": { + "message": "Sei sicuro di voler rimuovere la password?" + }, + "hideEmail": { + "message": "Nascondi il mio indirizzo email dai destinatari." + }, + "disableThisSend": { + "message": "Disabilita il Send per renderlo inaccessibile.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Tutti i Send" + }, + "maxAccessCountReached": { + "message": "Numero massimo di accessi raggiunto", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "In attesa di eliminazione" + }, + "expired": { + "message": "Scaduto" + }, + "searchSends": { + "message": "Cerca Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Il Send è protetto da password. Digita la password sotto per continuare.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Non conosci la password? Chiedi al Sender la password necessaria per l'accesso a questo Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Questo Send è nascosto per impostazione predefinita. È possibile modificarne la visibilità utilizzando il pulsante in basso.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Scarica file" + }, + "sendAccessUnavailable": { + "message": "Il Send a cui stai provando ad accedere non esiste o non è più disponibile.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Il file associato a questo Send non è stato trovato.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Non ci sono Send da elencare.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Accesso di emergenza" + }, + "emergencyAccessDesc": { + "message": "Concedi e gestisci l'accesso di emergenza per un contatto fidato. I contatti fidati possono richiede di ereditare l'account o accedere in sola lettura in caso di emergenza. Visita la nostra pagina di aiuto per maggiori informazioni e dettagli." + }, + "emergencyAccessOwnerWarning": { + "message": "Sei proprietario di una o più organizzazioni. Se trasferisci la proprietà ad un contatto di emergenza, sarà in grado di utilizzare tutti i permessi del proprietario." + }, + "trustedEmergencyContacts": { + "message": "Contatti di emergenza fidati" + }, + "noTrustedContacts": { + "message": "Non hai ancora aggiunto nessun contatto di emergenza, invita un contatto fidato per iniziare." + }, + "addEmergencyContact": { + "message": "Aggiungi contatto di emergenza" + }, + "designatedEmergencyContacts": { + "message": "Designato come contatto di emergenza" + }, + "noGrantedAccess": { + "message": "Non sei ancora stato designato come contatto di emergenza." + }, + "inviteEmergencyContact": { + "message": "Invita contatto di emergenza" + }, + "editEmergencyContact": { + "message": "Modifica contatto di emergenza" + }, + "inviteEmergencyContactDesc": { + "message": "Invita un nuovo contatto di emergenza digitando il suo account email di Bitwarden. Se non ha ancora un account Bitwarden, gli verrà chiesto di crearne uno nuovo." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Accesso di emergenza avviato" + }, + "emergencyAccessRecoveryApproved": { + "message": "Accesso di emergenza approvato" + }, + "viewDesc": { + "message": "Può visualizzare tutti gli elementi nella cassaforte." + }, + "takeover": { + "message": "Entra in possesso" + }, + "takeoverDesc": { + "message": "Puoi ripristinare il tuo account con una nuova password principale." + }, + "waitTime": { + "message": "Tempo di attesa" + }, + "waitTimeDesc": { + "message": "Tempo richiesto prima di concedere l'accesso automatico." + }, + "oneDay": { + "message": "1 giorno" + }, + "days": { + "message": "$DAYS$ giorni", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Utente invitato." + }, + "acceptEmergencyAccess": { + "message": "Sei stato designato come contatto di emergenza per l'utente indicato sopra. Per accettare l'invito, accedi alla tua cassaforte o crea un nuovo utente Bitwarden." + }, + "emergencyInviteAcceptFailed": { + "message": "Impossibile accettare l'invito. Chiedi all'utente di inviare un nuovo invito." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Impossibile accettare l'invito. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Puoi accedere alle opzioni di emergenza per questo utente dopo aver confermato la tua identità. A breve riceverai un'email di conferma." + }, + "requestAccess": { + "message": "Richiedi l'accesso" + }, + "requestAccessConfirmation": { + "message": "Sei sicuro di voler richiedere l'accesso di emergenza? Ti sarà possibile accedere dopo $WAITTIME$ giorni o subito, qualora l'utente approvi la richiesta.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Accesso di emergenza richiesto per $USER$. Riceverai una notifica tramite email quando sarà possibile proseguire.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approva" + }, + "reject": { + "message": "Rifiuta" + }, + "approveAccessConfirmation": { + "message": "Sei sicuro di voler approvare l'accesso di emergenza? Questo consentirà a $USER$ di $ACTION$ il tuo account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Accesso di emergenza approvato." + }, + "emergencyRejected": { + "message": "Accesso di emergenza rifiutato" + }, + "passwordResetFor": { + "message": "Password ripristinata per $USER$. Ora puoi effettuare l'accesso utilizzando la nuova password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Proprietà personale" + }, + "personalOwnershipPolicyDesc": { + "message": "Richiede agli utenti di salvare gli elementi della cassaforte in un'organizzazione rimuovendo l'opzione di proprietà personale." + }, + "personalOwnershipExemption": { + "message": "I proprietari e gli amministratori dell'organizzazione sono esenti dall'applicazione di questa policy." + }, + "personalOwnershipSubmitError": { + "message": "A causa di una policy aziendale, non è possibile salvare elementi nella tua cassaforte personale. Cambia l'opzione proprietà in un'organizzazione e scegli tra le raccolte disponibili." + }, + "disableSend": { + "message": "Disabilita Send" + }, + "disableSendPolicyDesc": { + "message": "Non consentire agli utenti di creare o modificare un Send Bitwarden. L'eliminazione di un Send già creato è ancora permessa.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Gli utenti dell'organizzazione che possono gestire le policy dell'organizzazione sono esenti dall'applicazione di questa impostazione." + }, + "sendDisabled": { + "message": "Send disabilitato", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "A causa di una policy aziendale, è possibile eliminare solo un Send esistente.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Opzioni Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Imposta le opzioni per creare e modificare Send.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Gli utenti dell'organizzazione che possono gestire le policy dell'organizzazione sono esenti dall'applicazione di questa policy." + }, + "disableHideEmail": { + "message": "Non consentire agli utenti di nascondere il proprio indirizzo email dai destinatari quando si crea o modifica un Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Attualmente sono in vigore le seguenti policy dell'organizzazione:" + }, + "sendDisableHideEmailInEffect": { + "message": "Agli utenti non è consentito nascondere il proprio indirizzo email dai destinatari quando si crea o modifica un Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Policy $ID$ modificata.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Costo del piano" + }, + "estimatedTax": { + "message": "Tasse stimate" + }, + "custom": { + "message": "Personalizzato" + }, + "customDesc": { + "message": "Consente un controllo più granulare delle autorizzazioni utente per le configurazioni avanzate." + }, + "permissions": { + "message": "Permessi" + }, + "accessEventLogs": { + "message": "Accedi ai log degli eventi" + }, + "accessImportExport": { + "message": "Accedi ad Import/Export" + }, + "accessReports": { + "message": "Accedi ai resoconti" + }, + "missingPermissions": { + "message": "Non hai i permessi necessari per eseguire questa azione." + }, + "manageAllCollections": { + "message": "Gestisci tutte le raccolte" + }, + "createNewCollections": { + "message": "Crea nuove raccolte" + }, + "editAnyCollection": { + "message": "Modifica tutte le raccolte" + }, + "deleteAnyCollection": { + "message": "Elimina tutte le raccolte" + }, + "manageAssignedCollections": { + "message": "Gestisci le raccolte assegnate" + }, + "editAssignedCollections": { + "message": "Modifica le raccolte assegnate" + }, + "deleteAssignedCollections": { + "message": "Elimina raccolte assegnate" + }, + "manageGroups": { + "message": "Gestisci i gruppi" + }, + "managePolicies": { + "message": "Gestisci le policy" + }, + "manageSso": { + "message": "Gestisci SSO" + }, + "manageUsers": { + "message": "Gestisci gli utenti" + }, + "manageResetPassword": { + "message": "Gestisci ripristino password" + }, + "disableRequiredError": { + "message": "Per disabilitare questa policy, è necessario prima disabilitare la policy $POLICYNAME$.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Una policy dell'organizzazione controlla le opzioni di proprietà." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "Una policy dell'organizzazione ha disabilitato l'importazione di elementi nella tua cassaforte personale." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disabilita la proprietà personale per gli utenti dell'organizzazione" + }, + "textHiddenByDefault": { + "message": "Quando si accede al Send, nascondi il testo di default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Un nome intuitivo per descrivere il Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Il testo che desideri inviare." + }, + "sendFileDesc": { + "message": "Il file che desideri inviare." + }, + "copySendLinkOnSave": { + "message": "Copia il collegamento per condividere questo Send nei miei appunti al momento del salvataggio." + }, + "sendLinkLabel": { + "message": "Collegamento del Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Con Bitwarden Send trasmetti informazioni sensibili e temporanee agli altri in maniera facile e sicura.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Per saperne di più", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Condividi testi e file direttamente con chiunque." + }, + "sendVaultCardLearnMore": { + "message": "Per saperne di più", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "vedi", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "come funziona", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "o", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "provalo adesso", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "o", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "iscriviti", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "per provarlo oggi.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "L'utente Bitwarden $USER_IDENTIFIER$ ha condiviso questo con te", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "L'utente Bitwarden che ha creato questo Send ha scelto di nascondere il proprio indirizzo email. Devi essere sicuro di fidarti della fonte di questo collegamento prima di usare o scaricare il suo contenuto.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "La data di scadenza fornita non è valida." + }, + "deletionDateIsInvalid": { + "message": "La data di eliminazione fornita non è valida." + }, + "expirationDateAndTimeRequired": { + "message": "È necessario inserire data e ora di scadenza." + }, + "deletionDateAndTimeRequired": { + "message": "È necessario inserire data e ora di eliminazione." + }, + "dateParsingError": { + "message": "Si è verificato un errore durante il salvataggio delle date di eliminazione e scadenza." + }, + "webAuthnFallbackMsg": { + "message": "Per verificare la tua 2FA fai clic sul pulsante qui sotto." + }, + "webAuthnAuthenticate": { + "message": "Autenticazione WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn non è supportato da questo browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verificato correttamente! Puoi chiudere questa scheda." + }, + "hintEqualsPassword": { + "message": "Il suggerimento della password non può essere uguale alla password." + }, + "enrollPasswordReset": { + "message": "Aderisci al ripristino della password" + }, + "enrolledPasswordReset": { + "message": "Hai aderito al ripristino della password" + }, + "withdrawPasswordReset": { + "message": "Rifiuta il ripristino della password" + }, + "enrollPasswordResetSuccess": { + "message": "Iscrizione completata!" + }, + "withdrawPasswordResetSuccess": { + "message": "Rinuncia completata!" + }, + "eventEnrollPasswordReset": { + "message": "Utente $ID$ registrato all'assistenza per il ripristino della password.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Utente $ID$ prelevato dall'assistenza per il ripristino della password.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Ripristino della password principale per l'utente $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Ripristina collegamento SSO per l'utente $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ ha effettuato l'accesso tramite SSO per la prima volta", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Ripristina password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Procedendo $NAME$ saranno disconnessi dalla sessione attuale, richiedendo loro di effettuare nuovamente l'accesso. Le sessioni attive su altri dispositivi potrebbero rimanere attive per un massimo di un'ora.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "questo utente" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Una o più regole dell'organizzazione richiedono che la password principale verifichi i seguenti requisiti:" + }, + "resetPasswordSuccess": { + "message": "Password ripristinata correttamente!" + }, + "resetPasswordEnrollmentWarning": { + "message": "L'iscrizione consentirà agli amministratori dell'organizzazione di cambiare la tua password principale. Sei sicuro di volerti iscrivere?" + }, + "resetPasswordPolicy": { + "message": "Ripristino password principale" + }, + "resetPasswordPolicyDescription": { + "message": "Consenti agli amministratori dell'organizzazione di ripristinare la password principale degli utenti dell'organizzazione." + }, + "resetPasswordPolicyWarning": { + "message": "Gli utenti dell'organizzazione dovranno auto-iscriversi o essere iscritti automaticamente prima che gli amministratori possano ripristinare la loro password principale." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Iscrizione automatica" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Tutti gli utenti saranno automaticamente iscritti alla procedura di ripristino della password una volta accettato l'invito." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Gli utenti già presenti nell'organizzazione non saranno iscritti retroattivamente al ripristino della password. Essi dovranno auto-iscriversi prima che gli amministratori possano ripristinare la loro password principale." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Richiedi l'iscrizione automatica dei nuovi utenti" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Questa organizzazione ha una policy aziendale che ti iscriverà automaticamente al ripristino della password. Ciò permetterà agli amministratori dell'organizzazione di cambiare la tua password principale." + }, + "resetPasswordOrgKeysError": { + "message": "La risposta delle chiavi dell'organizzazione è nulla" + }, + "resetPasswordDetailsError": { + "message": "La risposta ai dettagli del ripristino della password è nulla" + }, + "trashCleanupWarning": { + "message": "Gli elementi nel Cestino più vecchi di 30 giorni saranno automaticamente eliminati." + }, + "trashCleanupWarningSelfHosted": { + "message": "Gli elementi nel Cestino da un po' di tempo saranno automaticamente eliminati." + }, + "passwordPrompt": { + "message": "Nuova richiesta della password principale" + }, + "passwordConfirmation": { + "message": "Conferma della password principale" + }, + "passwordConfirmationDesc": { + "message": "Questa azione è protetta. Per continuare, inserisci nuovamente la tua password principale per verificare la tua identità." + }, + "reinviteSelected": { + "message": "Invia nuovamente l'invito" + }, + "noSelectedUsersApplicable": { + "message": "Questa azione non è applicabile a nessuno degli utenti selezionati." + }, + "removeUsersWarning": { + "message": "Sei sicuro di voler rimuovere i seguenti utenti? Il processo potrebbe richiedere alcuni secondi per essere completato e non può essere interrotto o annullato." + }, + "theme": { + "message": "Tema" + }, + "themeDesc": { + "message": "Scegli un tema per la tua cassaforte web." + }, + "themeSystem": { + "message": "Usa tema di sistema" + }, + "themeDark": { + "message": "Scuro" + }, + "themeLight": { + "message": "Chiaro" + }, + "confirmSelected": { + "message": "Conferma selezionati" + }, + "bulkConfirmStatus": { + "message": "Stato dell'azione in blocco" + }, + "bulkConfirmMessage": { + "message": "Confermato correttamente." + }, + "bulkReinviteMessage": { + "message": "Re-invitato correttamente." + }, + "bulkRemovedMessage": { + "message": "Rimosso correttamente" + }, + "bulkFilteredMessage": { + "message": "Escluso, non applicabile per questa azione." + }, + "fingerprint": { + "message": "Impronta" + }, + "removeUsers": { + "message": "Rimuovi utenti" + }, + "error": { + "message": "Errore" + }, + "resetPasswordManageUsers": { + "message": "Gestisci utenti deve essere abilitato con il permesso di gestione del ripristino delle password" + }, + "setupProvider": { + "message": "Configurazione del fornitore" + }, + "setupProviderLoginDesc": { + "message": "Sei stato invitato a impostare un nuovo fornitore. Per continuare, accedi o crea un nuovo account Bitwarden." + }, + "setupProviderDesc": { + "message": "Inserisci i dettagli sotto per completare la configurazione del fornitore. Se hai bisogno di aiuto, contatta il supporto clienti." + }, + "providerName": { + "message": "Nome del fornitore" + }, + "providerSetup": { + "message": "Il fornitore è stato configurato." + }, + "clients": { + "message": "Clienti" + }, + "providerAdmin": { + "message": "Amministratore del fornitore" + }, + "providerAdminDesc": { + "message": "L'utente con privilegi di accesso più elevato che può gestire tutti gli aspetti del tuo fornitore nonché accedere e gestire le organizzazioni dei clienti." + }, + "serviceUser": { + "message": "Utente di servizio" + }, + "serviceUserDesc": { + "message": "Gli utenti di servizio che possono accedere e gestire tutte le organizzazioni cliente." + }, + "providerInviteUserDesc": { + "message": "Invita un nuovo utente nella tua organizzazione inserendo di seguito l'indirizzo email del suo account Bitwarden. Se non in possesso di un account Bitwarden, sarà richiesto di crearne uno nuovo." + }, + "joinProvider": { + "message": "Unisciti al fornitore" + }, + "joinProviderDesc": { + "message": "Sei stato invitato a unirti al fornitore indicato in alto. Per accettare l'invito, accedi o crea un nuovo account Bitwarden." + }, + "providerInviteAcceptFailed": { + "message": "Impossibile accettare l'invito. Chiedi all'amministratore del fornitore di inviare un nuovo invito." + }, + "providerInviteAcceptedDesc": { + "message": "Potrai accedere a questo fornitore quando l'amministratore confermerà la tua iscrizione. Riceverai un'email a conferma avvenuta." + }, + "providerUsersNeedConfirmed": { + "message": "Hai utenti che hanno accettato il loro invito, ma devono ancora essere confermati. Gli utenti non avranno accesso al fornitore fino a quando non saranno confermati." + }, + "provider": { + "message": "Fornitore" + }, + "newClientOrganization": { + "message": "Nuova organizzazione cliente" + }, + "newClientOrganizationDesc": { + "message": "Crea una nuovo organizzazione cliente che sarà associata a te come fornitore. Sarai in grado di accedere e gestire questa organizzazione." + }, + "addExistingOrganization": { + "message": "Aggiungi organizzazione esistente" + }, + "myProvider": { + "message": "Il mio fornitore" + }, + "addOrganizationConfirmation": { + "message": "Sei sicuro di voler aggiungere $ORGANIZATION$ come cliente di $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organizzazione aggiunta con successo al fornitore" + }, + "accessingUsingProvider": { + "message": "Accesso in corso all'organizzazione con il fornitore $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Il fornitore è disabilitato." + }, + "providerUpdated": { + "message": "Fornitore aggiornato" + }, + "yourProviderIs": { + "message": "Il tuo fornitore è $PROVIDER$. Hanno privilegi amministrativi e di fatturazione per la tua organizzazione.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "L'organizzazione $ORGANIZATION$ è stata sganciata dal tuo fornitore.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Sei sicuro di voler rimuovere questa organizzazione? L'organizzazione continuerà ad esistere ma non sarà più gestita dal fornitore." + }, + "add": { + "message": "Aggiungi" + }, + "updatedMasterPassword": { + "message": "Password principale aggiornata" + }, + "updateMasterPassword": { + "message": "Aggiorna password principale" + }, + "updateMasterPasswordWarning": { + "message": "La tua password principale è stata recentemente modificata da un amministratore nella tua organizzazione. Per accedere alla cassaforte, aggiorna ora la password. Procedendo sarai disconnesso dalla sessione attuale e ti sarà richiesto di effettuare nuovamente l'accesso. Le sessioni attive su altri dispositivi potrebbero continuare a rimanere attive per un massimo di un'ora." + }, + "masterPasswordInvalidWarning": { + "message": "La tua password principale non soddisfa i requisiti della politica di questa organizzazione. Per aderire all'organizzazione, è necessario aggiornare subito la password principale. Il procedimento chiuderà la sessione attuale, richiedendo di accedere nuovamente. Le sessioni attive su altri dispositivi possono rimanere tali fino a un'ora." + }, + "maximumVaultTimeout": { + "message": "Timeout cassaforte" + }, + "maximumVaultTimeoutDesc": { + "message": "Configura un timeout massimo della cassaforte per tutti gli utenti." + }, + "maximumVaultTimeoutLabel": { + "message": "Timeout massimo della cassaforte" + }, + "invalidMaximumVaultTimeout": { + "message": "Timeout massimo della cassaforte non valido." + }, + "hours": { + "message": "Ore" + }, + "minutes": { + "message": "Minuti" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Le politiche dell'organizzazione controllano il timeout della tua cassaforte. Il tempo massimo consentito è di $HOURS$ ore e $MINUTES$ minuti", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Timeout cassaforte personalizzato" + }, + "vaultTimeoutToLarge": { + "message": "Il timeout della tua cassaforte supera le restrizioni impostate dalla tua organizzazione." + }, + "disablePersonalVaultExport": { + "message": "Disabilita esportazione cassaforte personale" + }, + "disablePersonalVaultExportDesc": { + "message": "Impedisce agli utenti di esportare i loro dati privati della cassaforte." + }, + "vaultExportDisabled": { + "message": "Esportazione cassaforte disabilitata" + }, + "personalVaultExportPolicyInEffect": { + "message": "Una o più politiche di organizzazione ti impediscono di esportare la tua cassaforte personale." + }, + "selectType": { + "message": "Seleziona tipo di SSO" + }, + "type": { + "message": "Tipo" + }, + "openIdConnectConfig": { + "message": "Configurazione OpenID Connect" + }, + "samlSpConfig": { + "message": "Configurazione del fornitore del servizio SAML" + }, + "samlIdpConfig": { + "message": "Configurazione del fornitore di identità SAML" + }, + "callbackPath": { + "message": "URL di callback" + }, + "signedOutCallbackPath": { + "message": "URL di disconnessione" + }, + "authority": { + "message": "Autorità" + }, + "clientId": { + "message": "ID cliente" + }, + "clientSecret": { + "message": "Segreto cliente" + }, + "metadataAddress": { + "message": "Indirizzo metadata" + }, + "oidcRedirectBehavior": { + "message": "Comportamento di redirezione OIDC" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Ottieni claim dall'endpoint di informazioni utente" + }, + "additionalScopes": { + "message": "Scope aggiuntivi/personalizzati (separati da virgola)" + }, + "additionalUserIdClaimTypes": { + "message": "Tipi di claim 'User ID' aggiuntivi/personalizzati (separati da virgola)" + }, + "additionalEmailClaimTypes": { + "message": "Tipi di claim 'Email' aggiuntivi/personalizzati (separati da virgola)" + }, + "additionalNameClaimTypes": { + "message": "Tipi di claim \"Name\" aggiuntivi/personalizzati (separati da virgola)" + }, + "acrValues": { + "message": "Valori di riferimento della classe del contesto di autenticazione richiesta (acr_values)" + }, + "expectedReturnAcrValue": { + "message": "Valore atteso di claim \"acr\" nella risposta (convalida acr)" + }, + "spEntityId": { + "message": "ID entità SP" + }, + "spMetadataUrl": { + "message": "URL metadati SAML 2.0" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Formato 'Name ID'" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Comportamento firma" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Algoritmo di firma minimo in entrata" + }, + "spWantAssertionsSigned": { + "message": "Necessarie asserzioni firmate" + }, + "spValidateCertificates": { + "message": "Convalida i certificati" + }, + "idpEntityId": { + "message": "ID entità" + }, + "idpBindingType": { + "message": "Tipo di associazione" + }, + "idpSingleSignOnServiceUrl": { + "message": "URL del servizio di Single Sign On" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "Certificato pubblico X509" + }, + "idpOutboundSigningAlgorithm": { + "message": "Algoritmo di firma in uscita" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Consenti risposta di autenticazione non richiesta" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Permetti richieste di disconnessione in uscita" + }, + "idpSignAuthenticationRequests": { + "message": "Firma le richieste di autenticazione" + }, + "ssoSettingsSaved": { + "message": "La configurazione del Single Sign-On è stata salvata." + }, + "sponsoredFamilies": { + "message": "Bitwarden Families gratuito" + }, + "sponsoredFamiliesEligible": { + "message": "Tu e la tua famiglia siete eleggibili per Bitwarden Families gratis. Aderisci all'offerta con la tua mail personale e mantieni i tuoi dati al sicuro anche quando non sei a lavoro." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Riscatta oggi il tuo piano Bitwarden per famiglie gratuito per mantenere i tuoi dati al sicuro anche quando non sei al lavoro." + }, + "sponsoredFamiliesInclude": { + "message": "Il piano Bitwarden Families include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Accesso premium fino a 6 utenti" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Raccolte condivise per segreti di famiglia" + }, + "badToken": { + "message": "Il link non è più valido. Per favore chiedi allo sponsor di inviare nuovamente l'offerta." + }, + "reclaimedFreePlan": { + "message": "Piano gratuito riscattato" + }, + "redeem": { + "message": "Riscatta" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Seleziona l'organizzazione che desideri sponsorizzare" + }, + "familiesSponsoringOrgSelect": { + "message": "Quale offerta gratis per famiglie vorresti riscattare?" + }, + "sponsoredFamiliesEmail": { + "message": "Digita la tua email personale per riscattare Bitwarden per famiglie" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Se lasci o sei rimosso da questa organizzazione, il piano Famiglie scadrà alla fine del periodo di fatturazione." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accetta l'offerta per un'organizzazione esistente o crea una nuova organizzazione Famiglie." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Ti è stato offerto un piano gratuito per Bitwarden per famiglie. Per continuare, devi accedere all'account che ha ricevuto l'offerta." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Impossibile accettare l'offerta. Invia nuovamente l'email di offerta dal tuo account aziendale e riprova." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Impossibile accettare l'offerta. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Riscatta l'offerta di Bitwarden Families (Organizzazione)" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Offerta gratuita di Bitwarden per famiglie riscattata correttamente" + }, + "redeemed": { + "message": "Riscattato" + }, + "redeemedAccount": { + "message": "Account riscattato" + }, + "revokeAccount": { + "message": "Revoca l'account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Reinvia l'email sponsor allo sponsor $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Piano Families gratis" + }, + "redeemNow": { + "message": "Riscatta ora" + }, + "recipient": { + "message": "Destinatario" + }, + "removeSponsorship": { + "message": "Rimuovi sponsorizzazione" + }, + "removeSponsorshipConfirmation": { + "message": "Dopo aver rimosso una sponsorizzazione, sarai responsabile di questo abbonamento e delle relative fatture. Sei sicuro di voler continuare?" + }, + "sponsorshipCreated": { + "message": "Sponsorizzazione creata" + }, + "revoke": { + "message": "Revoca" + }, + "emailSent": { + "message": "Email inviata" + }, + "revokeSponsorshipConfirmation": { + "message": "Dopo aver rimosso questo account, il proprietario dell'organizzazione Famiglie sarà responsabile di questo abbonamento e delle relative fatture. Sei sicuro di voler continuare?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorizzazione rimossa" + }, + "ssoKeyConnectorUnavailable": { + "message": "Impossibile raggiungere il key connector, riprova più tardi." + }, + "keyConnectorUrl": { + "message": "URL del key connector" + }, + "sendVerificationCode": { + "message": "Invia un codice di verifica alla tua email" + }, + "sendCode": { + "message": "Invia codice" + }, + "codeSent": { + "message": "Codice inviato" + }, + "verificationCode": { + "message": "Codice di verifica" + }, + "confirmIdentity": { + "message": "Conferma la tua identità per continuare." + }, + "verificationCodeRequired": { + "message": "Il codice di verifica è obbligatorio." + }, + "invalidVerificationCode": { + "message": "Codice di verifica non valido" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ sta usando SSO con una chiave server self-hosted. Non è più richiesta una password principale per accedere per i membri di questa organizzazione.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Lascia l'organizzazione" + }, + "removeMasterPassword": { + "message": "Rimuovi la password principale" + }, + "removedMasterPassword": { + "message": "Password principale rimossa." + }, + "allowSso": { + "message": "Consenti autenticazione SSO" + }, + "allowSsoDesc": { + "message": "Una volta impostata, la tua configurazione sarà salvata e i membri potranno autenticarsi utilizzando le credenziali del loro Identity Provider." + }, + "ssoPolicyHelpStart": { + "message": "Abilita la", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "policy SSO", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "per obbligare tutti i membri ad accedere con SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "L'autenticazione SSO e i criteri dell'organizzazione unica sono necessari per configurare la decifratura del connettore chiave." + }, + "memberDecryptionOption": { + "message": "Opzioni di decifratura membro" + }, + "memberDecryptionPassDesc": { + "message": "Una volta autenticati, i membri decrittograferanno i dati della cassaforte con le loro password principali." + }, + "keyConnector": { + "message": "Key connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Collega il tuo accesso con SSO al tuo server \"self-hosted\" di decrittazione. Utilizzando questa opzione, i membri non avranno bisogno di utilizzare la loro password principale per decrittare la cassaforte." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Accesso con SSO e decrittazione key connector\" è abilitato. Questa politica sarà applicata solo ai proprietari e agli amministratori." + }, + "enabledSso": { + "message": "SSO abilitato" + }, + "disabledSso": { + "message": "SSO disabilitato" + }, + "enabledKeyConnector": { + "message": "Key connector abilitato" + }, + "disabledKeyConnector": { + "message": "Key connector disabilitato" + }, + "keyConnectorWarning": { + "message": "Una volta impostato il key connector, le opzioni di decrittazione dei membri non potranno più essere modificate." + }, + "migratedKeyConnector": { + "message": "Migrato al key connector" + }, + "paymentSponsored": { + "message": "Fornisci un metodo di pagamento da associare all'organizzazione. Non ti preoccupare, non ti addebiteremo nulla a meno che non selezioni funzionalità aggiuntive o la tua sponsorizzazione scada. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "L'offerta di sponsorizzazione è scaduta e puoi eliminare l'organizzazione creata per evitare un addebito al termine della prova di 7 giorni. Altrimenti puoi chiudere questa richiesta per mantenere l'organizzazione e assumerti la responsabilità della fatturazione." + }, + "newFamiliesOrganization": { + "message": "Nuova organizzazione Famiglie" + }, + "acceptOffer": { + "message": "Accetta l'offerta" + }, + "sponsoringOrg": { + "message": "Organizzazione sponsor" + }, + "keyConnectorTest": { + "message": "Prova" + }, + "keyConnectorTestSuccess": { + "message": "Key connector raggiunto!" + }, + "keyConnectorTestFail": { + "message": "Impossibile raggiungere il Key Connector. Controlla l'URL." + }, + "sponsorshipTokenHasExpired": { + "message": "L'offerta di sponsorizzazione è scaduta." + }, + "freeWithSponsorship": { + "message": "GRATUITO con sponsorizzazione" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ campi richiedono la tua attenzione.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 campo ha bisogno di attenzione." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ è obbligatorio.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "obbligatorio" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Richiesto se l'Entity ID non è un URL." + }, + "openIdOptionalCustomizations": { + "message": "Personalizzazioni opzionali" + }, + "openIdAuthorityRequired": { + "message": "Richiesto se l'Authority non è valida." + }, + "separateMultipleWithComma": { + "message": "Elenco separato da virgole." + }, + "sessionTimeout": { + "message": "La tua sessione è scaduta. Torna indietro e riprova ad accedere." + }, + "exportingPersonalVaultTitle": { + "message": "Esportazione cassaforte personale" + }, + "exportingOrganizationVaultTitle": { + "message": "Esportazione cassaforte dell'organizzazione" + }, + "exportingPersonalVaultDescription": { + "message": "Saranno esportati solo gli oggetti della cassaforte personale associati a $EMAIL$. Gli oggetti della cassaforte dell'organizzazione non saranno inclusi.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Sarà esportata solo la cassaforte dell'organizzazione associata a $ORGANIZATION$. Gli oggetti della cassaforte personale e gli oggetti da altre organizzazioni non saranno inclusi.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Torna ai report" + }, + "generator": { + "message": "Generatore" + }, + "whatWouldYouLikeToGenerate": { + "message": "Cosa vorresti generare?" + }, + "passwordType": { + "message": "Tipo di password" + }, + "regenerateUsername": { + "message": "Rigenera nome utente" + }, + "generateUsername": { + "message": "Genera nome utente" + }, + "usernameType": { + "message": "Tipo di nome utente" + }, + "plusAddressedEmail": { + "message": "Indirizzo email alternativo", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Usa le funzionalità di sub-indirizzamento del tuo fornitore di posta elettronica." + }, + "catchallEmail": { + "message": "Email catch-all" + }, + "catchallEmailDesc": { + "message": "Usa la casella di posta catch-all di dominio." + }, + "random": { + "message": "Casuale" + }, + "randomWord": { + "message": "Parola casuale" + }, + "service": { + "message": "Servizio" + } +} diff --git a/apps/web/src/locales/ja/messages.json b/apps/web/src/locales/ja/messages.json new file mode 100644 index 0000000000..3793b3c3fa --- /dev/null +++ b/apps/web/src/locales/ja/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ ウェブ保管庫", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "このアイテムのタイプは何ですか?" + }, + "name": { + "message": "名前" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "新しい URI" + }, + "username": { + "message": "ユーザー名" + }, + "password": { + "message": "パスワード" + }, + "newPassword": { + "message": "新しいパスワード" + }, + "passphrase": { + "message": "パスフレーズ" + }, + "notes": { + "message": "メモ" + }, + "customFields": { + "message": "カスタムフィールド" + }, + "cardholderName": { + "message": "カードの名義人名" + }, + "number": { + "message": "番号" + }, + "brand": { + "message": "ブランド" + }, + "expiration": { + "message": "有効期限" + }, + "securityCode": { + "message": "セキュリティコード (CVV)" + }, + "identityName": { + "message": "固有名" + }, + "company": { + "message": "会社名" + }, + "ssn": { + "message": "社会保障番号" + }, + "passportNumber": { + "message": "パスポート番号" + }, + "licenseNumber": { + "message": "免許証番号" + }, + "email": { + "message": "メールアドレス" + }, + "phone": { + "message": "電話番号" + }, + "january": { + "message": "1月" + }, + "february": { + "message": "2月" + }, + "march": { + "message": "3月" + }, + "april": { + "message": "4月" + }, + "may": { + "message": "5月" + }, + "june": { + "message": "6月" + }, + "july": { + "message": "7月" + }, + "august": { + "message": "8月" + }, + "september": { + "message": "9月" + }, + "october": { + "message": "10月" + }, + "november": { + "message": "11月" + }, + "december": { + "message": "12月" + }, + "title": { + "message": "敬称" + }, + "mr": { + "message": "Mr" + }, + "mrs": { + "message": "Mrs" + }, + "ms": { + "message": "Ms" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "有効期限月" + }, + "expirationYear": { + "message": "有効期限年" + }, + "authenticatorKeyTotp": { + "message": "認証キー (TOTP)" + }, + "folder": { + "message": "フォルダー" + }, + "newCustomField": { + "message": "新規カスタムフィールド" + }, + "value": { + "message": "値" + }, + "dragToSort": { + "message": "ドラッグして並べ替え" + }, + "cfTypeText": { + "message": "テキスト" + }, + "cfTypeHidden": { + "message": "非表示" + }, + "cfTypeBoolean": { + "message": "真偽値" + }, + "cfTypeLinked": { + "message": "リンク済", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "削除" + }, + "unassigned": { + "message": "未割り当て" + }, + "noneFolder": { + "message": "フォルダーなし", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "フォルダーを追加" + }, + "editFolder": { + "message": "フォルダーを編集" + }, + "baseDomain": { + "message": "ベースドメイン", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "ドメイン名", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "ホスト", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "完全一致" + }, + "startsWith": { + "message": "前方一致" + }, + "regEx": { + "message": "正規表現", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "一致検出方法", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "デフォルトの一致検出方法", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "なし" + }, + "toggleVisibility": { + "message": "表示切り替え" + }, + "toggleCollapse": { + "message": "開く/閉じる", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "パスワードの自動生成" + }, + "checkPassword": { + "message": "パスワードが漏洩していないか確認する" + }, + "passwordExposed": { + "message": "このパスワードは過去に$VALUE$回漏洩したことがあるため、変更するべきです。", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "このパスワードは過去に漏洩したデータ内にはないため、安全であると思われます。" + }, + "save": { + "message": "保存" + }, + "cancel": { + "message": "キャンセル" + }, + "canceled": { + "message": "キャンセルしました" + }, + "close": { + "message": "閉じる" + }, + "delete": { + "message": "削除" + }, + "favorite": { + "message": "お気に入り" + }, + "unfavorite": { + "message": "お気に入り解除" + }, + "edit": { + "message": "編集" + }, + "searchCollection": { + "message": "コレクションの検索" + }, + "searchFolder": { + "message": "フォルダーの検索" + }, + "searchFavorites": { + "message": "お気に入りの検索" + }, + "searchType": { + "message": "タイプの検索", + "description": "Search item type" + }, + "searchVault": { + "message": "保管庫を検索" + }, + "allItems": { + "message": "全てのアイテム" + }, + "favorites": { + "message": "お気に入り" + }, + "types": { + "message": "タイプ" + }, + "typeLogin": { + "message": "ログイン" + }, + "typeCard": { + "message": "カード" + }, + "typeIdentity": { + "message": "ID" + }, + "typeSecureNote": { + "message": "メモ" + }, + "typeLoginPlural": { + "message": "ログイン" + }, + "typeCardPlural": { + "message": "カード" + }, + "typeIdentityPlural": { + "message": "ID" + }, + "typeSecureNotePlural": { + "message": "セキュアメモ" + }, + "folders": { + "message": "フォルダー" + }, + "collections": { + "message": "コレクション" + }, + "firstName": { + "message": "名" + }, + "middleName": { + "message": "ミドルネーム" + }, + "lastName": { + "message": "姓" + }, + "fullName": { + "message": "フルネーム" + }, + "address1": { + "message": "住所 1" + }, + "address2": { + "message": "住所 2" + }, + "address3": { + "message": "住所 3" + }, + "cityTown": { + "message": "市町村" + }, + "stateProvince": { + "message": "都道府県" + }, + "zipPostalCode": { + "message": "郵便番号" + }, + "country": { + "message": "国" + }, + "shared": { + "message": "共有" + }, + "attachments": { + "message": "添付ファイル" + }, + "select": { + "message": "選択" + }, + "addItem": { + "message": "アイテムの追加" + }, + "editItem": { + "message": "アイテムの編集" + }, + "viewItem": { + "message": "アイテムの表示" + }, + "ex": { + "message": "例:", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "その他" + }, + "share": { + "message": "共有" + }, + "moveToOrganization": { + "message": "組織に移動" + }, + "valueCopied": { + "message": "$VALUE$ をコピーしました", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "値のコピー", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "パスワードのコピー", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "ユーザー名のコピー", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "番号のコピー", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "セキュリティコードのコピー", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "URI のコピー", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "保管庫" + }, + "vault": { + "message": "保管庫" + }, + "moveSelectedToOrg": { + "message": "選択したものを組織に移動" + }, + "deleteSelected": { + "message": "選択したものを削除" + }, + "moveSelected": { + "message": "選択したものを移動" + }, + "selectAll": { + "message": "すべて選択" + }, + "unselectAll": { + "message": "すべて選択解除" + }, + "launch": { + "message": "開く" + }, + "newAttachment": { + "message": "添付ファイルの追加" + }, + "deletedAttachment": { + "message": "添付ファイルを削除" + }, + "deleteAttachmentConfirmation": { + "message": "この添付ファイルを削除してよろしいですか?" + }, + "attachmentSaved": { + "message": "添付ファイルを保存しました。" + }, + "file": { + "message": "ファイル" + }, + "selectFile": { + "message": "ファイルを選択してください。" + }, + "maxFileSize": { + "message": "最大ファイルサイズ: 500 MB" + }, + "updateKey": { + "message": "暗号キーを更新するまでこの機能は使用できません。" + }, + "addedItem": { + "message": "追加されたアイテム" + }, + "editedItem": { + "message": "編集されたアイテム" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ を $ORGNAME$ に移動しました", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "選択したアイテムを $ORGNAME$ に移動しました", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "アイテムの削除" + }, + "deleteFolder": { + "message": "フォルダーの削除" + }, + "deleteAttachment": { + "message": "添付ファイルの削除" + }, + "deleteItemConfirmation": { + "message": "このアイテムを削除してもよろしいですか?" + }, + "deletedItem": { + "message": "削除されたアイテム" + }, + "deletedItems": { + "message": "削除されたアイテム" + }, + "movedItems": { + "message": "移動されたアイテム" + }, + "overwritePasswordConfirmation": { + "message": "現在のパスワードを上書きしてもよろしいですか?" + }, + "editedFolder": { + "message": "フォルダーを編集しました" + }, + "addedFolder": { + "message": "フォルダーを追加しました" + }, + "deleteFolderConfirmation": { + "message": "フォルダーを削除しますか?" + }, + "deletedFolder": { + "message": "フォルダーを削除しました" + }, + "loggedOut": { + "message": "ログアウトしました" + }, + "loginExpired": { + "message": "ログインセッションの有効期限が切れています。" + }, + "logOutConfirmation": { + "message": "ログアウトしてもよろしいですか?" + }, + "logOut": { + "message": "ログアウト" + }, + "ok": { + "message": "OK" + }, + "yes": { + "message": "はい" + }, + "no": { + "message": "いいえ" + }, + "loginOrCreateNewAccount": { + "message": "安全なデータ保管庫へアクセスするためにログインまたはアカウントを作成してください。" + }, + "createAccount": { + "message": "アカウントの作成" + }, + "logIn": { + "message": "ログイン" + }, + "submit": { + "message": "送信" + }, + "emailAddressDesc": { + "message": "メールアドレスを使用してログインできます。" + }, + "yourName": { + "message": "名前" + }, + "yourNameDesc": { + "message": "あなたを何と呼べばいいですか?" + }, + "masterPass": { + "message": "マスターパスワード" + }, + "masterPassDesc": { + "message": "マスターパスワードは、パスワード保管庫へのアクセスに使用するパスワードです。あなたのマスターパスワードを忘れないように注意してください。忘れた場合、パスワードを回復する方法はありません。" + }, + "masterPassHintDesc": { + "message": "マスターパスワードのヒントは、パスワードを忘れた場合に役立ちます。" + }, + "reTypeMasterPass": { + "message": "マスターパスワードを再入力" + }, + "masterPassHint": { + "message": "マスターパスワードのヒント (省略可能)" + }, + "masterPassHintLabel": { + "message": "マスターパスワードのヒント" + }, + "settings": { + "message": "設定" + }, + "passwordHint": { + "message": "パスワードのヒント" + }, + "enterEmailToGetHint": { + "message": "マスターパスワードのヒントを受信するアカウントのメールアドレスを入力してください。" + }, + "getMasterPasswordHint": { + "message": "マスターパスワードのヒントを取得する" + }, + "emailRequired": { + "message": "メールアドレスは必須項目です。" + }, + "invalidEmail": { + "message": "無効なメールアドレスです。" + }, + "masterPassRequired": { + "message": "マスターパスワードは必須です。" + }, + "masterPassLength": { + "message": "マスターパスワードは、少なくとも8文字以上で設定してください。" + }, + "masterPassDoesntMatch": { + "message": "マスターパスワードが一致しません。" + }, + "newAccountCreated": { + "message": "新しいアカウントを作成しました!今すぐログインできます。" + }, + "masterPassSent": { + "message": "あなたのマスターパスワードのヒントを記載したメールを送信しました。" + }, + "unexpectedError": { + "message": "予期せぬエラーが発生しました。" + }, + "emailAddress": { + "message": "メールアドレス" + }, + "yourVaultIsLocked": { + "message": "保管庫がロックされています。開くにはマスターパスワードを入力してください。" + }, + "unlock": { + "message": "ロック解除" + }, + "loggedInAsEmailOn": { + "message": "$HOSTNAME$ の $EMAIL$ としてログインしました。", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "マスターパスワードが間違っています" + }, + "lockNow": { + "message": "今すぐロック" + }, + "noItemsInList": { + "message": "表示するアイテムがありません" + }, + "noCollectionsInList": { + "message": "表示するコレクションがありません" + }, + "noGroupsInList": { + "message": "表示するグループがありません" + }, + "noUsersInList": { + "message": "表示するユーザーがありません" + }, + "noEventsInList": { + "message": "表示するイベントがありません" + }, + "newOrganization": { + "message": "新しい組織" + }, + "noOrganizationsList": { + "message": "あなたはどの組織にも属していません。組織では他のユーザーとアイテムを安全に共有できます。" + }, + "versionNumber": { + "message": "バージョン $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "認証アプリに表示された6桁の認証コードを入力してください。" + }, + "enterVerificationCodeEmail": { + "message": "$EMAIL$ に送信された6桁の認証コードを入力してください。", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "$EMAIL$ に認証コードを送信しました。", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "情報を保存する" + }, + "sendVerificationCodeEmailAgain": { + "message": "確認コードをメールで再送" + }, + "useAnotherTwoStepMethod": { + "message": "他の2段階認証方法を使用" + }, + "insertYubiKey": { + "message": "YubiKey を USB ポートに挿入し、ボタンをタッチしてください。" + }, + "insertU2f": { + "message": "セキュリティキーを USB ポートに挿入し、ボタンがある場合はボタンをタッチしてください。" + }, + "loginUnavailable": { + "message": "ログインできません。" + }, + "noTwoStepProviders": { + "message": "このアカウントは2段階認証が有効ですが、このブラウザに対応した2段階認証プロパイダが一つも設定されていません。" + }, + "noTwoStepProviders2": { + "message": "Chrome などの対応したブラウザを使うか、より幅広い端末に対応した認証プロパイダを追加してください。" + }, + "twoStepOptions": { + "message": "2段階認証オプション" + }, + "recoveryCodeDesc": { + "message": "すべての2段階認証プロパイダにアクセスできなくなったときは、リカバリーコードを使用するとアカウントの2段階認証を無効化できます。" + }, + "recoveryCodeTitle": { + "message": "リカバリーコード" + }, + "authenticatorAppTitle": { + "message": "認証アプリ" + }, + "authenticatorAppDesc": { + "message": "Authy や Google 認証システムなどの認証アプリで時限式の認証コードを生成してください。", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP セキュリティキー" + }, + "yubiKeyDesc": { + "message": "YubiKey を使ってアカウントにアクセスできます。 YubiKey 4、4 Nano、4C、NEOに対応しています。" + }, + "duoDesc": { + "message": "Duo Mobile アプリや SMS、電話や U2F セキュリティキーを使って Duo Security で認証します。", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "組織の Duo Security を Duo Mobile アプリや SMS、電話、U2F セキュリティーキーを使用して認証します。", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "FIDO U2F が有効なセキュリティキーを使ってアカウントにアクセスできます。" + }, + "u2fTitle": { + "message": "FIDO U2F セキュリティキー" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "アカウントにアクセスするには、WebAuthn 対応のセキュリティキーを使用してください。" + }, + "webAuthnMigrated": { + "message": "(FIDOから統合)" + }, + "emailTitle": { + "message": "メールアドレス" + }, + "emailDesc": { + "message": "確認コードをメールにお送りします。" + }, + "continue": { + "message": "続ける" + }, + "organization": { + "message": "組織" + }, + "organizations": { + "message": "組織" + }, + "moveToOrgDesc": { + "message": "このアイテムを移動する組織を選択してください。組織に移動すると、アイテムの所有権がその組織に移行します。 このアイテムが移動された後、あなたはこのアイテムの直接の所有者にはなりません。" + }, + "moveManyToOrgDesc": { + "message": "このアイテムを移動する組織を選択してください。組織に移動すると、アイテムの所有権がその組織に移行します。 このアイテムが移動された後、あなたはこのアイテムの直接の所有者にはなりません。" + }, + "collectionsDesc": { + "message": "このアイテムを共有するコレクションを編集します。共有したアイテムは、当該コレクションにアクセスできる組織ユーザーにのみ表示されます。" + }, + "deleteSelectedItemsDesc": { + "message": "$COUNT$個のアイテムを削除しようとしています。本当にこれらのアイテムを削除しますか?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "$COUNT$個のアイテムを移動したいフォルダーを選択してください。", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "$COUNT$ アイテムを選択しました。 $MOVEABLE_COUNT$ アイテムは組織に移動できます。 $NONMOVEABLE_COUNT$ アイテムはできません。", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "認証コード (TOTP)" + }, + "copyVerificationCode": { + "message": "認証コードのコピー" + }, + "warning": { + "message": "注意" + }, + "confirmVaultExport": { + "message": "保管庫のエクスポートの確認" + }, + "exportWarningDesc": { + "message": "このエクスポートデータは暗号化されていない形式の保管庫データを含んでいます。メールなどのセキュリティ保護されていない方法で共有したり保管したりしないでください。使用した後はすぐに削除してください。" + }, + "encExportKeyWarningDesc": { + "message": "このエクスポートは、アカウントの暗号化キーを使用してデータを暗号化します。 暗号化キーをローテーションした場合は、このエクスポートファイルを復号することはできなくなるため、もう一度エクスポートする必要があります。" + }, + "encExportAccountWarningDesc": { + "message": "アカウント暗号化キーは各 Bitwarden ユーザーアカウントに固有であるため、暗号化されたエクスポートを別のアカウントにインポートすることはできません。" + }, + "export": { + "message": "エクスポート" + }, + "exportVault": { + "message": "保管庫のエクスポート" + }, + "fileFormat": { + "message": "ファイル形式" + }, + "exportSuccess": { + "message": "エクスポートされました。" + }, + "passwordGenerator": { + "message": "パスワード生成ツール" + }, + "minComplexityScore": { + "message": "最小複雑度" + }, + "minNumbers": { + "message": "数字の最小個数" + }, + "minSpecial": { + "message": "記号の最小数", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "あいまいな文字を省く" + }, + "regeneratePassword": { + "message": "パスワードの再生成" + }, + "length": { + "message": "長さ" + }, + "numWords": { + "message": "単語数" + }, + "wordSeparator": { + "message": "単語の区切り" + }, + "capitalize": { + "message": "先頭を大文字", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "数字を含む" + }, + "passwordHistory": { + "message": "パスワードの履歴" + }, + "noPasswordsInList": { + "message": "表示するパスワードがありません" + }, + "clear": { + "message": "消去する", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "アカウントを更新しました" + }, + "changeEmail": { + "message": "メールアドレスを変更" + }, + "changeEmailTwoFactorWarning": { + "message": "続行するとアカウントのメールアドレスが変更されます。2段階認証に使用されるメールアドレスは変更されません。必要に応じて2段階認証の設定で変更できます。" + }, + "newEmail": { + "message": "新しいメールアドレス" + }, + "code": { + "message": "コード" + }, + "changeEmailDesc": { + "message": "認証コードのメールを $EMAIL$ に送信しました。メールアドレスの変更を完了するには、メールを確認してコードを以下に入力してください。", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "次に進むと現在のセッションからログアウトし再度ログインが必要になります。他のデバイスでのセッションは1時間程度維持されます。" + }, + "emailChanged": { + "message": "メールアドレスの変更" + }, + "logBackIn": { + "message": "ログインし直してください" + }, + "logBackInOthersToo": { + "message": "ログインし直してください。他のBitwardenのアプリを使用している場合、同様にログインし直してください。" + }, + "changeMasterPassword": { + "message": "マスターパスワードの変更" + }, + "masterPasswordChanged": { + "message": "マスターパスワードが変更されました。" + }, + "currentMasterPass": { + "message": "現在のマスターパスワード" + }, + "newMasterPass": { + "message": "新しいマスターパスワード" + }, + "confirmNewMasterPass": { + "message": "新しいマスターパスワードの確認" + }, + "encKeySettings": { + "message": "暗号化の設定" + }, + "kdfAlgorithm": { + "message": "KDFアルゴリズム" + }, + "kdfIterations": { + "message": "KDF反復回数" + }, + "kdfIterationsDesc": { + "message": "KDF反復回数が多いほどマスターパスワードに対する総当たり攻撃に強くなります。$VALUE$以上を推奨します。", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "KDF反復回数が多すぎると遅いCPUのデバイスでログイン・ロック解除時のパフォーマンスが低下します。$INCREMENT$ずつ回数を増やし全てのデバイスでテストすることを推奨します。", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "KDFの変更" + }, + "encKeySettingsChanged": { + "message": "暗号化キーの設定が変更されました" + }, + "dangerZone": { + "message": "危険な操作" + }, + "dangerZoneDesc": { + "message": "これらの操作はやり直せないため注意してください!" + }, + "deauthorizeSessions": { + "message": "セッションの承認を取り消す" + }, + "deauthorizeSessionsDesc": { + "message": "あなたのアカウントに別のデバイスからログインされていますか? 以下で以前に使用したすべてのコンピューターやデバイスの認証を解除できます。 このステップは、以前に公共のコンピューターを使用した場合や、誤って他人のデバイスにパスワードを保存した場合におすすめです。 以前に記憶された二段階認証のログインセッションもすべてクリアされます。" + }, + "deauthorizeSessionsWarning": { + "message": "次に進むと現在のセッションからログアウトし二段階認証を含め再度ログインが必要になります。他のデバイスでのセッションは1時間程度維持されます。" + }, + "sessionsDeauthorized": { + "message": "全てのセッションを無効化" + }, + "purgeVault": { + "message": "保管庫を削除" + }, + "purgedOrganizationVault": { + "message": "組織の保管庫を削除" + }, + "vaultAccessedByProvider": { + "message": "保管庫がプロバイダーからアクセスされました。" + }, + "purgeVaultDesc": { + "message": "続行すると保管庫内のすべてのアイテムとフォルダーが削除されます。組織と共有しているアイテムは削除されません。" + }, + "purgeOrgVaultDesc": { + "message": "続行すると組織の保管庫内の全てのアイテムを削除します。" + }, + "purgeVaultWarning": { + "message": "保管庫を恒久的に削除します。元に戻すことはできません。" + }, + "vaultPurged": { + "message": "あなたの保管庫は削除されました。" + }, + "deleteAccount": { + "message": "アカウントの削除" + }, + "deleteAccountDesc": { + "message": "続行するとアカウントと関連するすべてのデータが削除されます。" + }, + "deleteAccountWarning": { + "message": "アカウントを恒久的に削除します。元に戻すことはできません。" + }, + "accountDeleted": { + "message": "アカウントが削除されました" + }, + "accountDeletedDesc": { + "message": "アカウントが削除され、すべての関連するデータが削除されました。" + }, + "myAccount": { + "message": "マイアカウント" + }, + "tools": { + "message": "ツール" + }, + "importData": { + "message": "データをインポート" + }, + "importError": { + "message": "インポートエラー" + }, + "importErrorDesc": { + "message": "インポートしようとしたデータに問題がありました。以下のエラーをソースファイルで解決し、もう一度やり直してください。" + }, + "importSuccess": { + "message": "データを保管庫にインポートしました。" + }, + "importWarning": { + "message": "$ORGANIZATION$にデータをインポートしています。データはこの組織のメンバーと共有される可能性があります。続行しますか?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "データが正しい形式ではありません。インポートするファイルを確認してやり直してください。" + }, + "importNothingError": { + "message": "何もインポートされませんでした。" + }, + "importEncKeyError": { + "message": "エクスポートされたファイルの復号でエラーが発生しました。暗号化キーが、データをエクスポートするために使用された暗号化キーと一致しません。" + }, + "selectFormat": { + "message": "インポートするファイルの形式を選択" + }, + "selectImportFile": { + "message": "インポートするファイルを選択" + }, + "orCopyPasteFileContents": { + "message": "またはインポートするファイルの中身をコピーして貼り付け" + }, + "instructionsFor": { + "message": "$NAME$ 向けの説明", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "オプション" + }, + "optionsDesc": { + "message": "ウェブ保管庫の動作をカスタマイズします。" + }, + "optionsUpdated": { + "message": "オプションを更新しました" + }, + "language": { + "message": "Language" + }, + "languageDesc": { + "message": "ウェブ保管庫で使用する言語を変更します。" + }, + "disableIcons": { + "message": "ウェブサイトアイコンの無効化" + }, + "disableIconsDesc": { + "message": "保管庫のアイテム毎にウェブサイトのアイコンを表示します。" + }, + "enableGravatars": { + "message": "Gravatar を有効化", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "gravatar.com から読み込んだアバター画像を使います。" + }, + "enableFullWidth": { + "message": "全幅レイアウトを有効化", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "ウェブ保管庫の幅をブラウザウインドウ一杯に広げます。" + }, + "default": { + "message": "デフォルト" + }, + "domainRules": { + "message": "ドメインルール" + }, + "domainRulesDesc": { + "message": "複数の異なるドメインで同じログイン情報を用いることができます。「グローバルドメイン」はBitwardenにより予め作成されたものです。" + }, + "globalEqDomains": { + "message": "グローバルドメイン" + }, + "customEqDomains": { + "message": "カスタムドメイン" + }, + "exclude": { + "message": "無効化" + }, + "include": { + "message": "有効化" + }, + "customize": { + "message": "カスタマイズ" + }, + "newCustomDomain": { + "message": "新規カスタムドメイン" + }, + "newCustomDomainDesc": { + "message": "コンマで区切ったドメインリストを入力します。サブドメインを除いて入力してください。例えば、\"www.google.com\"ではなく\"google.com\"を入力します。\"androidapp://package.name\"の形式で入力することでドメインとAndroidアプリを関連付けることもできます。" + }, + "customDomainX": { + "message": "カスタムドメイン $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "ドメインが更新されました" + }, + "twoStepLogin": { + "message": "2段階認証" + }, + "twoStepLoginDesc": { + "message": "ログイン時に追加の手順を必要としアカウントを保護します。" + }, + "twoStepLoginOrganizationDesc": { + "message": "組織レベルで認証プロバイダを設定することで、組織のユーザーに二段階の認証を必要とします。" + }, + "twoStepLoginRecoveryWarning": { + "message": "二段階認証を有効にすると Bitwarden アカウントから永久に閉め出されてしまうことがあります。リカバリーコードがあれば、通常の二段階認証プロバイダを使えなくなったとき(デバイスの紛失等)でもアカウントにアクセスできます。アカウントにアクセスできなくなっても Bitwarden はサポート出来ないため、リカバリーコードを書き出すか印刷し安全な場所で保管しておくことを推奨します。" + }, + "viewRecoveryCode": { + "message": "リカバリーコードを確認" + }, + "providers": { + "message": "プロバイダ", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "有効化" + }, + "enabled": { + "message": "有効化されました" + }, + "premium": { + "message": "プレミアム版", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "プレミアム会員" + }, + "premiumRequired": { + "message": "プレミアム会員専用" + }, + "premiumRequiredDesc": { + "message": "この機能はプレミアム会員専用です。" + }, + "youHavePremiumAccess": { + "message": "あなたはプレミアム会員です。" + }, + "alreadyPremiumFromOrg": { + "message": "あなたが属している組織のおかげで、あなたは既にプレミアム機能が利用可能です。" + }, + "manage": { + "message": "管理" + }, + "disable": { + "message": "無効化" + }, + "twoStepLoginProviderEnabled": { + "message": "この二段階認証プロバイダは、あなたのアカウントで有効になっています。" + }, + "twoStepLoginAuthDesc": { + "message": "二段階認証の設定を変更するためにマスターパスワードを入力して下さい。" + }, + "twoStepAuthenticatorDesc": { + "message": "認証アプリによる二段階認証を設定するために必要な手順:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "二段階認証アプリをダウンロード" + }, + "twoStepAuthenticatorNeedApp": { + "message": "二段階認証アプリが必要ですか?以下からダウンロードして下さい。" + }, + "iosDevices": { + "message": "iOS デバイス" + }, + "androidDevices": { + "message": "Android デバイス" + }, + "windowsDevices": { + "message": "Windows デバイス" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "これらのアプリがお勧めですが、他の認証アプリでも動作します。" + }, + "twoStepAuthenticatorScanCode": { + "message": "認証アプリでQRコードをスキャンして下さい。" + }, + "key": { + "message": "キー" + }, + "twoStepAuthenticatorEnterCode": { + "message": "認証アプリに表示された6桁の確認コードを入力して下さい。" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "別のデバイスの認証アプリを利用する場合、以下のQRコード(またはキー)が必要となります。" + }, + "twoStepDisableDesc": { + "message": "この二段階認証プロバイダを無効にしますか?" + }, + "twoStepDisabled": { + "message": "二段階認証プロバイダが無効化されました。" + }, + "twoFactorYubikeyAdd": { + "message": "アカウントに新しい YubiKey を追加する" + }, + "twoFactorYubikeyPlugIn": { + "message": "YubiKey をコンピューターの USB ポートに挿入してください。" + }, + "twoFactorYubikeySelectKey": { + "message": "最初の未入力の YubiKey 入力フィールドを選択してください。" + }, + "twoFactorYubikeyTouchButton": { + "message": "YubiKey のボタンにタッチします。" + }, + "twoFactorYubikeySaveForm": { + "message": "フォームを保存します。" + }, + "twoFactorYubikeyWarning": { + "message": "プラットフォームの制限により YubiKey は Bitwarden のアプリケーションのすべてで使用できるわけではありません。他の二段階認証プロバイダを有効化しておくと、YubiKey が使用できない場合でもアカウントにアクセスできます。対応プラットフォーム:" + }, + "twoFactorYubikeySupportUsb": { + "message": "ウェブ保管庫、デスクトップアプリ、コマンドラインツール、USBポートのあるデバイス上のブラウザ拡張機能では YubiKey を使用できます。" + }, + "twoFactorYubikeySupportMobile": { + "message": "NFCまたはUSBポートのあるデバイスのモバイルアプリではYubiKeyを使用できます。" + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F対応キー $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC対応" + }, + "twoFactorYubikeySupportsNfc": { + "message": "NFC対応のYubiKeyが含まれています" + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "NFC対応のYubiKey(YubiKey NEOなど)が含まれる場合、NFC対応のモバイルデバイスで確認画面が表示されます。" + }, + "yubikeysUpdated": { + "message": "YubiKeyが更新されました" + }, + "disableAllKeys": { + "message": "すべてのキーを無効化" + }, + "twoFactorDuoDesc": { + "message": "Bitwardenアプリの情報をDuoの管理パネルから入力して下さい。" + }, + "twoFactorDuoIntegrationKey": { + "message": "連携キー" + }, + "twoFactorDuoSecretKey": { + "message": "秘密鍵" + }, + "twoFactorDuoApiHostname": { + "message": "API のホスト名" + }, + "twoFactorEmailDesc": { + "message": "Eメールによる二段階認証を設定するために必要な手順:" + }, + "twoFactorEmailEnterEmail": { + "message": "認証コードを受信したいメールアドレスを入力して下さい。" + }, + "twoFactorEmailEnterCode": { + "message": "Eメールに記載された6桁の認証コードを入力して下さい。" + }, + "sendEmail": { + "message": "メールを送信" + }, + "twoFactorU2fAdd": { + "message": "FIDO U2F対応キーをアカウントに追加" + }, + "removeU2fConfirmation": { + "message": "本当にこのセキュリティキーを削除しますか?" + }, + "twoFactorWebAuthnAdd": { + "message": "WebAuthnセキュリティキーをアカウントに追加" + }, + "readKey": { + "message": "読み取りキー" + }, + "keyCompromised": { + "message": "キーが壊れています。" + }, + "twoFactorU2fGiveName": { + "message": "セキュリティキーを識別するための名前を追加します。" + }, + "twoFactorU2fPlugInReadKey": { + "message": "セキュリティキーをコンピューターのUSBポートに差し込み、「読み取りキー」ボタンをクリックしてください。" + }, + "twoFactorU2fTouchButton": { + "message": "セキュリティキーにボタンがある場合、タッチして下さい。" + }, + "twoFactorU2fSaveForm": { + "message": "フォームを保存します。" + }, + "twoFactorU2fWarning": { + "message": "プラットフォームの制限によりFIDO U2F対応キーはBitwardenのアプリケーションのすべてで使用できるわけではありません。他の二段階認証プロバイダを有効化しておくと、FIDO U2F対応キーが使用できない場合でもアカウントにアクセスできます。サポートされるプラットフォーム:" + }, + "twoFactorU2fSupportWeb": { + "message": "ウェブ保管庫とU2Fに対応したブラウザ(Chrome、Opera、Vivaldi、Firefox)のブラウザ拡張機能" + }, + "twoFactorU2fWaiting": { + "message": "セキュリティキーのボタンがタッチされるのを待っています。" + }, + "twoFactorU2fClickSave": { + "message": "このセキュリティキーを二段階認証で有効化するには、「保存」ボタンをクリックして下さい。" + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "セキュリティキーの読み取り中に問題が発生しました。もう一度やり直して下さい。" + }, + "twoFactorWebAuthnWarning": { + "message": "プラットフォームの制限により、WebAuthnはBitwardenの全てのアプリケーションで使用できるわけではありません。WebAuthnが使用できない場合に備えて、他の二段階認証プロバイダを有効化しておくことをおすすめします。サポートされているプラットフォーム:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "二段階認証のリカバリーコード" + }, + "twoFactorRecoveryNoCode": { + "message": "あなたはまだ二段階認証プロバイダを有効化していません。有効化すると、ここでリカバリーコードを確認できます。" + }, + "printCode": { + "message": "コードを印刷する", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "レポート" + }, + "reportsDesc": { + "message": "以下のレポートをクリックして、オンラインアカウントのセキュリティギャップを特定して修正してください。" + }, + "unsecuredWebsitesReport": { + "message": "非セキュアウェブサイト調査" + }, + "unsecuredWebsitesReportDesc": { + "message": "http://方式のセキュリティ保護されていないウェブサイトは危険です。ウェブサイトが対応していれば、接続が暗号化されるhttps://方式を常時利用すべきです。" + }, + "unsecuredWebsitesFound": { + "message": "セキュリティ保護されていないウェブサイトが見つかりました" + }, + "unsecuredWebsitesFoundDesc": { + "message": "セキュアでないURIが$COUNT$個のアイテムで見つかりました。ウェブサイトが対応しているならば、URIをhttps://形式に変更すべきです。", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "セキュアでないURIを持つアイテムは見つかりませんでした。" + }, + "inactive2faReport": { + "message": "非アクティブ二段階認証調査" + }, + "inactive2faReportDesc": { + "message": "二段階認証(2FA)はアカウントをセキュアにするのを助ける重要なセキュリティ設定です。ウェブサイトが対応している場合、二段階認証を常時有効化すべきです。" + }, + "inactive2faFound": { + "message": "二段階認証を利用していないアイテムが見つかりました" + }, + "inactive2faFoundDesc": { + "message": "保管庫内に二段階認証(ウェブサイトが対応しているかはtwofactorauth.orgによる情報)が設定されていない可能性がある$COUNT$個のウェブサイトが見つかりました。これらのアカウントをよりセキュアにするため、二段階認証を有効化すべきです。", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "二段階認証が設定されていないアイテムは見つかりませんでした。" + }, + "instructions": { + "message": "使い方" + }, + "exposedPasswordsReport": { + "message": "流出パスワード調査" + }, + "exposedPasswordsReportDesc": { + "message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers." + }, + "exposedPasswordsFound": { + "message": "流出したパスワードが見つかりました" + }, + "exposedPasswordsFoundDesc": { + "message": "既知のデータ流出で公開されていたパスワードが $COUNT$ 個のアイテムで見つかりました。これらは新しいパスワードへ変更すべきです。", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "既知のデータ流出で公開されているパスワードは見つかりませんでした。" + }, + "checkExposedPasswords": { + "message": "流出したパスワードを確認" + }, + "exposedXTimes": { + "message": "流出 $COUNT$回", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "脆弱パスワード調査" + }, + "weakPasswordsReportDesc": { + "message": "脆弱なパスワードは、ハッカーによって簡単に推測することができ、また自動化されたツールでパスワードが解析されます。Bitwardenのパスワード生成ツールを使用すると、強力なパスワードを作成することができます。" + }, + "weakPasswordsFound": { + "message": "脆弱なパスワードが見つかりました" + }, + "weakPasswordsFoundDesc": { + "message": "保管庫内に$COUNT$個の強力でないパスワードが見つかりました。もっと強力なパスワードへ更新すべきです。", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "脆弱なパスワードは見つかりませんでした。" + }, + "reusedPasswordsReport": { + "message": "再利用パスワード調査" + }, + "reusedPasswordsReportDesc": { + "message": "あなたが使用するサービスのデータが流出し、同じパスワードを他でも利用していた場合、ハッカーは簡単に複数のオンラインアカウントへのアクセスが可能となります。すべてのアカウント・サービスでそれぞれ異なるパスワードを使用すべきです。" + }, + "reusedPasswordsFound": { + "message": "再利用しているパスワードが見つかりました。" + }, + "reusedPasswordsFoundDesc": { + "message": "$COUNT$個の再利用しているパスワードが見つかりました。それぞれ異なるパスワードへ変更すべきです。", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "再利用しているパスワードは見つかりませんでした。" + }, + "reusedXTimes": { + "message": "再利用 $COUNT$回", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "情報漏えい調査" + }, + "breachDesc": { + "message": "ハッカーに不正にアクセスされ、サイトのデータが流出した事件の情報から、あなたのメールアドレス、パスワード、クレジットカードなどが危険に晒されていないかを調査し、パスワード変更など適切な対処を行いましょう。" + }, + "breachCheckUsernameEmail": { + "message": "チェックしたいユーザー名またはメールアドレスを入力して下さい。" + }, + "checkBreaches": { + "message": "調査する" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$は漏えいデータ内に見つかりませんでした。", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "良いお知らせです!", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$は$COUNT$つの漏えいデータ内で見つかりました。", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "漏えいデータが見つかりました" + }, + "compromisedData": { + "message": "漏えいしたデータ" + }, + "website": { + "message": "ウェブサイト" + }, + "affectedUsers": { + "message": "影響を受けるユーザー" + }, + "breachOccurred": { + "message": "発生日" + }, + "breachReported": { + "message": "報告日" + }, + "reportError": { + "message": "調査データのロード中にエラーが発生しました。もう一度やり直して下さい。" + }, + "billing": { + "message": "料金" + }, + "accountCredit": { + "message": "アカウント クレジット", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "アカウント残高", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "クレジットの追加", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "金額", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "支払いが完全に処理された後、追加のクレジットがアカウントに表示されます。お支払い方法によっては、遅延したり他の方法よりも処理に時間が掛かることがあります。" + }, + "makeSureEnoughCredit": { + "message": "購入に使用できるだけのクレジットが登録されているか確認してください。使用可能なクレジットが不足している場合、差額にはデフォルトのお支払い方法が利用されます。「料金」ページから悪ントにクレジットを追加できます。" + }, + "creditAppliedDesc": { + "message": "アカウントに登録されたクレジットは購入に使用できます。使用可能なクレジットは、このアカウントへの請求に自動的に適用されます。" + }, + "goPremium": { + "message": "プレミアム版にアップグレード", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "プレミアム版にアップグレードされました。" + }, + "premiumUpgradeUnlockFeatures": { + "message": "プレミアム会員にアップグレードして他の素晴らしい追加機能を使えるようにします。" + }, + "premiumSignUpStorage": { + "message": "1GB の暗号化されたファイルストレージ" + }, + "premiumSignUpTwoStep": { + "message": "YubiKey、FIDO U2F、Duoなどの追加の2段階認証ログインオプション" + }, + "premiumSignUpEmergency": { + "message": "緊急アクセス" + }, + "premiumSignUpReports": { + "message": "保管庫を安全に保つための、パスワードやアカウントの健全性、データ侵害に関するレポート" + }, + "premiumSignUpTotp": { + "message": "保管庫内での2段階認証コード生成" + }, + "premiumSignUpSupport": { + "message": "優先カスタマーサポート" + }, + "premiumSignUpFuture": { + "message": "将来のプレミアム機能すべて(詳細は近日公開予定!)" + }, + "premiumPrice": { + "message": "全部で年間たった$PRICE$!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "アドオン" + }, + "premiumAccess": { + "message": "プレミアムアクセス" + }, + "premiumAccessDesc": { + "message": "$PRICE$/$INTERVAL$で、あなたの組織のすべてのメンバーにプレミアム機能を付帯できます。", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "追加ストレージ容量(GB)" + }, + "additionalStorageGbDesc": { + "message": "# 追加容量(GB)" + }, + "additionalStorageIntervalDesc": { + "message": "あなたのプランは$SIZE$の暗号化ファイルストレージを使用できます。1GBあたり$PRICE$/$INTERVAL$でストレージ容量を追加できます。", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "概要" + }, + "total": { + "message": "合計" + }, + "year": { + "message": "年" + }, + "month": { + "message": "月" + }, + "monthAbbr": { + "message": "月", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "お支払い方法はすぐに変更され、毎年定期的に課金されます。いつでもキャンセルできます。" + }, + "paymentCharged": { + "message": "お支払い方法はすぐに変更され、$INTERVAL$ごとに課金されます。いつでもキャンセルできます。", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "ご利用のプランでは、7日間の無料トライアルが可能です。トライアル期間が終わるまでは課金されません。トライアル終了後、$INTERVAL$毎に請求されます。いつでもキャンセルできます。" + }, + "paymentInformation": { + "message": "お支払い情報" + }, + "billingInformation": { + "message": "請求情報" + }, + "creditCard": { + "message": "クレジットカード" + }, + "paypalClickSubmit": { + "message": "PayPalボタンからPayPalアカウントにログインし、送信ボタンをクリックし続行して下さい。" + }, + "cancelSubscription": { + "message": "契約のキャンセル" + }, + "subscriptionCanceled": { + "message": "契約はキャンセルされました。" + }, + "pendingCancellation": { + "message": "保留中のキャンセル" + }, + "subscriptionPendingCanceled": { + "message": "契約は現在の請求期間の終期にキャンセルされます。" + }, + "reinstateSubscription": { + "message": "契約の再開" + }, + "reinstateConfirmation": { + "message": "本当に保留中のキャンセルを削除して契約を再開しますか?" + }, + "reinstated": { + "message": "契約が再開されました。" + }, + "cancelConfirmation": { + "message": "本当にキャンセルしますか?契約していたすべての追加機能が請求期間の終期で利用できなくなります。" + }, + "canceledSubscription": { + "message": "契約はキャンセルされました。" + }, + "neverExpires": { + "message": "無期限" + }, + "status": { + "message": "ステータス" + }, + "nextCharge": { + "message": "次回の請求" + }, + "details": { + "message": "詳細" + }, + "downloadLicense": { + "message": "ライセンスのダウンロード" + }, + "updateLicense": { + "message": "ライセンスの更新" + }, + "updatedLicense": { + "message": "ライセンスは更新されました" + }, + "manageSubscription": { + "message": "契約の管理" + }, + "storage": { + "message": "ストレージ" + }, + "addStorage": { + "message": "ストレージの追加" + }, + "removeStorage": { + "message": "追加したストレージの削除" + }, + "subscriptionStorage": { + "message": "あなたの契約は合計$MAX_STORAGE$GBの暗号化ファイルストレージを利用できます。現在、$USED_STORAGE$使用しています。", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "お支払い方法" + }, + "noPaymentMethod": { + "message": "お支払い方法が登録されていません。" + }, + "addPaymentMethod": { + "message": "お支払い方法を追加" + }, + "changePaymentMethod": { + "message": "お支払い方法の変更" + }, + "invoices": { + "message": "請求" + }, + "noInvoices": { + "message": "請求なし" + }, + "paid": { + "message": "支払済み", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "未払い", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "取引", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "取引はありません" + }, + "chargeNoun": { + "message": "料金", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "払い戻し", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "料金は$STATEMENT_NAME$と明細に表示されます。", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "追加するストレージ容量(GB)" + }, + "gbStorageRemove": { + "message": "削除するストレージ容量(GB)" + }, + "storageAddNote": { + "message": "ストレージ容量を追加すると、請求金額が変更され、登録されたお支払い方法に直ちに差額が請求されます。初めに請求された分は現在の請求期間の残りの期間で按分されます。" + }, + "storageRemoveNote": { + "message": "ストレージ容量を削除すると、請求金額が変更され、差額は次回請求時のクレジットとして割り当てられます。" + }, + "adjustedStorage": { + "message": "ストレージ容量が$AMOUNT$GBに変更されました。", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "カスタマーサポートに連絡" + }, + "updatedPaymentMethod": { + "message": "お支払い方法を更新しました。" + }, + "purchasePremium": { + "message": "プレミアム会員に加入" + }, + "licenseFile": { + "message": "ライセンスファイル" + }, + "licenseFileDesc": { + "message": "ライセンスファイルは$FILE_NAME$のような名前のものです。", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "プレミアム会員にアップグレードするには、有効なライセンスファイルをアップロードする必要があります。" + }, + "uploadLicenseFileOrg": { + "message": "オンプレミス型の組織を作成するには、正しいライセンスファイルをアップロードする必要があります。" + }, + "accountEmailMustBeVerified": { + "message": "アカウントのメールアドレスを確認する必要があります。" + }, + "newOrganizationDesc": { + "message": "組織では、保管庫のアイテムを共有したり家族・小規模チーム・大企業など特定のグループに関連するユーザーを管理することができます。" + }, + "generalInformation": { + "message": "一般情報" + }, + "organizationName": { + "message": "組織名" + }, + "accountOwnedBusiness": { + "message": "このアカウントはビジネス用です。" + }, + "billingEmail": { + "message": "お支払い用メールアドレス" + }, + "businessName": { + "message": "企業名" + }, + "chooseYourPlan": { + "message": "プランを選択してください" + }, + "users": { + "message": "ユーザー" + }, + "userSeats": { + "message": "ユーザー数" + }, + "additionalUserSeats": { + "message": "追加ユーザー数" + }, + "userSeatsDesc": { + "message": "# ユーザー数" + }, + "userSeatsAdditionalDesc": { + "message": "$BASE_SEATS$ユーザーまで利用できます。1ユーザーあたり月$SEAT_PRICE$で追加できます。", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "どれくらいのユーザー数が必要ですか?必要なときに後から追加することもできます。" + }, + "planNameFree": { + "message": "フリー", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "テスト目的や個人ユーザーは$COUNT$人の他のユーザーと共有できます。", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "ファミリー" + }, + "planDescFamilies": { + "message": "個人利用の場合、家族や友人と共有できます。" + }, + "planNameTeams": { + "message": "チーム" + }, + "planDescTeams": { + "message": "ビジネスやチーム組織のために。" + }, + "planNameEnterprise": { + "message": "エンタープライズ" + }, + "planDescEnterprise": { + "message": "ビジネスやその他の大きな組織のために。" + }, + "freeForever": { + "message": "永久に無料" + }, + "includesXUsers": { + "message": "$COUNT$ユーザーを含む", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "追加ユーザー" + }, + "costPerUser": { + "message": "1ユーザーにつき$COST$", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "あなたを含め$COUNT$ユーザーに限ります。", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "$COUNT$コレクションに限ります。", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "最大$COUNT$ユーザーとの共有", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "無制限の人数との共有" + }, + "createUnlimitedCollections": { + "message": "コレクション数無制限" + }, + "gbEncryptedFileStorage": { + "message": "暗号化ストレージ:$SIZE$", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "オンプレミス型ホスティング(オプション)" + }, + "usersGetPremium": { + "message": "ユーザーはプレミアム会員の機能を利用できます" + }, + "controlAccessWithGroups": { + "message": "グループ単位でユーザーのアクセス権を管理" + }, + "syncUsersFromDirectory": { + "message": "ユーザーとグループのディレクトリサービスからの同期" + }, + "trackAuditLogs": { + "message": "ユーザーの操作を確認できる監査ログ" + }, + "enforce2faDuo": { + "message": "Duoによる二段階認証を強制" + }, + "priorityCustomerSupport": { + "message": "優先カスタマーサポート" + }, + "xDayFreeTrial": { + "message": "$COUNT$日間の無料試用、いつでもキャンセル可能", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "1ヶ月" + }, + "annually": { + "message": "1年" + }, + "basePrice": { + "message": "基本価格" + }, + "organizationCreated": { + "message": "組織を作成しました" + }, + "organizationReadyToGo": { + "message": "新しい組織の準備ができました!" + }, + "organizationUpgraded": { + "message": "組織がアップグレードされました。" + }, + "leave": { + "message": "脱退" + }, + "leaveOrganizationConfirmation": { + "message": "本当にこの組織から脱退しますか?" + }, + "leftOrganization": { + "message": "組織から脱退しました。" + }, + "defaultCollection": { + "message": "既定のコレクション" + }, + "getHelp": { + "message": "ヘルプを参照する" + }, + "getApps": { + "message": "アプリを入手する" + }, + "loggedInAs": { + "message": "ログイン中のアカウント:" + }, + "eventLogs": { + "message": "イベントログ" + }, + "people": { + "message": "メンバー" + }, + "policies": { + "message": "方針" + }, + "singleSignOn": { + "message": "シングルサインオン(SSO)" + }, + "editPolicy": { + "message": "方針を編集" + }, + "groups": { + "message": "グループ" + }, + "newGroup": { + "message": "新規グループ" + }, + "addGroup": { + "message": "グループの追加" + }, + "editGroup": { + "message": "グループの編集" + }, + "deleteGroupConfirmation": { + "message": "本当にこのグループを削除してもよろしいですか?" + }, + "removeUserConfirmation": { + "message": "本当にこのユーザーを削除してもよろしいですか?" + }, + "removeUserConfirmationKeyConnector": { + "message": "警告! このユーザーは暗号化を管理するためにキー コネクタが必要です。 このユーザーを組織から削除すると、アカウントが完全に無効になります。この操作は元に戻せません。続行しますか?" + }, + "externalId": { + "message": "外部ID" + }, + "externalIdDesc": { + "message": "外部 ID は参照用や、ユーザーディレクトリーなどの外部システムへリソースをリンクするために使用できます。" + }, + "accessControl": { + "message": "アクセスコントロール" + }, + "groupAccessAllItems": { + "message": "全てのアイテムの読み取り・編集" + }, + "groupAccessSelectedCollections": { + "message": "選択コレクション内のアクセス" + }, + "readOnly": { + "message": "読み取り専用" + }, + "newCollection": { + "message": "新規コレクション" + }, + "addCollection": { + "message": "コレクションの追加" + }, + "editCollection": { + "message": "コレクションの編集" + }, + "deleteCollectionConfirmation": { + "message": "本当にこのコレクションを削除しますか?" + }, + "editUser": { + "message": "ユーザーの編集" + }, + "inviteUser": { + "message": "ユーザーの招待" + }, + "inviteUserDesc": { + "message": "組織に新しいユーザーを招待するには、そのユーザーのBitwardenアカウントのメールアドレスを入力して下さい。Bitwardenアカウントをお持ちでない場合は、アカウントの作成を求められます。" + }, + "inviteMultipleEmailDesc": { + "message": "「,」でメールアドレスを区切ることで、一度に最大$COUNT$ユーザーを招待できます。", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "このユーザーはアカウントを保護するため二段階認証を利用しています。" + }, + "userAccessAllItems": { + "message": "全てのアイテムの読み取り・編集" + }, + "userAccessSelectedCollections": { + "message": "選択コレクション内のアクセス" + }, + "search": { + "message": "検索" + }, + "invited": { + "message": "招待済み" + }, + "accepted": { + "message": "承諾済み" + }, + "confirmed": { + "message": "確認済み" + }, + "clientOwnerEmail": { + "message": "クライアントの管理者のメールアドレス" + }, + "owner": { + "message": "オーナー" + }, + "ownerDesc": { + "message": "組織内のすべてを管理できる最高のアクセス権を与えます" + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "管理者" + }, + "adminDesc": { + "message": "管理者はあなたの組織のすべてのアイテム、コレクション、ユーザーへアクセス・管理できます。" + }, + "user": { + "message": "ユーザー" + }, + "userDesc": { + "message": "あなたの組織に割り当てられたコレクションへのアクセス権を持つ標準ユーザーです。" + }, + "manager": { + "message": "マネージャー" + }, + "managerDesc": { + "message": "マネージャーは組織内の割り当てられたコレクションへアクセスし管理することができます。" + }, + "all": { + "message": "すべて" + }, + "refresh": { + "message": "更新" + }, + "timestamp": { + "message": "タイムスタンプ" + }, + "event": { + "message": "イベント" + }, + "unknown": { + "message": "不明" + }, + "loadMore": { + "message": "もっと見る" + }, + "mobile": { + "message": "モバイル", + "description": "Mobile app" + }, + "extension": { + "message": "拡張機能", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "デスクトップ", + "description": "Desktop app" + }, + "webVault": { + "message": "ウェブ保管庫" + }, + "loggedIn": { + "message": "ログイン" + }, + "changedPassword": { + "message": "パスワードの変更" + }, + "enabledUpdated2fa": { + "message": "二段階認証の有効化/更新" + }, + "disabled2fa": { + "message": "二段階認証の無効化" + }, + "recovered2fa": { + "message": "リカバリーコードによる認証" + }, + "failedLogin": { + "message": "誤ったパスワードによるログインの失敗" + }, + "failedLogin2fa": { + "message": "二段階認証時の誤りによるログインの失敗" + }, + "exportedVault": { + "message": "保管庫をエクスポートしました。" + }, + "exportedOrganizationVault": { + "message": "組織の保管庫をエクスポートしました。" + }, + "editedOrgSettings": { + "message": "組織の設定の編集" + }, + "createdItemId": { + "message": "アイテム「$ID$」の作成", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "アイテム「$ID$」の編集", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "アイテム「$ID$」の削除", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "アイテム $ID$ を組織に移動しました。", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "アイテム $ID$ を表示しました。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "アイテム $ID$ のパスワードを表示しました。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "アイテム $ID$ の隠しフィールドを表示しました。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "アイテム $ID$ のセキュリティコードを表示しました。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "アイテム $ID$ のパスワードをコピーしました。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "アイテム $ID$ の隠しフィールドをコピーしました。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "アイテム $ID$ のセキュリティコードをコピーしました。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "アイテム $ID$ を自動入力しました。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "コレクション「$ID$」の作成", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "コレクション「$ID$」の編集", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "コレクション「$ID$」の削除", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "編集された方針:$ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "グループ「$ID$」の作成", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "グループ「$ID$」の編集", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "グループ「$ID$」の削除", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "ユーザー「$ID$」の削除", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "アイテム「$ID$」の添付ファイルの作成", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "アイテム「$ID$」の添付ファイルの削除", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "アイテム「$ID$」のコレクションの編集", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "ユーザー「$ID$」の招待", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "ユーザー「$ID$」の確認", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "ユーザー「$ID$」の編集", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "ユーザー「$ID$」のグループの編集", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "ユーザー $ID$ にリンクされていない SSO", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "デバイス" + }, + "view": { + "message": "表示" + }, + "invalidDateRange": { + "message": "日付範囲が正しくありません。" + }, + "errorOccurred": { + "message": "エラーが発生しました。" + }, + "userAccess": { + "message": "ユーザーのアクセス" + }, + "userType": { + "message": "ユーザーの種類" + }, + "groupAccess": { + "message": "グループのアクセス" + }, + "groupAccessUserDesc": { + "message": "このユーザーが属するグループを編集します。" + }, + "invitedUsers": { + "message": "ユーザーを招待します。" + }, + "resendInvitation": { + "message": "招待を再送信" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$が再招待されました。", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "確認" + }, + "confirmUser": { + "message": "ユーザーの確認" + }, + "hasBeenConfirmed": { + "message": "$USER$が確認されました。", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "ユーザーの確認" + }, + "usersNeedConfirmed": { + "message": "招待を受け入れ確認待ちのユーザーがいます。未確認のユーザーは組織にアクセスできません。" + }, + "startDate": { + "message": "開始日時" + }, + "endDate": { + "message": "終了日時" + }, + "verifyEmail": { + "message": "メールアドレスを確認" + }, + "verifyEmailDesc": { + "message": "メールアドレスを確認するとすべての機能が使用できます。" + }, + "verifyEmailFirst": { + "message": "アカウントのメールアドレスを確認する必要があります。" + }, + "checkInboxForVerification": { + "message": "確認用のリンクが記載されたメールをチェックしてください。" + }, + "emailVerified": { + "message": "メールアドレスが確認されました。" + }, + "emailVerifiedFailed": { + "message": "メールアドレスを確認できませんでした。確認メールを再送信してください。" + }, + "emailVerificationRequired": { + "message": "メールアドレスの確認が必要です" + }, + "emailVerificationRequiredDesc": { + "message": "この機能を使用するにはメールアドレスを確認する必要があります。" + }, + "updateBrowser": { + "message": "ブラウザを更新" + }, + "updateBrowserDesc": { + "message": "サポートされていないブラウザを使用しています。ウェブ保管庫が正しく動作しないかもしれません。" + }, + "joinOrganization": { + "message": "組織に参加" + }, + "joinOrganizationDesc": { + "message": "あなたは上記の組織への参加の招待を受けています。招待を承諾するには、ログインするかBitwardenアカウントを作成してください。" + }, + "inviteAccepted": { + "message": "招待が承諾されました。" + }, + "inviteAcceptedDesc": { + "message": "組織の管理者が承認すると組織へアクセスできるようになります。アクセスできるようになったらメールでお知らせします。" + }, + "inviteAcceptFailed": { + "message": "招待を承諾出来ませんでした。組織の管理者に招待を再送信するように依頼してください。" + }, + "inviteAcceptFailedShort": { + "message": "招待を受けることができません。$DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "メールアドレスを保存" + }, + "recoverAccountTwoStepDesc": { + "message": "もし通常の二段階認証の方法でアカウントにアクセスできなくなった場合、リカバリーコードにより全ての二段階認証プロバイダを無効化することができます。" + }, + "recoverAccountTwoStep": { + "message": "二段階認証ログインの回復" + }, + "twoStepRecoverDisabled": { + "message": "二段階認証が無効化されました。" + }, + "learnMore": { + "message": "詳細" + }, + "deleteRecoverDesc": { + "message": "メールアドレスを入力してアカウントを削除します。" + }, + "deleteRecoverEmailSent": { + "message": "アカウントが存在する場合、詳細な手順を記載したメールを送信しました。" + }, + "deleteRecoverConfirmDesc": { + "message": "Bitwardenアカウント削除のリクエストがありました。削除する場合はボタンをクリックしてください。" + }, + "myOrganization": { + "message": "組織" + }, + "deleteOrganization": { + "message": "組織の削除" + }, + "deletingOrganizationContentWarning": { + "message": "$ORGANIZATION$ と関連するすべてのデータの削除を確認するためにマスターパスワードを入力してください。 $ORGANIZATION$ の保管庫データは下記を含みます:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "削除後もユーザーアカウントはアクティブになりますが、この組織に関連付けられなくなります。" + }, + "deletingOrganizationIsPermanentWarning": { + "message": "$ORGANIZATION$ を削除すると元に戻せません。", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "組織が削除されました。" + }, + "organizationDeletedDesc": { + "message": "組織と関連するすべてのデータが削除されました。" + }, + "organizationUpdated": { + "message": "組織を更新しました" + }, + "taxInformation": { + "message": "税金情報" + }, + "taxInformationDesc": { + "message": "請求書に税務情報を提供(更新)する場合、サポートにご連絡ください。" + }, + "billingPlan": { + "message": "プラン", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "プラン変更", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "下記の情報を入力してアカウントを他のプランにアップグレードしてください。アカウントに有効な支払い方法が追加されていることを確認してください。", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "請求 #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "請求を確認" + }, + "downloadInvoice": { + "message": "請求書ダウンロード" + }, + "verifyBankAccount": { + "message": "銀行口座の認証" + }, + "verifyBankAccountDesc": { + "message": "あなたの銀行口座に2件の少額送金を行います(着金まで1-2営業日かかります)。送金された金額を入力して銀行口座の確認を完了してください。" + }, + "verifyBankAccountInitialDesc": { + "message": "銀行口座によるお支払いはアメリカ合衆国のお客様のみ利用でき銀行口座の確認が必要となります。1-2営業日以内に2件の少額送金を行いますので、組織のお支払いページから送金された金額を入力して銀行口座の確認を完了して下さい。" + }, + "verifyBankAccountFailureWarning": { + "message": "銀行口座の確認に失敗するとお支払いはキャンセルされ契約は無効となります。" + }, + "verifiedBankAccount": { + "message": "銀行口座が確認されました。" + }, + "bankAccount": { + "message": "銀行口座" + }, + "amountX": { + "message": "送金$COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "ルーティングナンバー", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "口座番号" + }, + "accountHolderName": { + "message": "口座名義人" + }, + "bankAccountType": { + "message": "口座種別" + }, + "bankAccountTypeCompany": { + "message": "ビジネス" + }, + "bankAccountTypeIndividual": { + "message": "個人" + }, + "enterInstallationId": { + "message": "インストールIDを入力してください。" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "ライセンスの追加", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "ライセンスの削除", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "あなたの契約では合計$COUNT$ユーザーまで利用できます。", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "ライセンスの追加" + }, + "seatsToRemove": { + "message": "ライセンスの削除" + }, + "seatsAddNote": { + "message": "ユーザー数を追加すると、請求金額が変更され、登録されたお支払い方法に直ちに差額が請求されます。初めに請求された分は現在の請求期間の残りの期間で按分されます。" + }, + "seatsRemoveNote": { + "message": "ユーザー数を削除すると、請求金額が変更され、差額は次回請求時のクレジットとして割り当てられます。" + }, + "adjustedSeats": { + "message": "ユーザー数が$AMOUNT$に変更されました。", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "キーが更新されました" + }, + "updateKeyTitle": { + "message": "キーの更新" + }, + "updateEncryptionKey": { + "message": "暗号化キーを更新します。" + }, + "updateEncryptionKeyShortDesc": { + "message": "古い暗号化方式が使用されています。" + }, + "updateEncryptionKeyDesc": { + "message": "より良いセキュリティと新しい機能が利用できる強力な暗号化方式へ移行することにしました。暗号化キーの更新は迅速かつ簡単です。以下にマスターパスワードを入力して下さい。この更新はやがて必須になります。" + }, + "updateEncryptionKeyWarning": { + "message": "暗号化キーの更新後は、モバイルアプリやブラウザ拡張機能など現在利用中のすべてのBitwardenアプリで再ログインが必要となります。再ログインしないと(新しい暗号化キーをダウンロードすると)データが破損する可能性があります。自動的にログアウトを試みますが、遅延することがあります。" + }, + "updateEncryptionKeyExportWarning": { + "message": "保存済みの暗号化されたエクスポートも無効になります。" + }, + "subscription": { + "message": "契約" + }, + "loading": { + "message": "読み込み中" + }, + "upgrade": { + "message": "アップグレード" + }, + "upgradeOrganization": { + "message": "組織のアップグレード" + }, + "upgradeOrganizationDesc": { + "message": "この機能は無料プランの組織では利用できません。有料プランに変更すると多数の機能が利用可能になります。" + }, + "createOrganizationStep1": { + "message": "組織の作成: 最初のステップ" + }, + "createOrganizationCreatePersonalAccount": { + "message": "組織を作成する前に無料の個人アカウントの作成が必要です。" + }, + "refunded": { + "message": "払い戻し" + }, + "nothingSelected": { + "message": "何も選択されていません。" + }, + "acceptPolicies": { + "message": "以下に同意しチェックします:" + }, + "acceptPoliciesError": { + "message": "利用規約とプライバシーポリシーを確認してください。" + }, + "termsOfService": { + "message": "利用規約" + }, + "privacyPolicy": { + "message": "プライバシーポリシー" + }, + "filters": { + "message": "フィルタ" + }, + "vaultTimeout": { + "message": "保管庫のタイムアウト" + }, + "vaultTimeoutDesc": { + "message": "保管庫がタイムアウトし、選択したアクションを実行するタイミングを選択します。" + }, + "oneMinute": { + "message": "1分" + }, + "fiveMinutes": { + "message": "5分" + }, + "fifteenMinutes": { + "message": "15分" + }, + "thirtyMinutes": { + "message": "30分" + }, + "oneHour": { + "message": "1時間" + }, + "fourHours": { + "message": "4時間" + }, + "onRefresh": { + "message": "ページ更新時" + }, + "dateUpdated": { + "message": "更新日", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "パスワード更新日", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "組織は無効です。" + }, + "licenseIsExpired": { + "message": "ライセンスの有効期限が切れています。" + }, + "updatedUsers": { + "message": "ユーザーを更新しました" + }, + "selected": { + "message": "選択済み" + }, + "ownership": { + "message": "所有者" + }, + "whoOwnsThisItem": { + "message": "このアイテムは誰が所有していますか?" + }, + "strong": { + "message": "強力", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "良好", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "脆弱", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "非常に脆弱", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "脆弱なマスターパスワード" + }, + "weakMasterPasswordDesc": { + "message": "設定されたマスターパスワードの強度は脆弱です。Bitwarden アカウントを適切に保護するために、強力なマスターパスワード(またはパスフレーズ)を使用すべきです。本当にこのマスターパスワードを使用しますか?" + }, + "rotateAccountEncKey": { + "message": "暗号化キーをローテーションする" + }, + "rotateEncKeyTitle": { + "message": "暗号化キーをローテーションする" + }, + "rotateEncKeyConfirmation": { + "message": "暗号化キーをローテーションしてよろしいですか?" + }, + "attachmentsNeedFix": { + "message": "このアイテムは添付ファイルが古いため修正する必要があります。" + }, + "attachmentFixDesc": { + "message": "これは古い添付ファイルのため修正する必要があります。詳しくはこちら。" + }, + "fix": { + "message": "修正", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "暗号化キーのローテーションを行う前に、保管庫内の古い添付ファイルを修正する必要があります。" + }, + "yourAccountsFingerprint": { + "message": "アカウントのパスフレーズ", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "暗号化キーの完全性を確保するため、先にパスフレーズを確認してください。", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "今後パスフレーズを確認しない", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "無料", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API キー" + }, + "apiKeyDesc": { + "message": "API キーは Bitwarden パブリック API で認証するために使用されます。" + }, + "apiKeyRotateDesc": { + "message": "API キーをローテーションさせると、前のキーが無効になります。現在のキーが安全でないと思ったときに API キーをローテーションさせてください。" + }, + "apiKeyWarning": { + "message": "API キーは組織へのフルアクセス権限を持っています。漏れないよう秘密にしてください。" + }, + "userApiKeyDesc": { + "message": "API キーは、Bitwarden CLI で認証するために使用されます。" + }, + "userApiKeyWarning": { + "message": "API キーは代替認証メカニズムです。秘密にする必要があります。" + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 クライアント資格情報", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "API キーを表示" + }, + "rotateApiKey": { + "message": "API キーをローテーション" + }, + "selectOneCollection": { + "message": "最低でも一つのコレクションを選んでください。" + }, + "couldNotChargeCardPayInvoice": { + "message": "あなたのカードで決済することができませんでした。以下の未払いの請求書をご確認いただき、お支払いください。" + }, + "inAppPurchase": { + "message": "アプリ内購入" + }, + "cannotPerformInAppPurchase": { + "message": "アプリ内購入を使用している間はこのアクションはできません。" + }, + "manageSubscriptionFromStore": { + "message": "アプリ内購入したストアでサブスクリプションを管理してください。" + }, + "minLength": { + "message": "最小文字数" + }, + "clone": { + "message": "複製" + }, + "masterPassPolicyDesc": { + "message": "マスターパスワードの強度に最低要件を設定する。" + }, + "twoStepLoginPolicyDesc": { + "message": "2段階認証の設定を要求する。" + }, + "twoStepLoginPolicyWarning": { + "message": "2段階認証を有効にしないメンバーは組織から除外され、メールで通知されます。" + }, + "twoStepLoginPolicyUserWarning": { + "message": "2段階認証を必要とする組織に入っています。2段階認証をすべて無効にすると、それらの組織からは自動的に除外されます。" + }, + "passwordGeneratorPolicyDesc": { + "message": "パスワード生成の最低要件を設定する。" + }, + "passwordGeneratorPolicyInEffect": { + "message": "組織の要件がパスワード生成の設定に影響しています。" + }, + "masterPasswordPolicyInEffect": { + "message": "組織が求めるマスターパスワードの要件は:" + }, + "policyInEffectMinComplexity": { + "message": "複雑度は最低$SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "長さは最低$LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "大文字が最低1つ必要" + }, + "policyInEffectLowercase": { + "message": "小文字が最低1つ必要" + }, + "policyInEffectNumbers": { + "message": "数字が最低1つ必要" + }, + "policyInEffectSpecial": { + "message": "次の記号から1つ以上:$CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "新しいマスターパスワードは最低要件を満たしていません。" + }, + "minimumNumberOfWords": { + "message": "文字の最小数" + }, + "defaultType": { + "message": "デフォルトのタイプ" + }, + "userPreference": { + "message": "ユーザー設定" + }, + "vaultTimeoutAction": { + "message": "保管庫タイムアウト時のアクション" + }, + "vaultTimeoutActionLockDesc": { + "message": "ロックされた保管庫にアクセスするには、マスターパスワードを再入力してください。" + }, + "vaultTimeoutActionLogOutDesc": { + "message": "ログアウトした保管庫にアクセスするには、再認証してください。" + }, + "lock": { + "message": "ロック", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "ごみ箱", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "ごみ箱を検索" + }, + "permanentlyDelete": { + "message": "完全に削除" + }, + "permanentlyDeleteSelected": { + "message": "選択したものを完全に削除" + }, + "permanentlyDeleteItem": { + "message": "アイテムを完全に削除" + }, + "permanentlyDeleteItemConfirmation": { + "message": "このアイテムを完全に削除してもよろしいですか?" + }, + "permanentlyDeletedItem": { + "message": "完全に削除されたアイテム" + }, + "permanentlyDeletedItems": { + "message": "完全に削除されたアイテム" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "$COUNT$ 個のアイテムを選択しました。選択したすべてのアイテムを完全に削除してもよろしいですか?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "アイテム $ID$ を完全に削除しました。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "リストア" + }, + "restoreSelected": { + "message": "選択したものをリストア" + }, + "restoreItem": { + "message": "アイテムをリストア" + }, + "restoredItem": { + "message": "リストアされたアイテム" + }, + "restoredItems": { + "message": "リストアされたアイテム" + }, + "restoreItemConfirmation": { + "message": "このアイテムをリストアしますか?" + }, + "restoreItems": { + "message": "アイテムをリストア" + }, + "restoreSelectedItemsDesc": { + "message": "$COUNT$個のアイテムをリストアしようとしています。本当にこれらのアイテムをリストアしますか?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "アイテム $ID$ をリストアしました。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "ログアウトすると保管庫へのすべてのアクセスが制限され、タイムアウト期間後にオンライン認証が必要になります。 この設定を使用してもよろしいですか?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "タイムアウトアクションの確認" + }, + "hidePasswords": { + "message": "パスワードを隠す" + }, + "countryPostalCodeRequiredDesc": { + "message": "この情報は税計算と財務報告のために必要です。" + }, + "includeVAT": { + "message": "VAT/GST 情報を含める (任意)" + }, + "taxIdNumber": { + "message": "VAT/GST Tax ID" + }, + "taxInfoUpdated": { + "message": "TAX 情報を更新しました。" + }, + "setMasterPassword": { + "message": "マスターパスワードを設定" + }, + "ssoCompleteRegistration": { + "message": "SSO ログインを完了するには、保管庫にアクセス・保護するためのマスターパスワードを設定してください。" + }, + "identifier": { + "message": "識別子" + }, + "organizationIdentifier": { + "message": "組織識別子" + }, + "ssoLogInWithOrgIdentifier": { + "message": "組織のシングルサインオンポータルを使用してログインします。開始するには組織の識別子を入力してください。" + }, + "enterpriseSingleSignOn": { + "message": "組織のシングルサインオン" + }, + "ssoHandOff": { + "message": "このタブを閉じて拡張機能で続けられます。" + }, + "includeAllTeamsFeatures": { + "message": "すべてのチームの機能に加えて:" + }, + "includeSsoAuthentication": { + "message": "SAML2.0 と OpenID Connect による SSO 認証" + }, + "includeEnterprisePolicies": { + "message": "組織ポリシー" + }, + "ssoValidationFailed": { + "message": "SSO 認証に失敗しました" + }, + "ssoIdentifierRequired": { + "message": "組織識別子が必要です。" + }, + "unlinkSso": { + "message": "SSO のリンクを解除" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "SSO をリンク" + }, + "singleOrg": { + "message": "単一組織" + }, + "singleOrgDesc": { + "message": "ユーザーが他の組織に参加できないように制限します。" + }, + "singleOrgBlockCreateMessage": { + "message": "現在の組織には、複数の組織に参加することを許可していないポリシーがあります。 組織の管理者に連絡するか、別の Bitwarden アカウントから登録してください。" + }, + "singleOrgPolicyWarning": { + "message": "オーナーまたは管理者でなく、すでに他の組織のメンバーであるメンバーは組織から削除されます。" + }, + "requireSso": { + "message": "シングルサインオン認証" + }, + "requireSsoPolicyDesc": { + "message": "組織のシングルサインオン認証でログインする必要があります。" + }, + "prerequisite": { + "message": "前提条件" + }, + "requireSsoPolicyReq": { + "message": "このポリシーを有効にするには、単一組織のエンタープライズポリシーを有効にする必要があります。" + }, + "requireSsoPolicyReqError": { + "message": "単一組織ポリシーが有効になっていません。" + }, + "requireSsoExemption": { + "message": "組織の所有者および管理者は、このポリシーの執行から除外されます。" + }, + "sendTypeFile": { + "message": "ファイル" + }, + "sendTypeText": { + "message": "テキスト" + }, + "createSend": { + "message": "新しい Send を作成", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Send を編集", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "作成した Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "編集済みの Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "削除した Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Send を削除", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "この Send を削除してもよろしいですか?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "この Send の種類は何ですか?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "削除日時" + }, + "deletionDateDesc": { + "message": "Send は指定された日時に完全に削除されます。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "有効期限" + }, + "expirationDateDesc": { + "message": "設定されている場合、この Send へのアクセスは指定された日時に失効します。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "最大アクセス数" + }, + "maxAccessCountDesc": { + "message": "設定されている場合、最大アクセス数に達するとユーザーはこの Send にアクセスできなくなります。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "現在のアクセス数" + }, + "sendPasswordDesc": { + "message": "必要に応じて、ユーザーがこの Send にアクセスするためのパスワードを要求します。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "この Send に関するプライベートメモ", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "無効" + }, + "sendLink": { + "message": "Send リンク", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Send リンクをコピー", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "パスワードを削除" + }, + "removedPassword": { + "message": "パスワードを削除" + }, + "removePasswordConfirmation": { + "message": "パスワードを削除してもよろしいですか?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "誰もアクセスできないように、この Send を無効にします。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "すべての Send" + }, + "maxAccessCountReached": { + "message": "最大アクセス数に達しました", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "保留中の削除" + }, + "expired": { + "message": "期限切れ" + }, + "searchSends": { + "message": "Sendを検索", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "This Send is protected with a password. Please type the password below to continue.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "パスワードがわかりませんか?このSendにアクセスするには送信者にパスワードをご確認ください。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "このSendはデフォルトでは非表示になっています。下のボタンで表示・非表示が切り替え可能です。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "ファイルをダウンロード" + }, + "sendAccessUnavailable": { + "message": "アクセスしようとしているSendは存在しないか、利用できません。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "この Send に関連付けられたファイルが見つかりませんでした。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "表示するSendがありません", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "緊急アクセス" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "あなたは1つ以上の組織の所有者です。 緊急連絡先に引き継ぎアクセスを与えると、引き継ぎ後に所有者としてすべての権限を使用できるようになります。" + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "緊急連絡先を追加" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "緊急連絡先を招待" + }, + "editEmergencyContact": { + "message": "緊急連絡先を編集" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "自分の保管庫内のすべてのアイテムを表示できます。" + }, + "takeover": { + "message": "引き継ぎ" + }, + "takeoverDesc": { + "message": "新しいマスターパスワードでアカウントをリセットできます。" + }, + "waitTime": { + "message": "待機時間" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1日" + }, + "days": { + "message": "$DAYS$日", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "招待されたユーザー" + }, + "acceptEmergencyAccess": { + "message": "上記のユーザーの緊急連絡先になるよう招待されています。 招待を承認するには、ログインまたは新しいBitwardenアカウントを作成する必要があります。" + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "アクセス権の要求" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "承認" + }, + "reject": { + "message": "拒否" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "緊急アクセスが承認されました。" + }, + "emergencyRejected": { + "message": "緊急アクセスが拒否されました" + }, + "passwordResetFor": { + "message": "$USER$のパスワードをリセットしました。新しいパスワードでログインできます。", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "組織の所有者および管理者は、このポリシーの執行から免除されます。" + }, + "personalOwnershipSubmitError": { + "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Send を無効化" + }, + "disableSendPolicyDesc": { + "message": "Bitwarden Send の作成や編集を許可しません。既存の Send を削除することはできます。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "組織のポリシーを管理できる組織ユーザーは、このポリシーの適用から除外されます。" + }, + "sendDisabled": { + "message": "Send 無効", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "組織のポリシーにより、既存の Send のみを削除できます。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "送信オプション", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "組織のポリシーを管理できる組織ユーザーは、このポリシーの適用から除外されます。" + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "現在、以下の組織ポリシーが適用されています。" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "変更されたポリシー $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "プラン料金" + }, + "estimatedTax": { + "message": "推定税額" + }, + "custom": { + "message": "カスタム" + }, + "customDesc": { + "message": "ユーザー権限をより詳細に制御できます。" + }, + "permissions": { + "message": "権限" + }, + "accessEventLogs": { + "message": "イベントログにアクセス" + }, + "accessImportExport": { + "message": "インポート/エクスポートにアクセス" + }, + "accessReports": { + "message": "レポートにアクセス" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "すべてのコレクションを管理" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "割り当てられたコレクションの管理" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "グループを管理" + }, + "managePolicies": { + "message": "ポリシーの管理" + }, + "manageSso": { + "message": "SSO を管理" + }, + "manageUsers": { + "message": "ユーザーを管理" + }, + "manageResetPassword": { + "message": "パスワードリセットの管理" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "組織のポリシーが所有者のオプションに影響を与えています。" + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "組織ユーザーの個人所有権を無効にする" + }, + "textHiddenByDefault": { + "message": "Send へのアクセス時に既定でテキストを非表示にする", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "この Send を説明するわかりやすい名前", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "送信したいテキスト" + }, + "sendFileDesc": { + "message": "送信するファイル" + }, + "copySendLinkOnSave": { + "message": "Send の保存時にクリップボードへリンクをコピーします。" + }, + "sendLinkLabel": { + "message": "Send リンク", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send を使うと機密性の高い情報を他の人に簡単かつ安全に送信できます。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "今すぐ", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "テキストやファイルを誰とでも直接共有できます。" + }, + "sendVaultCardLearnMore": { + "message": "今すぐ", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "詳細", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "を確認", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "または", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "試してみてください", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "または", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "登録して", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "試してみてください", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden ユーザー $USER_IDENTIFIER$ が共有しました", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "入力された有効期限は正しくありません。" + }, + "deletionDateIsInvalid": { + "message": "入力された削除日時は正しくありません。" + }, + "expirationDateAndTimeRequired": { + "message": "有効期限は必須です。" + }, + "deletionDateAndTimeRequired": { + "message": "削除日時は必須です。" + }, + "dateParsingError": { + "message": "削除と有効期限の保存中にエラーが発生しました。" + }, + "webAuthnFallbackMsg": { + "message": "二段階認証を確認するには、下のボタンをクリックしてください。" + }, + "webAuthnAuthenticate": { + "message": "WebAuthn の認証" + }, + "webAuthnNotSupported": { + "message": "WebAuthn はこのブラウザではサポートされていません。" + }, + "webAuthnSuccess": { + "message": "WebAuthn が正常に認証されました!このタブを閉じることができます。" + }, + "hintEqualsPassword": { + "message": "パスワードのヒントをパスワードと同じにすることはできません。" + }, + "enrollPasswordReset": { + "message": "パスワードリセット登録" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "登録に成功しました!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "ユーザー $ID$ のマスターパスワードをリセット", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "パスワードをリセット" + }, + "resetPasswordLoggedOutWarning": { + "message": "続行すると、現在のセッションから $NAME$ をログアウトし、再度ログインする必要があります。 他のデバイスでのアクティブなセッションは、最大1時間アクティブになり続けます。", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "このユーザー\n" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "組織ポリシーの要件を満たすためにマスターパスワードが必要です:" + }, + "resetPasswordSuccess": { + "message": "パスワードをリセットしました" + }, + "resetPasswordEnrollmentWarning": { + "message": "登録すると、組織管理者はマスターパスワードを変更できます。登録してもよろしいですか?" + }, + "resetPasswordPolicy": { + "message": "マスターパスワードのリセット" + }, + "resetPasswordPolicyDescription": { + "message": "組織内の管理者に組織ユーザーのマスターパスワードのリセットを許可します。" + }, + "resetPasswordPolicyWarning": { + "message": "管理者がマスターパスワードをリセットするには、組織内のユーザーは自己登録または自動登録する必要があります。" + }, + "resetPasswordPolicyAutoEnroll": { + "message": "自動登録" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "招待が承認されると、すべてのユーザーは自動的にパスワードリセットに登録されます。" + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "すでに組織にいるユーザーは、パスワードリセットに遡って登録されません。管理者がマスターパスワードをリセットできるようにするには、自己登録する必要があります。" + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "自動的に新規ユーザーを登録する" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "この組織には自動的にパスワードリセットに登録するポリシーがあります。登録すると、組織の管理者はマスターパスワードを変更できます。" + }, + "resetPasswordOrgKeysError": { + "message": "組織鍵の応答が null です" + }, + "resetPasswordDetailsError": { + "message": "パスワードリセットの詳細な応答が null です" + }, + "trashCleanupWarning": { + "message": "30日以上ゴミ箱にあったアイテムは自動的に削除されます。" + }, + "trashCleanupWarningSelfHosted": { + "message": "一定期間ゴミ箱にあったアイテムは自動的に削除されます。" + }, + "passwordPrompt": { + "message": "マスターパスワードの再要求" + }, + "passwordConfirmation": { + "message": "マスターパスワードの確認" + }, + "passwordConfirmationDesc": { + "message": "この操作は保護されています。続行するには、確認のためにマスターパスワードを再入力してください。" + }, + "reinviteSelected": { + "message": "招待を再送信" + }, + "noSelectedUsersApplicable": { + "message": "この操作は、選択されたユーザーには適用されません。" + }, + "removeUsersWarning": { + "message": "次のユーザーを削除してもよろしいですか?プロセスは完了まで数秒かかることがあり、中断またはキャンセルすることはできません。" + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "選択を確認" + }, + "bulkConfirmStatus": { + "message": "一括操作の状態" + }, + "bulkConfirmMessage": { + "message": "確認に成功しました" + }, + "bulkReinviteMessage": { + "message": "再招待に成功しました" + }, + "bulkRemovedMessage": { + "message": "削除しました " + }, + "bulkFilteredMessage": { + "message": "除外します。このアクションには適用されません。" + }, + "fingerprint": { + "message": "指紋" + }, + "removeUsers": { + "message": "ユーザーを削除" + }, + "error": { + "message": "エラー" + }, + "resetPasswordManageUsers": { + "message": "パスワードリセットの管理権限を持つユーザーの管理も有効にする必要があります" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "あなたのマスターパスワードは、この組織のポリシー要件を満たしていません。組織に参加するには、マスターパスワードを更新してください。 続行すると現在のセッションからログアウトするため、再ログインが必要です。 他のデバイスでのアクティブなセッションは、最大1時間アクティブになり続けることができます。" + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "アウトバウンドログアウト要求を許可する" + }, + "idpSignAuthenticationRequests": { + "message": "認証リクエストに署名する" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "受信者" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "キーコネクターに到達できません。後でもう一度お試しください。" + }, + "keyConnectorUrl": { + "message": "キーコネクター URL" + }, + "sendVerificationCode": { + "message": "確認コードをメールに送信" + }, + "sendCode": { + "message": "コードを送信" + }, + "codeSent": { + "message": "確認コードを送信しました。" + }, + "verificationCode": { + "message": "認証コード" + }, + "confirmIdentity": { + "message": "続行するには本人確認を行ってください。" + }, + "verificationCodeRequired": { + "message": "認証コードが必要です。" + }, + "invalidVerificationCode": { + "message": "認証コードが間違っています" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ は自己ホストの鍵サーバで SSO を使用しています。この組織のメンバーのログインにマスターパスワードは必要ありません。", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "組織から脱退する" + }, + "removeMasterPassword": { + "message": "マスターパスワードを削除する" + }, + "removedMasterPassword": { + "message": "マスターパスワードを削除しました。" + }, + "allowSso": { + "message": "SSO 認証を許可する" + }, + "allowSsoDesc": { + "message": "セットアップが完了すると設定が保存され、メンバーは ID プロバイダーの資格情報を使用して認証することができます。" + }, + "ssoPolicyHelpStart": { + "message": "すべてのメンバーが SSO でログインするには", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO ポリシー", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "を有効にしてください。", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "メンバー復号オプション" + }, + "memberDecryptionPassDesc": { + "message": "認証が完了すると、メンバーはマスターパスワードを使用して保管庫データを復号します。" + }, + "keyConnector": { + "message": "キーコネクター" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "SSO でログインして自己ホスト型の復号キーサーバーに接続します。このオプションを使用すると、メンバーは保管庫のデータを復号するためにマスターパスワードを使用する必要はありません。" + }, + "keyConnectorPolicyRestriction": { + "message": "「SSO とキーコネクター複合でのログイン」が有効になっています。このポリシーは、オーナーと管理者にのみ適用されます。" + }, + "enabledSso": { + "message": "SSO を有効にしました" + }, + "disabledSso": { + "message": "SSOを無効にしました" + }, + "enabledKeyConnector": { + "message": "キーコネクターを有効にしました" + }, + "disabledKeyConnector": { + "message": "キーコネクターを無効にしました" + }, + "keyConnectorWarning": { + "message": "キーコネクターがセットアップされると、メンバー復号オプションは変更できません。" + }, + "migratedKeyConnector": { + "message": "キーコネクターに移行しました" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "テスト" + }, + "keyConnectorTestSuccess": { + "message": "成功!キーコネクタに到達しました。" + }, + "keyConnectorTestFail": { + "message": "キーコネクタに接続できません。URLを確認してください。" + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "上記の $COUNT$ フィールドは注意が必要です。", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "上記の 1 フィールドは注意が必要です。" + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ は必須です。", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "必須" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "エンティティ ID が URL でない場合は必須です。" + }, + "openIdOptionalCustomizations": { + "message": "オプションのカスタマイズ" + }, + "openIdAuthorityRequired": { + "message": "権限が無効な場合は必須です。" + }, + "separateMultipleWithComma": { + "message": "コンマで複数を区切ります。" + }, + "sessionTimeout": { + "message": "セッションがタイムアウトしました。もう一度ログインしてください。" + }, + "exportingPersonalVaultTitle": { + "message": "個人保管庫のエクスポート" + }, + "exportingOrganizationVaultTitle": { + "message": "組織保管庫のエクスポート" + }, + "exportingPersonalVaultDescription": { + "message": "$EMAIL$ に関連付けられた個人用保管庫アイテムのみがエクスポートされます。組織用保管庫アイテムは含まれません。", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "$ORGANIZATION$ に関連付けられた組織保管庫のアイテムのみがエクスポートされます。他の組織や個人保管庫のアイテムは含まれません。", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "レポートに戻る" + }, + "generator": { + "message": "ジェネレーター" + }, + "whatWouldYouLikeToGenerate": { + "message": "何を生成しますか?" + }, + "passwordType": { + "message": "パスワードの種類" + }, + "regenerateUsername": { + "message": "ユーザー名を再生成" + }, + "generateUsername": { + "message": "ユーザー名を生成" + }, + "usernameType": { + "message": "ユーザー名の種類" + }, + "plusAddressedEmail": { + "message": "プラス付きのメールアドレス", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "メールプロバイダのエイリアス機能を使用します。" + }, + "catchallEmail": { + "message": "キャッチオールメール" + }, + "catchallEmailDesc": { + "message": "ドメインに設定されたキャッチオール受信トレイを使用します。" + }, + "random": { + "message": "ランダム" + }, + "randomWord": { + "message": "ランダムな単語" + }, + "service": { + "message": "サービス" + } +} diff --git a/apps/web/src/locales/ka/messages.json b/apps/web/src/locales/ka/messages.json new file mode 100644 index 0000000000..a7c284de4a --- /dev/null +++ b/apps/web/src/locales/ka/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Web Vault", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "What type of item is this?" + }, + "name": { + "message": "Name" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "New URI" + }, + "username": { + "message": "Username" + }, + "password": { + "message": "Password" + }, + "newPassword": { + "message": "New Password" + }, + "passphrase": { + "message": "Passphrase" + }, + "notes": { + "message": "Notes" + }, + "customFields": { + "message": "Custom Fields" + }, + "cardholderName": { + "message": "Cardholder Name" + }, + "number": { + "message": "Number" + }, + "brand": { + "message": "Brand" + }, + "expiration": { + "message": "Expiration" + }, + "securityCode": { + "message": "Security Code (CVV)" + }, + "identityName": { + "message": "Identity Name" + }, + "company": { + "message": "Company" + }, + "ssn": { + "message": "Social Security Number" + }, + "passportNumber": { + "message": "Passport Number" + }, + "licenseNumber": { + "message": "License Number" + }, + "email": { + "message": "Email" + }, + "phone": { + "message": "Phone" + }, + "january": { + "message": "January" + }, + "february": { + "message": "February" + }, + "march": { + "message": "March" + }, + "april": { + "message": "April" + }, + "may": { + "message": "May" + }, + "june": { + "message": "June" + }, + "july": { + "message": "July" + }, + "august": { + "message": "August" + }, + "september": { + "message": "September" + }, + "october": { + "message": "October" + }, + "november": { + "message": "November" + }, + "december": { + "message": "December" + }, + "title": { + "message": "Title" + }, + "mr": { + "message": "Mr" + }, + "mrs": { + "message": "Mrs" + }, + "ms": { + "message": "Ms" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Expiration Month" + }, + "expirationYear": { + "message": "Expiration Year" + }, + "authenticatorKeyTotp": { + "message": "Authenticator Key (TOTP)" + }, + "folder": { + "message": "Folder" + }, + "newCustomField": { + "message": "New Custom Field" + }, + "value": { + "message": "Value" + }, + "dragToSort": { + "message": "Drag to sort" + }, + "cfTypeText": { + "message": "Text" + }, + "cfTypeHidden": { + "message": "Hidden" + }, + "cfTypeBoolean": { + "message": "Boolean" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Remove" + }, + "unassigned": { + "message": "Unassigned" + }, + "noneFolder": { + "message": "No Folder", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Add Folder" + }, + "editFolder": { + "message": "Edit Folder" + }, + "baseDomain": { + "message": "Base domain", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exact" + }, + "startsWith": { + "message": "Starts with" + }, + "regEx": { + "message": "Regular expression", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Match Detection", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Default match detection", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Never" + }, + "toggleVisibility": { + "message": "Toggle Visibility" + }, + "toggleCollapse": { + "message": "Toggle Collapse", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generate Password" + }, + "checkPassword": { + "message": "Check if password has been exposed." + }, + "passwordExposed": { + "message": "This password has been exposed $VALUE$ time(s) in data breaches. You should change it.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "This password was not found in any known data breaches. It should be safe to use." + }, + "save": { + "message": "Save" + }, + "cancel": { + "message": "Cancel" + }, + "canceled": { + "message": "Canceled" + }, + "close": { + "message": "Close" + }, + "delete": { + "message": "Delete" + }, + "favorite": { + "message": "Favorite" + }, + "unfavorite": { + "message": "Unfavorite" + }, + "edit": { + "message": "Edit" + }, + "searchCollection": { + "message": "Search Collection" + }, + "searchFolder": { + "message": "Search Folder" + }, + "searchFavorites": { + "message": "Search Favorites" + }, + "searchType": { + "message": "Search Type", + "description": "Search item type" + }, + "searchVault": { + "message": "Search Vault" + }, + "allItems": { + "message": "All Items" + }, + "favorites": { + "message": "Favorites" + }, + "types": { + "message": "Types" + }, + "typeLogin": { + "message": "Login" + }, + "typeCard": { + "message": "Card" + }, + "typeIdentity": { + "message": "Identity" + }, + "typeSecureNote": { + "message": "Secure Note" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "Folders" + }, + "collections": { + "message": "Collections" + }, + "firstName": { + "message": "First Name" + }, + "middleName": { + "message": "Middle Name" + }, + "lastName": { + "message": "Last Name" + }, + "fullName": { + "message": "Full Name" + }, + "address1": { + "message": "Address 1" + }, + "address2": { + "message": "Address 2" + }, + "address3": { + "message": "Address 3" + }, + "cityTown": { + "message": "City / Town" + }, + "stateProvince": { + "message": "State / Province" + }, + "zipPostalCode": { + "message": "Zip / Postal Code" + }, + "country": { + "message": "Country" + }, + "shared": { + "message": "Shared" + }, + "attachments": { + "message": "Attachments" + }, + "select": { + "message": "Select" + }, + "addItem": { + "message": "Add Item" + }, + "editItem": { + "message": "Edit Item" + }, + "viewItem": { + "message": "View Item" + }, + "ex": { + "message": "ex.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Other" + }, + "share": { + "message": "Share" + }, + "moveToOrganization": { + "message": "Move to Organization" + }, + "valueCopied": { + "message": "$VALUE$ copied", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Copy Value", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Copy Password", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Copy Username", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Copy Number", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copy Security Code", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Copy URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "My Vault" + }, + "vault": { + "message": "Vault" + }, + "moveSelectedToOrg": { + "message": "Move Selected to Organization" + }, + "deleteSelected": { + "message": "Delete Selected" + }, + "moveSelected": { + "message": "Move Selected" + }, + "selectAll": { + "message": "Select All" + }, + "unselectAll": { + "message": "Unselect All" + }, + "launch": { + "message": "Launch" + }, + "newAttachment": { + "message": "Add New Attachment" + }, + "deletedAttachment": { + "message": "Deleted attachment" + }, + "deleteAttachmentConfirmation": { + "message": "Are you sure you want to delete this attachment?" + }, + "attachmentSaved": { + "message": "The attachment has been saved." + }, + "file": { + "message": "File" + }, + "selectFile": { + "message": "Select a file." + }, + "maxFileSize": { + "message": "Maximum file size is 500 MB." + }, + "updateKey": { + "message": "You cannot use this feature until you update your encryption key." + }, + "addedItem": { + "message": "Added item" + }, + "editedItem": { + "message": "Edited item" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ moved to $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Selected items moved to $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Delete Item" + }, + "deleteFolder": { + "message": "Delete Folder" + }, + "deleteAttachment": { + "message": "Delete Attachment" + }, + "deleteItemConfirmation": { + "message": "Do you really want to send to the trash?" + }, + "deletedItem": { + "message": "Item sent to trash" + }, + "deletedItems": { + "message": "Items sent to trash" + }, + "movedItems": { + "message": "Moved items" + }, + "overwritePasswordConfirmation": { + "message": "Are you sure you want to overwrite the current password?" + }, + "editedFolder": { + "message": "Edited folder" + }, + "addedFolder": { + "message": "Added folder" + }, + "deleteFolderConfirmation": { + "message": "Are you sure you want to delete this folder?" + }, + "deletedFolder": { + "message": "Deleted folder" + }, + "loggedOut": { + "message": "Logged out" + }, + "loginExpired": { + "message": "Your login session has expired." + }, + "logOutConfirmation": { + "message": "Are you sure you want to log out?" + }, + "logOut": { + "message": "Log Out" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Yes" + }, + "no": { + "message": "No" + }, + "loginOrCreateNewAccount": { + "message": "Log in or create a new account to access your secure vault." + }, + "createAccount": { + "message": "Create Account" + }, + "logIn": { + "message": "Log In" + }, + "submit": { + "message": "Submit" + }, + "emailAddressDesc": { + "message": "You'll use your email address to log in." + }, + "yourName": { + "message": "Your Name" + }, + "yourNameDesc": { + "message": "What should we call you?" + }, + "masterPass": { + "message": "Master Password" + }, + "masterPassDesc": { + "message": "The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it." + }, + "masterPassHintDesc": { + "message": "A master password hint can help you remember your password if you forget it." + }, + "reTypeMasterPass": { + "message": "Re-type Master Password" + }, + "masterPassHint": { + "message": "Master Password Hint (optional)" + }, + "masterPassHintLabel": { + "message": "Master Password Hint" + }, + "settings": { + "message": "Settings" + }, + "passwordHint": { + "message": "Password Hint" + }, + "enterEmailToGetHint": { + "message": "Enter your account email address to receive your master password hint." + }, + "getMasterPasswordHint": { + "message": "Get master password hint" + }, + "emailRequired": { + "message": "Email address is required." + }, + "invalidEmail": { + "message": "Invalid email address." + }, + "masterPassRequired": { + "message": "Master password is required." + }, + "masterPassLength": { + "message": "Master password must be at least 8 characters long." + }, + "masterPassDoesntMatch": { + "message": "Master password confirmation does not match." + }, + "newAccountCreated": { + "message": "Your new account has been created! You may now log in." + }, + "masterPassSent": { + "message": "We've sent you an email with your master password hint." + }, + "unexpectedError": { + "message": "An unexpected error has occurred." + }, + "emailAddress": { + "message": "Email Address" + }, + "yourVaultIsLocked": { + "message": "Your vault is locked. Verify your master password to continue." + }, + "unlock": { + "message": "Unlock" + }, + "loggedInAsEmailOn": { + "message": "Logged in as $EMAIL$ on $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Invalid master password" + }, + "lockNow": { + "message": "Lock Now" + }, + "noItemsInList": { + "message": "There are no items to list." + }, + "noCollectionsInList": { + "message": "There are no collections to list." + }, + "noGroupsInList": { + "message": "There are no groups to list." + }, + "noUsersInList": { + "message": "There are no users to list." + }, + "noEventsInList": { + "message": "There are no events to list." + }, + "newOrganization": { + "message": "New Organization" + }, + "noOrganizationsList": { + "message": "You do not belong to any organizations. Organizations allow you to securely share items with other users." + }, + "versionNumber": { + "message": "Version $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Enter the 6 digit verification code from your authenticator app." + }, + "enterVerificationCodeEmail": { + "message": "Enter the 6 digit verification code that was emailed to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Verification email sent to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Remember me" + }, + "sendVerificationCodeEmailAgain": { + "message": "Send verification code email again" + }, + "useAnotherTwoStepMethod": { + "message": "Use another two-step login method" + }, + "insertYubiKey": { + "message": "Insert your YubiKey into your computer's USB port, then touch its button." + }, + "insertU2f": { + "message": "Insert your security key into your computer's USB port. If it has a button, touch it." + }, + "loginUnavailable": { + "message": "Login Unavailable" + }, + "noTwoStepProviders": { + "message": "This account has two-step login enabled, however, none of the configured two-step providers are supported by this web browser." + }, + "noTwoStepProviders2": { + "message": "Please use a supported web browser (such as Chrome) and/or add additional providers that are better supported across web browsers (such as an authenticator app)." + }, + "twoStepOptions": { + "message": "Two-step Login Options" + }, + "recoveryCodeDesc": { + "message": "Lost access to all of your two-factor providers? Use your recovery code to disable all two-factor providers from your account." + }, + "recoveryCodeTitle": { + "message": "Recovery Code" + }, + "authenticatorAppTitle": { + "message": "Authenticator App" + }, + "authenticatorAppDesc": { + "message": "Use an authenticator app (such as Authy or Google Authenticator) to generate time-based verification codes.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP Security Key" + }, + "yubiKeyDesc": { + "message": "Use a YubiKey to access your account. Works with YubiKey 4 series, 5 series, and NEO devices." + }, + "duoDesc": { + "message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verify with Duo Security for your organization using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Use any FIDO U2F enabled security key to access your account." + }, + "u2fTitle": { + "message": "FIDO U2F Security Key" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Verification codes will be emailed to you." + }, + "continue": { + "message": "Continue" + }, + "organization": { + "message": "Organization" + }, + "organizations": { + "message": "Organizations" + }, + "moveToOrgDesc": { + "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organization that you wish to move these items to. Moving to an organization transfers ownership of the items to that organization. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "Edit the collections that this item is being shared with. Only organization users with access to these collections will be able to see this item." + }, + "deleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to delete. Are you sure you want to delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Choose a folder that you would like to move the $COUNT$ selected item(s) to.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organization, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Verification Code (TOTP)" + }, + "copyVerificationCode": { + "message": "Copy Verification Code" + }, + "warning": { + "message": "Warning" + }, + "confirmVaultExport": { + "message": "Confirm Vault Export" + }, + "exportWarningDesc": { + "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "Export Vault" + }, + "fileFormat": { + "message": "File Format" + }, + "exportSuccess": { + "message": "Your vault data has been exported." + }, + "passwordGenerator": { + "message": "Password Generator" + }, + "minComplexityScore": { + "message": "Minimum Complexity Score" + }, + "minNumbers": { + "message": "Minimum Numbers" + }, + "minSpecial": { + "message": "Minimum Special", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Avoid Ambiguous Characters" + }, + "regeneratePassword": { + "message": "Regenerate Password" + }, + "length": { + "message": "Length" + }, + "numWords": { + "message": "Number of Words" + }, + "wordSeparator": { + "message": "Word Separator" + }, + "capitalize": { + "message": "Capitalize", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Include Number" + }, + "passwordHistory": { + "message": "Password History" + }, + "noPasswordsInList": { + "message": "There are no passwords to list." + }, + "clear": { + "message": "Clear", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Account Updated" + }, + "changeEmail": { + "message": "Change Email" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "New Email" + }, + "code": { + "message": "Code" + }, + "changeEmailDesc": { + "message": "We have emailed a verification code to $EMAIL$. Please check your email for this code and enter it below to finalize the email address change.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "emailChanged": { + "message": "Email Changed" + }, + "logBackIn": { + "message": "Please log back in." + }, + "logBackInOthersToo": { + "message": "Please log back in. If you are using other Bitwarden applications log out and back in to those as well." + }, + "changeMasterPassword": { + "message": "Change Master Password" + }, + "masterPasswordChanged": { + "message": "Master Password Changed" + }, + "currentMasterPass": { + "message": "Current Master Password" + }, + "newMasterPass": { + "message": "New Master Password" + }, + "confirmNewMasterPass": { + "message": "Confirm New Master Password" + }, + "encKeySettings": { + "message": "Encryption Key Settings" + }, + "kdfAlgorithm": { + "message": "KDF Algorithm" + }, + "kdfIterations": { + "message": "KDF Iterations" + }, + "kdfIterationsDesc": { + "message": "Higher KDF iterations can help protect your master password from being brute forced by an attacker. We recommend a value of $VALUE$ or more.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Setting your KDF iterations too high could result in poor performance when logging into (and unlocking) Bitwarden on devices with slower CPUs. We recommend that you increase the value in increments of $INCREMENT$ and then test all of your devices.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Change KDF" + }, + "encKeySettingsChanged": { + "message": "Encryption Key Settings Changed" + }, + "dangerZone": { + "message": "Danger Zone" + }, + "dangerZoneDesc": { + "message": "Careful, these actions are not reversible!" + }, + "deauthorizeSessions": { + "message": "Deauthorize Sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Concerned your account is logged in on another device? Proceed below to deauthorize all computers or devices that you have previously used. This security step is recommended if you previously used a public computer or accidentally saved your password on a device that isn't yours. This step will also clear all previously remembered two-step login sessions." + }, + "deauthorizeSessionsWarning": { + "message": "Proceeding will also log you out of your current session, requiring you to log back in. You will also be prompted for two-step login again, if enabled. Active sessions on other devices may continue to remain active for up to one hour." + }, + "sessionsDeauthorized": { + "message": "All Sessions Deauthorized" + }, + "purgeVault": { + "message": "Purge Vault" + }, + "purgedOrganizationVault": { + "message": "Purged organization vault." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Proceed below to delete all items and folders in your vault. Items that belong to an organization that you share with will not be deleted." + }, + "purgeOrgVaultDesc": { + "message": "Proceed below to delete all items in the organization's vault." + }, + "purgeVaultWarning": { + "message": "Purging your vault is permanent. It cannot be undone." + }, + "vaultPurged": { + "message": "Your vault has been purged." + }, + "deleteAccount": { + "message": "Delete Account" + }, + "deleteAccountDesc": { + "message": "Proceed below to delete your account and all associated data." + }, + "deleteAccountWarning": { + "message": "Deleting your account is permanent. It cannot be undone." + }, + "accountDeleted": { + "message": "Account Deleted" + }, + "accountDeletedDesc": { + "message": "Your account has been closed and all associated data has been deleted." + }, + "myAccount": { + "message": "My Account" + }, + "tools": { + "message": "Tools" + }, + "importData": { + "message": "Import Data" + }, + "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." + }, + "importSuccess": { + "message": "Data has been successfully imported into your vault." + }, + "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." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "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)" + } + } + }, + "options": { + "message": "Options" + }, + "optionsDesc": { + "message": "Customize your web vault experience." + }, + "optionsUpdated": { + "message": "Options updated" + }, + "language": { + "message": "Language" + }, + "languageDesc": { + "message": "Change the language used by the web vault." + }, + "disableIcons": { + "message": "Disable Website Icons" + }, + "disableIconsDesc": { + "message": "Website Icons provide a recognizable image next to each login item in your vault." + }, + "enableGravatars": { + "message": "Enable Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use avatar images loaded from gravatar.com." + }, + "enableFullWidth": { + "message": "Enable Full Width Layout", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Allow the web vault to expand the full width of the browser window." + }, + "default": { + "message": "Default" + }, + "domainRules": { + "message": "Domain Rules" + }, + "domainRulesDesc": { + "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + }, + "globalEqDomains": { + "message": "Global Equivalent Domains" + }, + "customEqDomains": { + "message": "Custom Equivalent Domains" + }, + "exclude": { + "message": "Exclude" + }, + "include": { + "message": "Include" + }, + "customize": { + "message": "Customize" + }, + "newCustomDomain": { + "message": "New Custom Domain" + }, + "newCustomDomainDesc": { + "message": "Enter a list of domains separated by commas. Only \"base\" domains are allowed. Do not enter subdomains. For example, enter \"google.com\" instead of \"www.google.com\". You can also enter \"androidapp://package.name\" to associate an android app with other website domains." + }, + "customDomainX": { + "message": "Custom Domain $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domains updated" + }, + "twoStepLogin": { + "message": "Two-step Login" + }, + "twoStepLoginDesc": { + "message": "Secure your account by requiring an additional step when logging in." + }, + "twoStepLoginOrganizationDesc": { + "message": "Require two-step login for your organization's users by configuring providers at the organization level." + }, + "twoStepLoginRecoveryWarning": { + "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (ex. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + }, + "viewRecoveryCode": { + "message": "View Recovery Code" + }, + "providers": { + "message": "Providers", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Enable" + }, + "enabled": { + "message": "Enabled" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium Membership" + }, + "premiumRequired": { + "message": "Premium Required" + }, + "premiumRequiredDesc": { + "message": "A premium membership is required to use this feature." + }, + "youHavePremiumAccess": { + "message": "You have premium access" + }, + "alreadyPremiumFromOrg": { + "message": "You already have access to premium features because of an organization you are a member of." + }, + "manage": { + "message": "Manage" + }, + "disable": { + "message": "Disable" + }, + "twoStepLoginProviderEnabled": { + "message": "This two-step login provider is enabled on your account." + }, + "twoStepLoginAuthDesc": { + "message": "Enter your master password to modify two-step login settings." + }, + "twoStepAuthenticatorDesc": { + "message": "Follow these steps to set up two-step login with an authenticator app:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Download a two-step authenticator app" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Need a two-step authenticator app? Download one of the following" + }, + "iosDevices": { + "message": "iOS devices" + }, + "androidDevices": { + "message": "Android devices" + }, + "windowsDevices": { + "message": "Windows devices" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "These apps are recommended, however, other authenticator apps will also work." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scan this QR code with your authenticator app" + }, + "key": { + "message": "Key" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Enter the resulting 6 digit verification code from the app" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app." + }, + "twoStepDisableDesc": { + "message": "Are you sure you want to disable this two-step login provider?" + }, + "twoStepDisabled": { + "message": "Two-step login provider disabled." + }, + "twoFactorYubikeyAdd": { + "message": "Add a new YubiKey to your account" + }, + "twoFactorYubikeyPlugIn": { + "message": "Plug the YubiKey into your computer's USB port." + }, + "twoFactorYubikeySelectKey": { + "message": "Select the first empty YubiKey input field below." + }, + "twoFactorYubikeyTouchButton": { + "message": "Touch the YubiKey's button." + }, + "twoFactorYubikeySaveForm": { + "message": "Save the form." + }, + "twoFactorYubikeyWarning": { + "message": "Due to platform limitations, YubiKeys cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when YubiKeys cannot be used. Supported platforms:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile apps on a device with NFC capabilities or a data port that can accept your YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC Support" + }, + "twoFactorYubikeySupportsNfc": { + "message": "One of my keys supports NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "If one of your YubiKeys supports NFC (such as a YubiKey NEO), you will be prompted on mobile devices whenever NFC availability is detected." + }, + "yubikeysUpdated": { + "message": "YubiKeys updated" + }, + "disableAllKeys": { + "message": "Disable All Keys" + }, + "twoFactorDuoDesc": { + "message": "Enter the Bitwarden application information from your Duo Admin panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration Key" + }, + "twoFactorDuoSecretKey": { + "message": "Secret Key" + }, + "twoFactorDuoApiHostname": { + "message": "API Hostname" + }, + "twoFactorEmailDesc": { + "message": "Follow these steps to set up two-step login with email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enter the email that you wish to receive verification codes" + }, + "twoFactorEmailEnterCode": { + "message": "Enter the resulting 6 digit verification code from the email" + }, + "sendEmail": { + "message": "Send Email" + }, + "twoFactorU2fAdd": { + "message": "Add a FIDO U2F security key to your account" + }, + "removeU2fConfirmation": { + "message": "Are you sure you want to remove this security key?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Read Key" + }, + "keyCompromised": { + "message": "Key is compromised." + }, + "twoFactorU2fGiveName": { + "message": "Give the security key a friendly name to identify it." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Plug the security key into your computer's USB port and click the \"Read Key\" button." + }, + "twoFactorU2fTouchButton": { + "message": "If the security key has a button, touch it." + }, + "twoFactorU2fSaveForm": { + "message": "Save the form." + }, + "twoFactorU2fWarning": { + "message": "Due to platform limitations, FIDO U2F cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when FIDO U2F cannot be used. Supported platforms:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorU2fWaiting": { + "message": "Waiting for you to touch the button on your security key" + }, + "twoFactorU2fClickSave": { + "message": "Click the \"Save\" button below to enable this security key for two-step login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Your Bitwarden two-step login recovery code" + }, + "twoFactorRecoveryNoCode": { + "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + }, + "printCode": { + "message": "Print Code", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Reports" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Unsecure Websites" + }, + "unsecuredWebsitesReportDesc": { + "message": "URLs that start with http:// don’t use the best available encryption. Change the Login URIs for these accounts to https:// for safer browsing." + }, + "unsecuredWebsitesFound": { + "message": "Unsecured Websites Found" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Inactive Two-step Login" + }, + "inactive2faReportDesc": { + "message": "Two-step Login adds a layer of protection to your accounts. Turn on Two-Step Login using Bitwarden Authenticator for these accounts or use an alternative method." + }, + "inactive2faFound": { + "message": "Logins Without 2FA Found" + }, + "inactive2faFoundDesc": { + "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to 2fa.directory). To further protect these accounts, you should enable two-factor authentication.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No websites were found in your vault with a missing two-factor authentication configuration." + }, + "instructions": { + "message": "Instructions" + }, + "exposedPasswordsReport": { + "message": "Exposed Passwords" + }, + "exposedPasswordsReportDesc": { + "message": "Passwords exposed in a data breach are easy targets for attackers. Change these passwords to prevent potential break-ins." + }, + "exposedPasswordsFound": { + "message": "Exposed Passwords Found" + }, + "exposedPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No items in your vault have passwords that have been exposed in known data breaches." + }, + "checkExposedPasswords": { + "message": "Check Exposed Passwords" + }, + "exposedXTimes": { + "message": "Exposed $COUNT$ time(s)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Weak Passwords" + }, + "weakPasswordsReportDesc": { + "message": "Weak passwords can be easily guessed by attackers. Change these passwords to strong ones using the Password Generator." + }, + "weakPasswordsFound": { + "message": "Weak Passwords Found" + }, + "weakPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "No items in your vault have weak passwords." + }, + "reusedPasswordsReport": { + "message": "Reused Passwords" + }, + "reusedPasswordsReportDesc": { + "message": "Reusing passwords makes it easier for attackers to break into multiple accounts. Change these passwords so that each is unique." + }, + "reusedPasswordsFound": { + "message": "Reused Passwords Found" + }, + "reusedPasswordsFoundDesc": { + "message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "No logins in your vault have passwords that are being reused." + }, + "reusedXTimes": { + "message": "Reused $COUNT$ times", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Data Breach" + }, + "breachDesc": { + "message": "Breached accounts can expose your personal information. Secure breached accounts by enabling 2FA or creating a stronger password." + }, + "breachCheckUsernameEmail": { + "message": "Check any usernames or email addresses that you use." + }, + "checkBreaches": { + "message": "Check Breaches" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ was not found in any known data breaches.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Good News", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Breached Accounts Found" + }, + "compromisedData": { + "message": "Compromised data" + }, + "website": { + "message": "Website" + }, + "affectedUsers": { + "message": "Affected Users" + }, + "breachOccurred": { + "message": "Breach Occurred" + }, + "breachReported": { + "message": "Breach Reported" + }, + "reportError": { + "message": "An error occurred trying to load the report. Try again" + }, + "billing": { + "message": "Billing" + }, + "accountCredit": { + "message": "Account Credit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Account Balance", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Add Credit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Amount", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Added credit will appear on your account after the payment has been fully processed. Some payment methods are delayed and can take longer to process than others." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + }, + "goPremium": { + "message": "Go Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "You've upgraded to premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Upgrade your account to a premium membership and unlock some great additional features." + }, + "premiumSignUpStorage": { + "message": "1 GB encrypted storage for file attachments." + }, + "premiumSignUpTwoStep": { + "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + }, + "premiumSignUpTotp": { + "message": "TOTP verification code (2FA) generator for logins in your vault." + }, + "premiumSignUpSupport": { + "message": "Priority customer support." + }, + "premiumSignUpFuture": { + "message": "All future premium features. More coming soon!" + }, + "premiumPrice": { + "message": "All for just $PRICE$ /year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Addons" + }, + "premiumAccess": { + "message": "Premium Access" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organization for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Additional Storage (GB)" + }, + "additionalStorageGbDesc": { + "message": "# of additional GB" + }, + "additionalStorageIntervalDesc": { + "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Summary" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "year" + }, + "month": { + "message": "month" + }, + "monthAbbr": { + "message": "mo.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Your payment method will be charged immediately and then on a recurring basis each year. You may cancel at any time." + }, + "paymentCharged": { + "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Your plan comes with a free 7 day trial. Your payment method will not be charged until the trial has ended. You may cancel at any time." + }, + "paymentInformation": { + "message": "Payment Information" + }, + "billingInformation": { + "message": "Billing Information" + }, + "creditCard": { + "message": "Credit Card" + }, + "paypalClickSubmit": { + "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + }, + "cancelSubscription": { + "message": "Cancel Subscription" + }, + "subscriptionCanceled": { + "message": "The subscription has been canceled." + }, + "pendingCancellation": { + "message": "Pending Cancellation" + }, + "subscriptionPendingCanceled": { + "message": "The subscription has been marked for cancellation at the end of the current billing period." + }, + "reinstateSubscription": { + "message": "Reinstate Subscription" + }, + "reinstateConfirmation": { + "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + }, + "reinstated": { + "message": "The subscription has been reinstated." + }, + "cancelConfirmation": { + "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + }, + "canceledSubscription": { + "message": "The subscription has been canceled." + }, + "neverExpires": { + "message": "Never Expires" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Next Charge" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "Download License" + }, + "updateLicense": { + "message": "Update License" + }, + "updatedLicense": { + "message": "Updated license" + }, + "manageSubscription": { + "message": "Manage Subscription" + }, + "storage": { + "message": "Storage" + }, + "addStorage": { + "message": "Add Storage" + }, + "removeStorage": { + "message": "Remove Storage" + }, + "subscriptionStorage": { + "message": "Your subscription has a total of $MAX_STORAGE$ GB of encrypted file storage. You are currently using $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Payment Method" + }, + "noPaymentMethod": { + "message": "No payment method on file." + }, + "addPaymentMethod": { + "message": "Add Payment Method" + }, + "changePaymentMethod": { + "message": "Change Payment Method" + }, + "invoices": { + "message": "Invoices" + }, + "noInvoices": { + "message": "No invoices." + }, + "paid": { + "message": "Paid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Unpaid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transactions", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "No transactions." + }, + "chargeNoun": { + "message": "Charge", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Refund", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Any charges will appear on your statement as $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB of Storage To Add" + }, + "gbStorageRemove": { + "message": "GB of Storage To Remove" + }, + "storageAddNote": { + "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "storageRemoveNote": { + "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedStorage": { + "message": "Adjusted $AMOUNT$ GB of storage.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contact Customer Support" + }, + "updatedPaymentMethod": { + "message": "Updated payment method." + }, + "purchasePremium": { + "message": "Purchase Premium" + }, + "licenseFile": { + "message": "License File" + }, + "licenseFileDesc": { + "message": "Your license file will be named something like $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "To upgrade your account to a premium membership you need to upload a valid license file." + }, + "uploadLicenseFileOrg": { + "message": "To create an on-premises hosted organization you need to upload a valid license file." + }, + "accountEmailMustBeVerified": { + "message": "Your account's email address must be verified." + }, + "newOrganizationDesc": { + "message": "Organizations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company." + }, + "generalInformation": { + "message": "General Information" + }, + "organizationName": { + "message": "Organization Name" + }, + "accountOwnedBusiness": { + "message": "This account is owned by a business." + }, + "billingEmail": { + "message": "Billing Email" + }, + "businessName": { + "message": "Business Name" + }, + "chooseYourPlan": { + "message": "Choose Your Plan" + }, + "users": { + "message": "Users" + }, + "userSeats": { + "message": "User Seats" + }, + "additionalUserSeats": { + "message": "Additional User Seats" + }, + "userSeatsDesc": { + "message": "# of user seats" + }, + "userSeatsAdditionalDesc": { + "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "How many user seats do you need? You can also add additional seats later if needed." + }, + "planNameFree": { + "message": "Free", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing or personal users to share with $COUNT$ other user.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Families" + }, + "planDescFamilies": { + "message": "For personal use, to share with family & friends." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "For businesses and other team organizations." + }, + "planNameEnterprise": { + "message": "Enterprise" + }, + "planDescEnterprise": { + "message": "For businesses and other large organizations." + }, + "freeForever": { + "message": "Free Forever" + }, + "includesXUsers": { + "message": "includes $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Additional Users" + }, + "costPerUser": { + "message": "$COST$ per user", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limited to $COUNT$ users (including you)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limited to $COUNT$ collections", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Add and share with up to $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Add and share with unlimited users" + }, + "createUnlimitedCollections": { + "message": "Create unlimited Collections" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ encrypted file storage", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "On-premise hosting (optional)" + }, + "usersGetPremium": { + "message": "Users get access to Premium Features" + }, + "controlAccessWithGroups": { + "message": "Control user access with Groups" + }, + "syncUsersFromDirectory": { + "message": "Sync your users and Groups from a directory" + }, + "trackAuditLogs": { + "message": "Track user actions with audit logs" + }, + "enforce2faDuo": { + "message": "Enforce 2FA with Duo" + }, + "priorityCustomerSupport": { + "message": "Priority customer support" + }, + "xDayFreeTrial": { + "message": "$COUNT$ day free trial, cancel anytime", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Monthly" + }, + "annually": { + "message": "Annually" + }, + "basePrice": { + "message": "Base Price" + }, + "organizationCreated": { + "message": "Organization Created" + }, + "organizationReadyToGo": { + "message": "Your new organization is ready to go!" + }, + "organizationUpgraded": { + "message": "Your organization has been upgraded." + }, + "leave": { + "message": "Leave" + }, + "leaveOrganizationConfirmation": { + "message": "Are you sure you want to leave this organization?" + }, + "leftOrganization": { + "message": "You have left the organization." + }, + "defaultCollection": { + "message": "Default Collection" + }, + "getHelp": { + "message": "Get Help" + }, + "getApps": { + "message": "Get the Apps" + }, + "loggedInAs": { + "message": "Logged in as" + }, + "eventLogs": { + "message": "Event Logs" + }, + "people": { + "message": "People" + }, + "policies": { + "message": "Policies" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Edit Policy" + }, + "groups": { + "message": "Groups" + }, + "newGroup": { + "message": "New Group" + }, + "addGroup": { + "message": "Add Group" + }, + "editGroup": { + "message": "Edit Group" + }, + "deleteGroupConfirmation": { + "message": "Are you sure you want to delete this group?" + }, + "removeUserConfirmation": { + "message": "Are you sure you want to remove this user?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "External Id" + }, + "externalIdDesc": { + "message": "The external id can be used as a reference or to link this resource to an external system such as a user directory." + }, + "accessControl": { + "message": "Access Control" + }, + "groupAccessAllItems": { + "message": "This group can access and modify all items." + }, + "groupAccessSelectedCollections": { + "message": "This group can access only the selected collections." + }, + "readOnly": { + "message": "Read Only" + }, + "newCollection": { + "message": "New Collection" + }, + "addCollection": { + "message": "Add Collection" + }, + "editCollection": { + "message": "Edit Collection" + }, + "deleteCollectionConfirmation": { + "message": "Are you sure you want to delete this collection?" + }, + "editUser": { + "message": "Edit User" + }, + "inviteUser": { + "message": "Invite User" + }, + "inviteUserDesc": { + "message": "Invite a new user to your organization by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "inviteMultipleEmailDesc": { + "message": "You can invite up to $COUNT$ users at a time by comma separating a list of email addresses.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "This user is using two-step login to protect their account." + }, + "userAccessAllItems": { + "message": "This user can access and modify all items." + }, + "userAccessSelectedCollections": { + "message": "This user can access only the selected collections." + }, + "search": { + "message": "Search" + }, + "invited": { + "message": "Invited" + }, + "accepted": { + "message": "Accepted" + }, + "confirmed": { + "message": "Confirmed" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Owner" + }, + "ownerDesc": { + "message": "The highest access user that can manage all aspects of your organization." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admins can access and manage all items, collections and users in your organization." + }, + "user": { + "message": "User" + }, + "userDesc": { + "message": "A regular user with access to assigned collections in your organization." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managers can access and manage assigned collections in your organization." + }, + "all": { + "message": "All" + }, + "refresh": { + "message": "Refresh" + }, + "timestamp": { + "message": "Timestamp" + }, + "event": { + "message": "Event" + }, + "unknown": { + "message": "Unknown" + }, + "loadMore": { + "message": "Load More" + }, + "mobile": { + "message": "Mobile", + "description": "Mobile app" + }, + "extension": { + "message": "Extension", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Web Vault" + }, + "loggedIn": { + "message": "Logged in." + }, + "changedPassword": { + "message": "Changed account password." + }, + "enabledUpdated2fa": { + "message": "Enabled/updated two-step login." + }, + "disabled2fa": { + "message": "Disabled two-step login." + }, + "recovered2fa": { + "message": "Recovered account from two-step login." + }, + "failedLogin": { + "message": "Login attempt failed with incorrect password." + }, + "failedLogin2fa": { + "message": "Login attempt failed with incorrect two-step login." + }, + "exportedVault": { + "message": "Exported vault." + }, + "exportedOrganizationVault": { + "message": "Exported organization vault." + }, + "editedOrgSettings": { + "message": "Edited organization settings." + }, + "createdItemId": { + "message": "Created item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Edited item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Sent item $ID$ to trash.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Viewed item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Viewed password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Viewed hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Viewed security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Copied password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Copied hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Copied security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Auto-filled item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Created collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Edited collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Deleted collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Edited policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Created group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Edited group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Deleted group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Removed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Created attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Deleted attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Edited collections for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Invited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Confirmed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Edited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Edited groups for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Device" + }, + "view": { + "message": "View" + }, + "invalidDateRange": { + "message": "Invalid date range." + }, + "errorOccurred": { + "message": "An error has occurred." + }, + "userAccess": { + "message": "User Access" + }, + "userType": { + "message": "User Type" + }, + "groupAccess": { + "message": "Group Access" + }, + "groupAccessUserDesc": { + "message": "Edit the groups that this user belongs to." + }, + "invitedUsers": { + "message": "Invited user(s)." + }, + "resendInvitation": { + "message": "Resend Invitation" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ has been reinvited.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirm" + }, + "confirmUser": { + "message": "Confirm User" + }, + "hasBeenConfirmed": { + "message": "$USER$ has been confirmed.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirm Users" + }, + "usersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organization until they are confirmed." + }, + "startDate": { + "message": "Start Date" + }, + "endDate": { + "message": "End Date" + }, + "verifyEmail": { + "message": "Verify Email" + }, + "verifyEmailDesc": { + "message": "Verify your account's email address to unlock access to all features." + }, + "verifyEmailFirst": { + "message": "Your account's email address first must be verified." + }, + "checkInboxForVerification": { + "message": "Check your email inbox for a verification link." + }, + "emailVerified": { + "message": "Your email has been verified." + }, + "emailVerifiedFailed": { + "message": "Unable to verify your email. Try sending a new verification email." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "Update Browser" + }, + "updateBrowserDesc": { + "message": "You are using an unsupported web browser. The web vault may not function properly." + }, + "joinOrganization": { + "message": "Join Organization" + }, + "joinOrganizationDesc": { + "message": "You've been invited to join the organization listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "inviteAccepted": { + "message": "Invitation Accepted" + }, + "inviteAcceptedDesc": { + "message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens." + }, + "inviteAcceptFailed": { + "message": "Unable to accept invitation. Ask an organization admin to send a new invitation." + }, + "inviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Remember email" + }, + "recoverAccountTwoStepDesc": { + "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + }, + "recoverAccountTwoStep": { + "message": "Recover Account Two-Step Login" + }, + "twoStepRecoverDisabled": { + "message": "Two-step login has been disabled on your account." + }, + "learnMore": { + "message": "Learn more" + }, + "deleteRecoverDesc": { + "message": "Enter your email address below to recover and delete your account." + }, + "deleteRecoverEmailSent": { + "message": "If your account exists, we've sent you an email with further instructions." + }, + "deleteRecoverConfirmDesc": { + "message": "You have requested to delete your Bitwarden account. Click the button below to confirm." + }, + "myOrganization": { + "message": "My Organization" + }, + "deleteOrganization": { + "message": "Delete Organization" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organization Deleted" + }, + "organizationDeletedDesc": { + "message": "The organization and all associated data has been deleted." + }, + "organizationUpdated": { + "message": "Organization updated" + }, + "taxInformation": { + "message": "Tax Information" + }, + "taxInformationDesc": { + "message": "For customers within the US, ZIP code is required to satisfy sales tax requirements, for other countries you may optionally provide a tax identification number (VAT/GST) and/or address to appear on your invoices." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Upgrade Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade your account to another plan by providing the information below. Please ensure that you have an active payment method added to the account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Invoice #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "View Invoice" + }, + "downloadInvoice": { + "message": "Download Invoice" + }, + "verifyBankAccount": { + "message": "Verify Bank Account" + }, + "verifyBankAccountDesc": { + "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." + }, + "verifyBankAccountInitialDesc": { + "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organization's billing page to verify the bank account." + }, + "verifyBankAccountFailureWarning": { + "message": "Failure to verify the bank account will result in a missed payment and your subscription being disabled." + }, + "verifiedBankAccount": { + "message": "Bank account has been verified." + }, + "bankAccount": { + "message": "Bank Account" + }, + "amountX": { + "message": "Amount $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Account Number" + }, + "accountHolderName": { + "message": "Account Holder Name" + }, + "bankAccountType": { + "message": "Account Type" + }, + "bankAccountTypeCompany": { + "message": "Company (Business)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Personal)" + }, + "enterInstallationId": { + "message": "Enter your installation id" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Add Seats", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remove Seats", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Your subscription allows for a total of $COUNT$ users.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seats To Add" + }, + "seatsToRemove": { + "message": "Seats To Remove" + }, + "seatsAddNote": { + "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "seatsRemoveNote": { + "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedSeats": { + "message": "Adjusted $AMOUNT$ user seats.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Key Updated" + }, + "updateKeyTitle": { + "message": "Update Key" + }, + "updateEncryptionKey": { + "message": "Update Encryption Key" + }, + "updateEncryptionKeyShortDesc": { + "message": "You are currently using an outdated encryption scheme." + }, + "updateEncryptionKeyDesc": { + "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, however, it may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "Subscription" + }, + "loading": { + "message": "Loading" + }, + "upgrade": { + "message": "Upgrade" + }, + "upgradeOrganization": { + "message": "Upgrade Organization" + }, + "upgradeOrganizationDesc": { + "message": "This feature is not available for free organizations. Switch to a paid plan to unlock more features." + }, + "createOrganizationStep1": { + "message": "Create Organization: Step 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Before creating your organization, you first need to create a free personal account." + }, + "refunded": { + "message": "Refunded" + }, + "nothingSelected": { + "message": "You have not selected anything." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." + }, + "termsOfService": { + "message": "Terms of Service" + }, + "privacyPolicy": { + "message": "Privacy Policy" + }, + "filters": { + "message": "Filters" + }, + "vaultTimeout": { + "message": "Vault Timeout" + }, + "vaultTimeoutDesc": { + "message": "Choose when your vault will timeout and perform the selected action." + }, + "oneMinute": { + "message": "1 minute" + }, + "fiveMinutes": { + "message": "5 minutes" + }, + "fifteenMinutes": { + "message": "15 minutes" + }, + "thirtyMinutes": { + "message": "30 minutes" + }, + "oneHour": { + "message": "1 hour" + }, + "fourHours": { + "message": "4 hours" + }, + "onRefresh": { + "message": "On Browser Refresh" + }, + "dateUpdated": { + "message": "Updated", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Password Updated", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organization is disabled." + }, + "licenseIsExpired": { + "message": "License is expired." + }, + "updatedUsers": { + "message": "Updated users" + }, + "selected": { + "message": "Selected" + }, + "ownership": { + "message": "Ownership" + }, + "whoOwnsThisItem": { + "message": "Who owns this item?" + }, + "strong": { + "message": "Strong", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Good", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Weak", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Very Weak", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Weak Master Password" + }, + "weakMasterPasswordDesc": { + "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + }, + "rotateAccountEncKey": { + "message": "Also rotate my account's encryption key" + }, + "rotateEncKeyTitle": { + "message": "Rotate Encryption Key" + }, + "rotateEncKeyConfirmation": { + "message": "Are you sure you want to rotate your account's encryption key?" + }, + "attachmentsNeedFix": { + "message": "This item has old file attachments that need to be fixed." + }, + "attachmentFixDesc": { + "message": "This is an old file attachment the needs to be fixed. Click to learn more." + }, + "fix": { + "message": "Fix", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key." + }, + "yourAccountsFingerprint": { + "message": "Your account's fingerprint phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Never prompt to verify fingerprint phrases for invited users (Not recommended)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Free", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API Key" + }, + "apiKeyDesc": { + "message": "Your API key can be used to authenticate to the Bitwarden public API." + }, + "apiKeyRotateDesc": { + "message": "Rotating the API key will invalidate the previous key. You can rotate your API key if you believe that the current key is no longer safe to use." + }, + "apiKeyWarning": { + "message": "Your API key has full access to the organization. It should be kept secret." + }, + "userApiKeyDesc": { + "message": "Your API key can be used to authenticate in the Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 Client Credentials", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "View API Key" + }, + "rotateApiKey": { + "message": "Rotate API Key" + }, + "selectOneCollection": { + "message": "You must select at least one collection." + }, + "couldNotChargeCardPayInvoice": { + "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + }, + "inAppPurchase": { + "message": "In-app Purchase" + }, + "cannotPerformInAppPurchase": { + "message": "You cannot perform this action while using an in-app purchase payment method." + }, + "manageSubscriptionFromStore": { + "message": "You must manage your subscription from the store where your in-app purchase was made." + }, + "minLength": { + "message": "Minimum Length" + }, + "clone": { + "message": "Clone" + }, + "masterPassPolicyDesc": { + "message": "Set minimum requirements for master password strength." + }, + "twoStepLoginPolicyDesc": { + "message": "Require users to set up two-step login on their personal accounts." + }, + "twoStepLoginPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and do not have two-step login enabled for their personal account will be removed from the organization and will receive an email notifying them about the change." + }, + "twoStepLoginPolicyUserWarning": { + "message": "You are a member of an organization that requires two-step login to be enabled on your user account. If you disable all two-step login providers you will be automatically removed from these organizations." + }, + "passwordGeneratorPolicyDesc": { + "message": "Set minimum requirements for password generator configuration." + }, + "passwordGeneratorPolicyInEffect": { + "message": "One or more organization policies are affecting your generator settings." + }, + "masterPasswordPolicyInEffect": { + "message": "One or more organization policies require your master password to meet the following requirements:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum complexity score of $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum length of $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contain one or more uppercase characters" + }, + "policyInEffectLowercase": { + "message": "Contain one or more lowercase characters" + }, + "policyInEffectNumbers": { + "message": "Contain one or more numbers" + }, + "policyInEffectSpecial": { + "message": "Contain one or more of the following special characters $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Your new master password does not meet the policy requirements." + }, + "minimumNumberOfWords": { + "message": "Minimum Number of Words" + }, + "defaultType": { + "message": "Default Type" + }, + "userPreference": { + "message": "User Preference" + }, + "vaultTimeoutAction": { + "message": "Vault Timeout Action" + }, + "vaultTimeoutActionLockDesc": { + "message": "A locked vault requires that you re-enter your master password to access it again." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "A logged out vault requires that you re-authenticate to access it again." + }, + "lock": { + "message": "Lock", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Trash", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Search Trash" + }, + "permanentlyDelete": { + "message": "Permanently Delete" + }, + "permanentlyDeleteSelected": { + "message": "Permanently Delete Selected" + }, + "permanentlyDeleteItem": { + "message": "Permanently Delete Item" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Are you sure you want to permanently delete this item?" + }, + "permanentlyDeletedItem": { + "message": "Permanently Deleted item" + }, + "permanentlyDeletedItems": { + "message": "Permanently Deleted items" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Permanently Deleted item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restore" + }, + "restoreSelected": { + "message": "Restore Selected" + }, + "restoreItem": { + "message": "Restore Item" + }, + "restoredItem": { + "message": "Restored Item" + }, + "restoredItems": { + "message": "Restored Items" + }, + "restoreItemConfirmation": { + "message": "Are you sure you want to restore this item?" + }, + "restoreItems": { + "message": "Restore items" + }, + "restoreSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Restored item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout Action Confirmation" + }, + "hidePasswords": { + "message": "Hide Passwords" + }, + "countryPostalCodeRequiredDesc": { + "message": "We require this information for calculating sales tax and financial reporting only." + }, + "includeVAT": { + "message": "Include VAT/GST Information (optional)" + }, + "taxIdNumber": { + "message": "VAT/GST Tax ID" + }, + "taxInfoUpdated": { + "message": "Tax information updated." + }, + "setMasterPassword": { + "message": "Set Master Password" + }, + "ssoCompleteRegistration": { + "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + }, + "identifier": { + "message": "Identifier" + }, + "organizationIdentifier": { + "message": "Organization Identifier" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Log in using your organization's single sign-on portal. Please enter your organization's identifier to begin." + }, + "enterpriseSingleSignOn": { + "message": "Enterprise Single Sign-On" + }, + "ssoHandOff": { + "message": "You may now close this tab and continue in the extension." + }, + "includeAllTeamsFeatures": { + "message": "All Teams features, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO Authentication via SAML2.0 and OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Enterprise Policies" + }, + "ssoValidationFailed": { + "message": "SSO Validation Failed" + }, + "ssoIdentifierRequired": { + "message": "Organization Identifier is required." + }, + "unlinkSso": { + "message": "Unlink SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Link SSO" + }, + "singleOrg": { + "message": "Single Organization" + }, + "singleOrgDesc": { + "message": "Restrict users from being able to join any other organizations." + }, + "singleOrgBlockCreateMessage": { + "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + }, + "singleOrgPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + }, + "requireSso": { + "message": "Single Sign-On Authentication" + }, + "requireSsoPolicyDesc": { + "message": "Require users to log in with the Enterprise Single Sign-On method." + }, + "prerequisite": { + "message": "Prerequisite" + }, + "requireSsoPolicyReq": { + "message": "The Single Organization enterprise policy must be enabled before activating this policy." + }, + "requireSsoPolicyReqError": { + "message": "Single Organization policy not enabled." + }, + "requireSsoExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "sendTypeFile": { + "message": "File" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Create New Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edit Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Created Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Edited Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Deleted Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Delete Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Are you sure you want to delete this Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "What type of Send is this?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Deletion Date" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Expiration Date" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximum Access Count" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Current Access Count" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Disabled" + }, + "sendLink": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copy Send Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remove Password" + }, + "removedPassword": { + "message": "Removed Password" + }, + "removePasswordConfirmation": { + "message": "Are you sure you want to remove the password?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "All Sends" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "expired": { + "message": "Expired" + }, + "searchSends": { + "message": "Search Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "This Send is protected with a password. Please type the password below to continue.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Download File" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "There are no Sends to list.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Emergency Access" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Request Access" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approve" + }, + "reject": { + "message": "Reject" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Disable Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "Estimated tax" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Manage All Collections" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Manage Groups" + }, + "managePolicies": { + "message": "Manage Policies" + }, + "manageSso": { + "message": "Manage SSO" + }, + "manageUsers": { + "message": "Manage Users" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organization users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Learn more about", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Learn more", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "try it now", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "sign up", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "to try it today.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organization policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organization administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/km/messages.json b/apps/web/src/locales/km/messages.json new file mode 100644 index 0000000000..a7c284de4a --- /dev/null +++ b/apps/web/src/locales/km/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Web Vault", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "What type of item is this?" + }, + "name": { + "message": "Name" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "New URI" + }, + "username": { + "message": "Username" + }, + "password": { + "message": "Password" + }, + "newPassword": { + "message": "New Password" + }, + "passphrase": { + "message": "Passphrase" + }, + "notes": { + "message": "Notes" + }, + "customFields": { + "message": "Custom Fields" + }, + "cardholderName": { + "message": "Cardholder Name" + }, + "number": { + "message": "Number" + }, + "brand": { + "message": "Brand" + }, + "expiration": { + "message": "Expiration" + }, + "securityCode": { + "message": "Security Code (CVV)" + }, + "identityName": { + "message": "Identity Name" + }, + "company": { + "message": "Company" + }, + "ssn": { + "message": "Social Security Number" + }, + "passportNumber": { + "message": "Passport Number" + }, + "licenseNumber": { + "message": "License Number" + }, + "email": { + "message": "Email" + }, + "phone": { + "message": "Phone" + }, + "january": { + "message": "January" + }, + "february": { + "message": "February" + }, + "march": { + "message": "March" + }, + "april": { + "message": "April" + }, + "may": { + "message": "May" + }, + "june": { + "message": "June" + }, + "july": { + "message": "July" + }, + "august": { + "message": "August" + }, + "september": { + "message": "September" + }, + "october": { + "message": "October" + }, + "november": { + "message": "November" + }, + "december": { + "message": "December" + }, + "title": { + "message": "Title" + }, + "mr": { + "message": "Mr" + }, + "mrs": { + "message": "Mrs" + }, + "ms": { + "message": "Ms" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Expiration Month" + }, + "expirationYear": { + "message": "Expiration Year" + }, + "authenticatorKeyTotp": { + "message": "Authenticator Key (TOTP)" + }, + "folder": { + "message": "Folder" + }, + "newCustomField": { + "message": "New Custom Field" + }, + "value": { + "message": "Value" + }, + "dragToSort": { + "message": "Drag to sort" + }, + "cfTypeText": { + "message": "Text" + }, + "cfTypeHidden": { + "message": "Hidden" + }, + "cfTypeBoolean": { + "message": "Boolean" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Remove" + }, + "unassigned": { + "message": "Unassigned" + }, + "noneFolder": { + "message": "No Folder", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Add Folder" + }, + "editFolder": { + "message": "Edit Folder" + }, + "baseDomain": { + "message": "Base domain", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exact" + }, + "startsWith": { + "message": "Starts with" + }, + "regEx": { + "message": "Regular expression", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Match Detection", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Default match detection", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Never" + }, + "toggleVisibility": { + "message": "Toggle Visibility" + }, + "toggleCollapse": { + "message": "Toggle Collapse", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generate Password" + }, + "checkPassword": { + "message": "Check if password has been exposed." + }, + "passwordExposed": { + "message": "This password has been exposed $VALUE$ time(s) in data breaches. You should change it.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "This password was not found in any known data breaches. It should be safe to use." + }, + "save": { + "message": "Save" + }, + "cancel": { + "message": "Cancel" + }, + "canceled": { + "message": "Canceled" + }, + "close": { + "message": "Close" + }, + "delete": { + "message": "Delete" + }, + "favorite": { + "message": "Favorite" + }, + "unfavorite": { + "message": "Unfavorite" + }, + "edit": { + "message": "Edit" + }, + "searchCollection": { + "message": "Search Collection" + }, + "searchFolder": { + "message": "Search Folder" + }, + "searchFavorites": { + "message": "Search Favorites" + }, + "searchType": { + "message": "Search Type", + "description": "Search item type" + }, + "searchVault": { + "message": "Search Vault" + }, + "allItems": { + "message": "All Items" + }, + "favorites": { + "message": "Favorites" + }, + "types": { + "message": "Types" + }, + "typeLogin": { + "message": "Login" + }, + "typeCard": { + "message": "Card" + }, + "typeIdentity": { + "message": "Identity" + }, + "typeSecureNote": { + "message": "Secure Note" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "Folders" + }, + "collections": { + "message": "Collections" + }, + "firstName": { + "message": "First Name" + }, + "middleName": { + "message": "Middle Name" + }, + "lastName": { + "message": "Last Name" + }, + "fullName": { + "message": "Full Name" + }, + "address1": { + "message": "Address 1" + }, + "address2": { + "message": "Address 2" + }, + "address3": { + "message": "Address 3" + }, + "cityTown": { + "message": "City / Town" + }, + "stateProvince": { + "message": "State / Province" + }, + "zipPostalCode": { + "message": "Zip / Postal Code" + }, + "country": { + "message": "Country" + }, + "shared": { + "message": "Shared" + }, + "attachments": { + "message": "Attachments" + }, + "select": { + "message": "Select" + }, + "addItem": { + "message": "Add Item" + }, + "editItem": { + "message": "Edit Item" + }, + "viewItem": { + "message": "View Item" + }, + "ex": { + "message": "ex.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Other" + }, + "share": { + "message": "Share" + }, + "moveToOrganization": { + "message": "Move to Organization" + }, + "valueCopied": { + "message": "$VALUE$ copied", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Copy Value", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Copy Password", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Copy Username", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Copy Number", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copy Security Code", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Copy URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "My Vault" + }, + "vault": { + "message": "Vault" + }, + "moveSelectedToOrg": { + "message": "Move Selected to Organization" + }, + "deleteSelected": { + "message": "Delete Selected" + }, + "moveSelected": { + "message": "Move Selected" + }, + "selectAll": { + "message": "Select All" + }, + "unselectAll": { + "message": "Unselect All" + }, + "launch": { + "message": "Launch" + }, + "newAttachment": { + "message": "Add New Attachment" + }, + "deletedAttachment": { + "message": "Deleted attachment" + }, + "deleteAttachmentConfirmation": { + "message": "Are you sure you want to delete this attachment?" + }, + "attachmentSaved": { + "message": "The attachment has been saved." + }, + "file": { + "message": "File" + }, + "selectFile": { + "message": "Select a file." + }, + "maxFileSize": { + "message": "Maximum file size is 500 MB." + }, + "updateKey": { + "message": "You cannot use this feature until you update your encryption key." + }, + "addedItem": { + "message": "Added item" + }, + "editedItem": { + "message": "Edited item" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ moved to $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Selected items moved to $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Delete Item" + }, + "deleteFolder": { + "message": "Delete Folder" + }, + "deleteAttachment": { + "message": "Delete Attachment" + }, + "deleteItemConfirmation": { + "message": "Do you really want to send to the trash?" + }, + "deletedItem": { + "message": "Item sent to trash" + }, + "deletedItems": { + "message": "Items sent to trash" + }, + "movedItems": { + "message": "Moved items" + }, + "overwritePasswordConfirmation": { + "message": "Are you sure you want to overwrite the current password?" + }, + "editedFolder": { + "message": "Edited folder" + }, + "addedFolder": { + "message": "Added folder" + }, + "deleteFolderConfirmation": { + "message": "Are you sure you want to delete this folder?" + }, + "deletedFolder": { + "message": "Deleted folder" + }, + "loggedOut": { + "message": "Logged out" + }, + "loginExpired": { + "message": "Your login session has expired." + }, + "logOutConfirmation": { + "message": "Are you sure you want to log out?" + }, + "logOut": { + "message": "Log Out" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Yes" + }, + "no": { + "message": "No" + }, + "loginOrCreateNewAccount": { + "message": "Log in or create a new account to access your secure vault." + }, + "createAccount": { + "message": "Create Account" + }, + "logIn": { + "message": "Log In" + }, + "submit": { + "message": "Submit" + }, + "emailAddressDesc": { + "message": "You'll use your email address to log in." + }, + "yourName": { + "message": "Your Name" + }, + "yourNameDesc": { + "message": "What should we call you?" + }, + "masterPass": { + "message": "Master Password" + }, + "masterPassDesc": { + "message": "The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it." + }, + "masterPassHintDesc": { + "message": "A master password hint can help you remember your password if you forget it." + }, + "reTypeMasterPass": { + "message": "Re-type Master Password" + }, + "masterPassHint": { + "message": "Master Password Hint (optional)" + }, + "masterPassHintLabel": { + "message": "Master Password Hint" + }, + "settings": { + "message": "Settings" + }, + "passwordHint": { + "message": "Password Hint" + }, + "enterEmailToGetHint": { + "message": "Enter your account email address to receive your master password hint." + }, + "getMasterPasswordHint": { + "message": "Get master password hint" + }, + "emailRequired": { + "message": "Email address is required." + }, + "invalidEmail": { + "message": "Invalid email address." + }, + "masterPassRequired": { + "message": "Master password is required." + }, + "masterPassLength": { + "message": "Master password must be at least 8 characters long." + }, + "masterPassDoesntMatch": { + "message": "Master password confirmation does not match." + }, + "newAccountCreated": { + "message": "Your new account has been created! You may now log in." + }, + "masterPassSent": { + "message": "We've sent you an email with your master password hint." + }, + "unexpectedError": { + "message": "An unexpected error has occurred." + }, + "emailAddress": { + "message": "Email Address" + }, + "yourVaultIsLocked": { + "message": "Your vault is locked. Verify your master password to continue." + }, + "unlock": { + "message": "Unlock" + }, + "loggedInAsEmailOn": { + "message": "Logged in as $EMAIL$ on $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Invalid master password" + }, + "lockNow": { + "message": "Lock Now" + }, + "noItemsInList": { + "message": "There are no items to list." + }, + "noCollectionsInList": { + "message": "There are no collections to list." + }, + "noGroupsInList": { + "message": "There are no groups to list." + }, + "noUsersInList": { + "message": "There are no users to list." + }, + "noEventsInList": { + "message": "There are no events to list." + }, + "newOrganization": { + "message": "New Organization" + }, + "noOrganizationsList": { + "message": "You do not belong to any organizations. Organizations allow you to securely share items with other users." + }, + "versionNumber": { + "message": "Version $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Enter the 6 digit verification code from your authenticator app." + }, + "enterVerificationCodeEmail": { + "message": "Enter the 6 digit verification code that was emailed to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Verification email sent to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Remember me" + }, + "sendVerificationCodeEmailAgain": { + "message": "Send verification code email again" + }, + "useAnotherTwoStepMethod": { + "message": "Use another two-step login method" + }, + "insertYubiKey": { + "message": "Insert your YubiKey into your computer's USB port, then touch its button." + }, + "insertU2f": { + "message": "Insert your security key into your computer's USB port. If it has a button, touch it." + }, + "loginUnavailable": { + "message": "Login Unavailable" + }, + "noTwoStepProviders": { + "message": "This account has two-step login enabled, however, none of the configured two-step providers are supported by this web browser." + }, + "noTwoStepProviders2": { + "message": "Please use a supported web browser (such as Chrome) and/or add additional providers that are better supported across web browsers (such as an authenticator app)." + }, + "twoStepOptions": { + "message": "Two-step Login Options" + }, + "recoveryCodeDesc": { + "message": "Lost access to all of your two-factor providers? Use your recovery code to disable all two-factor providers from your account." + }, + "recoveryCodeTitle": { + "message": "Recovery Code" + }, + "authenticatorAppTitle": { + "message": "Authenticator App" + }, + "authenticatorAppDesc": { + "message": "Use an authenticator app (such as Authy or Google Authenticator) to generate time-based verification codes.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP Security Key" + }, + "yubiKeyDesc": { + "message": "Use a YubiKey to access your account. Works with YubiKey 4 series, 5 series, and NEO devices." + }, + "duoDesc": { + "message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verify with Duo Security for your organization using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Use any FIDO U2F enabled security key to access your account." + }, + "u2fTitle": { + "message": "FIDO U2F Security Key" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Verification codes will be emailed to you." + }, + "continue": { + "message": "Continue" + }, + "organization": { + "message": "Organization" + }, + "organizations": { + "message": "Organizations" + }, + "moveToOrgDesc": { + "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organization that you wish to move these items to. Moving to an organization transfers ownership of the items to that organization. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "Edit the collections that this item is being shared with. Only organization users with access to these collections will be able to see this item." + }, + "deleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to delete. Are you sure you want to delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Choose a folder that you would like to move the $COUNT$ selected item(s) to.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organization, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Verification Code (TOTP)" + }, + "copyVerificationCode": { + "message": "Copy Verification Code" + }, + "warning": { + "message": "Warning" + }, + "confirmVaultExport": { + "message": "Confirm Vault Export" + }, + "exportWarningDesc": { + "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "Export Vault" + }, + "fileFormat": { + "message": "File Format" + }, + "exportSuccess": { + "message": "Your vault data has been exported." + }, + "passwordGenerator": { + "message": "Password Generator" + }, + "minComplexityScore": { + "message": "Minimum Complexity Score" + }, + "minNumbers": { + "message": "Minimum Numbers" + }, + "minSpecial": { + "message": "Minimum Special", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Avoid Ambiguous Characters" + }, + "regeneratePassword": { + "message": "Regenerate Password" + }, + "length": { + "message": "Length" + }, + "numWords": { + "message": "Number of Words" + }, + "wordSeparator": { + "message": "Word Separator" + }, + "capitalize": { + "message": "Capitalize", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Include Number" + }, + "passwordHistory": { + "message": "Password History" + }, + "noPasswordsInList": { + "message": "There are no passwords to list." + }, + "clear": { + "message": "Clear", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Account Updated" + }, + "changeEmail": { + "message": "Change Email" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "New Email" + }, + "code": { + "message": "Code" + }, + "changeEmailDesc": { + "message": "We have emailed a verification code to $EMAIL$. Please check your email for this code and enter it below to finalize the email address change.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "emailChanged": { + "message": "Email Changed" + }, + "logBackIn": { + "message": "Please log back in." + }, + "logBackInOthersToo": { + "message": "Please log back in. If you are using other Bitwarden applications log out and back in to those as well." + }, + "changeMasterPassword": { + "message": "Change Master Password" + }, + "masterPasswordChanged": { + "message": "Master Password Changed" + }, + "currentMasterPass": { + "message": "Current Master Password" + }, + "newMasterPass": { + "message": "New Master Password" + }, + "confirmNewMasterPass": { + "message": "Confirm New Master Password" + }, + "encKeySettings": { + "message": "Encryption Key Settings" + }, + "kdfAlgorithm": { + "message": "KDF Algorithm" + }, + "kdfIterations": { + "message": "KDF Iterations" + }, + "kdfIterationsDesc": { + "message": "Higher KDF iterations can help protect your master password from being brute forced by an attacker. We recommend a value of $VALUE$ or more.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Setting your KDF iterations too high could result in poor performance when logging into (and unlocking) Bitwarden on devices with slower CPUs. We recommend that you increase the value in increments of $INCREMENT$ and then test all of your devices.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Change KDF" + }, + "encKeySettingsChanged": { + "message": "Encryption Key Settings Changed" + }, + "dangerZone": { + "message": "Danger Zone" + }, + "dangerZoneDesc": { + "message": "Careful, these actions are not reversible!" + }, + "deauthorizeSessions": { + "message": "Deauthorize Sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Concerned your account is logged in on another device? Proceed below to deauthorize all computers or devices that you have previously used. This security step is recommended if you previously used a public computer or accidentally saved your password on a device that isn't yours. This step will also clear all previously remembered two-step login sessions." + }, + "deauthorizeSessionsWarning": { + "message": "Proceeding will also log you out of your current session, requiring you to log back in. You will also be prompted for two-step login again, if enabled. Active sessions on other devices may continue to remain active for up to one hour." + }, + "sessionsDeauthorized": { + "message": "All Sessions Deauthorized" + }, + "purgeVault": { + "message": "Purge Vault" + }, + "purgedOrganizationVault": { + "message": "Purged organization vault." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Proceed below to delete all items and folders in your vault. Items that belong to an organization that you share with will not be deleted." + }, + "purgeOrgVaultDesc": { + "message": "Proceed below to delete all items in the organization's vault." + }, + "purgeVaultWarning": { + "message": "Purging your vault is permanent. It cannot be undone." + }, + "vaultPurged": { + "message": "Your vault has been purged." + }, + "deleteAccount": { + "message": "Delete Account" + }, + "deleteAccountDesc": { + "message": "Proceed below to delete your account and all associated data." + }, + "deleteAccountWarning": { + "message": "Deleting your account is permanent. It cannot be undone." + }, + "accountDeleted": { + "message": "Account Deleted" + }, + "accountDeletedDesc": { + "message": "Your account has been closed and all associated data has been deleted." + }, + "myAccount": { + "message": "My Account" + }, + "tools": { + "message": "Tools" + }, + "importData": { + "message": "Import Data" + }, + "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." + }, + "importSuccess": { + "message": "Data has been successfully imported into your vault." + }, + "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." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "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)" + } + } + }, + "options": { + "message": "Options" + }, + "optionsDesc": { + "message": "Customize your web vault experience." + }, + "optionsUpdated": { + "message": "Options updated" + }, + "language": { + "message": "Language" + }, + "languageDesc": { + "message": "Change the language used by the web vault." + }, + "disableIcons": { + "message": "Disable Website Icons" + }, + "disableIconsDesc": { + "message": "Website Icons provide a recognizable image next to each login item in your vault." + }, + "enableGravatars": { + "message": "Enable Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use avatar images loaded from gravatar.com." + }, + "enableFullWidth": { + "message": "Enable Full Width Layout", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Allow the web vault to expand the full width of the browser window." + }, + "default": { + "message": "Default" + }, + "domainRules": { + "message": "Domain Rules" + }, + "domainRulesDesc": { + "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + }, + "globalEqDomains": { + "message": "Global Equivalent Domains" + }, + "customEqDomains": { + "message": "Custom Equivalent Domains" + }, + "exclude": { + "message": "Exclude" + }, + "include": { + "message": "Include" + }, + "customize": { + "message": "Customize" + }, + "newCustomDomain": { + "message": "New Custom Domain" + }, + "newCustomDomainDesc": { + "message": "Enter a list of domains separated by commas. Only \"base\" domains are allowed. Do not enter subdomains. For example, enter \"google.com\" instead of \"www.google.com\". You can also enter \"androidapp://package.name\" to associate an android app with other website domains." + }, + "customDomainX": { + "message": "Custom Domain $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domains updated" + }, + "twoStepLogin": { + "message": "Two-step Login" + }, + "twoStepLoginDesc": { + "message": "Secure your account by requiring an additional step when logging in." + }, + "twoStepLoginOrganizationDesc": { + "message": "Require two-step login for your organization's users by configuring providers at the organization level." + }, + "twoStepLoginRecoveryWarning": { + "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (ex. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + }, + "viewRecoveryCode": { + "message": "View Recovery Code" + }, + "providers": { + "message": "Providers", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Enable" + }, + "enabled": { + "message": "Enabled" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium Membership" + }, + "premiumRequired": { + "message": "Premium Required" + }, + "premiumRequiredDesc": { + "message": "A premium membership is required to use this feature." + }, + "youHavePremiumAccess": { + "message": "You have premium access" + }, + "alreadyPremiumFromOrg": { + "message": "You already have access to premium features because of an organization you are a member of." + }, + "manage": { + "message": "Manage" + }, + "disable": { + "message": "Disable" + }, + "twoStepLoginProviderEnabled": { + "message": "This two-step login provider is enabled on your account." + }, + "twoStepLoginAuthDesc": { + "message": "Enter your master password to modify two-step login settings." + }, + "twoStepAuthenticatorDesc": { + "message": "Follow these steps to set up two-step login with an authenticator app:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Download a two-step authenticator app" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Need a two-step authenticator app? Download one of the following" + }, + "iosDevices": { + "message": "iOS devices" + }, + "androidDevices": { + "message": "Android devices" + }, + "windowsDevices": { + "message": "Windows devices" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "These apps are recommended, however, other authenticator apps will also work." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scan this QR code with your authenticator app" + }, + "key": { + "message": "Key" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Enter the resulting 6 digit verification code from the app" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app." + }, + "twoStepDisableDesc": { + "message": "Are you sure you want to disable this two-step login provider?" + }, + "twoStepDisabled": { + "message": "Two-step login provider disabled." + }, + "twoFactorYubikeyAdd": { + "message": "Add a new YubiKey to your account" + }, + "twoFactorYubikeyPlugIn": { + "message": "Plug the YubiKey into your computer's USB port." + }, + "twoFactorYubikeySelectKey": { + "message": "Select the first empty YubiKey input field below." + }, + "twoFactorYubikeyTouchButton": { + "message": "Touch the YubiKey's button." + }, + "twoFactorYubikeySaveForm": { + "message": "Save the form." + }, + "twoFactorYubikeyWarning": { + "message": "Due to platform limitations, YubiKeys cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when YubiKeys cannot be used. Supported platforms:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile apps on a device with NFC capabilities or a data port that can accept your YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC Support" + }, + "twoFactorYubikeySupportsNfc": { + "message": "One of my keys supports NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "If one of your YubiKeys supports NFC (such as a YubiKey NEO), you will be prompted on mobile devices whenever NFC availability is detected." + }, + "yubikeysUpdated": { + "message": "YubiKeys updated" + }, + "disableAllKeys": { + "message": "Disable All Keys" + }, + "twoFactorDuoDesc": { + "message": "Enter the Bitwarden application information from your Duo Admin panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration Key" + }, + "twoFactorDuoSecretKey": { + "message": "Secret Key" + }, + "twoFactorDuoApiHostname": { + "message": "API Hostname" + }, + "twoFactorEmailDesc": { + "message": "Follow these steps to set up two-step login with email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enter the email that you wish to receive verification codes" + }, + "twoFactorEmailEnterCode": { + "message": "Enter the resulting 6 digit verification code from the email" + }, + "sendEmail": { + "message": "Send Email" + }, + "twoFactorU2fAdd": { + "message": "Add a FIDO U2F security key to your account" + }, + "removeU2fConfirmation": { + "message": "Are you sure you want to remove this security key?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Read Key" + }, + "keyCompromised": { + "message": "Key is compromised." + }, + "twoFactorU2fGiveName": { + "message": "Give the security key a friendly name to identify it." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Plug the security key into your computer's USB port and click the \"Read Key\" button." + }, + "twoFactorU2fTouchButton": { + "message": "If the security key has a button, touch it." + }, + "twoFactorU2fSaveForm": { + "message": "Save the form." + }, + "twoFactorU2fWarning": { + "message": "Due to platform limitations, FIDO U2F cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when FIDO U2F cannot be used. Supported platforms:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorU2fWaiting": { + "message": "Waiting for you to touch the button on your security key" + }, + "twoFactorU2fClickSave": { + "message": "Click the \"Save\" button below to enable this security key for two-step login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Your Bitwarden two-step login recovery code" + }, + "twoFactorRecoveryNoCode": { + "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + }, + "printCode": { + "message": "Print Code", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Reports" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Unsecure Websites" + }, + "unsecuredWebsitesReportDesc": { + "message": "URLs that start with http:// don’t use the best available encryption. Change the Login URIs for these accounts to https:// for safer browsing." + }, + "unsecuredWebsitesFound": { + "message": "Unsecured Websites Found" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Inactive Two-step Login" + }, + "inactive2faReportDesc": { + "message": "Two-step Login adds a layer of protection to your accounts. Turn on Two-Step Login using Bitwarden Authenticator for these accounts or use an alternative method." + }, + "inactive2faFound": { + "message": "Logins Without 2FA Found" + }, + "inactive2faFoundDesc": { + "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to 2fa.directory). To further protect these accounts, you should enable two-factor authentication.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No websites were found in your vault with a missing two-factor authentication configuration." + }, + "instructions": { + "message": "Instructions" + }, + "exposedPasswordsReport": { + "message": "Exposed Passwords" + }, + "exposedPasswordsReportDesc": { + "message": "Passwords exposed in a data breach are easy targets for attackers. Change these passwords to prevent potential break-ins." + }, + "exposedPasswordsFound": { + "message": "Exposed Passwords Found" + }, + "exposedPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No items in your vault have passwords that have been exposed in known data breaches." + }, + "checkExposedPasswords": { + "message": "Check Exposed Passwords" + }, + "exposedXTimes": { + "message": "Exposed $COUNT$ time(s)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Weak Passwords" + }, + "weakPasswordsReportDesc": { + "message": "Weak passwords can be easily guessed by attackers. Change these passwords to strong ones using the Password Generator." + }, + "weakPasswordsFound": { + "message": "Weak Passwords Found" + }, + "weakPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "No items in your vault have weak passwords." + }, + "reusedPasswordsReport": { + "message": "Reused Passwords" + }, + "reusedPasswordsReportDesc": { + "message": "Reusing passwords makes it easier for attackers to break into multiple accounts. Change these passwords so that each is unique." + }, + "reusedPasswordsFound": { + "message": "Reused Passwords Found" + }, + "reusedPasswordsFoundDesc": { + "message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "No logins in your vault have passwords that are being reused." + }, + "reusedXTimes": { + "message": "Reused $COUNT$ times", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Data Breach" + }, + "breachDesc": { + "message": "Breached accounts can expose your personal information. Secure breached accounts by enabling 2FA or creating a stronger password." + }, + "breachCheckUsernameEmail": { + "message": "Check any usernames or email addresses that you use." + }, + "checkBreaches": { + "message": "Check Breaches" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ was not found in any known data breaches.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Good News", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Breached Accounts Found" + }, + "compromisedData": { + "message": "Compromised data" + }, + "website": { + "message": "Website" + }, + "affectedUsers": { + "message": "Affected Users" + }, + "breachOccurred": { + "message": "Breach Occurred" + }, + "breachReported": { + "message": "Breach Reported" + }, + "reportError": { + "message": "An error occurred trying to load the report. Try again" + }, + "billing": { + "message": "Billing" + }, + "accountCredit": { + "message": "Account Credit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Account Balance", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Add Credit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Amount", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Added credit will appear on your account after the payment has been fully processed. Some payment methods are delayed and can take longer to process than others." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + }, + "goPremium": { + "message": "Go Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "You've upgraded to premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Upgrade your account to a premium membership and unlock some great additional features." + }, + "premiumSignUpStorage": { + "message": "1 GB encrypted storage for file attachments." + }, + "premiumSignUpTwoStep": { + "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + }, + "premiumSignUpTotp": { + "message": "TOTP verification code (2FA) generator for logins in your vault." + }, + "premiumSignUpSupport": { + "message": "Priority customer support." + }, + "premiumSignUpFuture": { + "message": "All future premium features. More coming soon!" + }, + "premiumPrice": { + "message": "All for just $PRICE$ /year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Addons" + }, + "premiumAccess": { + "message": "Premium Access" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organization for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Additional Storage (GB)" + }, + "additionalStorageGbDesc": { + "message": "# of additional GB" + }, + "additionalStorageIntervalDesc": { + "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Summary" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "year" + }, + "month": { + "message": "month" + }, + "monthAbbr": { + "message": "mo.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Your payment method will be charged immediately and then on a recurring basis each year. You may cancel at any time." + }, + "paymentCharged": { + "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Your plan comes with a free 7 day trial. Your payment method will not be charged until the trial has ended. You may cancel at any time." + }, + "paymentInformation": { + "message": "Payment Information" + }, + "billingInformation": { + "message": "Billing Information" + }, + "creditCard": { + "message": "Credit Card" + }, + "paypalClickSubmit": { + "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + }, + "cancelSubscription": { + "message": "Cancel Subscription" + }, + "subscriptionCanceled": { + "message": "The subscription has been canceled." + }, + "pendingCancellation": { + "message": "Pending Cancellation" + }, + "subscriptionPendingCanceled": { + "message": "The subscription has been marked for cancellation at the end of the current billing period." + }, + "reinstateSubscription": { + "message": "Reinstate Subscription" + }, + "reinstateConfirmation": { + "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + }, + "reinstated": { + "message": "The subscription has been reinstated." + }, + "cancelConfirmation": { + "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + }, + "canceledSubscription": { + "message": "The subscription has been canceled." + }, + "neverExpires": { + "message": "Never Expires" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Next Charge" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "Download License" + }, + "updateLicense": { + "message": "Update License" + }, + "updatedLicense": { + "message": "Updated license" + }, + "manageSubscription": { + "message": "Manage Subscription" + }, + "storage": { + "message": "Storage" + }, + "addStorage": { + "message": "Add Storage" + }, + "removeStorage": { + "message": "Remove Storage" + }, + "subscriptionStorage": { + "message": "Your subscription has a total of $MAX_STORAGE$ GB of encrypted file storage. You are currently using $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Payment Method" + }, + "noPaymentMethod": { + "message": "No payment method on file." + }, + "addPaymentMethod": { + "message": "Add Payment Method" + }, + "changePaymentMethod": { + "message": "Change Payment Method" + }, + "invoices": { + "message": "Invoices" + }, + "noInvoices": { + "message": "No invoices." + }, + "paid": { + "message": "Paid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Unpaid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transactions", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "No transactions." + }, + "chargeNoun": { + "message": "Charge", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Refund", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Any charges will appear on your statement as $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB of Storage To Add" + }, + "gbStorageRemove": { + "message": "GB of Storage To Remove" + }, + "storageAddNote": { + "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "storageRemoveNote": { + "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedStorage": { + "message": "Adjusted $AMOUNT$ GB of storage.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contact Customer Support" + }, + "updatedPaymentMethod": { + "message": "Updated payment method." + }, + "purchasePremium": { + "message": "Purchase Premium" + }, + "licenseFile": { + "message": "License File" + }, + "licenseFileDesc": { + "message": "Your license file will be named something like $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "To upgrade your account to a premium membership you need to upload a valid license file." + }, + "uploadLicenseFileOrg": { + "message": "To create an on-premises hosted organization you need to upload a valid license file." + }, + "accountEmailMustBeVerified": { + "message": "Your account's email address must be verified." + }, + "newOrganizationDesc": { + "message": "Organizations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company." + }, + "generalInformation": { + "message": "General Information" + }, + "organizationName": { + "message": "Organization Name" + }, + "accountOwnedBusiness": { + "message": "This account is owned by a business." + }, + "billingEmail": { + "message": "Billing Email" + }, + "businessName": { + "message": "Business Name" + }, + "chooseYourPlan": { + "message": "Choose Your Plan" + }, + "users": { + "message": "Users" + }, + "userSeats": { + "message": "User Seats" + }, + "additionalUserSeats": { + "message": "Additional User Seats" + }, + "userSeatsDesc": { + "message": "# of user seats" + }, + "userSeatsAdditionalDesc": { + "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "How many user seats do you need? You can also add additional seats later if needed." + }, + "planNameFree": { + "message": "Free", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing or personal users to share with $COUNT$ other user.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Families" + }, + "planDescFamilies": { + "message": "For personal use, to share with family & friends." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "For businesses and other team organizations." + }, + "planNameEnterprise": { + "message": "Enterprise" + }, + "planDescEnterprise": { + "message": "For businesses and other large organizations." + }, + "freeForever": { + "message": "Free Forever" + }, + "includesXUsers": { + "message": "includes $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Additional Users" + }, + "costPerUser": { + "message": "$COST$ per user", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limited to $COUNT$ users (including you)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limited to $COUNT$ collections", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Add and share with up to $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Add and share with unlimited users" + }, + "createUnlimitedCollections": { + "message": "Create unlimited Collections" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ encrypted file storage", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "On-premise hosting (optional)" + }, + "usersGetPremium": { + "message": "Users get access to Premium Features" + }, + "controlAccessWithGroups": { + "message": "Control user access with Groups" + }, + "syncUsersFromDirectory": { + "message": "Sync your users and Groups from a directory" + }, + "trackAuditLogs": { + "message": "Track user actions with audit logs" + }, + "enforce2faDuo": { + "message": "Enforce 2FA with Duo" + }, + "priorityCustomerSupport": { + "message": "Priority customer support" + }, + "xDayFreeTrial": { + "message": "$COUNT$ day free trial, cancel anytime", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Monthly" + }, + "annually": { + "message": "Annually" + }, + "basePrice": { + "message": "Base Price" + }, + "organizationCreated": { + "message": "Organization Created" + }, + "organizationReadyToGo": { + "message": "Your new organization is ready to go!" + }, + "organizationUpgraded": { + "message": "Your organization has been upgraded." + }, + "leave": { + "message": "Leave" + }, + "leaveOrganizationConfirmation": { + "message": "Are you sure you want to leave this organization?" + }, + "leftOrganization": { + "message": "You have left the organization." + }, + "defaultCollection": { + "message": "Default Collection" + }, + "getHelp": { + "message": "Get Help" + }, + "getApps": { + "message": "Get the Apps" + }, + "loggedInAs": { + "message": "Logged in as" + }, + "eventLogs": { + "message": "Event Logs" + }, + "people": { + "message": "People" + }, + "policies": { + "message": "Policies" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Edit Policy" + }, + "groups": { + "message": "Groups" + }, + "newGroup": { + "message": "New Group" + }, + "addGroup": { + "message": "Add Group" + }, + "editGroup": { + "message": "Edit Group" + }, + "deleteGroupConfirmation": { + "message": "Are you sure you want to delete this group?" + }, + "removeUserConfirmation": { + "message": "Are you sure you want to remove this user?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "External Id" + }, + "externalIdDesc": { + "message": "The external id can be used as a reference or to link this resource to an external system such as a user directory." + }, + "accessControl": { + "message": "Access Control" + }, + "groupAccessAllItems": { + "message": "This group can access and modify all items." + }, + "groupAccessSelectedCollections": { + "message": "This group can access only the selected collections." + }, + "readOnly": { + "message": "Read Only" + }, + "newCollection": { + "message": "New Collection" + }, + "addCollection": { + "message": "Add Collection" + }, + "editCollection": { + "message": "Edit Collection" + }, + "deleteCollectionConfirmation": { + "message": "Are you sure you want to delete this collection?" + }, + "editUser": { + "message": "Edit User" + }, + "inviteUser": { + "message": "Invite User" + }, + "inviteUserDesc": { + "message": "Invite a new user to your organization by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "inviteMultipleEmailDesc": { + "message": "You can invite up to $COUNT$ users at a time by comma separating a list of email addresses.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "This user is using two-step login to protect their account." + }, + "userAccessAllItems": { + "message": "This user can access and modify all items." + }, + "userAccessSelectedCollections": { + "message": "This user can access only the selected collections." + }, + "search": { + "message": "Search" + }, + "invited": { + "message": "Invited" + }, + "accepted": { + "message": "Accepted" + }, + "confirmed": { + "message": "Confirmed" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Owner" + }, + "ownerDesc": { + "message": "The highest access user that can manage all aspects of your organization." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admins can access and manage all items, collections and users in your organization." + }, + "user": { + "message": "User" + }, + "userDesc": { + "message": "A regular user with access to assigned collections in your organization." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managers can access and manage assigned collections in your organization." + }, + "all": { + "message": "All" + }, + "refresh": { + "message": "Refresh" + }, + "timestamp": { + "message": "Timestamp" + }, + "event": { + "message": "Event" + }, + "unknown": { + "message": "Unknown" + }, + "loadMore": { + "message": "Load More" + }, + "mobile": { + "message": "Mobile", + "description": "Mobile app" + }, + "extension": { + "message": "Extension", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Web Vault" + }, + "loggedIn": { + "message": "Logged in." + }, + "changedPassword": { + "message": "Changed account password." + }, + "enabledUpdated2fa": { + "message": "Enabled/updated two-step login." + }, + "disabled2fa": { + "message": "Disabled two-step login." + }, + "recovered2fa": { + "message": "Recovered account from two-step login." + }, + "failedLogin": { + "message": "Login attempt failed with incorrect password." + }, + "failedLogin2fa": { + "message": "Login attempt failed with incorrect two-step login." + }, + "exportedVault": { + "message": "Exported vault." + }, + "exportedOrganizationVault": { + "message": "Exported organization vault." + }, + "editedOrgSettings": { + "message": "Edited organization settings." + }, + "createdItemId": { + "message": "Created item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Edited item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Sent item $ID$ to trash.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Viewed item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Viewed password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Viewed hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Viewed security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Copied password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Copied hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Copied security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Auto-filled item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Created collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Edited collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Deleted collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Edited policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Created group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Edited group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Deleted group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Removed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Created attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Deleted attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Edited collections for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Invited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Confirmed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Edited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Edited groups for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Device" + }, + "view": { + "message": "View" + }, + "invalidDateRange": { + "message": "Invalid date range." + }, + "errorOccurred": { + "message": "An error has occurred." + }, + "userAccess": { + "message": "User Access" + }, + "userType": { + "message": "User Type" + }, + "groupAccess": { + "message": "Group Access" + }, + "groupAccessUserDesc": { + "message": "Edit the groups that this user belongs to." + }, + "invitedUsers": { + "message": "Invited user(s)." + }, + "resendInvitation": { + "message": "Resend Invitation" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ has been reinvited.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirm" + }, + "confirmUser": { + "message": "Confirm User" + }, + "hasBeenConfirmed": { + "message": "$USER$ has been confirmed.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirm Users" + }, + "usersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organization until they are confirmed." + }, + "startDate": { + "message": "Start Date" + }, + "endDate": { + "message": "End Date" + }, + "verifyEmail": { + "message": "Verify Email" + }, + "verifyEmailDesc": { + "message": "Verify your account's email address to unlock access to all features." + }, + "verifyEmailFirst": { + "message": "Your account's email address first must be verified." + }, + "checkInboxForVerification": { + "message": "Check your email inbox for a verification link." + }, + "emailVerified": { + "message": "Your email has been verified." + }, + "emailVerifiedFailed": { + "message": "Unable to verify your email. Try sending a new verification email." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "Update Browser" + }, + "updateBrowserDesc": { + "message": "You are using an unsupported web browser. The web vault may not function properly." + }, + "joinOrganization": { + "message": "Join Organization" + }, + "joinOrganizationDesc": { + "message": "You've been invited to join the organization listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "inviteAccepted": { + "message": "Invitation Accepted" + }, + "inviteAcceptedDesc": { + "message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens." + }, + "inviteAcceptFailed": { + "message": "Unable to accept invitation. Ask an organization admin to send a new invitation." + }, + "inviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Remember email" + }, + "recoverAccountTwoStepDesc": { + "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + }, + "recoverAccountTwoStep": { + "message": "Recover Account Two-Step Login" + }, + "twoStepRecoverDisabled": { + "message": "Two-step login has been disabled on your account." + }, + "learnMore": { + "message": "Learn more" + }, + "deleteRecoverDesc": { + "message": "Enter your email address below to recover and delete your account." + }, + "deleteRecoverEmailSent": { + "message": "If your account exists, we've sent you an email with further instructions." + }, + "deleteRecoverConfirmDesc": { + "message": "You have requested to delete your Bitwarden account. Click the button below to confirm." + }, + "myOrganization": { + "message": "My Organization" + }, + "deleteOrganization": { + "message": "Delete Organization" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organization Deleted" + }, + "organizationDeletedDesc": { + "message": "The organization and all associated data has been deleted." + }, + "organizationUpdated": { + "message": "Organization updated" + }, + "taxInformation": { + "message": "Tax Information" + }, + "taxInformationDesc": { + "message": "For customers within the US, ZIP code is required to satisfy sales tax requirements, for other countries you may optionally provide a tax identification number (VAT/GST) and/or address to appear on your invoices." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Upgrade Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade your account to another plan by providing the information below. Please ensure that you have an active payment method added to the account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Invoice #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "View Invoice" + }, + "downloadInvoice": { + "message": "Download Invoice" + }, + "verifyBankAccount": { + "message": "Verify Bank Account" + }, + "verifyBankAccountDesc": { + "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." + }, + "verifyBankAccountInitialDesc": { + "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organization's billing page to verify the bank account." + }, + "verifyBankAccountFailureWarning": { + "message": "Failure to verify the bank account will result in a missed payment and your subscription being disabled." + }, + "verifiedBankAccount": { + "message": "Bank account has been verified." + }, + "bankAccount": { + "message": "Bank Account" + }, + "amountX": { + "message": "Amount $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Account Number" + }, + "accountHolderName": { + "message": "Account Holder Name" + }, + "bankAccountType": { + "message": "Account Type" + }, + "bankAccountTypeCompany": { + "message": "Company (Business)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Personal)" + }, + "enterInstallationId": { + "message": "Enter your installation id" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Add Seats", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remove Seats", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Your subscription allows for a total of $COUNT$ users.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seats To Add" + }, + "seatsToRemove": { + "message": "Seats To Remove" + }, + "seatsAddNote": { + "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "seatsRemoveNote": { + "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedSeats": { + "message": "Adjusted $AMOUNT$ user seats.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Key Updated" + }, + "updateKeyTitle": { + "message": "Update Key" + }, + "updateEncryptionKey": { + "message": "Update Encryption Key" + }, + "updateEncryptionKeyShortDesc": { + "message": "You are currently using an outdated encryption scheme." + }, + "updateEncryptionKeyDesc": { + "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, however, it may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "Subscription" + }, + "loading": { + "message": "Loading" + }, + "upgrade": { + "message": "Upgrade" + }, + "upgradeOrganization": { + "message": "Upgrade Organization" + }, + "upgradeOrganizationDesc": { + "message": "This feature is not available for free organizations. Switch to a paid plan to unlock more features." + }, + "createOrganizationStep1": { + "message": "Create Organization: Step 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Before creating your organization, you first need to create a free personal account." + }, + "refunded": { + "message": "Refunded" + }, + "nothingSelected": { + "message": "You have not selected anything." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." + }, + "termsOfService": { + "message": "Terms of Service" + }, + "privacyPolicy": { + "message": "Privacy Policy" + }, + "filters": { + "message": "Filters" + }, + "vaultTimeout": { + "message": "Vault Timeout" + }, + "vaultTimeoutDesc": { + "message": "Choose when your vault will timeout and perform the selected action." + }, + "oneMinute": { + "message": "1 minute" + }, + "fiveMinutes": { + "message": "5 minutes" + }, + "fifteenMinutes": { + "message": "15 minutes" + }, + "thirtyMinutes": { + "message": "30 minutes" + }, + "oneHour": { + "message": "1 hour" + }, + "fourHours": { + "message": "4 hours" + }, + "onRefresh": { + "message": "On Browser Refresh" + }, + "dateUpdated": { + "message": "Updated", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Password Updated", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organization is disabled." + }, + "licenseIsExpired": { + "message": "License is expired." + }, + "updatedUsers": { + "message": "Updated users" + }, + "selected": { + "message": "Selected" + }, + "ownership": { + "message": "Ownership" + }, + "whoOwnsThisItem": { + "message": "Who owns this item?" + }, + "strong": { + "message": "Strong", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Good", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Weak", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Very Weak", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Weak Master Password" + }, + "weakMasterPasswordDesc": { + "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + }, + "rotateAccountEncKey": { + "message": "Also rotate my account's encryption key" + }, + "rotateEncKeyTitle": { + "message": "Rotate Encryption Key" + }, + "rotateEncKeyConfirmation": { + "message": "Are you sure you want to rotate your account's encryption key?" + }, + "attachmentsNeedFix": { + "message": "This item has old file attachments that need to be fixed." + }, + "attachmentFixDesc": { + "message": "This is an old file attachment the needs to be fixed. Click to learn more." + }, + "fix": { + "message": "Fix", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key." + }, + "yourAccountsFingerprint": { + "message": "Your account's fingerprint phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Never prompt to verify fingerprint phrases for invited users (Not recommended)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Free", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API Key" + }, + "apiKeyDesc": { + "message": "Your API key can be used to authenticate to the Bitwarden public API." + }, + "apiKeyRotateDesc": { + "message": "Rotating the API key will invalidate the previous key. You can rotate your API key if you believe that the current key is no longer safe to use." + }, + "apiKeyWarning": { + "message": "Your API key has full access to the organization. It should be kept secret." + }, + "userApiKeyDesc": { + "message": "Your API key can be used to authenticate in the Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 Client Credentials", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "View API Key" + }, + "rotateApiKey": { + "message": "Rotate API Key" + }, + "selectOneCollection": { + "message": "You must select at least one collection." + }, + "couldNotChargeCardPayInvoice": { + "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + }, + "inAppPurchase": { + "message": "In-app Purchase" + }, + "cannotPerformInAppPurchase": { + "message": "You cannot perform this action while using an in-app purchase payment method." + }, + "manageSubscriptionFromStore": { + "message": "You must manage your subscription from the store where your in-app purchase was made." + }, + "minLength": { + "message": "Minimum Length" + }, + "clone": { + "message": "Clone" + }, + "masterPassPolicyDesc": { + "message": "Set minimum requirements for master password strength." + }, + "twoStepLoginPolicyDesc": { + "message": "Require users to set up two-step login on their personal accounts." + }, + "twoStepLoginPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and do not have two-step login enabled for their personal account will be removed from the organization and will receive an email notifying them about the change." + }, + "twoStepLoginPolicyUserWarning": { + "message": "You are a member of an organization that requires two-step login to be enabled on your user account. If you disable all two-step login providers you will be automatically removed from these organizations." + }, + "passwordGeneratorPolicyDesc": { + "message": "Set minimum requirements for password generator configuration." + }, + "passwordGeneratorPolicyInEffect": { + "message": "One or more organization policies are affecting your generator settings." + }, + "masterPasswordPolicyInEffect": { + "message": "One or more organization policies require your master password to meet the following requirements:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum complexity score of $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum length of $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contain one or more uppercase characters" + }, + "policyInEffectLowercase": { + "message": "Contain one or more lowercase characters" + }, + "policyInEffectNumbers": { + "message": "Contain one or more numbers" + }, + "policyInEffectSpecial": { + "message": "Contain one or more of the following special characters $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Your new master password does not meet the policy requirements." + }, + "minimumNumberOfWords": { + "message": "Minimum Number of Words" + }, + "defaultType": { + "message": "Default Type" + }, + "userPreference": { + "message": "User Preference" + }, + "vaultTimeoutAction": { + "message": "Vault Timeout Action" + }, + "vaultTimeoutActionLockDesc": { + "message": "A locked vault requires that you re-enter your master password to access it again." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "A logged out vault requires that you re-authenticate to access it again." + }, + "lock": { + "message": "Lock", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Trash", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Search Trash" + }, + "permanentlyDelete": { + "message": "Permanently Delete" + }, + "permanentlyDeleteSelected": { + "message": "Permanently Delete Selected" + }, + "permanentlyDeleteItem": { + "message": "Permanently Delete Item" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Are you sure you want to permanently delete this item?" + }, + "permanentlyDeletedItem": { + "message": "Permanently Deleted item" + }, + "permanentlyDeletedItems": { + "message": "Permanently Deleted items" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Permanently Deleted item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restore" + }, + "restoreSelected": { + "message": "Restore Selected" + }, + "restoreItem": { + "message": "Restore Item" + }, + "restoredItem": { + "message": "Restored Item" + }, + "restoredItems": { + "message": "Restored Items" + }, + "restoreItemConfirmation": { + "message": "Are you sure you want to restore this item?" + }, + "restoreItems": { + "message": "Restore items" + }, + "restoreSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Restored item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout Action Confirmation" + }, + "hidePasswords": { + "message": "Hide Passwords" + }, + "countryPostalCodeRequiredDesc": { + "message": "We require this information for calculating sales tax and financial reporting only." + }, + "includeVAT": { + "message": "Include VAT/GST Information (optional)" + }, + "taxIdNumber": { + "message": "VAT/GST Tax ID" + }, + "taxInfoUpdated": { + "message": "Tax information updated." + }, + "setMasterPassword": { + "message": "Set Master Password" + }, + "ssoCompleteRegistration": { + "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + }, + "identifier": { + "message": "Identifier" + }, + "organizationIdentifier": { + "message": "Organization Identifier" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Log in using your organization's single sign-on portal. Please enter your organization's identifier to begin." + }, + "enterpriseSingleSignOn": { + "message": "Enterprise Single Sign-On" + }, + "ssoHandOff": { + "message": "You may now close this tab and continue in the extension." + }, + "includeAllTeamsFeatures": { + "message": "All Teams features, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO Authentication via SAML2.0 and OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Enterprise Policies" + }, + "ssoValidationFailed": { + "message": "SSO Validation Failed" + }, + "ssoIdentifierRequired": { + "message": "Organization Identifier is required." + }, + "unlinkSso": { + "message": "Unlink SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Link SSO" + }, + "singleOrg": { + "message": "Single Organization" + }, + "singleOrgDesc": { + "message": "Restrict users from being able to join any other organizations." + }, + "singleOrgBlockCreateMessage": { + "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + }, + "singleOrgPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + }, + "requireSso": { + "message": "Single Sign-On Authentication" + }, + "requireSsoPolicyDesc": { + "message": "Require users to log in with the Enterprise Single Sign-On method." + }, + "prerequisite": { + "message": "Prerequisite" + }, + "requireSsoPolicyReq": { + "message": "The Single Organization enterprise policy must be enabled before activating this policy." + }, + "requireSsoPolicyReqError": { + "message": "Single Organization policy not enabled." + }, + "requireSsoExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "sendTypeFile": { + "message": "File" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Create New Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edit Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Created Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Edited Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Deleted Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Delete Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Are you sure you want to delete this Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "What type of Send is this?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Deletion Date" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Expiration Date" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximum Access Count" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Current Access Count" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Disabled" + }, + "sendLink": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copy Send Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remove Password" + }, + "removedPassword": { + "message": "Removed Password" + }, + "removePasswordConfirmation": { + "message": "Are you sure you want to remove the password?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "All Sends" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "expired": { + "message": "Expired" + }, + "searchSends": { + "message": "Search Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "This Send is protected with a password. Please type the password below to continue.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Download File" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "There are no Sends to list.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Emergency Access" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Request Access" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approve" + }, + "reject": { + "message": "Reject" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Disable Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "Estimated tax" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Manage All Collections" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Manage Groups" + }, + "managePolicies": { + "message": "Manage Policies" + }, + "manageSso": { + "message": "Manage SSO" + }, + "manageUsers": { + "message": "Manage Users" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organization users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Learn more about", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Learn more", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "try it now", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "sign up", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "to try it today.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organization policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organization administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/kn/messages.json b/apps/web/src/locales/kn/messages.json new file mode 100644 index 0000000000..bffd6bbf63 --- /dev/null +++ b/apps/web/src/locales/kn/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ ವೆಬ್ ವಾಲ್ಟ್", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "ಇದು ಯಾವ ರೀತಿಯ ಐಟಂ?" + }, + "name": { + "message": "ಹೆಸರು" + }, + "uri": { + "message": "ಯು ಆರ್ ಐ" + }, + "uriPosition": { + "message": "ಯು ಆರ್ ಐ $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "ಹೊಸ ಯು ಆರ್ ಐ" + }, + "username": { + "message": "ಬಳಕೆದಾರ ಹೆಸರು" + }, + "password": { + "message": "ಪಾಸ್ವರ್ಡ್" + }, + "newPassword": { + "message": "ಹೊಸ ಪಾಸ್‌ವರ್ಡ್" + }, + "passphrase": { + "message": "ಪಾಸ್ಫ್ರೇಸ್" + }, + "notes": { + "message": "ಟಿಪ್ಪಣಿಗಳು" + }, + "customFields": { + "message": "ಕಸ್ಟಮ್ ಕ್ಷೇತ್ರಗಳು" + }, + "cardholderName": { + "message": "ಕಾರ್ಡುದಾರನ ಹೆಸರು" + }, + "number": { + "message": "ಸಂಖ್ಯೆ" + }, + "brand": { + "message": "ಬ್ರ್ಯಾಂಡ್" + }, + "expiration": { + "message": "ಮುಕ್ತಾಯ" + }, + "securityCode": { + "message": "ಭದ್ರತಾ ಕೋಡ್ (ಸಿವಿವಿ)" + }, + "identityName": { + "message": "ಹೆಸರು ಗುರುತು" + }, + "company": { + "message": "ಕಂಪನಿ" + }, + "ssn": { + "message": "ಸಾಮಾಜಿಕ ಭದ್ರತೆ ಸಂಖ್ಯೆ" + }, + "passportNumber": { + "message": "ಪಾಸ್ಪೋರ್ಟ್ ಸಂಖ್ಯೆ" + }, + "licenseNumber": { + "message": "ಪರವಾನಗಿ ಸಂಖ್ಯೆ" + }, + "email": { + "message": "ಇಮೇಲ್" + }, + "phone": { + "message": "ಫೋನ್‌" + }, + "january": { + "message": "ಜನವರಿ" + }, + "february": { + "message": "ಫೆಬ್ರವರಿ" + }, + "march": { + "message": "ಮಾರ್ಚ್" + }, + "april": { + "message": "ಏಪ್ರಿಲ್" + }, + "may": { + "message": "ಮೇ" + }, + "june": { + "message": "ಜೂನ್" + }, + "july": { + "message": "ಜುಲೈ" + }, + "august": { + "message": "ಆಗಸ್ಟ್" + }, + "september": { + "message": "ಸೆಪ್ಟೆಂಬರ್" + }, + "october": { + "message": "ಅಕ್ಟೋಬರ್" + }, + "november": { + "message": "ನವೆಂಬರ್" + }, + "december": { + "message": "ಡಿಸೆಂಬರ್" + }, + "title": { + "message": "ಶೀರ್ಷಿಕೆ" + }, + "mr": { + "message": "ಶ್ರೀ" + }, + "mrs": { + "message": "ಶ್ರೀಮತಿ" + }, + "ms": { + "message": "ಮಿಸ್" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "ಮುಕ್ತಾಯ ತಿಂಗಳು" + }, + "expirationYear": { + "message": "ಮುಕ್ತಾಯ ವರ್ಷ" + }, + "authenticatorKeyTotp": { + "message": "ದೃಢೀಕರಣ ಕೀ (TOTP)" + }, + "folder": { + "message": "ಫೋಲ್ಡರ್" + }, + "newCustomField": { + "message": "ಹೊಸ ಕಸ್ಟಮ್ ಕ್ಷೇತ್ರ" + }, + "value": { + "message": "ಮೌಲ್ಯ" + }, + "dragToSort": { + "message": "ವಿಂಗಡಿಸಲು ಎಳೆಯಿರಿ" + }, + "cfTypeText": { + "message": "ಪಠ್ಯ" + }, + "cfTypeHidden": { + "message": "ಮರೆಮಾಡಲಾಗಿದೆ" + }, + "cfTypeBoolean": { + "message": "ಬೂಲಿಯನ್" + }, + "cfTypeLinked": { + "message": "ಸಂಪರ್ಕಿತ", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "ತೆಗೆ" + }, + "unassigned": { + "message": "ನಿಯೋಜಿಸಲಾಗಿಲ್ಲ" + }, + "noneFolder": { + "message": "ಫೋಲ್ಡರ್ ಇಲ್ಲ", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "ಫೋಲ್ಡರ್ ಸೇರಿಸಿ" + }, + "editFolder": { + "message": "ಫೋಲ್ಡರ್ ಸಂಪಾದಿಸಿ" + }, + "baseDomain": { + "message": "ಮೂಲ ಡೊಮೇನ್", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "ಅತಿಥೆಯ", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "ನಿಖರವಾಗಿ" + }, + "startsWith": { + "message": "ಇದರೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ" + }, + "regEx": { + "message": "ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿ", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "ಹೊಂದಾಣಿಕೆ ಪತ್ತೆ", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "ಡೀಫಾಲ್ಟ್ ಪಂದ್ಯ ಪತ್ತೆ", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "ಇಲ್ಲವೇ ಇಲ್ಲ" + }, + "toggleVisibility": { + "message": "ಗೋಚರತೆಯನ್ನು ಟಾಗಲ್ ಮಾಡಿ" + }, + "toggleCollapse": { + "message": "ಟಾಗಲ್ ಕುಸಿತ", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "ಪಾಸ್ವರ್ಡ್ ರಚಿಸಿ" + }, + "checkPassword": { + "message": "ಪಾಸ್ವರ್ಡ್ ಬಹಿರಂಗಗೊಂಡಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ." + }, + "passwordExposed": { + "message": "ಈ ಗುಪ್ತಪದವು ಡೇಟಾ ಉಲ್ಲಂಘನೆಯಲ್ಲಿ $VALUE$ ಮೌಲ್ಯವನ್ನು (ಗಳು) ಬಹಿರಂಗಪಡಿಸಲಾಗಿದೆ. ನೀವು ಅದನ್ನು ಬದಲಾಯಿಸಬೇಕು.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "ತಿಳಿದಿರುವ ಯಾವುದೇ ಡೇಟಾ ಉಲ್ಲಂಘನೆಗಳಲ್ಲಿ ಈ ಪಾಸ್‌ವರ್ಡ್ ಕಂಡುಬಂದಿಲ್ಲ. ಅದನ್ನು ಬಳಸಲು ಸುರಕ್ಷಿತವಾಗಿರಬೇಕು." + }, + "save": { + "message": "ಉಳಿಸಿ" + }, + "cancel": { + "message": "ರದ್ದು" + }, + "canceled": { + "message": "ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ" + }, + "close": { + "message": "ಮುಚ್ಚಿ" + }, + "delete": { + "message": "ಅಳಿಸು" + }, + "favorite": { + "message": "ಮೆಚ್ಚಿನ" + }, + "unfavorite": { + "message": "ಮೆಚ್ಚಿನದಲ್ಲದ" + }, + "edit": { + "message": "ಎಡಿಟ್" + }, + "searchCollection": { + "message": "ಸಂಗ್ರಹಣೆ ಹುಡುಕಿ" + }, + "searchFolder": { + "message": "ಫೋಲ್ಡರ್ ಹುಡುಕಿ" + }, + "searchFavorites": { + "message": "ಮೆಚ್ಚುಗೆಗಳಲ್ಲಿ ಶೋಧ" + }, + "searchType": { + "message": "ಹುಡುಕಾಟ ಪ್ರಕಾರ", + "description": "Search item type" + }, + "searchVault": { + "message": "ವಾಲ್ಟ್ ಹುಡುಕಿ" + }, + "allItems": { + "message": "ಎಲ್ಲಾ ವಸ್ತುಗಳು" + }, + "favorites": { + "message": "ಮೆಚ್ಚುಗೆಗಳು" + }, + "types": { + "message": "ರೀತಿಯ" + }, + "typeLogin": { + "message": "ಲಾಗಿನ್" + }, + "typeCard": { + "message": "ಕಾರ್ಡ್" + }, + "typeIdentity": { + "message": "ಗುರುತಿಸುವಿಕೆ" + }, + "typeSecureNote": { + "message": "ಸುರಕ್ಷಿತ ಟಿಪ್ಪಣಿ" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "ಫೋಲ್ಡರ್‌ಗಳು" + }, + "collections": { + "message": "ಸಂಗ್ರಹಣೆಗಳು" + }, + "firstName": { + "message": "ಮೊದಲ ಹೆಸರು" + }, + "middleName": { + "message": "ಮಧ್ಯದ ಹೆಸರು" + }, + "lastName": { + "message": "ಕೊನೆ ಹೆಸರು" + }, + "fullName": { + "message": "ಪೂರ್ಣ ಹೆಸರು" + }, + "address1": { + "message": "ವಿಳಾಸ 1" + }, + "address2": { + "message": "ವಿಳಾಸ 2" + }, + "address3": { + "message": "ವಿಳಾಸ 3" + }, + "cityTown": { + "message": "ನಗರ / ಪಟ್ಟಣ" + }, + "stateProvince": { + "message": "ರಾಜ್ಯ / ಪ್ರಾಂತ್ಯ" + }, + "zipPostalCode": { + "message": "ಪಿನ್ / ಅಂಚೆ ಕೋಡ್" + }, + "country": { + "message": "ದೇಶ" + }, + "shared": { + "message": "ಹಂಚಿಕೊಳ್ಳಲಾಗಿದೆ" + }, + "attachments": { + "message": "ಲಗತ್ತುಗಳು" + }, + "select": { + "message": "ಆಯ್ಕೆಮಾಡಿ" + }, + "addItem": { + "message": "ಐಟಂ ಸೇರಿಸಿ" + }, + "editItem": { + "message": "ವಸ್ತುಗಳನ್ನು ಸಂಪಾದಿಸಿ" + }, + "viewItem": { + "message": "ಐಟಂ ವೀಕ್ಷಿಸಿ" + }, + "ex": { + "message": "ಉದಾಹರಣೆ.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "ಇತರೆ" + }, + "share": { + "message": "ಹಂಚಿಕೊಳ್ಳಿ" + }, + "moveToOrganization": { + "message": "ಸಂಸ್ಥೆಗೆ ಸರಿಸಿ" + }, + "valueCopied": { + "message": "$VALUE$ ನಕಲಿಸಲಾಗಿದೆ", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "ಮೌಲ್ಯವನ್ನು ನಕಲಿಸಿ", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "ಪಾಸ್ವರ್ಡ್ ನಕಲಿಸಿ", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "ಬಳಕೆಹೆಸರು ನಕಲಿಸು", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "ನಕಲು ಸಂಖ್ಯೆ", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "ಭದ್ರತಾ ಕೋಡ್ ಅನ್ನು ನಕಲಿಸಿ", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "ಯು ಆರ್ ಐ ಅನ್ನು ನಕಲಿಸಿ", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "ನನ್ನ ವಾಲ್ಟ್" + }, + "vault": { + "message": "ವಾಲ್ಟ್" + }, + "moveSelectedToOrg": { + "message": "ಆಯ್ದ ಸಂಸ್ಥೆಗೆ ಸರಿಸಿ" + }, + "deleteSelected": { + "message": "ಆಯ್ಕೆಮಾಡಿದ ಅಳಿಸಿ" + }, + "moveSelected": { + "message": "ಆರಿಸಿದುದನ್ನು ಸರಿಸಿ" + }, + "selectAll": { + "message": "ಎಲ್ಲವನ್ನು ಆರಿಸು" + }, + "unselectAll": { + "message": "ಎಲ್ಲವನ್ನೂ ಆಯ್ಕೆ ರದ್ದುಮಾಡಿ" + }, + "launch": { + "message": "ಶುರು" + }, + "newAttachment": { + "message": "ಹೊಸ ಲಗತ್ತನ್ನು ಸೇರಿಸಿ" + }, + "deletedAttachment": { + "message": "ಲಗತ್ತು ಅಳಿಸಲಾಗಿದೆ" + }, + "deleteAttachmentConfirmation": { + "message": "ಈ ಲಗತ್ತನ್ನು ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?" + }, + "attachmentSaved": { + "message": "ಲಗತ್ತನ್ನು ಉಳಿಸಲಾಗಿದೆ." + }, + "file": { + "message": "ಫೈಲ್" + }, + "selectFile": { + "message": "ಫೈಲನ್ನು ಆಯ್ಕೆಮಾಡು." + }, + "maxFileSize": { + "message": "ಗರಿಷ್ಠ ಫೈಲ್ ಗಾತ್ರ 500 ಎಂಬಿ." + }, + "updateKey": { + "message": "ನಿಮ್ಮ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಕೀಲಿಯನ್ನು ನವೀಕರಿಸುವವರೆಗೆ ನೀವು ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ." + }, + "addedItem": { + "message": "ಐಟಂ ಸೇರಿಸಲಾಗಿದೆ" + }, + "editedItem": { + "message": "ಐಟಂ ಸಂಪಾದಿಸಲಾಗಿದೆ" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ ಅನ್ನು $ORGNAME$ ಗೆ ಸರಿಸಲಾಗಿದೆ", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "ಆಯ್ದ ವಸ್ತುಗಳನ್ನು $ORGNAME$ ಗೆ ಸರಿಸಲಾಗಿದೆ", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "ಐಟಂ ಅಳಿಸಿ" + }, + "deleteFolder": { + "message": "ಫೋಲ್ಡರ್ ಅಳಿಸಿ" + }, + "deleteAttachment": { + "message": "ಲಗತ್ತನ್ನು ಅಳಿಸಿ" + }, + "deleteItemConfirmation": { + "message": "ನೀವು ನಿಜವಾಗಿಯೂ ಅನುಪಯುಕ್ತಕ್ಕೆ ಕಳುಹಿಸಲು ಬಯಸುವಿರಾ?" + }, + "deletedItem": { + "message": "ಐಟಂ ಅನ್ನು ಅನುಪಯುಕ್ತಕ್ಕೆ ಕಳುಹಿಸಲಾಗಿದೆ" + }, + "deletedItems": { + "message": "ವಸ್ತುಗಳನ್ನು ಅನುಪಯುಕ್ತಕ್ಕೆ ಕಳುಹಿಸಲಾಗಿದೆ" + }, + "movedItems": { + "message": "ಸರಿಸಲಾದ ವಸ್ತುಗಳು" + }, + "overwritePasswordConfirmation": { + "message": "ಪ್ರಸ್ತುತ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ತಿದ್ದಿಬರೆಯಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?" + }, + "editedFolder": { + "message": "ಫೋಲ್ಡರ್ ತಿದ್ದಲಾಗಿದೆ" + }, + "addedFolder": { + "message": "ಫೋಲ್ಡರ್ ಸೇರಿಸಿ" + }, + "deleteFolderConfirmation": { + "message": "ನೀವು ಈ ಕಡತಕೋಶವನ್ನು ಖಚಿತವಾಗಿಯೂ ಅಳಿಸಬಯಸುವಿರಾ?" + }, + "deletedFolder": { + "message": "ಫೋಲ್ಡರ್ ಅಳಿಸಿ" + }, + "loggedOut": { + "message": "ಲಾಗ್ ಔಟ್" + }, + "loginExpired": { + "message": "ನಿಮ್ಮ ಲಾಗಿನ್ ಸೆಷನ್ ಅವಧಿ ಮೀರಿದೆ." + }, + "logOutConfirmation": { + "message": "ಲಾಗ್ ಔಟ್ ಮಾಡಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?" + }, + "logOut": { + "message": "ಲಾಗ್ ಔಟ್" + }, + "ok": { + "message": "ಸರಿ" + }, + "yes": { + "message": "ಹೌದು" + }, + "no": { + "message": "ಇಲ್ಲ" + }, + "loginOrCreateNewAccount": { + "message": "ನಿಮ್ಮ ಸುರಕ್ಷಿತ ವಾಲ್ಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ಲಾಗ್ ಇನ್ ಮಾಡಿ ಅಥವಾ ಹೊಸ ಖಾತೆಯನ್ನು ರಚಿಸಿ." + }, + "createAccount": { + "message": "ಖಾತೆ ತೆರೆ" + }, + "logIn": { + "message": "ಲಾಗಿನ್" + }, + "submit": { + "message": "ಒಪ್ಪಿಸು" + }, + "emailAddressDesc": { + "message": "ಲಾಗ್ ಇನ್ ಮಾಡಲು ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನೀವು ಬಳಸುತ್ತೀರಿ." + }, + "yourName": { + "message": "ನಿಮ್ಮ ಹೆಸರು" + }, + "yourNameDesc": { + "message": "ನಾವು ನಿಮ್ಮನ್ನು ಏನು ಕರೆಯಬೇಕು?" + }, + "masterPass": { + "message": "ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್" + }, + "masterPassDesc": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ನೀವು ಬಳಸುವ ಪಾಸ್ವರ್ಡ್ ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ಆಗಿದೆ. ನಿಮ್ಮ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನೀವು ಮರೆಯದಿರುವುದು ಬಹಳ ಮುಖ್ಯ. ನೀವು ಅದನ್ನು ಮರೆತ ಸಂದರ್ಭದಲ್ಲಿ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರುಪಡೆಯಲು ಯಾವುದೇ ಮಾರ್ಗವಿಲ್ಲ." + }, + "masterPassHintDesc": { + "message": "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನೀವು ಮರೆತರೆ ಅದನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳಲು ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಸುಳಿವು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ." + }, + "reTypeMasterPass": { + "message": "ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಮರು-ಟೈಪ್ ಮಾಡಿ" + }, + "masterPassHint": { + "message": "ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ಸುಳಿವು (ಐಚ್ಛಿಕ)" + }, + "masterPassHintLabel": { + "message": "ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ಸುಳಿವು" + }, + "settings": { + "message": "ಸೆಟ್ಟಿಂಗ್‍ಗಳು" + }, + "passwordHint": { + "message": "ಪಾಸ್ವರ್ಡ್ ಸುಳಿವು" + }, + "enterEmailToGetHint": { + "message": "ವಿಸ್ತರಣೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲು ಮೆನುವಿನಲ್ಲಿರುವ ಬಿಟ್‌ವಾರ್ಡೆನ್ ಐಕಾನ್ ಟ್ಯಾಪ್ ಮಾಡಿ." + }, + "getMasterPasswordHint": { + "message": "ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ಸುಳಿವನ್ನು ಪಡೆಯಿರಿ" + }, + "emailRequired": { + "message": "ಇಮೇಲ್ ವಿಳಾಸದ ಅಗತ್ಯವಿದೆ." + }, + "invalidEmail": { + "message": "ಅಮಾನ್ಯ ಇಮೇಲ್ ವಿಳಾಸ." + }, + "masterPassRequired": { + "message": "ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ಅಗತ್ಯವಿದೆ." + }, + "masterPassLength": { + "message": "ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಕನಿಷ್ಠ 8 ಅಕ್ಷರಗಳಷ್ಟು ಉದ್ದವಾಗಿರಬೇಕು." + }, + "masterPassDoesntMatch": { + "message": "ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ದೃಢೀಕರಣವು ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ." + }, + "newAccountCreated": { + "message": "ನಿಮ್ಮ ಹೊಸ ಖಾತೆಯನ್ನು ರಚಿಸಲಾಗಿದೆ! ನೀವು ಈಗ ಲಾಗ್ ಇನ್ ಮಾಡಬಹುದು." + }, + "masterPassSent": { + "message": "ನಿಮ್ಮ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಸುಳಿವಿನೊಂದಿಗೆ ನಾವು ನಿಮಗೆ ಇಮೇಲ್ ಕಳುಹಿಸಿದ್ದೇವೆ." + }, + "unexpectedError": { + "message": "ಅನಿರೀಕ್ಷಿತ ದೋಷ ಸಂಭವಿಸಿದೆ." + }, + "emailAddress": { + "message": "ಇಮೇಲ್ ವಿಳಾಸ" + }, + "yourVaultIsLocked": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್ ಲಾಕ್ ಆಗಿದೆ. ಮುಂದುವರೆಯಲು ನಿಮ್ಮ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ." + }, + "unlock": { + "message": "ಅನ್‌ಲಾಕ್ ಮಾಡಿ" + }, + "loggedInAsEmailOn": { + "message": "$HOSTNAME$ನಲ್ಲಿ $EMAIL$ಆಗಿ ಲಾಗ್ ಇನ್ ಮಾಡಲಾಗಿದೆ.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "ಅಮಾನ್ಯ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್" + }, + "lockNow": { + "message": "ಈಗ ಲಾಕ್ ಮಾಡಿ" + }, + "noItemsInList": { + "message": "ಪಟ್ಟಿ ಮಾಡಲು ಯಾವುದೇ ಐಟಂಗಳಿಲ್ಲ." + }, + "noCollectionsInList": { + "message": "ಪಟ್ಟಿ ಮಾಡಲು ಯಾವುದೇ ಸಂಗ್ರಹಗಳಿಲ್ಲ." + }, + "noGroupsInList": { + "message": "ಪಟ್ಟಿ ಮಾಡಲು ಯಾವುದೇ ಗುಂಪುಗಳಿಲ್ಲ." + }, + "noUsersInList": { + "message": "ಪಟ್ಟಿ ಮಾಡಲು ಬಳಕೆದಾರರಿಲ್ಲ." + }, + "noEventsInList": { + "message": "ಪಟ್ಟಿ ಮಾಡಲು ಯಾವುದೇ ಘಟನೆಗಳಿಲ್ಲ." + }, + "newOrganization": { + "message": "ಹೊಸ ಸಂಸ್ಥೆ" + }, + "noOrganizationsList": { + "message": "ನೀವು ಯಾವುದೇ ಸಂಸ್ಥೆಗಳಿಗೆ ಸೇರಿಲ್ಲ. ಇತರ ಬಳಕೆದಾರರೊಂದಿಗೆ ವಸ್ತುಗಳನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಹಂಚಿಕೊಳ್ಳಲು ಸಂಘಟನೆಗಳು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತವೆ." + }, + "versionNumber": { + "message": "ಆವೃತ್ತಿ $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "ನಿಮ್ಮ ದೃಢೀಕರಣ ಅಪ್ಲಿಕೇಶನ್‌ನಿಂದ 6 ಅಂಕಿಯ ಪರಿಶೀಲನಾ ಕೋಡ್ ಅನ್ನು ನಮೂದಿಸಿ." + }, + "enterVerificationCodeEmail": { + "message": "$EMAIL$ಗೆ ಇಮೇಲ್ ಮಾಡಲಾದ 6 ಅಂಕಿಯ ಪರಿಶೀಲನಾ ಕೋಡ್ ಅನ್ನು ನಮೂದಿಸಿ.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "ಪರಿಶೀಲನೆ ಇಮೇಲ್ $EMAIL$ ಗೆ ಕಳುಹಿಸಲಾಗಿದೆ.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "ನನ್ನನ್ನು ನೆನಪಿನಲ್ಲಿ ಇಡು" + }, + "sendVerificationCodeEmailAgain": { + "message": "ಪರಿಶೀಲನೆ ಕೋಡ್ ಇಮೇಲ್ ಅನ್ನು ಮತ್ತೆ ಕಳುಹಿಸಿ" + }, + "useAnotherTwoStepMethod": { + "message": "ಮತ್ತೊಂದು ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ವಿಧಾನವನ್ನು ಬಳಸಿ" + }, + "insertYubiKey": { + "message": "ನಿಮ್ಮ ಯುಬಿಕಿಯನ್ನು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನ ಯುಎಸ್‌ಬಿ ಪೋರ್ಟ್ಗೆ ಸೇರಿಸಿ, ನಂತರ ಅದರ ಗುಂಡಿಯನ್ನು ಸ್ಪರ್ಶಿಸಿ." + }, + "insertU2f": { + "message": "ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನ ಯುಎಸ್‌ಬಿ ಪೋರ್ಟ್ಗೆ ನಿಮ್ಮ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಸೇರಿಸಿ. ಅದು ಬಟನ್ ಹೊಂದಿದ್ದರೆ, ಅದನ್ನು ಸ್ಪರ್ಶಿಸಿ." + }, + "loginUnavailable": { + "message": "ಲಾಗಿನ್ ಲಭ್ಯವಿಲ್ಲ" + }, + "noTwoStepProviders": { + "message": "ಈ ಖಾತೆಯು ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದೆ, ಆದಾಗ್ಯೂ, ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾದ ಎರಡು-ಹಂತದ ಪೂರೈಕೆದಾರರಲ್ಲಿ ಯಾರೂ ಈ ವೆಬ್ ಬ್ರೌಸರ್‌ನಿಂದ ಬೆಂಬಲಿತವಾಗಿಲ್ಲ." + }, + "noTwoStepProviders2": { + "message": "ದಯವಿಟ್ಟು ಬೆಂಬಲಿತ ವೆಬ್ ಬ್ರೌಸರ್ ಅನ್ನು ಬಳಸಿ (Chrome ನಂತಹ) ಮತ್ತು / ಅಥವಾ ವೆಬ್ ಬ್ರೌಸರ್‌ಗಳಲ್ಲಿ (ದೃ hentic ೀಕರಣ ಅಪ್ಲಿಕೇಶನ್‌ನಂತಹ) ಉತ್ತಮವಾಗಿ ಬೆಂಬಲಿತವಾದ ಹೆಚ್ಚುವರಿ ಪೂರೈಕೆದಾರರನ್ನು ಸೇರಿಸಿ." + }, + "twoStepOptions": { + "message": "ಎರಡು ಹಂತದ ಲಾಗಿನ್ ಆಯ್ಕೆಗಳು" + }, + "recoveryCodeDesc": { + "message": "ನಿಮ್ಮ ಎಲ್ಲಾ ಎರಡು ಅಂಶ ಪೂರೈಕೆದಾರರಿಗೆ ಪ್ರವೇಶವನ್ನು ಕಳೆದುಕೊಂಡಿದ್ದೀರಾ? ನಿಮ್ಮ ಖಾತೆಯಿಂದ ಎಲ್ಲಾ ಎರಡು ಅಂಶ ಪೂರೈಕೆದಾರರನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ನಿಮ್ಮ ಮರುಪಡೆಯುವಿಕೆ ಕೋಡ್ ಬಳಸಿ." + }, + "recoveryCodeTitle": { + "message": "ಮರುಪಡೆಯುವಿಕೆ ಕೋಡ್" + }, + "authenticatorAppTitle": { + "message": "ದೃಢೀಕರಣ ಅಪ್ಲಿಕೇಶನ್" + }, + "authenticatorAppDesc": { + "message": "ಸಮಯ ಆಧಾರಿತ ಪರಿಶೀಲನಾ ಕೋಡ್‌ಗಳನ್ನು ರಚಿಸಲು ದೃಢೀಕರಣ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಬಳಸಿ (ಆಥಿ ಅಥವಾ ಗೂಗಲ್ ಅಥೆಂಟಿಕೇಟರ್).", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "ಯುಬಿಕೆ ಒಟಿಪಿ ಭದ್ರತಾ ಕೀ" + }, + "yubiKeyDesc": { + "message": "ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಪ್ರವೇಶಿಸಲು ಯುಬಿಕೆ ಬಳಸಿ. ಯುಬಿಕೆ 4 ಸರಣಿ, 5 ಸರಣಿಗಳು ಮತ್ತು ಎನ್ಇಒ ಸಾಧನಗಳೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ." + }, + "duoDesc": { + "message": "ಡ್ಯುಯೊ ಮೊಬೈಲ್ ಅಪ್ಲಿಕೇಶನ್, ಎಸ್‌ಎಂಎಸ್, ಫೋನ್ ಕರೆ ಅಥವಾ ಯು 2 ಎಫ್ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಡ್ಯುಯೊ ಸೆಕ್ಯುರಿಟಿಯೊಂದಿಗೆ ಪರಿಶೀಲಿಸಿ.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "ಡ್ಯುಯೊ ಮೊಬೈಲ್ ಅಪ್ಲಿಕೇಶನ್, ಎಸ್‌ಎಂಎಸ್, ಫೋನ್ ಕರೆ ಅಥವಾ ಯು 2 ಎಫ್ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಸಂಸ್ಥೆಗಾಗಿ ಡ್ಯುಯೊ ಸೆಕ್ಯುರಿಟಿಯೊಂದಿಗೆ ಪರಿಶೀಲಿಸಿ.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಪ್ರವೇಶಿಸಲು ಯಾವುದೇ FIDO U2F ಶಕ್ತಗೊಂಡ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಬಳಸಿ." + }, + "u2fTitle": { + "message": "FIDO U2F ಭದ್ರತಾ ಕೀ" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಪ್ರವೇಶಿಸಲು ಯಾವುದೇ ವೆಬ್‌ಆಥ್ನ್ ಸಕ್ರಿಯಗೊಳಿಸಿದ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಬಳಸಿ." + }, + "webAuthnMigrated": { + "message": "(FIDO ನಿಂದ ವಲಸೆ ಬಂದಿದೆ)" + }, + "emailTitle": { + "message": "ಇಮೇಲ್" + }, + "emailDesc": { + "message": "ಪರಿಶೀಲನೆ ಕೋಡ್‌ಗಳನ್ನು ನಿಮಗೆ ಇಮೇಲ್ ಮಾಡಲಾಗುತ್ತದೆ." + }, + "continue": { + "message": "ಮುಂದುವರಿಸಿ" + }, + "organization": { + "message": "ಸಂಸ್ಥೆ" + }, + "organizations": { + "message": "ಸಂಸ್ಥೆಗಳು" + }, + "moveToOrgDesc": { + "message": "ಈ ಐಟಂ ಅನ್ನು ಸರಿಸಲು ನೀವು ಬಯಸುವ ಸಂಸ್ಥೆಯನ್ನು ಆರಿಸಿ. ಸಂಸ್ಥೆಗೆ ಹೋಗುವುದರಿಂದ ವಸ್ತುವಿನ ಮಾಲೀಕತ್ವವನ್ನು ಆ ಸಂಸ್ಥೆಗೆ ವರ್ಗಾಯಿಸುತ್ತದೆ. ಈ ಐಟಂ ಅನ್ನು ಸರಿಸಿದ ನಂತರ ನೀವು ಇನ್ನು ಮುಂದೆ ಅದರ ನೇರ ಮಾಲೀಕರಾಗಿರುವುದಿಲ್ಲ." + }, + "moveManyToOrgDesc": { + "message": "ಈ ವಸ್ತುಗಳನ್ನು ಸರಿಸಲು ನೀವು ಬಯಸುವ ಸಂಸ್ಥೆಯನ್ನು ಆರಿಸಿ. ಸಂಸ್ಥೆಗೆ ಹೋಗುವುದರಿಂದ ವಸ್ತುಗಳ ಮಾಲೀಕತ್ವವನ್ನು ಆ ಸಂಸ್ಥೆಗೆ ವರ್ಗಾಯಿಸುತ್ತದೆ. ಈ ವಸ್ತುಗಳನ್ನು ಸರಿಸಿದ ನಂತರ ನೀವು ಇನ್ನು ಮುಂದೆ ಅವರ ನೇರ ಮಾಲೀಕರಾಗಿರುವುದಿಲ್ಲ." + }, + "collectionsDesc": { + "message": "ಈ ಐಟಂ ಹಂಚಿಕೊಳ್ಳುತ್ತಿರುವ ಸಂಗ್ರಹಗಳನ್ನು ಸಂಪಾದಿಸಿ. ಈ ಸಂಗ್ರಹಣೆಗಳಿಗೆ ಪ್ರವೇಶ ಹೊಂದಿರುವ ಸಂಸ್ಥೆಯ ಬಳಕೆದಾರರಿಗೆ ಮಾತ್ರ ಈ ಐಟಂ ಅನ್ನು ನೋಡಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ." + }, + "deleteSelectedItemsDesc": { + "message": "ಅಳಿಸಲು ನೀವು $COUNT$ ಐಟಂ (ಗಳನ್ನು) ಆಯ್ಕೆ ಮಾಡಿದ್ದೀರಿ. ಈ ಎಲ್ಲಾ ವಸ್ತುಗಳನ್ನು ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "ನೀವು $COUNT$ ಆಯ್ದ ಐಟಂ (ಗಳನ್ನು) ಗೆ ಸರಿಸಲು ಬಯಸುವ ಫೋಲ್ಡರ್ ಆಯ್ಕೆಮಾಡಿ.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "ನೀವು $COUNT$ ಐಟಂ (ಗಳನ್ನು) ಆಯ್ಕೆ ಮಾಡಿದ್ದೀರಿ. $MOVEABLE_COUNT$ ಐಟಂ (ಗಳನ್ನು) ಸಂಸ್ಥೆಗೆ ಸರಿಸಬಹುದು, $NONMOVEABLE_COUNT$ ಸಾಧ್ಯವಿಲ್ಲ.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "ಪರಿಶೀಲನಾ ಕೋಡ್‌ಗಳು (TOTP)" + }, + "copyVerificationCode": { + "message": "ಪರಿಶೀಲನೆ ಕೋಡ್ ನಕಲಿಸಿ" + }, + "warning": { + "message": "ಎಚ್ಚರಿಕೆ" + }, + "confirmVaultExport": { + "message": "ವಾಲ್ಟ್ ರಫ್ತು ಖಚಿತಪಡಿಸಿ" + }, + "exportWarningDesc": { + "message": "ಈ ರಫ್ತು ನಿಮ್ಮ ವಾಲ್ಟ್ ಡೇಟಾವನ್ನು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡದ ಸ್ವರೂಪದಲ್ಲಿ ಒಳಗೊಂಡಿದೆ. ನೀವು ರಫ್ತು ಮಾಡಿದ ಫೈಲ್ ಅನ್ನು ಅಸುರಕ್ಷಿತ ಚಾನಲ್‌ಗಳಲ್ಲಿ (ಇಮೇಲ್ ನಂತಹ) ಸಂಗ್ರಹಿಸಬಾರದು ಅಥವಾ ಕಳುಹಿಸಬಾರದು. ನೀವು ಅದನ್ನು ಬಳಸಿದ ನಂತರ ಅದನ್ನು ಅಳಿಸಿ." + }, + "encExportKeyWarningDesc": { + "message": "ಈ ರಫ್ತು ನಿಮ್ಮ ಖಾತೆಯ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಕೀಲಿಯನ್ನು ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡುತ್ತದೆ. ನಿಮ್ಮ ಖಾತೆಯ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಕೀಲಿಯನ್ನು ನೀವು ಎಂದಾದರೂ ತಿರುಗಿಸಿದರೆ ನೀವು ಈ ರಫ್ತು ಫೈಲ್ ಅನ್ನು ಡೀಕ್ರಿಪ್ಟ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗದ ಕಾರಣ ನೀವು ಮತ್ತೆ ರಫ್ತು ಮಾಡಬೇಕು." + }, + "encExportAccountWarningDesc": { + "message": "ಖಾತೆ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಕೀಗಳು ಪ್ರತಿ ಬಿಟ್‌ವಾರ್ಡೆನ್ ಬಳಕೆದಾರ ಖಾತೆಗೆ ಅನನ್ಯವಾಗಿವೆ, ಆದ್ದರಿಂದ ನೀವು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಿದ ರಫ್ತು ಬೇರೆ ಖಾತೆಗೆ ಆಮದು ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ." + }, + "export": { + "message": "ರಫ್ತು" + }, + "exportVault": { + "message": "ರಫ್ತು ವಾಲ್ಟ್" + }, + "fileFormat": { + "message": "ಫೈಲ್ ಮಾದರಿ" + }, + "exportSuccess": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್ ಡೇಟಾವನ್ನು ರಫ್ತು ಮಾಡಲಾಗಿದೆ." + }, + "passwordGenerator": { + "message": "ಪಾಸ್ವರ್ಡ್ ಜನರೇಟರ್" + }, + "minComplexityScore": { + "message": "ಕನಿಷ್ಠ ಸಂಕೀರ್ಣತೆ ಸ್ಕೋರ್" + }, + "minNumbers": { + "message": "ಕನಿಷ್ಠ ಸಂಖ್ಯೆಗಳು" + }, + "minSpecial": { + "message": "ಕನಿಷ್ಠ ವಿಶೇಷ", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "ಅಸ್ಪಷ್ಟ ಅಕ್ಷರಗಳನ್ನು ತಪ್ಪಿಸಿ" + }, + "regeneratePassword": { + "message": "ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಪುನರುತ್ಪಾದಿಸಿ" + }, + "length": { + "message": "ಉದ್ದ" + }, + "numWords": { + "message": "ಪದಗಳ ಸಂಖ್ಯೆ" + }, + "wordSeparator": { + "message": "ಪದ ವಿಭಜಕ" + }, + "capitalize": { + "message": "ದೊಡ್ಡಕ್ಷರ ಮಾಡಿ", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "ಸಂಖ್ಯೆಯನ್ನು ಸೇರಿಸಿ" + }, + "passwordHistory": { + "message": "ಪಾಸ್ವರ್ಡ್ ಇತಿಹಾಸ" + }, + "noPasswordsInList": { + "message": "ಪಟ್ಟಿ ಮಾಡಲು ಯಾವುದೇ ಪಾಸ್ವರ್ಡ್ಗಳು ಇಲ್ಲ." + }, + "clear": { + "message": "ಕ್ಲಿಯರ್‌", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "ಖಾತೆಯನ್ನು ನವೀಕರಿಸಲಾಗಿದೆ" + }, + "changeEmail": { + "message": "ಇಮೇಲ್ ಬದಲಾಯಿಸಿ" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "ಹೊಸ ಇಮೇಲ್" + }, + "code": { + "message": "ಸಂಕೇತ" + }, + "changeEmailDesc": { + "message": "ನಾವು ಪರಿಶೀಲನಾ ಕೋಡ್ ಅನ್ನು $EMAIL$ ಗೆ ಇಮೇಲ್ ಮಾಡಿದ್ದೇವೆ. ದಯವಿಟ್ಟು ಈ ಕೋಡ್ಗಾಗಿ ನಿಮ್ಮ ಇಮೇಲ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಇಮೇಲ್ ವಿಳಾಸ ಬದಲಾವಣೆಯನ್ನು ಅಂತಿಮಗೊಳಿಸಲು ಅದನ್ನು ಕೆಳಗೆ ನಮೂದಿಸಿ.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "ಮುಂದುವರಿಯುವುದರಿಂದ ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಸೆಷನ್‌ನಿಂದ ನಿಮ್ಮನ್ನು ಲಾಗ್ out ಟ್ ಮಾಡುತ್ತದೆ, ನಿಮಗೆ ಮತ್ತೆ ಲಾಗ್ ಇನ್ ಆಗುವ ಅಗತ್ಯವಿರುತ್ತದೆ. ಇತರ ಸಾಧನಗಳಲ್ಲಿನ ಸಕ್ರಿಯ ಸೆಷನ್‌ಗಳು ಒಂದು ಗಂಟೆಯವರೆಗೆ ಸಕ್ರಿಯವಾಗಿ ಮುಂದುವರಿಯಬಹುದು." + }, + "emailChanged": { + "message": "ಇಮೇಲ್ ಬದಲಾಯಿಸಲಾಗಿದೆ" + }, + "logBackIn": { + "message": "ದಯವಿಟ್ಟು ಮತ್ತೆ ಲಾಗ್ ಇನ್ ಮಾಡಿ." + }, + "logBackInOthersToo": { + "message": "ದಯವಿಟ್ಟು ಮತ್ತೆ ಲಾಗ್ ಇನ್ ಮಾಡಿ. ನೀವು ಇತರ ಬಿಟ್‌ವಾರ್ಡೆನ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ ಲಾಗ್ಔಟ್ ಮಾಡಿ ಮತ್ತು ಅವುಗಳಿಗೆ ಹಿಂತಿರುಗಿ." + }, + "changeMasterPassword": { + "message": "ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ಬದಲಾಯಿಸಿ" + }, + "masterPasswordChanged": { + "message": "ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ಬದಲಾಯಿಸಲಾಗಿದೆ" + }, + "currentMasterPass": { + "message": "ಪ್ರಸ್ತುತ ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್" + }, + "newMasterPass": { + "message": "ಹೊಸ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್" + }, + "confirmNewMasterPass": { + "message": "ಹೊಸ ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ದೃಢೀಕರಣ" + }, + "encKeySettings": { + "message": "ಗೂಢ ಲಿಪೀಕರಣ ಕೀ ಸೆಟ್ಟಿಂಗ್‌ಗಳು" + }, + "kdfAlgorithm": { + "message": "ಕೆಡಿಎಫ್ ಅಲ್ಗಾರಿದಮ್" + }, + "kdfIterations": { + "message": "ಕೆಡಿಎಫ್ ಪುನರಾವರ್ತನೆಗಳು" + }, + "kdfIterationsDesc": { + "message": "ಹೆಚ್ಚಿನ ಕೆಡಿಎಫ್ ಪುನರಾವರ್ತನೆಗಳು ನಿಮ್ಮ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಆಕ್ರಮಣಕಾರರಿಂದ ವಿವೇಚನಾರಹಿತವಾಗಿ ರಕ್ಷಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. $VALUE$ ಅಥವಾ ಹೆಚ್ಚಿನ ಮೌಲ್ಯವನ್ನು ನಾವು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "ನಿಮ್ಮ ಕೆಡಿಎಫ್ ಪುನರಾವರ್ತನೆಗಳನ್ನು ತುಂಬಾ ಹೆಚ್ಚು ಹೊಂದಿಸುವುದರಿಂದ ನಿಧಾನವಾದ ಸಿಪಿಯು ಹೊಂದಿರುವ ಸಾಧನಗಳಲ್ಲಿ ಬಿಟ್‌ವಾರ್ಡೆನ್‌ಗೆ ಲಾಗ್ ಇನ್ ಆಗುವಾಗ (ಮತ್ತು ಅನ್ಲಾಕ್ ಮಾಡುವಾಗ) ಕಳಪೆ ಕಾರ್ಯಕ್ಷಮತೆಗೆ ಕಾರಣವಾಗಬಹುದು. $INCREMENT$ ನ ಏರಿಕೆಗಳಲ್ಲಿ ಮೌಲ್ಯವನ್ನು ಹೆಚ್ಚಿಸಲು ನಾವು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ ಮತ್ತು ನಂತರ ನಿಮ್ಮ ಎಲ್ಲಾ ಸಾಧನಗಳನ್ನು ಪರೀಕ್ಷಿಸಿ.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "ಕೆಡಿಎಫ್ ಬದಲಾಯಿಸಿ" + }, + "encKeySettingsChanged": { + "message": "ಗೂಢ ಲಿಪೀಕರಣ ಕೀ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" + }, + "dangerZone": { + "message": "ಅಪಾಯ ವಲಯ" + }, + "dangerZoneDesc": { + "message": "ಎಚ್ಚರಿಕೆಯಿಂದ, ಈ ಕ್ರಿಯೆಗಳು ಹಿಂತಿರುಗಿಸಲಾಗುವುದಿಲ್ಲ!" + }, + "deauthorizeSessions": { + "message": "ಸೆಷನ್‌ಗಳನ್ನು ಅನಧಿಕೃತಗೊಳಿಸಿ" + }, + "deauthorizeSessionsDesc": { + "message": "ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಮತ್ತೊಂದು ಸಾಧನದಲ್ಲಿ ಲಾಗ್ ಇನ್ ಮಾಡಲಾಗಿದೆ? ನೀವು ಈ ಹಿಂದೆ ಬಳಸಿದ ಎಲ್ಲಾ ಕಂಪ್ಯೂಟರ್ ಅಥವಾ ಸಾಧನಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಕೆಳಗೆ ಮುಂದುವರಿಯಿರಿ. ನೀವು ಈ ಹಿಂದೆ ಸಾರ್ವಜನಿಕ ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಬಳಸಿದ್ದರೆ ಅಥವಾ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಿಮ್ಮದಲ್ಲದ ಸಾಧನದಲ್ಲಿ ಆಕಸ್ಮಿಕವಾಗಿ ಉಳಿಸಿದ್ದರೆ ಈ ಸುರಕ್ಷತಾ ಹಂತವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಹಂತವು ಈ ಹಿಂದೆ ನೆನಪಿನಲ್ಲಿರುವ ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಸೆಷನ್‌ಗಳನ್ನು ಸಹ ತೆರವುಗೊಳಿಸುತ್ತದೆ." + }, + "deauthorizeSessionsWarning": { + "message": "ಮುಂದುವರಿಯುವುದರಿಂದ ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಸೆಷನ್‌ನಿಂದ ನಿಮ್ಮನ್ನು ಲಾಗ್ಔಟ್ ಮಾಡುತ್ತದೆ, ನಿಮಗೆ ಮತ್ತೆ ಲಾಗ್ ಇನ್ ಆಗುವ ಅಗತ್ಯವಿರುತ್ತದೆ. ಸಕ್ರಿಯಗೊಳಿಸಿದ್ದರೆ ಮತ್ತೆ ಎರಡು-ಹಂತದ ಲಾಗಿನ್‌ಗೆ ನಿಮ್ಮನ್ನು ಕೇಳಲಾಗುತ್ತದೆ. ಇತರ ಸಾಧನಗಳಲ್ಲಿ ಸಕ್ರಿಯ ಸೆಷನ್‌ಗಳು ಒಂದು ಗಂಟೆಯವರೆಗೆ ಸಕ್ರಿಯವಾಗಿ ಮುಂದುವರಿಯಬಹುದು." + }, + "sessionsDeauthorized": { + "message": "ಎಲ್ಲಾ ಸೆಷನ್‌ಗಳು ಅನಧಿಕೃತವಾಗಿವೆ" + }, + "purgeVault": { + "message": "ವಾಲ್ಟ್ ಅನ್ನು ಶುದ್ಧೀಕರಿಸಿ" + }, + "purgedOrganizationVault": { + "message": "ಶುದ್ಧೀಕರಿಸಿದ ಸಂಸ್ಥೆ ವಾಲ್ಟ್." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್‌ನಲ್ಲಿರುವ ಎಲ್ಲಾ ಐಟಂಗಳು ಮತ್ತು ಫೋಲ್ಡರ್‌ಗಳನ್ನು ಅಳಿಸಲು ಕೆಳಗೆ ಮುಂದುವರಿಯಿರಿ. ನೀವು ಹಂಚಿಕೊಳ್ಳುವ ಸಂಸ್ಥೆಗೆ ಸೇರಿದ ವಸ್ತುಗಳನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ." + }, + "purgeOrgVaultDesc": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್‌ನಲ್ಲಿರುವ ಎಲ್ಲಾ ಐಟಂಗಳು ಮತ್ತು ಫೋಲ್ಡರ್‌ಗಳನ್ನು ಅಳಿಸಲು ಕೆಳಗೆ ಮುಂದುವರಿಯಿರಿ. ನೀವು ಹಂಚಿಕೊಳ್ಳುವ ಸಂಸ್ಥೆಗೆ ಸೇರಿದ ವಸ್ತುಗಳನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ." + }, + "purgeVaultWarning": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್ ಅನ್ನು ಶುದ್ಧೀಕರಿಸುವುದು ಶಾಶ್ವತವಾಗಿದೆ. ಅದನ್ನು ರದ್ದುಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ." + }, + "vaultPurged": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್ ಅನ್ನು ಶುದ್ಧೀಕರಿಸಲಾಗಿದೆ." + }, + "deleteAccount": { + "message": "ಖಾತೆ ಅಳಿಸಿ" + }, + "deleteAccountDesc": { + "message": "ನಿಮ್ಮ ಖಾತೆ ಮತ್ತು ಎಲ್ಲಾ ಸಂಬಂಧಿತ ಡೇಟಾವನ್ನು ಅಳಿಸಲು ಕೆಳಗೆ ಮುಂದುವರಿಯಿರಿ." + }, + "deleteAccountWarning": { + "message": "ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಅಳಿಸುವುದು ಶಾಶ್ವತವಾಗಿದೆ. ಅದನ್ನು ರದ್ದುಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ." + }, + "accountDeleted": { + "message": "ಖಾತೆಯನ್ನು ಅಳಿಸಲಾಗಿದೆ" + }, + "accountDeletedDesc": { + "message": "ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಮುಚ್ಚಲಾಗಿದೆ ಮತ್ತು ಎಲ್ಲಾ ಸಂಬಂಧಿತ ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗಿದೆ." + }, + "myAccount": { + "message": "ನನ್ನ ಖಾತೆ" + }, + "tools": { + "message": "ಉಪಕರಣ" + }, + "importData": { + "message": "ಡೇಟಾವನ್ನು ಆಮದು ಮಾಡಿ" + }, + "importError": { + "message": "ಆಮದು ದೋಷ" + }, + "importErrorDesc": { + "message": "ನೀವು ಆಮದು ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿದ ಡೇಟಾದಲ್ಲಿ ಸಮಸ್ಯೆ ಇದೆ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಮೂಲ ಫೈಲ್‌ನಲ್ಲಿ ಕೆಳಗೆ ಪಟ್ಟಿ ಮಾಡಲಾದ ದೋಷಗಳನ್ನು ಪರಿಹರಿಸಿ ಮತ್ತು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ." + }, + "importSuccess": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್‌ಗೆ ಡೇಟಾವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಆಮದು ಮಾಡಲಾಗಿದೆ." + }, + "importWarning": { + "message": "ನೀವು $ORGANIZATION$ ಗೆ ಡೇಟಾವನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳುತ್ತಿದ್ದೀರಿ. ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಈ ಸಂಸ್ಥೆಯ ಸದಸ್ಯರೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಬಹುದು. ನೀವು ಮುಂದುವರಿಯಲು ಬಯಸುವಿರಾ?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "ಡೇಟಾವನ್ನು ಸರಿಯಾಗಿ ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲಾಗಿಲ್ಲ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಆಮದು ಫೈಲ್ ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ." + }, + "importNothingError": { + "message": "ಯಾವುದನ್ನೂ ಆಮದು ಮಾಡಿಕೊಳ್ಳಲಾಗಿಲ್ಲ." + }, + "importEncKeyError": { + "message": "ರಫ್ತು ಮಾಡಿದ ಫೈಲ್ ಅನ್ನು ಡೀಕ್ರಿಪ್ಟ್ ಮಾಡುವಲ್ಲಿ ದೋಷ. ಡೇಟಾವನ್ನು ರಫ್ತು ಮಾಡಲು ಬಳಸಿದ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಕೀಗೆ ನಿಮ್ಮ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಕೀ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ." + }, + "selectFormat": { + "message": "ಆಮದು ಫೈಲ್‌ನ ಸ್ವರೂಪವನ್ನು ಆಯ್ಕೆಮಾಡಿ" + }, + "selectImportFile": { + "message": "ಆಮದು ಫೈಲ್ ಆಯ್ಕೆಮಾಡಿ" + }, + "orCopyPasteFileContents": { + "message": "ಅಥವಾ ಆಮದು ಫೈಲ್ ವಿಷಯಗಳನ್ನು ನಕಲಿಸಿ / ಅಂಟಿಸಿ" + }, + "instructionsFor": { + "message": "$NAME$ ಸೂಚನೆಗಳು", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "ಆಯ್ಕೆಗಳು" + }, + "optionsDesc": { + "message": "ನಿಮ್ಮ ವೆಬ್ ವಾಲ್ಟ್ ಅನುಭವವನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ." + }, + "optionsUpdated": { + "message": "ಆಯ್ಕೆಗಳನ್ನು ನವೀಕರಿಸಲಾಗಿದೆ" + }, + "language": { + "message": "ಭಾಷೆ" + }, + "languageDesc": { + "message": "ವೆಬ್ ವಾಲ್ಟ್ ಬಳಸುವ ಭಾಷೆಯನ್ನು ಬದಲಾಯಿಸಿ." + }, + "disableIcons": { + "message": "ವೆಬ್‌ಸೈಟ್ ಚಿಹ್ನೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ" + }, + "disableIconsDesc": { + "message": "ವೆಬ್‌ಸೈಟ್ ಐಕಾನ್‌ಗಳು ನಿಮ್ಮ ವಾಲ್ಟ್‌ನಲ್ಲಿರುವ ಪ್ರತಿ ಲಾಗಿನ್ ಐಟಂನ ಪಕ್ಕದಲ್ಲಿ ಗುರುತಿಸಬಹುದಾದ ಚಿತ್ರವನ್ನು ಒದಗಿಸುತ್ತದೆ." + }, + "enableGravatars": { + "message": "Gravatars ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Gravatar.com ನಿಂದ ಲೋಡ್ ಮಾಡಲಾದ ಅವತಾರ್ ಚಿತ್ರಗಳನ್ನು ಬಳಸಿ." + }, + "enableFullWidth": { + "message": "ಪೂರ್ಣ ಅಗಲ ವಿನ್ಯಾಸವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "ಬ್ರೌಸರ್ ವಿಂಡೋದ ಪೂರ್ಣ ಅಗಲವನ್ನು ವಿಸ್ತರಿಸಲು ವೆಬ್ ವಾಲ್ಟ್ ಅನ್ನು ಅನುಮತಿಸಿ." + }, + "default": { + "message": "ಡಿಫಾಲ್ಟ್" + }, + "domainRules": { + "message": "ಡೊಮೇನ್ ನಿಯಮಗಳು" + }, + "domainRulesDesc": { + "message": "ನೀವು ಅನೇಕ ವಿಭಿನ್ನ ವೆಬ್‌ಸೈಟ್ ಡೊಮೇನ್‌ಗಳಲ್ಲಿ ಒಂದೇ ರೀತಿಯ ಲಾಗಿನ್ ಹೊಂದಿದ್ದರೆ, ನೀವು ವೆಬ್‌ಸೈಟ್ ಅನ್ನು \"ಸಮಾನ\" ಎಂದು ಗುರುತಿಸಬಹುದು. \"ಗ್ಲೋಬಲ್\" ಡೊಮೇನ್‌ಗಳು ನಿಮಗಾಗಿ ಈಗಾಗಲೇ ಬಿಟ್‌ವಾರ್ಡೆನ್ ರಚಿಸಿದವು." + }, + "globalEqDomains": { + "message": "ಜಾಗತಿಕ ಸಮಾನ ಡೊಮೇನ್‌ಗಳು" + }, + "customEqDomains": { + "message": "ಕಸ್ಟಮ್ ಸಮಾನ ಡೊಮೇನ್‌ಗಳು" + }, + "exclude": { + "message": "ಹೊರತುಪಡಿಸಿ" + }, + "include": { + "message": "ಸೇರಿಸಿ" + }, + "customize": { + "message": "ಕಸ್ಟಮೈಸ್ ಮಾಡಿ" + }, + "newCustomDomain": { + "message": "ಹೊಸ ಕಸ್ಟಮ್ ಡೊಮೇನ್" + }, + "newCustomDomainDesc": { + "message": "ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಟ್ಟ ಡೊಮೇನ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ನಮೂದಿಸಿ. \"ಮೂಲ\" ಡೊಮೇನ್‌ಗಳನ್ನು ಮಾತ್ರ ಅನುಮತಿಸಲಾಗಿದೆ. ಸಬ್‌ಡೊಮೇನ್‌ಗಳನ್ನು ನಮೂದಿಸಬೇಡಿ. ಉದಾಹರಣೆಗೆ, \"www.google.com\" ಬದಲಿಗೆ \"google.com\" ಅನ್ನು ನಮೂದಿಸಿ. ಆಂಡ್ರಾಯ್ಡ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಇತರ ವೆಬ್‌ಸೈಟ್ ಡೊಮೇನ್‌ಗಳೊಂದಿಗೆ ಸಂಯೋಜಿಸಲು ನೀವು \"androidapp: //package.name\" ಅನ್ನು ಸಹ ನಮೂದಿಸಬಹುದು." + }, + "customDomainX": { + "message": "ಕಸ್ಟಮ್ ಡೊಮೇನ್ $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "ಡೊಮೇನ್‌ಗಳನ್ನು ನವೀಕರಿಸಲಾಗಿದೆ" + }, + "twoStepLogin": { + "message": "ಎರಡು ಹಂತದ ಲಾಗಿನ್" + }, + "twoStepLoginDesc": { + "message": "ಲಾಗಿನ್ ಆಗುವಾಗ ಹೆಚ್ಚುವರಿ ಹಂತದ ಅಗತ್ಯವಿರುವ ಮೂಲಕ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಸುರಕ್ಷಿತಗೊಳಿಸಿ." + }, + "twoStepLoginOrganizationDesc": { + "message": "ಸಂಸ್ಥೆಯ ಮಟ್ಟದಲ್ಲಿ ಪೂರೈಕೆದಾರರನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವ ಮೂಲಕ ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಬಳಕೆದಾರರಿಗೆ ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಅಗತ್ಯವಿದೆ." + }, + "twoStepLoginRecoveryWarning": { + "message": "ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವುದರಿಂದ ನಿಮ್ಮ ಬಿಟ್‌ವಾರ್ಡನ್ ಖಾತೆಯಿಂದ ನಿಮ್ಮನ್ನು ಶಾಶ್ವತವಾಗಿ ಲಾಕ್ ಮಾಡಬಹುದು. ನಿಮ್ಮ ಸಾಮಾನ್ಯ ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಪೂರೈಕೆದಾರರನ್ನು ನೀವು ಇನ್ನು ಮುಂದೆ ಬಳಸಲಾಗದಿದ್ದಲ್ಲಿ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಪ್ರವೇಶಿಸಲು ಮರುಪಡೆಯುವಿಕೆ ಕೋಡ್ ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ (ಉದಾ. ನಿಮ್ಮ ಸಾಧನವನ್ನು ನೀವು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ). ನಿಮ್ಮ ಖಾತೆಗೆ ನೀವು ಪ್ರವೇಶವನ್ನು ಕಳೆದುಕೊಂಡರೆ ಬಿಟ್‌ವಾರ್ಡನ್ ಬೆಂಬಲವು ನಿಮಗೆ ಸಹಾಯ ಮಾಡಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಮರುಪಡೆಯುವಿಕೆ ಕೋಡ್ ಅನ್ನು ಬರೆಯಲು ಅಥವಾ ಮುದ್ರಿಸಲು ಮತ್ತು ಅದನ್ನು ಸುರಕ್ಷಿತ ಸ್ಥಳದಲ್ಲಿ ಇರಿಸಲು ನಾವು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ." + }, + "viewRecoveryCode": { + "message": "ಮರುಪಡೆಯುವಿಕೆ ಕೋಡ್ ವೀಕ್ಷಿಸಿ" + }, + "providers": { + "message": "ಸೇವಾದಾರರು", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "ಸಕ್ರಿಯಗೊಳಿಸಿ" + }, + "enabled": { + "message": "ಸಕ್ರಿಯಗೊಳಿಸಿದೆ" + }, + "premium": { + "message": "ಪ್ರೀಮಿಯಮ್", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "ಪ್ರೀಮಿಯಂ ಸದಸ್ಯತ್ವ" + }, + "premiumRequired": { + "message": "ಪ್ರೀಮಿಯಂ ಅಗತ್ಯವಿದೆ" + }, + "premiumRequiredDesc": { + "message": "ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಲು ಪ್ರೀಮಿಯಂ ಸದಸ್ಯತ್ವ ಅಗತ್ಯವಿದೆ." + }, + "youHavePremiumAccess": { + "message": "ನಿಮಗೆ ಪ್ರೀಮಿಯಂ ಪ್ರವೇಶವಿದೆ" + }, + "alreadyPremiumFromOrg": { + "message": "ನೀವು ಸದಸ್ಯರಾಗಿರುವ ಸಂಸ್ಥೆಯ ಕಾರಣದಿಂದಾಗಿ ನೀವು ಈಗಾಗಲೇ ಪ್ರೀಮಿಯಂ ವೈಶಿಷ್ಟ್ಯಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿದ್ದೀರಿ." + }, + "manage": { + "message": "ವ್ಯವಸ್ಥಾಪಕ" + }, + "disable": { + "message": "ನಿಷ್‌ಕ್ರಿಯೆಗೊಳಿಸಿ" + }, + "twoStepLoginProviderEnabled": { + "message": "ಈ ಎರಡು ಹಂತದ ಲಾಗಿನ್ ಒದಗಿಸುವವರನ್ನು ನಿಮ್ಮ ಖಾತೆಯಲ್ಲಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ." + }, + "twoStepLoginAuthDesc": { + "message": "ಎರಡು ಹಂತದ ಲಾಗಿನ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ನಿಮ್ಮ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸಿ." + }, + "twoStepAuthenticatorDesc": { + "message": "ದೃಢೀಕರಣ ಅಪ್ಲಿಕೇಶನ್‌ನೊಂದಿಗೆ ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಅನ್ನು ಹೊಂದಿಸಲು ಈ ಹಂತಗಳನ್ನು ಅನುಸರಿಸಿ:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "ಎರಡು ಹಂತದ ದೃಢೀಕರಣ ಅಪ್ಲಿಕೇಶನ್ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ" + }, + "twoStepAuthenticatorNeedApp": { + "message": "ಎರಡು-ಹಂತದ ದೃಢೀಕರಣ ಅಪ್ಲಿಕೇಶನ್ ಅಗತ್ಯವಿದೆಯೇ? ಕೆಳಗಿನವುಗಳಲ್ಲಿ ಒಂದನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ" + }, + "iosDevices": { + "message": "ಐಒಎಸ್ ಸಾಧನಗಳು" + }, + "androidDevices": { + "message": "ಆಂಡ್ರಾಯ್ಡ್ ಸಾಧನಗಳು" + }, + "windowsDevices": { + "message": "ವಿಂಡೋಸ್ ಸಾಧನಗಳು" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "ಈ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ, ಆದಾಗ್ಯೂ, ಇತರ ದೃಢೀಕರಣ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಸಹ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ." + }, + "twoStepAuthenticatorScanCode": { + "message": "ನಿಮ್ಮ ದೃಢೀಕರಣ ಅಪ್ಲಿಕೇಶನ್‌ನೊಂದಿಗೆ ಈ ಕ್ಯೂಆರ್ ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ" + }, + "key": { + "message": "ಕೀ" + }, + "twoStepAuthenticatorEnterCode": { + "message": "ಅಪ್ಲಿಕೇಶನ್‌ನಿಂದ ಫಲಿತಾಂಶದ 6 ಅಂಕಿಯ ಪರಿಶೀಲನೆ ಕೋಡ್ ಅನ್ನು ನಮೂದಿಸಿ" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "ಒಂದು ವೇಳೆ ನೀವು ಅದನ್ನು ಮತ್ತೊಂದು ಸಾಧನಕ್ಕೆ ಸೇರಿಸಬೇಕಾದರೆ, ನಿಮ್ಮದೃಢೀಕರಣ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅಗತ್ಯವಿರುವ ಕ್ಯೂಆರ್ ಕೋಡ್ (ಅಥವಾ ಕೀ) ಕೆಳಗೆ ಇದೆ." + }, + "twoStepDisableDesc": { + "message": "ಈ ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಪೂರೈಕೆದಾರರನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?" + }, + "twoStepDisabled": { + "message": "ಎರಡು ಹಂತದ ಲಾಗಿನ್ ಒದಗಿಸುವವರನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ." + }, + "twoFactorYubikeyAdd": { + "message": "ನಿಮ್ಮ ಖಾತೆಗೆ ಹೊಸ ಯೂಬಿಕೆ ಸೇರಿಸಿ" + }, + "twoFactorYubikeyPlugIn": { + "message": "ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನ ಯುಎಸ್‌ಬಿ ಪೋರ್ಟ್ಗೆ ಯೂಬಿಕಿಯನ್ನು ಪ್ಲಗ್ ಮಾಡಿ." + }, + "twoFactorYubikeySelectKey": { + "message": "ಕೆಳಗಿನ ಮೊದಲ ಖಾಲಿ ಯುಬಿಕೆ ಇನ್ಪುಟ್ ಕ್ಷೇತ್ರವನ್ನು ಆಯ್ಕೆಮಾಡಿ." + }, + "twoFactorYubikeyTouchButton": { + "message": "ಯೂಬಿಕಿಯ ಬಟನ್ ಸ್ಪರ್ಶಿಸಿ." + }, + "twoFactorYubikeySaveForm": { + "message": "ಫಾರ್ಮ್ ಅನ್ನು ಉಳಿಸಿ." + }, + "twoFactorYubikeyWarning": { + "message": "ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಮಿತಿಗಳ ಕಾರಣ, ಎಲ್ಲಾ ಬಿಟ್‌ವಾರ್ಡೆನ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಯೂಬಿಕೀಸ್ ಅನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ. ನೀವು ಇನ್ನೊಂದು ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಪೂರೈಕೆದಾರರನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕು ಇದರಿಂದ ಯುಬಿಕೀಸ್ ಅನ್ನು ಬಳಸಲಾಗದಿದ್ದಾಗ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಪ್ರವೇಶಿಸಬಹುದು. ಬೆಂಬಲಿತ ವೇದಿಕೆಗಳು:" + }, + "twoFactorYubikeySupportUsb": { + "message": "ವೆಬ್ ವಾಲ್ಟ್, ಡೆಸ್ಕ್‌ಟಾಪ್ ಅಪ್ಲಿಕೇಶನ್, ಸಿಎಲ್ಐ ಮತ್ತು ಯುಎಸ್‌ಬಿ ಪೋರ್ಟ್ ಹೊಂದಿರುವ ಸಾಧನದಲ್ಲಿನ ಎಲ್ಲಾ ಬ್ರೌಸರ್ ವಿಸ್ತರಣೆಗಳು ನಿಮ್ಮ ಯೂಬಿಕಿಯನ್ನು ಸ್ವೀಕರಿಸಬಹುದು." + }, + "twoFactorYubikeySupportMobile": { + "message": "ಎನ್‌ಎಫ್‌ಸಿ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಹೊಂದಿರುವ ಸಾಧನದಲ್ಲಿನ ಮೊಬೈಲ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಅಥವಾ ನಿಮ್ಮ ಯೂಬಿಕಿಯನ್ನು ಸ್ವೀಕರಿಸುವ ಡೇಟಾ ಪೋರ್ಟ್." + }, + "yubikeyX": { + "message": "ಯುಬಿಕೆ $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "ಯು 2 ಎಫ್ ಕೀ $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "ವೆಬ್‌ಆಥ್ನ್ ಕೀ $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "ಎನ್ಎಫ್ಸಿ ಬೆಂಬಲ" + }, + "twoFactorYubikeySupportsNfc": { + "message": "ನನ್ನ ಕೀಲಿಗಳಲ್ಲಿ ಒಂದು ಎನ್‌ಎಫ್‌ಸಿಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "ನಿಮ್ಮ ಯೂಬಿಕೀಸ್ ಒಬ್ಬರು ಎನ್‌ಎಫ್‌ಸಿಯನ್ನು ಬೆಂಬಲಿಸಿದರೆ (ಉದಾಹರಣೆಗೆ ಯೂಬಿಕೀ ಎನ್‌ಇಒ), ಎನ್‌ಎಫ್‌ಸಿ ಲಭ್ಯತೆ ಪತ್ತೆಯಾದಾಗಲೆಲ್ಲಾ ಮೊಬೈಲ್ ಸಾಧನಗಳಲ್ಲಿ ನಿಮ್ಮನ್ನು ಕೇಳಲಾಗುತ್ತದೆ." + }, + "yubikeysUpdated": { + "message": "ಯೂಬಿಕೀಸ್ ನವೀಕರಿಸಲಾಗಿದೆ" + }, + "disableAllKeys": { + "message": "ಎಲ್ಲಾ ಕೀಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ" + }, + "twoFactorDuoDesc": { + "message": "ನಿಮ್ಮ ಡ್ಯುವೋ ನಿರ್ವಹಣೆ ಫಲಕದಿಂದ ಬಿಟ್‌ವಾರ್ಡೆನ್ ಅಪ್ಲಿಕೇಶನ್ ಮಾಹಿತಿಯನ್ನು ನಮೂದಿಸಿ." + }, + "twoFactorDuoIntegrationKey": { + "message": "ಏಕೀಕರಣ ಕೀ" + }, + "twoFactorDuoSecretKey": { + "message": "ರಹಸ್ಯ ಸಂಕೇತ" + }, + "twoFactorDuoApiHostname": { + "message": "API ಹೋಸ್ಟ್ ಹೆಸರು" + }, + "twoFactorEmailDesc": { + "message": "ಇಮೇಲ್‌ನೊಂದಿಗೆ ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಅನ್ನು ಹೊಂದಿಸಲು ಈ ಹಂತಗಳನ್ನು ಅನುಸರಿಸಿ:" + }, + "twoFactorEmailEnterEmail": { + "message": "ಪರಿಶೀಲನಾ ಕೋಡ್‌ಗಳನ್ನು ಸ್ವೀಕರಿಸಲು ನೀವು ಬಯಸುವ ಇಮೇಲ್ ಅನ್ನು ನಮೂದಿಸಿ" + }, + "twoFactorEmailEnterCode": { + "message": "ಫಲಿತಾಂಶದಿಂದ 6 ಅಂಕೆಗಳ ಪರಿಶೀಲನೆ ಕೋಡ್ ಅನ್ನು ಇಮೇಲ್‌ನಿಂದ ನಮೂದಿಸಿ" + }, + "sendEmail": { + "message": "ಇಮೇಲ್ ಕಳುಹಿಸಿ" + }, + "twoFactorU2fAdd": { + "message": "ನಿಮ್ಮ ಖಾತೆಗೆ FIDO U2F ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಸೇರಿಸಿ" + }, + "removeU2fConfirmation": { + "message": "ಈ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ತೆಗೆದುಹಾಕಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?" + }, + "twoFactorWebAuthnAdd": { + "message": "ನಿಮ್ಮ ಖಾತೆಗೆ ವೆಬ್‌ಆಥ್ನ್ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಸೇರಿಸಿ" + }, + "readKey": { + "message": "ಕೀಲಿಯನ್ನು ಓದಿ" + }, + "keyCompromised": { + "message": "ಕೀ ಹೊಂದಾಣಿಕೆ ಮಾಡಲಾಗಿದೆ." + }, + "twoFactorU2fGiveName": { + "message": "ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಗುರುತಿಸಲು ಸ್ನೇಹಪರ ಹೆಸರನ್ನು ನೀಡಿ." + }, + "twoFactorU2fPlugInReadKey": { + "message": "ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನ ಯುಎಸ್‌ಬಿ ಪೋರ್ಟ್‌ನಲ್ಲಿ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಪ್ಲಗ್ ಮಾಡಿ ಮತ್ತು \"ರೀಡ್ ಕೀ\" ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ." + }, + "twoFactorU2fTouchButton": { + "message": "ಭದ್ರತಾ ಕೀಲಿಯು ಬಟನ್ ಹೊಂದಿದ್ದರೆ, ಅದನ್ನು ಸ್ಪರ್ಶಿಸಿ." + }, + "twoFactorU2fSaveForm": { + "message": "ಫಾರ್ಮ್ ಅನ್ನು ಉಳಿಸಿ." + }, + "twoFactorU2fWarning": { + "message": "ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಮಿತಿಗಳ ಕಾರಣ, ಎಲ್ಲಾ ಬಿಟ್‌ವಾರ್ಡೆನ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ FIDO U2F ಅನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ. ನೀವು ಇನ್ನೊಂದು ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಒದಗಿಸುವವರನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕು ಇದರಿಂದ FIDO U2F ಅನ್ನು ಬಳಸಲಾಗದಿದ್ದಾಗ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಪ್ರವೇಶಿಸಬಹುದು. ಬೆಂಬಲಿತ ವೇದಿಕೆಗಳು:" + }, + "twoFactorU2fSupportWeb": { + "message": "ಯು 2 ಎಫ್ ಶಕ್ತಗೊಂಡ ಬ್ರೌಸರ್ ಹೊಂದಿರುವ ಡೆಸ್ಕ್‌ಟಾಪ್ / ಲ್ಯಾಪ್‌ಟಾಪ್‌ನಲ್ಲಿ ವೆಬ್ ವಾಲ್ಟ್ ಮತ್ತು ಬ್ರೌಸರ್ ವಿಸ್ತರಣೆಗಳು (ಕ್ರೋಮ್, ಒಪೇರಾ, ವಿವಾಲ್ಡಿ, ಅಥವಾ ಎಫ್‌ಐಡಿಒ ಯು 2 ಎಫ್ ಸಕ್ರಿಯಗೊಳಿಸಿದ ಫೈರ್‌ಫಾಕ್ಸ್)." + }, + "twoFactorU2fWaiting": { + "message": "ನಿಮ್ಮ ಭದ್ರತಾ ಕೀಲಿಯ ಬಟನ್ ಸ್ಪರ್ಶಿಸಲು ನೀವು ಕಾಯುತ್ತಿದ್ದೀರಿ" + }, + "twoFactorU2fClickSave": { + "message": "ಎರಡು ಹಂತದ ಲಾಗಿನ್‌ಗಾಗಿ ಈ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಕೆಳಗಿನ \"ಉಳಿಸು\" ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಓದುವಲ್ಲಿ ಸಮಸ್ಯೆ ಇದೆ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸು." + }, + "twoFactorWebAuthnWarning": { + "message": "ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಮಿತಿಗಳ ಕಾರಣ, ಎಲ್ಲಾ ಬಿಟ್‌ವಾರ್ಡೆನ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ವೆಬ್‌ಆಥ್ನ್ ಅನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ. ನೀವು ಇನ್ನೊಂದು ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಒದಗಿಸುವವರನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕು ಇದರಿಂದ ವೆಬ್‌ಆಥ್ನ್ ಅನ್ನು ಬಳಸಲಾಗದಿದ್ದಾಗ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಪ್ರವೇಶಿಸಬಹುದು. ಬೆಂಬಲಿತ ವೇದಿಕೆಗಳು:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "ವೆಬ್‌ಆಥ್ನ್ ಶಕ್ತಗೊಂಡ ಬ್ರೌಸರ್‌ನೊಂದಿಗೆ ಡೆಸ್ಕ್‌ಟಾಪ್ / ಲ್ಯಾಪ್‌ಟಾಪ್‌ನಲ್ಲಿ ವೆಬ್ ವಾಲ್ಟ್ ಮತ್ತು ಬ್ರೌಸರ್ ವಿಸ್ತರಣೆಗಳು (ಕ್ರೋಮ್, ಒಪೇರಾ, ವಿವಾಲ್ಡಿ, ಅಥವಾ ಎಫ್‌ಐಡಿಒ ಯು 2 ಎಫ್ ಸಕ್ರಿಯಗೊಳಿಸಿದ ಫೈರ್‌ಫಾಕ್ಸ್)." + }, + "twoFactorRecoveryYourCode": { + "message": "ನಿಮ್ಮ ಬಿಟ್‌ವಾರ್ಡೆನ್ ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಮರುಪಡೆಯುವಿಕೆ ಕೋಡ್" + }, + "twoFactorRecoveryNoCode": { + "message": "ನೀವು ಇನ್ನೂ ಯಾವುದೇ ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಪೂರೈಕೆದಾರರನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿಲ್ಲ. ನೀವು ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಒದಗಿಸುವವರನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದ ನಂತರ ನಿಮ್ಮ ಮರುಪಡೆಯುವಿಕೆ ಕೋಡ್‌ಗಾಗಿ ನೀವು ಇಲ್ಲಿ ಮತ್ತೆ ಪರಿಶೀಲಿಸಬಹುದು." + }, + "printCode": { + "message": "ಪ್ರಿಂಟ್ ಕೋಡ್", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "ವರದಿಗಳು" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "ಅಸುರಕ್ಷಿತ ವೆಬ್‌ಸೈಟ್‌ಗಳ ವರದಿ" + }, + "unsecuredWebsitesReportDesc": { + "message": "Http:// ಯೋಜನೆಯೊಂದಿಗೆ ಅಸುರಕ್ಷಿತ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ಬಳಸುವುದು ಅಪಾಯಕಾರಿ. ವೆಬ್‌ಸೈಟ್ ಅನುಮತಿಸಿದರೆ, ನೀವು ಅದನ್ನು ಯಾವಾಗಲೂ https:// ಸ್ಕೀಮ್ ಬಳಸಿ ಪ್ರವೇಶಿಸಬೇಕು ಇದರಿಂದ ನಿಮ್ಮ ಸಂಪರ್ಕವನ್ನು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗುತ್ತದೆ." + }, + "unsecuredWebsitesFound": { + "message": "ಅಸುರಕ್ಷಿತ ವೆಬ್‌ಸೈಟ್‌ಗಳು ಕಂಡುಬಂದಿವೆ" + }, + "unsecuredWebsitesFoundDesc": { + "message": "ಅಸುರಕ್ಷಿತ URI ಗಳೊಂದಿಗೆ ನಿಮ್ಮ ವಾಲ್ಟ್‌ನಲ್ಲಿ $COUNT$ ವಸ್ತುಗಳನ್ನು ನಾವು ಕಂಡುಕೊಂಡಿದ್ದೇವೆ. ವೆಬ್‌ಸೈಟ್ ಅನುಮತಿಸಿದರೆ ನೀವು ಅವರ ಯುಆರ್‌ಐ ಯೋಜನೆಯನ್ನು https: // ಗೆ ಬದಲಾಯಿಸಬೇಕು.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್‌ನಲ್ಲಿರುವ ಯಾವುದೇ ಐಟಂಗಳು ಅಸುರಕ್ಷಿತ ಯುಆರ್‌ಐಗಳನ್ನು ಹೊಂದಿಲ್ಲ." + }, + "inactive2faReport": { + "message": "ನಿಷ್ಕ್ರಿಯ 2 ಎಫ್ಎ ವರದಿ" + }, + "inactive2faReportDesc": { + "message": "ಎರಡು ಅಂಶಗಳ ದೃಢೀಕರಣ (2 ಎಫ್ಎ) ನಿಮ್ಮ ಖಾತೆಗಳನ್ನು ಸುರಕ್ಷಿತಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡುವ ಪ್ರಮುಖ ಭದ್ರತಾ ಸೆಟ್ಟಿಂಗ್ ಆಗಿದೆ. ವೆಬ್‌ಸೈಟ್ ಅದನ್ನು ನೀಡಿದರೆ, ನೀವು ಯಾವಾಗಲೂ ಎರಡು ಅಂಶಗಳ ದೃಢೀಕರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕು." + }, + "inactive2faFound": { + "message": "2FA ಇಲ್ಲದೆ ಲಾಗಿನ್‌ಗಳು ಕಂಡುಬಂದಿಲ್ಲ" + }, + "inactive2faFoundDesc": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್‌ನಲ್ಲಿ $COUNT$ ವೆಬ್‌ಸೈಟ್ (ಗಳನ್ನು) ನಾವು ಕಂಡುಕೊಂಡಿದ್ದೇವೆ, ಅದನ್ನು ಎರಡು ಅಂಶಗಳ ದೃಢೀಕರಣದೊಂದಿಗೆ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ (2fa.directory ಪ್ರಕಾರ). ಈ ಖಾತೆಗಳನ್ನು ಮತ್ತಷ್ಟು ರಕ್ಷಿಸಲು, ನೀವು ಎರಡು ಅಂಶಗಳ ದೃಢೀಕರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕು.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "ಕಾಣೆಯಾದ ಎರಡು ಅಂಶಗಳ ದೃಢೀಕರಣ ಸಂರಚನೆಯೊಂದಿಗೆ ನಿಮ್ಮ ವಾಲ್ಟ್‌ನಲ್ಲಿ ಯಾವುದೇ ವೆಬ್‌ಸೈಟ್‌ಗಳು ಕಂಡುಬಂದಿಲ್ಲ." + }, + "instructions": { + "message": "ಸೂಚನೆಗಳು" + }, + "exposedPasswordsReport": { + "message": "ಬಹಿರಂಗಪಡಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳ ವರದಿ" + }, + "exposedPasswordsReportDesc": { + "message": "ಬಹಿರಂಗಪಡಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಪಾಸ್‌ವರ್ಡ್‌ಗಳಾಗಿವೆ, ಅವುಗಳು ತಿಳಿದಿರುವ ಡೇಟಾ ಉಲ್ಲಂಘನೆಗಳಲ್ಲಿ ಬಹಿರಂಗಗೊಂಡಿವೆ, ಅವು ಸಾರ್ವಜನಿಕವಾಗಿ ಬಿಡುಗಡೆಯಾಗಿವೆ ಅಥವಾ ಹ್ಯಾಕರ್‌ಗಳು ಡಾರ್ಕ್ ವೆಬ್‌ನಲ್ಲಿ ಮಾರಾಟವಾಗುತ್ತವೆ." + }, + "exposedPasswordsFound": { + "message": "ಬಹಿರಂಗಪಡಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಕಂಡುಬಂದಿವೆ" + }, + "exposedPasswordsFoundDesc": { + "message": "ತಿಳಿದಿರುವ ದತ್ತಾಂಶ ಉಲ್ಲಂಘನೆಗಳಲ್ಲಿ ಬಹಿರಂಗಗೊಂಡ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಹೊಂದಿರುವ ನಿಮ್ಮ ವಾಲ್ಟ್‌ನಲ್ಲಿ $COUNT$ ವಸ್ತುಗಳನ್ನು ನಾವು ಕಂಡುಕೊಂಡಿದ್ದೇವೆ. ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ಬಳಸಲು ನೀವು ಅವುಗಳನ್ನು ಬದಲಾಯಿಸಬೇಕು.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್‌ನಲ್ಲಿರುವ ಯಾವುದೇ ಐಟಂಗಳು ತಿಳಿದಿರುವ ಡೇಟಾ ಉಲ್ಲಂಘನೆಗಳಲ್ಲಿ ಬಹಿರಂಗಗೊಂಡ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಹೊಂದಿಲ್ಲ." + }, + "checkExposedPasswords": { + "message": "ಬಹಿರಂಗಪಡಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ" + }, + "exposedXTimes": { + "message": "ಬಹಿರಂಗಪಡಿಸಿದ $COUNT$ ಸಮಯ (ಗಳು)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "ದುರ್ಬಲ ಪಾಸ್‌ವರ್ಡ್‌ಗಳ ವರದಿ" + }, + "weakPasswordsReportDesc": { + "message": "ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ಭೇದಿಸಲು ಬಳಸುವ ಹ್ಯಾಕರ್ಸ್ ಮತ್ತು ಸ್ವಯಂಚಾಲಿತ ಸಾಧನಗಳಿಂದ ದುರ್ಬಲ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ಸುಲಭವಾಗಿ ಊಹಿಸಬಹುದು. ಬಲವಾದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ರಚಿಸಲು ಬಿಟ್‌ವಾರ್ಡನ್ ಪಾಸ್‌ವರ್ಡ್ ಜನರೇಟರ್ ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ." + }, + "weakPasswordsFound": { + "message": "ದುರ್ಬಲ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಕಂಡುಬಂದಿವೆ" + }, + "weakPasswordsFoundDesc": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್‌ನಲ್ಲಿ ಪ್ರಬಲವಲ್ಲದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳೊಂದಿಗೆ $COUNT$ ವಸ್ತುಗಳನ್ನು ನಾವು ಕಂಡುಕೊಂಡಿದ್ದೇವೆ. ಬಲವಾದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಬಳಸಲು ನೀವು ಅವುಗಳನ್ನು ನವೀಕರಿಸಬೇಕು.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್‌ನಲ್ಲಿರುವ ಯಾವುದೇ ಐಟಂಗಳು ದುರ್ಬಲ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಹೊಂದಿಲ್ಲ." + }, + "reusedPasswordsReport": { + "message": "ಮರುಬಳಕೆ ಮಾಡಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳ ವರದಿ" + }, + "reusedPasswordsReportDesc": { + "message": "ನೀವು ಬಳಸುವ ಸೇವೆಯು ರಾಜಿ ಮಾಡಿಕೊಂಡಿದ್ದರೆ, ಅದೇ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬೇರೆಡೆ ಮರುಬಳಕೆ ಮಾಡುವುದರಿಂದ ನಿಮ್ಮ ಹೆಚ್ಚಿನ ಆನ್‌ಲೈನ್ ಖಾತೆಗಳಿಗೆ ಹ್ಯಾಕರ್‌ಗಳು ಸುಲಭವಾಗಿ ಪ್ರವೇಶ ಪಡೆಯಬಹುದು. ಪ್ರತಿ ಖಾತೆ ಅಥವಾ ಸೇವೆಗೆ ನೀವು ಅನನ್ಯ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬಳಸಬೇಕು." + }, + "reusedPasswordsFound": { + "message": "ಮರುಬಳಕೆ ಮಾಡಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಕಂಡುಬಂದಿವೆ" + }, + "reusedPasswordsFoundDesc": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್‌ನಲ್ಲಿ ಮರುಬಳಕೆ ಮಾಡಲಾಗುತ್ತಿರುವ $COUNT$ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಾವು ಕಂಡುಕೊಂಡಿದ್ದೇವೆ. ನೀವು ಅವುಗಳನ್ನು ಅನನ್ಯ ಮೌಲ್ಯಕ್ಕೆ ಬದಲಾಯಿಸಬೇಕು.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್‌ನಲ್ಲಿನ ಯಾವುದೇ ಲಾಗಿನ್‌ಗಳು ಮರುಬಳಕೆ ಮಾಡಲಾಗುತ್ತಿರುವ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಹೊಂದಿಲ್ಲ." + }, + "reusedXTimes": { + "message": "$COUNT$ ಬಾರಿ ಮರುಬಳಕೆ ಮಾಡಲಾಗಿದೆ", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "ಡೇಟಾ ಉಲ್ಲಂಘನೆ ವರದಿ" + }, + "breachDesc": { + "message": "\"ಉಲ್ಲಂಘನೆ\" ಎನ್ನುವುದು ಸೈಟ್‌ನ ಡೇಟಾವನ್ನು ಹ್ಯಾಕರ್‌ಗಳು ಅಕ್ರಮವಾಗಿ ಪ್ರವೇಶಿಸಿ ನಂತರ ಸಾರ್ವಜನಿಕವಾಗಿ ಬಿಡುಗಡೆ ಮಾಡಿದ ಘಟನೆಯಾಗಿದೆ. ರಾಜಿ ಮಾಡಿಕೊಂಡ ಡೇಟಾದ ಪ್ರಕಾರಗಳನ್ನು ಪರಿಶೀಲಿಸಿ (ಇಮೇಲ್ ವಿಳಾಸಗಳು, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು, ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್‌ಗಳು ಇತ್ಯಾದಿ) ಮತ್ತು ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಬದಲಾಯಿಸುವಂತಹ ಸೂಕ್ತ ಕ್ರಮ ತೆಗೆದುಕೊಳ್ಳಿ." + }, + "breachCheckUsernameEmail": { + "message": "ನೀವು ಬಳಸುವ ಯಾವುದೇ ಬಳಕೆದಾರಹೆಸರುಗಳು ಅಥವಾ ಇಮೇಲ್ ವಿಳಾಸಗಳನ್ನು ಪರಿಶೀಲಿಸಿ." + }, + "checkBreaches": { + "message": "ಉಲ್ಲಂಘನೆಗಳನ್ನು ಪರಿಶೀಲಿಸಿ" + }, + "breachUsernameNotFound": { + "message": "ತಿಳಿದಿರುವ ಯಾವುದೇ ಡೇಟಾ ಉಲ್ಲಂಘನೆಗಳಲ್ಲಿ $USERNAME$\nಕಂಡುಬಂದಿಲ್ಲ.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "ಸಿಹಿ ಸುದ್ದಿ", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "ಆನ್‌ಲೈನ್‌ನಲ್ಲಿ $COUNT$ ವಿಭಿನ್ನ ಡೇಟಾ ಉಲ್ಲಂಘನೆಗಳಲ್ಲಿ $USERNAME$ ಕಂಡುಬಂದಿದೆ.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "ಉಲ್ಲಂಘಿಸಿದ ಖಾತೆಗಳು ಕಂಡುಬಂದಿವೆ" + }, + "compromisedData": { + "message": "ರಾಜಿ ಮಾಡಿಕೊಂಡ ಡೇಟಾ" + }, + "website": { + "message": "ಜಾಲತಾಣ" + }, + "affectedUsers": { + "message": "ಬಾಧಿತ ಬಳಕೆದಾರರು" + }, + "breachOccurred": { + "message": "ಉಲ್ಲಂಘನೆ ಸಂಭವಿಸಿದೆ" + }, + "breachReported": { + "message": "ಉಲ್ಲಂಘನೆ ವರದಿಯಾಗಿದೆ" + }, + "reportError": { + "message": "ವರದಿಯನ್ನು ಲೋಡ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುವಾಗ ದೋಷ ಸಂಭವಿಸಿದೆ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸು" + }, + "billing": { + "message": "ಬಿಲ್ಲಿಂಗ್" + }, + "accountCredit": { + "message": "ಖಾತೆ ಕ್ರೆಡಿಟ್", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "ಖಾತೆ ಬ್ಯಾಲೆನ್ಸ್", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "ಕ್ರೆಡಿಟ್ ಸೇರಿಸಿ", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "ಮೊತ್ತ", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "ಪಾವತಿಯನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಿದ ನಂತರ ಸೇರಿಸಿದ ಕ್ರೆಡಿಟ್ ನಿಮ್ಮ ಖಾತೆಯಲ್ಲಿ ಗೋಚರಿಸುತ್ತದೆ. ಕೆಲವು ಪಾವತಿ ವಿಧಾನಗಳು ವಿಳಂಬವಾಗುತ್ತವೆ ಮತ್ತು ಇತರರಿಗಿಂತ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳಬಹುದು." + }, + "makeSureEnoughCredit": { + "message": "ಈ ಖರೀದಿಗೆ ನಿಮ್ಮ ಖಾತೆಗೆ ಸಾಕಷ್ಟು ಕ್ರೆಡಿಟ್ ಲಭ್ಯವಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ನಿಮ್ಮ ಖಾತೆಗೆ ಸಾಕಷ್ಟು ಕ್ರೆಡಿಟ್ ಲಭ್ಯವಿಲ್ಲದಿದ್ದರೆ, ಫೈಲ್‌ನಲ್ಲಿ ನಿಮ್ಮ ಡೀಫಾಲ್ಟ್ ಪಾವತಿ ವಿಧಾನವನ್ನು ವ್ಯತ್ಯಾಸಕ್ಕಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಬಿಲ್ಲಿಂಗ್ ಪುಟದಿಂದ ನಿಮ್ಮ ಖಾತೆಗೆ ನೀವು ಕ್ರೆಡಿಟ್ ಸೇರಿಸಬಹುದು." + }, + "creditAppliedDesc": { + "message": "ನಿಮ್ಮ ಖಾತೆಯ ಕ್ರೆಡಿಟ್ ಅನ್ನು ಖರೀದಿ ಮಾಡಲು ಬಳಸಬಹುದು. ಲಭ್ಯವಿರುವ ಯಾವುದೇ ಕ್ರೆಡಿಟ್ ಅನ್ನು ಈ ಖಾತೆಗಾಗಿ ರಚಿಸಲಾದ ಇನ್‌ವಾಯ್ಸ್‌ಗಳಿಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ." + }, + "goPremium": { + "message": "ಪ್ರೀಮಿಯಮ್ ಮೆಂಬರ್ ಆಗಿ", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "ನೀವು ಪ್ರೀಮಿಯಂಗೆ ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡಿದ್ದೀರಿ." + }, + "premiumUpgradeUnlockFeatures": { + "message": "ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಪ್ರೀಮಿಯಂ ಸದಸ್ಯತ್ವಕ್ಕೆ ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡಿ ಮತ್ತು ಕೆಲವು ಉತ್ತಮ ಹೆಚ್ಚುವರಿ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಿ." + }, + "premiumSignUpStorage": { + "message": "ಫೈಲ್ ಲಗತ್ತುಗಳಿಗಾಗಿ 1 ಜಿಬಿ ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಿದ ಸಂಗ್ರಹ." + }, + "premiumSignUpTwoStep": { + "message": "ಹೆಚ್ಚುವರಿ ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಆಯ್ಕೆಗಳಾದ ಯೂಬಿಕೆ, ಎಫ್‌ಐಡಿಒ ಯು 2 ಎಫ್, ಮತ್ತು ಡ್ಯುವೋ." + }, + "premiumSignUpEmergency": { + "message": "ತುರ್ತು ಪ್ರವೇಶ" + }, + "premiumSignUpReports": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್ ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿರಿಸಲು ಪಾಸ್ವರ್ಡ್ ನೈರ್ಮಲ್ಯ, ಖಾತೆ ಆರೋಗ್ಯ ಮತ್ತು ಡೇಟಾ ಉಲ್ಲಂಘನೆ ವರದಿಗಳು." + }, + "premiumSignUpTotp": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್‌ನಲ್ಲಿನ ಲಾಗಿನ್‌ಗಳಿಗಾಗಿ TOTP ಪರಿಶೀಲನಾ ಕೋಡ್ (2FA) ಜನರೇಟರ್." + }, + "premiumSignUpSupport": { + "message": "ಆದ್ಯತೆಯ ಗ್ರಾಹಕ ಬೆಂಬಲ." + }, + "premiumSignUpFuture": { + "message": "ಎಲ್ಲಾ ಭವಿಷ್ಯದ ಪ್ರೀಮಿಯಂ ವೈಶಿಷ್ಟ್ಯಗಳು. ಹೆಚ್ಚು ಶೀಘ್ರದಲ್ಲೇ ಬರಲಿದೆ!" + }, + "premiumPrice": { + "message": "ಎಲ್ಲವೂ ಕೇವಲ $PRICE$ / ವರ್ಷಕ್ಕೆ!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "ಆಡ್ಸಾನ್ಗಳು" + }, + "premiumAccess": { + "message": "ಪ್ರೀಮಿಯಂ ಪ್ರವೇಶ" + }, + "premiumAccessDesc": { + "message": "$PRICE$ / $INTERVAL$ ಗಾಗಿ ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಎಲ್ಲಾ ಸದಸ್ಯರಿಗೆ ನೀವು ಪ್ರೀಮಿಯಂ ಪ್ರವೇಶವನ್ನು ಸೇರಿಸಬಹುದು.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "ಹೆಚ್ಚುವರಿ ಸಂಗ್ರಹಣೆ (ಜಿಬಿ)" + }, + "additionalStorageGbDesc": { + "message": "# ಹೆಚ್ಚುವರಿ ಜಿಬಿ" + }, + "additionalStorageIntervalDesc": { + "message": "ನಿಮ್ಮ ಯೋಜನೆ ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಿದ ಫೈಲ್ ಸಂಗ್ರಹಣೆಯ $SIZE$ ನೊಂದಿಗೆ ಬರುತ್ತದೆ. ಪ್ರತಿ ಜಿಬಿಗೆ $PRICE$ ಗೆ ನೀವು ಹೆಚ್ಚುವರಿ ಸಂಗ್ರಹಣೆಯನ್ನು ಸೇರಿಸಬಹುದು / $INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "ಸಾರಾಂಶ" + }, + "total": { + "message": "ಒಟ್ಟು" + }, + "year": { + "message": "ವರ್ಷ" + }, + "month": { + "message": "ತಿಂಗಳು" + }, + "monthAbbr": { + "message": "ತಿಂ.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "ನಿಮ್ಮ ಪಾವತಿ ವಿಧಾನವನ್ನು ತಕ್ಷಣವೇ ನಂತರ ಪ್ರತಿ ವರ್ಷ ಮರುಕಳಿಸುವ ಆಧಾರದ ಮೇಲೆ ವಿಧಿಸಲಾಗುತ್ತದೆ. ನೀವು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ರದ್ದುಗೊಳಿಸಬಹುದು." + }, + "paymentCharged": { + "message": "ನಿಮ್ಮ ಪಾವತಿ ವಿಧಾನವನ್ನು ತಕ್ಷಣವೇ ವಿಧಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ನಂತರ ಮರುಕಳಿಸುವ ಆಧಾರದ ಮೇಲೆ ಪ್ರತಿ $INTERVAL$. ನೀವು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ರದ್ದುಗೊಳಿಸಬಹುದು.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "ನಿಮ್ಮ ಯೋಜನೆ 7 ದಿನಗಳ ಉಚಿತ ಪ್ರಯೋಗದೊಂದಿಗೆ ಬರುತ್ತದೆ. ಪ್ರಯೋಗ ಮುಗಿಯುವವರೆಗೆ ನಿಮ್ಮ ಪಾವತಿ ವಿಧಾನಕ್ಕೆ ಶುಲ್ಕ ವಿಧಿಸಲಾಗುವುದಿಲ್ಲ. ಪ್ರತಿ $INTERVAL$ ಮರುಕಳಿಸುವ ಆಧಾರದ ಮೇಲೆ ಬಿಲ್ಲಿಂಗ್ ಸಂಭವಿಸುತ್ತದೆ. ನೀವು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ರದ್ದುಗೊಳಿಸಬಹುದು." + }, + "paymentInformation": { + "message": "ಪಾವತಿ ಮಾಹಿತಿ" + }, + "billingInformation": { + "message": "ಬಿಲ್ಲಿಂಗ್ ಮಾಹಿತಿ" + }, + "creditCard": { + "message": "ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್" + }, + "paypalClickSubmit": { + "message": "ನಿಮ್ಮ ಪೇಪಾಲ್ ಖಾತೆಗೆ ಲಾಗ್ ಇನ್ ಮಾಡಲು ಪೇಪಾಲ್ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ, ನಂತರ ಮುಂದುವರಿಸಲು ಕೆಳಗಿನ ಸಲ್ಲಿಕೆ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ." + }, + "cancelSubscription": { + "message": "ಚಂದಾದಾರಿಕೆಯನ್ನು ರದ್ದುಗೊಳಿಸಿ" + }, + "subscriptionCanceled": { + "message": "ಚಂದಾದಾರಿಕೆಯನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ." + }, + "pendingCancellation": { + "message": "ರದ್ದತಿ ಬಾಕಿ ಉಳಿದಿದೆ" + }, + "subscriptionPendingCanceled": { + "message": "ಪ್ರಸ್ತುತ ಬಿಲ್ಲಿಂಗ್ ಅವಧಿಯ ಕೊನೆಯಲ್ಲಿ ರದ್ದತಿಗೆ ಚಂದಾದಾರಿಕೆಯನ್ನು ಗುರುತಿಸಲಾಗಿದೆ." + }, + "reinstateSubscription": { + "message": "ಚಂದಾದಾರಿಕೆಯನ್ನು ಮರುಸ್ಥಾಪಿಸಿ" + }, + "reinstateConfirmation": { + "message": "ಬಾಕಿ ಉಳಿದಿರುವ ರದ್ದತಿ ವಿನಂತಿಯನ್ನು ತೆಗೆದುಹಾಕಲು ಮತ್ತು ನಿಮ್ಮ ಚಂದಾದಾರಿಕೆಯನ್ನು ಮರುಸ್ಥಾಪಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?" + }, + "reinstated": { + "message": "ಚಂದಾದಾರಿಕೆಯನ್ನು ಪುನಃ ಸ್ಥಾಪಿಸಲಾಗಿದೆ." + }, + "cancelConfirmation": { + "message": "ನೀವು ರದ್ದು ಮಾಡಲು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ? ಈ ಬಿಲ್ಲಿಂಗ್ ಚಕ್ರದ ಕೊನೆಯಲ್ಲಿ ಈ ಎಲ್ಲಾ ಚಂದಾದಾರಿಕೆಯ ವೈಶಿಷ್ಟ್ಯಗಳಿಗೆ ನೀವು ಪ್ರವೇಶವನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ." + }, + "canceledSubscription": { + "message": "ಚಂದಾದಾರಿಕೆಯನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ." + }, + "neverExpires": { + "message": "ಎಂದಿಗೂ ಅವಧಿ" + }, + "status": { + "message": "ಸ್ಥಿತಿ" + }, + "nextCharge": { + "message": "ಮುಂದಿನ ಶುಲ್ಕ" + }, + "details": { + "message": "ವಿವರಗಳು" + }, + "downloadLicense": { + "message": "ಪರವಾನಗಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ" + }, + "updateLicense": { + "message": "ಪರವಾನಗಿ ನವೀಕರಿಸಿ" + }, + "updatedLicense": { + "message": "ನವೀಕರಿಸಿದ ಪರವಾನಗಿ" + }, + "manageSubscription": { + "message": "ಚಂದಾದಾರಿಕೆಯನ್ನು ನಿರ್ವಹಿಸಿ" + }, + "storage": { + "message": "ಸಂಗ್ರಹಣೆ" + }, + "addStorage": { + "message": "ಸಂಗ್ರಹಣೆಯನ್ನು ಸೇರಿಸಿ" + }, + "removeStorage": { + "message": "ಸಂಗ್ರಹಣೆಯನ್ನು ತೆಗೆದುಹಾಕಿ" + }, + "subscriptionStorage": { + "message": "ನಿಮ್ಮ ಚಂದಾದಾರಿಕೆಯು ಒಟ್ಟು $MAX_STORAGE$ GB ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಿದ ಫೈಲ್ ಸಂಗ್ರಹವನ್ನು ಹೊಂದಿದೆ. ನೀವು ಪ್ರಸ್ತುತ $USED_STORAGE$ ಅನ್ನು ಬಳಸುತ್ತಿರುವಿರಿ.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "ಪಾವತಿ ವಿಧಾನ" + }, + "noPaymentMethod": { + "message": "ಫೈಲ್‌ನಲ್ಲಿ ಪಾವತಿ ವಿಧಾನವಿಲ್ಲ." + }, + "addPaymentMethod": { + "message": "ಪಾವತಿ ವಿಧಾನವನ್ನು ಸೇರಿಸಿ" + }, + "changePaymentMethod": { + "message": "ಪಾವತಿ ವಿಧಾನವನ್ನು ಬದಲಾಯಿಸಿ" + }, + "invoices": { + "message": "ಇನ್ವಾಯ್ಸ್ಗಳು" + }, + "noInvoices": { + "message": "ಇನ್‌ವಾಯ್ಸ್‌ಗಳಿಲ್ಲ." + }, + "paid": { + "message": "ಪಾವತಿ ಮಾಡಲಾಗಿದೆ", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "ಪಾವತಿಸಲಾಗಿಲ್ಲ", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "ವ್ಯವಹಾರಗಳು", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "ಯಾವುದೇ ವಹಿವಾಟು ಇಲ್ಲ." + }, + "chargeNoun": { + "message": "ಶುಲ್ಕ", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "ಮರುಪಾವತಿ", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "ಯಾವುದೇ ಹೇಳಿಕೆಗಳು ನಿಮ್ಮ ಹೇಳಿಕೆಯಲ್ಲಿ $STATEMENT_NAME$ ಆಗಿ ಕಾಣಿಸುತ್ತದೆ.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "ಸೇರಿಸಲು ಜಿಬಿ ಸಂಗ್ರಹಣೆ" + }, + "gbStorageRemove": { + "message": "ತೆಗೆದುಹಾಕಲು ಶೇಖರಣೆಯ ಜಿಬಿ" + }, + "storageAddNote": { + "message": "ಸಂಗ್ರಹಣೆಯನ್ನು ಸೇರಿಸುವುದರಿಂದ ನಿಮ್ಮ ಬಿಲ್ಲಿಂಗ್ ಮೊತ್ತಕ್ಕೆ ಹೊಂದಾಣಿಕೆ ಉಂಟಾಗುತ್ತದೆ ಮತ್ತು ತಕ್ಷಣ ನಿಮ್ಮ ಪಾವತಿ ವಿಧಾನವನ್ನು ಫೈಲ್‌ನಲ್ಲಿ ಚಾರ್ಜ್ ಮಾಡುತ್ತದೆ. ಪ್ರಸ್ತುತ ಬಿಲ್ಲಿಂಗ್ ಚಕ್ರದ ಉಳಿದ ಭಾಗಕ್ಕೆ ಮೊದಲ ಶುಲ್ಕವನ್ನು ನಿಗದಿಪಡಿಸಲಾಗುತ್ತದೆ." + }, + "storageRemoveNote": { + "message": "ಸಂಗ್ರಹಣೆಯನ್ನು ತೆಗೆದುಹಾಕುವುದರಿಂದ ನಿಮ್ಮ ಬಿಲ್ಲಿಂಗ್ ಮೊತ್ತಕ್ಕೆ ಹೊಂದಾಣಿಕೆಗಳು ಉಂಟಾಗುತ್ತವೆ, ಅದು ನಿಮ್ಮ ಮುಂದಿನ ಬಿಲ್ಲಿಂಗ್ ಶುಲ್ಕಕ್ಕೆ ಸಾಲಗಳಾಗಿ ಸಾಬೀತಾಗುತ್ತದೆ." + }, + "adjustedStorage": { + "message": "$AMOUNT$ GB ಸಂಗ್ರಹಣೆಯನ್ನು ಹೊಂದಿಸಲಾಗಿದೆ.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "ಗ್ರಾಹಕ ಬೆಂಬಲವನ್ನು ಸಂಪರ್ಕಿಸಿ" + }, + "updatedPaymentMethod": { + "message": "ಪಾವತಿ ವಿಧಾನವನ್ನು ನವೀಕರಿಸಲಾಗಿದೆ." + }, + "purchasePremium": { + "message": "ಪ್ರೀಮಿಯಂ ಖರೀದಿಸಿ" + }, + "licenseFile": { + "message": "ಪರವಾನಗಿ ಫೈಲ್" + }, + "licenseFileDesc": { + "message": "ನಿಮ್ಮ ಪರವಾನಗಿ ಫೈಲ್‌ಗೆ $FILE_NAME$ ಎಂದು ಹೆಸರಿಸಲಾಗುವುದು", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಪ್ರೀಮಿಯಂ ಸದಸ್ಯತ್ವಕ್ಕೆ ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡಲು ನೀವು ಮಾನ್ಯ ಪರವಾನಗಿ ಫೈಲ್ ಅನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ." + }, + "uploadLicenseFileOrg": { + "message": "ಆನ್-ಆವರಣದ ಹೋಸ್ಟ್ ಸಂಸ್ಥೆಯನ್ನು ರಚಿಸಲು ನೀವು ಮಾನ್ಯವಾದ ಪರವಾನಗಿ ಫೈಲ್ ಅನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ." + }, + "accountEmailMustBeVerified": { + "message": "ನಿಮ್ಮ ಖಾತೆಯ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಪರಿಶೀಲಿಸಬೇಕು." + }, + "newOrganizationDesc": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್‌ನ ಭಾಗಗಳನ್ನು ಇತರರೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಲು ಮತ್ತು ಕುಟುಂಬ, ಸಣ್ಣ ತಂಡ ಅಥವಾ ದೊಡ್ಡ ಕಂಪನಿಯಂತಹ ನಿರ್ದಿಷ್ಟ ಘಟಕಕ್ಕಾಗಿ ಸಂಬಂಧಿತ ಬಳಕೆದಾರರನ್ನು ನಿರ್ವಹಿಸಲು ಸಂಸ್ಥೆಗಳು ನಿಮಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತವೆ." + }, + "generalInformation": { + "message": "ಸಾಮಾನ್ಯ ಮಾಹಿತಿ" + }, + "organizationName": { + "message": "ಸಂಸ್ಥೆಯ ಹೆಸರು" + }, + "accountOwnedBusiness": { + "message": "ಈ ಖಾತೆಯು ವ್ಯವಹಾರದ ಒಡೆತನದಲ್ಲಿದೆ." + }, + "billingEmail": { + "message": "ಬಿಲ್ಲಿಂಗ್ ಇಮೇಲ್" + }, + "businessName": { + "message": "ವ್ಯವಹಾರದ ಹೆಸರು" + }, + "chooseYourPlan": { + "message": "ನಿಮ್ಮ ಯೋಜನೆಯನ್ನು ಆರಿಸಿ" + }, + "users": { + "message": "ಬಳಕೆದಾರರು" + }, + "userSeats": { + "message": "ಬಳಕೆದಾರರ ಆಸನಗಳು" + }, + "additionalUserSeats": { + "message": "ಹೆಚ್ಚುವರಿ ಬಳಕೆದಾರ ಆಸನಗಳು" + }, + "userSeatsDesc": { + "message": "# ಬಳಕೆದಾರರ ಆಸನಗಳು" + }, + "userSeatsAdditionalDesc": { + "message": "ನಿಮ್ಮ ಯೋಜನೆ $BASE_SEATS$ ಬಳಕೆದಾರ ಆಸನಗಳೊಂದಿಗೆ ಬರುತ್ತದೆ. ನೀವು ಪ್ರತಿ ಬಳಕೆದಾರರಿಗೆ / ತಿಂಗಳಿಗೆ $SEAT_PRICE$ ಗೆ ಹೆಚ್ಚುವರಿ ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಬಹುದು.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "ನಿಮಗೆ ಎಷ್ಟು ಬಳಕೆದಾರ ಆಸನಗಳು ಬೇಕು? ಅಗತ್ಯವಿದ್ದರೆ ನೀವು ನಂತರ ಹೆಚ್ಚುವರಿ ಆಸನಗಳನ್ನು ಕೂಡ ಸೇರಿಸಬಹುದು." + }, + "planNameFree": { + "message": "ಉಚಿತ", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "ಪರೀಕ್ಷೆ ಅಥವಾ ವೈಯಕ್ತಿಕ ಬಳಕೆದಾರರಿಗೆ $COUNT$ ಇತರ ಬಳಕೆದಾರರೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಲು.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "ಕುಟುಂಬಗಳು" + }, + "planDescFamilies": { + "message": "ವೈಯಕ್ತಿಕ ಬಳಕೆಗಾಗಿ, ಕುಟುಂಬ ಮತ್ತು ಸ್ನೇಹಿತರೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಲು." + }, + "planNameTeams": { + "message": "ತಂಡಗಳು" + }, + "planDescTeams": { + "message": "ವ್ಯವಹಾರಗಳು ಮತ್ತು ಇತರ ತಂಡದ ಸಂಸ್ಥೆಗಳಿಗೆ." + }, + "planNameEnterprise": { + "message": "ಉದ್ಯಮ" + }, + "planDescEnterprise": { + "message": "ವ್ಯವಹಾರಗಳು ಮತ್ತು ಇತರ ದೊಡ್ಡ ಸಂಸ್ಥೆಗಳಿಗೆ." + }, + "freeForever": { + "message": "ಉಚಿತ ಶಾಶ್ವತವಾಗಿ" + }, + "includesXUsers": { + "message": "$COUNT$ ಬಳಕೆದಾರರನ್ನು ಒಳಗೊಂಡಿದೆ", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "ಹೆಚ್ಚುವರಿ ಬಳಕೆದಾರರು" + }, + "costPerUser": { + "message": "ಪ್ರತಿ ಬಳಕೆದಾರರಿಗೆ $COST$", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "$COUNT$ ಬಳಕೆದಾರರಿಗೆ ಸೀಮಿತವಾಗಿದೆ (ನೀವು ಸೇರಿದಂತೆ)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "$COUNT$ ಸಂಗ್ರಹಗಳಿಗೆ ಸೀಮಿತವಾಗಿದೆ", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "$COUNT$ ಬಳಕೆದಾರರೊಂದಿಗೆ ಸೇರಿಸಿ ಮತ್ತು ಹಂಚಿಕೊಳ್ಳಿ", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "ಅನಿಯಮಿತ ಬಳಕೆದಾರರೊಂದಿಗೆ ಸೇರಿಸಿ ಮತ್ತು ಹಂಚಿಕೊಳ್ಳಿ" + }, + "createUnlimitedCollections": { + "message": "ಅನಿಯಮಿತ ಸಂಗ್ರಹಗಳನ್ನು ರಚಿಸಿ" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಿದ ಫೈಲ್ ಸಂಗ್ರಹಣೆ", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "ಆನ್-ಪ್ರಿಮೈಸ್ ಹೋಸ್ಟಿಂಗ್ (ಐಚ್ಛಿಕ)" + }, + "usersGetPremium": { + "message": "ಬಳಕೆದಾರರು ಪ್ರೀಮಿಯಂ ವೈಶಿಷ್ಟ್ಯಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಪಡೆಯುತ್ತಾರೆ" + }, + "controlAccessWithGroups": { + "message": "ಗುಂಪುಗಳೊಂದಿಗೆ ಬಳಕೆದಾರ ಪ್ರವೇಶವನ್ನು ನಿಯಂತ್ರಿಸಿ" + }, + "syncUsersFromDirectory": { + "message": "ಡೈರೆಕ್ಟರಿಯಿಂದ ನಿಮ್ಮ ಬಳಕೆದಾರರು ಮತ್ತು ಗುಂಪುಗಳನ್ನು ಸಿಂಕ್ ಮಾಡಿ" + }, + "trackAuditLogs": { + "message": "ಆಡಿಟ್ ಲಾಗ್‌ಗಳೊಂದಿಗೆ ಬಳಕೆದಾರರ ಕ್ರಿಯೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ" + }, + "enforce2faDuo": { + "message": "ಡ್ಯುಯೊ ಜೊತೆ 2 ಎಫ್ಎ ಜಾರಿಗೊಳಿಸಿ" + }, + "priorityCustomerSupport": { + "message": "ಆದ್ಯತೆಯ ಗ್ರಾಹಕ ಬೆಂಬಲ" + }, + "xDayFreeTrial": { + "message": "$COUNT$ ದಿನದ ಉಚಿತ ಪ್ರಯೋಗ, ಯಾವಾಗ ಬೇಕಾದರೂ ರದ್ದುಗೊಳಿಸಿ", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "ಮಾಸಿಕ" + }, + "annually": { + "message": "ವಾರ್ಷಿಕವಾಗಿ" + }, + "basePrice": { + "message": "ಮೂಲ ದರ" + }, + "organizationCreated": { + "message": "ಸಂಸ್ಥೆ ರಚಿಸಲಾಗಿದೆ" + }, + "organizationReadyToGo": { + "message": "ನಿಮ್ಮ ಹೊಸ ಸಂಸ್ಥೆ ಹೋಗಲು ಸಿದ್ಧವಾಗಿದೆ!" + }, + "organizationUpgraded": { + "message": "ನಿಮ್ಮ ಸಂಸ್ಥೆಯನ್ನು ನವೀಕರಿಸಲಾಗಿದೆ." + }, + "leave": { + "message": "ಬಿಡಿ" + }, + "leaveOrganizationConfirmation": { + "message": "ಈ ಸಂಸ್ಥೆಯನ್ನು ಬಿಡಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?" + }, + "leftOrganization": { + "message": "ನೀವು ಸಂಸ್ಥೆಯನ್ನು ತೊರೆದಿದ್ದೀರಿ." + }, + "defaultCollection": { + "message": "ಡೀಫಾಲ್ಟ್ ಸಂಗ್ರಹ" + }, + "getHelp": { + "message": "ಸಹಾಯ ಪಡೆ" + }, + "getApps": { + "message": "ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಪಡೆಯಿರಿ" + }, + "loggedInAs": { + "message": "ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಪಡೆಯಿರಿ" + }, + "eventLogs": { + "message": "ಈವೆಂಟ್ ದಾಖಲೆಗಳು" + }, + "people": { + "message": "ಜನರು" + }, + "policies": { + "message": "ನೀತಿಗಳು" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "ನೀತಿಯನ್ನು ತಿದ್ದು" + }, + "groups": { + "message": "ಗುಂಪುಗಳು" + }, + "newGroup": { + "message": "ಹೊಸ ಗುಂಪು" + }, + "addGroup": { + "message": "ಗುಂಪನ್ನು ಸೇರಿಸಿ" + }, + "editGroup": { + "message": "ಗುಂಪು ಎಡಿಟ್ ಮಾಡು" + }, + "deleteGroupConfirmation": { + "message": "ಈ ಗುಂಪನ್ನು ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?" + }, + "removeUserConfirmation": { + "message": "ಈ ಬಳಕೆದಾರರನ್ನು ತೆಗೆದುಹಾಕಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "ಬಾಹ್ಯ ಐಡಿ" + }, + "externalIdDesc": { + "message": "ಬಾಹ್ಯ ಐಡಿಯನ್ನು ಉಲ್ಲೇಖವಾಗಿ ಬಳಸಬಹುದು ಅಥವಾ ಈ ಸಂಪನ್ಮೂಲವನ್ನು ಬಳಕೆದಾರರ ಡೈರೆಕ್ಟರಿಯಂತಹ ಬಾಹ್ಯ ವ್ಯವಸ್ಥೆಗೆ ಲಿಂಕ್ ಮಾಡಬಹುದು." + }, + "accessControl": { + "message": "ಪ್ರವೇಶ ನಿಯಂತ್ರಣ" + }, + "groupAccessAllItems": { + "message": "ಈ ಗುಂಪು ಎಲ್ಲಾ ವಸ್ತುಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು ಮತ್ತು ಮಾರ್ಪಡಿಸಬಹುದು." + }, + "groupAccessSelectedCollections": { + "message": "ಈ ಗುಂಪು ಆಯ್ದ ಸಂಗ್ರಹಗಳನ್ನು ಮಾತ್ರ ಪ್ರವೇಶಿಸಬಹುದು." + }, + "readOnly": { + "message": "ಓದಲು ಮಾತ್ರ" + }, + "newCollection": { + "message": "ಹೊಸ ಸಂಗ್ರಹ" + }, + "addCollection": { + "message": "ಸಂಗ್ರಹವನ್ನು ಸೇರಿಸಿ" + }, + "editCollection": { + "message": "ಸಂಗ್ರಹವನ್ನು ತಿದ್ದು" + }, + "deleteCollectionConfirmation": { + "message": "ಈ ಸಂಗ್ರಹವನ್ನು ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?" + }, + "editUser": { + "message": "ಬಳಕೆದಾರರನ್ನು ತಿದ್ದು" + }, + "inviteUser": { + "message": "ಬಳಕೆದಾರರನ್ನು ಆಹ್ವಾನಿಸಿ" + }, + "inviteUserDesc": { + "message": "ನಿಮ್ಮ ಬಳಕೆದಾರರಿಗೆ ಅವರ ಬಿಟ್‌ವಾರ್ಡನ್ ಖಾತೆ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಕೆಳಗೆ ನಮೂದಿಸುವ ಮೂಲಕ ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಆಹ್ವಾನಿಸಿ. ಅವರು ಈಗಾಗಲೇ ಬಿಟ್‌ವಾರ್ಡೆನ್ ಖಾತೆಯನ್ನು ಹೊಂದಿಲ್ಲದಿದ್ದರೆ, ಹೊಸ ಖಾತೆಯನ್ನು ರಚಿಸಲು ಅವರನ್ನು ಕೇಳಲಾಗುತ್ತದೆ." + }, + "inviteMultipleEmailDesc": { + "message": "ಇಮೇಲ್ ವಿಳಾಸಗಳ ಪಟ್ಟಿಯನ್ನು ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸುವ ಮೂಲಕ ನೀವು ಒಂದು ಸಮಯದಲ್ಲಿ $COUNT$ ಬಳಕೆದಾರರನ್ನು ಆಹ್ವಾನಿಸಬಹುದು.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "ಈ ಬಳಕೆದಾರರು ತಮ್ಮ ಖಾತೆಯನ್ನು ರಕ್ಷಿಸಲು ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಅನ್ನು ಬಳಸುತ್ತಿದ್ದಾರೆ." + }, + "userAccessAllItems": { + "message": "ಈ ಬಳಕೆದಾರರು ಎಲ್ಲಾ ವಸ್ತುಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು ಮತ್ತು ಮಾರ್ಪಡಿಸಬಹುದು." + }, + "userAccessSelectedCollections": { + "message": "ಈ ಬಳಕೆದಾರರು ಆಯ್ದ ಸಂಗ್ರಹಗಳನ್ನು ಮಾತ್ರ ಪ್ರವೇಶಿಸಬಹುದು." + }, + "search": { + "message": "ಹುಡುಕಿ" + }, + "invited": { + "message": "ಆಹ್ವಾನಿಸಲಾಗಿದೆ" + }, + "accepted": { + "message": "ಸ್ವೀಕರಿಸಲಾಗಿದೆ" + }, + "confirmed": { + "message": "ದೃಢಪಡಿಸಲಾಗಿದೆ" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "ಮಾಲೀಕರು" + }, + "ownerDesc": { + "message": "ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಎಲ್ಲಾ ಅಂಶಗಳನ್ನು ನಿರ್ವಹಿಸಬಲ್ಲ ಅತ್ಯುನ್ನತ ಪ್ರವೇಶ ಬಳಕೆದಾರ." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "ಅಡ್ಮಿನ್" + }, + "adminDesc": { + "message": "ನಿರ್ವಾಹಕರು ನಿಮ್ಮ ಸಂಸ್ಥೆಯಲ್ಲಿನ ಎಲ್ಲಾ ವಸ್ತುಗಳು, ಸಂಗ್ರಹಣೆಗಳು ಮತ್ತು ಬಳಕೆದಾರರನ್ನು ಪ್ರವೇಶಿಸಬಹುದು ಮತ್ತು ನಿರ್ವಹಿಸಬಹುದು." + }, + "user": { + "message": "ಬಳಕೆದಾರ" + }, + "userDesc": { + "message": "ನಿಮ್ಮ ಸಂಸ್ಥೆಯಲ್ಲಿ ನಿಯೋಜಿಸಲಾದ ಸಂಗ್ರಹಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿರುವ ಸಾಮಾನ್ಯ ಬಳಕೆದಾರ." + }, + "manager": { + "message": "ವ್ಯವಸ್ಥಾಪಕ" + }, + "managerDesc": { + "message": "ನಿಮ್ಮ ಸಂಸ್ಥೆಯಲ್ಲಿ ನಿಯೋಜಿತ ಸಂಗ್ರಹಣೆಯನ್ನು ವ್ಯವಸ್ಥಾಪಕರು ಪ್ರವೇಶಿಸಬಹುದು ಮತ್ತು ನಿರ್ವಹಿಸಬಹುದು." + }, + "all": { + "message": "ಎಲ್ಲಾ" + }, + "refresh": { + "message": "ರಿಫ್ರೆಶ್" + }, + "timestamp": { + "message": "ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್" + }, + "event": { + "message": "ಈವೆಂಟ್‌" + }, + "unknown": { + "message": "ಅಪರಿಚಿತ" + }, + "loadMore": { + "message": "ಇನ್ನಷ್ಟು ಲೋಡ್ ಮಾಡಿ" + }, + "mobile": { + "message": "ಮೊಬೈಲ್", + "description": "Mobile app" + }, + "extension": { + "message": "ವಿಸ್ತರಣೆ", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "ಡೆಸ್ಕ್‌ಟಾಪ್", + "description": "Desktop app" + }, + "webVault": { + "message": "ವೆಬ್ ವಾಲ್ಟ್" + }, + "loggedIn": { + "message": "ಲಾಗ್ ಇನ್ ಮಾಡಲಾಗಿದೆ." + }, + "changedPassword": { + "message": "ಖಾತೆಯ ಪಾಸ್‌ವರ್ಡ್ ಬದಲಾಯಿಸಲಾಗಿದೆ." + }, + "enabledUpdated2fa": { + "message": "ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ / ನವೀಕರಿಸಲಾಗಿದೆ." + }, + "disabled2fa": { + "message": "ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ." + }, + "recovered2fa": { + "message": "ಎರಡು-ಹಂತದ ಲಾಗಿನ್‌ನಿಂದ ಖಾತೆಯನ್ನು ಮರುಪಡೆಯಲಾಗಿದೆ." + }, + "failedLogin": { + "message": "ತಪ್ಪಾದ ಪಾಸ್‌ವರ್ಡ್‌ನೊಂದಿಗೆ ಲಾಗಿನ್ ಪ್ರಯತ್ನ ವಿಫಲವಾಗಿದೆ." + }, + "failedLogin2fa": { + "message": "ತಪ್ಪಾದ ಎರಡು-ಹಂತದ ಲಾಗಿನ್‌ನೊಂದಿಗೆ ಲಾಗಿನ್ ಪ್ರಯತ್ನ ವಿಫಲವಾಗಿದೆ." + }, + "exportedVault": { + "message": "ರಫ್ತು ಮಾಡಿದ ವಾಲ್ಟ್." + }, + "exportedOrganizationVault": { + "message": "ರಫ್ತು ಮಾಡಿದ ಸಂಸ್ಥೆ ವಾಲ್ಟ್." + }, + "editedOrgSettings": { + "message": "ರಫ್ತು ಮಾಡಿದ ಸಂಸ್ಥೆ ವಾಲ್ಟ್." + }, + "createdItemId": { + "message": "ಐಟಂ $ID$ ಅನ್ನು ರಚಿಸಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "ಐಟಂ $ID$ ಅನ್ನು ಸಂಪಾದಿಸಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "ಐಟಂ $ID$ಅನ್ನು ಅನುಪಯುಕ್ತಕ್ಕೆ ಕಳುಹಿಸಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "ಐಟಂ $ID$ ಅನ್ನು ಸಂಸ್ಥೆಗೆ ಸರಿಸಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "ವೀಕ್ಷಿಸಿದ ಐಟಂ $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "ಐಟಂ$ID$ ಗಾಗಿ ಪಾಸ್‌ವರ್ಡ್ ವೀಕ್ಷಿಸಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "ಐಟಂ $ID$ ಗಾಗಿ ಮರೆಮಾಡಿದ ಕ್ಷೇತ್ರವನ್ನು ವೀಕ್ಷಿಸಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "ಐಟಂ $ID$ ಗಾಗಿ ಭದ್ರತಾ ಕೋಡ್ ವೀಕ್ಷಿಸಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "ಐಟಂ $ID$ ಗಾಗಿ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಕಲಿಸಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "ಐಟಂ $ID$ ಗಾಗಿ ಗುಪ್ತ ಕ್ಷೇತ್ರವನ್ನು ನಕಲಿಸಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "ಐಟಂ$ID$ ಗಾಗಿ ಭದ್ರತಾ ಕೋಡ್ ಅನ್ನು ನಕಲಿಸಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "ಸ್ವಯಂ ತುಂಬಿದ ಐಟಂ $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "ಸಂಗ್ರಹ $ID$ ಅನ್ನು ರಚಿಸಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "ಸಂಗ್ರಹಣೆ ಸಂಪಾದನೆ $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "ಸಂಗ್ರಹವನ್ನು ಅಳಿಸಲಾಗಿದೆ $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "ನೀತಿ ಸಂಪಾದಿಸಲಾಗಿದೆ $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "ಗುಂಪು $ID$ ಅನ್ನು ರಚಿಸಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "ಗುಂಪು $ID$ ಅನ್ನು ಸಂಪಾದಿಸಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "ಅಳಿಸಿದ ಗುಂಪು $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "ತೆಗೆದುಹಾಕಲಾದ ಬಳಕೆದಾರ $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "ಐಟಂ $ID$ ಗಾಗಿ ಲಗತ್ತನ್ನು ರಚಿಸಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "ಐಟಂ $ID$ ಗಾಗಿ ಲಗತ್ತಿಸಲಾದ ಅಳಿಸಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "ಐಟಂ $ID$ ಗಾಗಿ ಸಂಗ್ರಹಗಳನ್ನು ಸಂಪಾದಿಸಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "ಆಹ್ವಾನಿತ ಬಳಕೆದಾರ $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "ದೃಢೀಕರಿಸಿದ ಬಳಕೆದಾರ $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "ತಿದ್ಸಿದ ಬಳಕೆದಾರ $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "ಬಳಕೆದಾರ $ID$ ಗಾಗಿ ಗುಂಪುಗಳನ್ನು ತಿದ್ಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "ಬಳಕೆದಾರ $ID$ ಗಾಗಿ ಲಿಂಕ್ ಮಾಡದ SSO.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "ಡಿವೈಸ್" + }, + "view": { + "message": "ವೀಕ್ಷಣೆ" + }, + "invalidDateRange": { + "message": "ಅಮಾನ್ಯ ದಿನಾಂಕ ಶ್ರೇಣಿ." + }, + "errorOccurred": { + "message": "ದೋಷ ಸಂಭವಿಸಿದೆ." + }, + "userAccess": { + "message": "ಬಳಕೆದಾರ ಪ್ರವೇಶ" + }, + "userType": { + "message": "ಬಳಕೆದಾರ ವಿಧ" + }, + "groupAccess": { + "message": "ಗುಂಪು ಪ್ರವೇಶ" + }, + "groupAccessUserDesc": { + "message": "ಈ ಬಳಕೆದಾರರು ಸೇರಿರುವ ಗುಂಪುಗಳನ್ನು ಸಂಪಾದಿಸಿ." + }, + "invitedUsers": { + "message": "ಆಹ್ವಾನಿತ ಬಳಕೆದಾರ (ಗಳು)." + }, + "resendInvitation": { + "message": "ಆಹ್ವಾನವನ್ನು ಮರುಹೊಂದಿಸಿ" + }, + "resendEmail": { + "message": "ಇಮೇಲ್‌ ಮತ್ತೊಮ್ಮೆ ಕಳುಹಿಸಿ" + }, + "hasBeenReinvited": { + "message": "$USER$ ಅನ್ನು ಮರುಸೃಷ್ಟಿಸಲಾಗಿದೆ.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "ದೃಢೀಕರಿಸಿ" + }, + "confirmUser": { + "message": "ಬಳಕೆದಾರರನ್ನು ದೃಢೀಕರಿಸಿ" + }, + "hasBeenConfirmed": { + "message": "$USER$ ಅನ್ನು ದೃಢಪಡಿಸಲಾಗಿದೆ.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "ಬಳಕೆದಾರರನ್ನು ದೃಢೀಕರಿಸಿ" + }, + "usersNeedConfirmed": { + "message": "ಅವರ ಆಹ್ವಾನವನ್ನು ಸ್ವೀಕರಿಸಿದ ಬಳಕೆದಾರರನ್ನು ನೀವು ಹೊಂದಿದ್ದೀರಿ, ಆದರೆ ಇನ್ನೂ ದೃಢೀಕರಿಸಬೇಕಾಗಿದೆ. ಬಳಕೆದಾರರು ದೃಢೀಕರಿಸುವವರೆಗೂ ಸಂಸ್ಥೆಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ." + }, + "startDate": { + "message": "ಪ್ರಾರಂಭ ದಿನಾಂಕ" + }, + "endDate": { + "message": "ಕೊನೆಯಾದ ದಿನಾಂಕ" + }, + "verifyEmail": { + "message": "ಇಮೇಲ್ ಪರಿಶೀಲಿಸಿ" + }, + "verifyEmailDesc": { + "message": "ಎಲ್ಲಾ ವೈಶಿಷ್ಟ್ಯಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ನಿಮ್ಮ ಖಾತೆಯ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಪರಿಶೀಲಿಸಿ." + }, + "verifyEmailFirst": { + "message": "ನಿಮ್ಮ ಖಾತೆಯ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಮೊದಲು ಪರಿಶೀಲಿಸಬೇಕು." + }, + "checkInboxForVerification": { + "message": "ಪರಿಶೀಲನೆ ಲಿಂಕ್‌ಗಾಗಿ ನಿಮ್ಮ ಇಮೇಲ್ ಇನ್‌ಬಾಕ್ಸ್ ಪರಿಶೀಲಿಸಿ." + }, + "emailVerified": { + "message": "ನಿಮ್ಮ ಇಮೇಲ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲಾಗಿದೆ." + }, + "emailVerifiedFailed": { + "message": "ನಿಮ್ಮ ಇಮೇಲ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಹೊಸ ಪರಿಶೀಲನೆ ಇಮೇಲ್ ಕಳುಹಿಸಲು ಪ್ರಯತ್ನಿಸಿ." + }, + "emailVerificationRequired": { + "message": "ಇಮೇಲ್ ಪರಿಶೀಲನೆ ಅಗತ್ಯವಿದೆ" + }, + "emailVerificationRequiredDesc": { + "message": "ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಲು ನಿಮ್ಮ ಇಮೇಲ್ ಅನ್ನು ನೀವು ಪರಿಶೀಲಿಸಬೇಕು." + }, + "updateBrowser": { + "message": "ಬ್ರೌಸರ್ ನವೀಕರಿಸಿ" + }, + "updateBrowserDesc": { + "message": "ನೀವು ಬೆಂಬಲಿಸದ ವೆಬ್ ಬ್ರೌಸರ್ ಅನ್ನು ಬಳಸುತ್ತಿರುವಿರಿ. ವೆಬ್ ವಾಲ್ಟ್ ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸದೆ ಇರಬಹುದು." + }, + "joinOrganization": { + "message": "ಸಂಸ್ಥೆಗೆ ಸೇರಿ" + }, + "joinOrganizationDesc": { + "message": "ಮೇಲೆ ಪಟ್ಟಿ ಮಾಡಲಾದ ಸಂಸ್ಥೆಗೆ ಸೇರಲು ನಿಮ್ಮನ್ನು ಆಹ್ವಾನಿಸಲಾಗಿದೆ. ಆಹ್ವಾನವನ್ನು ಸ್ವೀಕರಿಸಲು, ನೀವು ಲಾಗ್ ಇನ್ ಆಗಬೇಕು ಅಥವಾ ಹೊಸ ಬಿಟ್‌ವಾರ್ಡನ್ ಖಾತೆಯನ್ನು ರಚಿಸಬೇಕು." + }, + "inviteAccepted": { + "message": "ಆಮಂತ್ರಣವನ್ನು ಸ್ವೀಕರಿಸಲಾಗಿದೆ" + }, + "inviteAcceptedDesc": { + "message": "ನಿರ್ವಾಹಕರು ನಿಮ್ಮ ಸದಸ್ಯತ್ವವನ್ನು ಖಚಿತಪಡಿಸಿದ ನಂತರ ನೀವು ಈ ಸಂಸ್ಥೆಯನ್ನು ಪ್ರವೇಶಿಸಬಹುದು. ಅದು ಸಂಭವಿಸಿದಾಗ ನಾವು ನಿಮಗೆ ಇಮೇಲ್ ಕಳುಹಿಸುತ್ತೇವೆ." + }, + "inviteAcceptFailed": { + "message": "ಆಹ್ವಾನವನ್ನು ಸ್ವೀಕರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಹೊಸ ಆಹ್ವಾನವನ್ನು ಕಳುಹಿಸಲು ಸಂಸ್ಥೆಯ ನಿರ್ವಾಹಕರನ್ನು ಕೇಳಿ." + }, + "inviteAcceptFailedShort": { + "message": "ಆಹ್ವಾನವನ್ನು ಸ್ವೀಕರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "ಇಮೇಲ್ ನೆನಪಿಡಿ" + }, + "recoverAccountTwoStepDesc": { + "message": "ನಿಮ್ಮ ಸಾಮಾನ್ಯ ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ವಿಧಾನಗಳ ಮೂಲಕ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಪ್ರವೇಶಿಸಲು ನಿಮಗೆ ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ನಿಮ್ಮ ಖಾತೆಯ ಎಲ್ಲಾ ಎರಡು-ಹಂತದ ಪೂರೈಕೆದಾರರನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ನಿಮ್ಮ ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಮರುಪಡೆಯುವಿಕೆ ಕೋಡ್ ಅನ್ನು ನೀವು ಬಳಸಬಹುದು." + }, + "recoverAccountTwoStep": { + "message": "ಖಾತೆಯನ್ನು ಮರುಪಡೆಯಿರಿ ಎರಡು-ಹಂತದ ಲಾಗಿನ್" + }, + "twoStepRecoverDisabled": { + "message": "ನಿಮ್ಮ ಖಾತೆಯಲ್ಲಿ ಎರಡು ಹಂತದ ಲಾಗಿನ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ." + }, + "learnMore": { + "message": "ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ" + }, + "deleteRecoverDesc": { + "message": "ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಮರುಪಡೆಯಲು ಮತ್ತು ಅಳಿಸಲು ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಕೆಳಗೆ ನಮೂದಿಸಿ." + }, + "deleteRecoverEmailSent": { + "message": "ನಿಮ್ಮ ಖಾತೆ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ, ಹೆಚ್ಚಿನ ಸೂಚನೆಗಳೊಂದಿಗೆ ನಾವು ನಿಮಗೆ ಇಮೇಲ್ ಕಳುಹಿಸಿದ್ದೇವೆ." + }, + "deleteRecoverConfirmDesc": { + "message": "ನಿಮ್ಮ ಬಿಟ್‌ವಾರ್ಡನ್ ಖಾತೆಯನ್ನು ಅಳಿಸಲು ನೀವು ವಿನಂತಿಸಿದ್ದೀರಿ. ಖಚಿತಪಡಿಸಲು ಕೆಳಗಿನ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ." + }, + "myOrganization": { + "message": "ನನ್ನ ಸಂಸ್ಥೆ" + }, + "deleteOrganization": { + "message": "ಸಂಸ್ಥೆಯನ್ನು ಅಳಿಸಿ" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "ಸಂಸ್ಥೆ ಅಳಿಸಲಾಗಿದೆ" + }, + "organizationDeletedDesc": { + "message": "ಸಂಸ್ಥೆ ಮತ್ತು ಎಲ್ಲಾ ಸಂಬಂಧಿತ ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗಿದೆ." + }, + "organizationUpdated": { + "message": "ಸಂಸ್ಥೆ ನವೀಕರಿಸಲಾಗಿದೆ" + }, + "taxInformation": { + "message": "ತೆರಿಗೆ ಮಾಹಿತಿ" + }, + "taxInformationDesc": { + "message": "ಯುಎಸ್ನೊಳಗಿನ ಗ್ರಾಹಕರಿಗೆ, ಮಾರಾಟ ತೆರಿಗೆ ಅವಶ್ಯಕತೆಗಳನ್ನು ಪೂರೈಸಲು ಪಿನ್ ಕೋಡ್ ಅಗತ್ಯವಿದೆ, ಇತರ ದೇಶಗಳಿಗೆ ನೀವು ಐಚ್ಛಿಕವಾಗಿ ತೆರಿಗೆ ಗುರುತಿನ ಸಂಖ್ಯೆ (ವ್ಯಾಟ್ / ಜಿಎಸ್ಟಿ) ಮತ್ತು / ಅಥವಾ ನಿಮ್ಮ ಇನ್ವಾಯ್ಸ್ಗಳಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳಲು ವಿಳಾಸವನ್ನು ಒದಗಿಸಬಹುದು." + }, + "billingPlan": { + "message": "ಯೋಜನೆ", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "ಯೋಜನೆಯನ್ನು ಬದಲಾಯಿಸಿ", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "ಕೆಳಗಿನ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸುವ ಮೂಲಕ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಮತ್ತೊಂದು ಯೋಜನೆಗೆ ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡಿ. ನೀವು ಖಾತೆಗೆ ಸಕ್ರಿಯ ಪಾವತಿ ವಿಧಾನವನ್ನು ಸೇರಿಸಿದ್ದೀರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "ಸರಕುಪಟ್ಟಿ #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "ಸರಕುಪಟ್ಟಿ ವೀಕ್ಷಿಸಿ" + }, + "downloadInvoice": { + "message": "ಸರಕುಪಟ್ಟಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ" + }, + "verifyBankAccount": { + "message": "ಬ್ಯಾಂಕ್ ಖಾತೆಯನ್ನು ಪರಿಶೀಲಿಸಿ" + }, + "verifyBankAccountDesc": { + "message": "ನಿಮ್ಮ ಬ್ಯಾಂಕ್ ಖಾತೆಗೆ ನಾವು ಎರಡು ಮೈಕ್ರೋ-ಠೇವಣಿಗಳನ್ನು ಮಾಡಿದ್ದೇವೆ (ಅದನ್ನು ತೋರಿಸಲು 1-2 ವ್ಯವಹಾರ ದಿನಗಳು ತೆಗೆದುಕೊಳ್ಳಬಹುದು). ಬ್ಯಾಂಕ್ ಖಾತೆಯನ್ನು ಪರಿಶೀಲಿಸಲು ಈ ಮೊತ್ತವನ್ನು ನಮೂದಿಸಿ." + }, + "verifyBankAccountInitialDesc": { + "message": "ಬ್ಯಾಂಕ್ ಖಾತೆಯೊಂದಿಗೆ ಪಾವತಿ ಯುನೈಟೆಡ್ ಸ್ಟೇಟ್ಸ್ನ ಗ್ರಾಹಕರಿಗೆ ಮಾತ್ರ ಲಭ್ಯವಿದೆ. ನಿಮ್ಮ ಬ್ಯಾಂಕ್ ಖಾತೆಯನ್ನು ನೀವು ಪರಿಶೀಲಿಸುವ ಅಗತ್ಯವಿದೆ. ಮುಂದಿನ 1-2 ವ್ಯವಹಾರ ದಿನಗಳಲ್ಲಿ ನಾವು ಎರಡು ಮೈಕ್ರೋ-ಠೇವಣಿ ಮಾಡುತ್ತೇವೆ. ಬ್ಯಾಂಕ್ ಖಾತೆಯನ್ನು ಪರಿಶೀಲಿಸಲು ಸಂಸ್ಥೆಯ ಬಿಲ್ಲಿಂಗ್ ಪುಟದಲ್ಲಿ ಈ ಮೊತ್ತವನ್ನು ನಮೂದಿಸಿ." + }, + "verifyBankAccountFailureWarning": { + "message": "ಬ್ಯಾಂಕ್ ಖಾತೆಯನ್ನು ಪರಿಶೀಲಿಸುವಲ್ಲಿ ವಿಫಲವಾದರೆ ಪಾವತಿ ತಪ್ಪಿಹೋಗುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಚಂದಾದಾರಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ." + }, + "verifiedBankAccount": { + "message": "ಬ್ಯಾಂಕ್ ಖಾತೆಯನ್ನು ಪರಿಶೀಲಿಸಲಾಗಿದೆ." + }, + "bankAccount": { + "message": "ಬ್ಯಾಂಕ್ ಖಾತೆ" + }, + "amountX": { + "message": "ಮೊತ್ತ $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "ರೂಟಿಂಗ್ ಸಂಖ್ಯೆ", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "ಖಾತೆ ಸಂಖ್ಯೆ" + }, + "accountHolderName": { + "message": "ಖಾತೆದಾರನ ಹೆಸರು" + }, + "bankAccountType": { + "message": "ಅಕೌಂಟ್ ಪ್ರಕಾರ" + }, + "bankAccountTypeCompany": { + "message": "ಕಂಪನಿ (ವ್ಯವಹಾರ)" + }, + "bankAccountTypeIndividual": { + "message": "ವೈಯಕ್ತಿಕ (ವೈಯಕ್ತಿಕ)" + }, + "enterInstallationId": { + "message": "ನಿಮ್ಮ ಸ್ಥಾಪನಾ ಐಡಿಯನ್ನು ನಮೂದಿಸಿ" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "ಆಸನಗಳನ್ನು ಸೇರಿಸಿ", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "ಆಸನಗಳನ್ನು ತೆಗೆದುಹಾಕಿ", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "ನಿಮ್ಮ ಚಂದಾದಾರಿಕೆ ಒಟ್ಟು $COUNT$ ಬಳಕೆದಾರರಿಗೆ ಅನುಮತಿಸುತ್ತದೆ.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "ಸೇರಿಸಲು ಆಸನಗಳು" + }, + "seatsToRemove": { + "message": "ತೆಗೆದುಹಾಕಲು ಆಸನಗಳು" + }, + "seatsAddNote": { + "message": "ಬಳಕೆದಾರರ ಆಸನಗಳನ್ನು ಸೇರಿಸುವುದರಿಂದ ನಿಮ್ಮ ಬಿಲ್ಲಿಂಗ್ ಮೊತ್ತಕ್ಕೆ ಹೊಂದಾಣಿಕೆ ಉಂಟಾಗುತ್ತದೆ ಮತ್ತು ತಕ್ಷಣ ನಿಮ್ಮ ಪಾವತಿ ವಿಧಾನವನ್ನು ಫೈಲ್‌ನಲ್ಲಿ ಚಾರ್ಜ್ ಮಾಡುತ್ತದೆ. ಪ್ರಸ್ತುತ ಬಿಲ್ಲಿಂಗ್ ಚಕ್ರದ ಉಳಿದ ಭಾಗಕ್ಕೆ ಮೊದಲ ಶುಲ್ಕವನ್ನು ನಿಗದಿಪಡಿಸಲಾಗುತ್ತದೆ." + }, + "seatsRemoveNote": { + "message": "ಬಳಕೆದಾರರ ಆಸನಗಳನ್ನು ತೆಗೆದುಹಾಕುವುದರಿಂದ ನಿಮ್ಮ ಬಿಲ್ಲಿಂಗ್ ಮೊತ್ತಕ್ಕೆ ಹೊಂದಾಣಿಕೆಗಳು ಉಂಟಾಗುತ್ತವೆ, ಅದು ನಿಮ್ಮ ಮುಂದಿನ ಬಿಲ್ಲಿಂಗ್ ಶುಲ್ಕದ ಕ್ರೆಡಿಟ್‌ಗಳಾಗಿ ಸಾಬೀತಾಗುತ್ತದೆ." + }, + "adjustedSeats": { + "message": "$AMOUNT$ ಬಳಕೆದಾರರ ಆಸನಗಳನ್ನು ಹೊಂದಿಸಲಾಗಿದೆ.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "ಕೀ ನವೀಕರಿಸಲಾಗಿದೆ" + }, + "updateKeyTitle": { + "message": "ಕೀ ನವೀಕರಿಸಿ" + }, + "updateEncryptionKey": { + "message": "ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಕೀಲಿಯನ್ನು ನವೀಕರಿಸಿ" + }, + "updateEncryptionKeyShortDesc": { + "message": "ನೀವು ಪ್ರಸ್ತುತ ಹಳತಾದ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಯೋಜನೆಯನ್ನು ಬಳಸುತ್ತಿರುವಿರಿ." + }, + "updateEncryptionKeyDesc": { + "message": "ಉತ್ತಮ ಸುರಕ್ಷತೆ ಮತ್ತು ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುವ ದೊಡ್ಡ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಕೀಗಳಿಗೆ ನಾವು ಸರಿಸಿದ್ದೇವೆ. ನಿಮ್ಮ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಕೀಲಿಯನ್ನು ನವೀಕರಿಸುವುದು ತ್ವರಿತ ಮತ್ತು ಸುಲಭ. ನಿಮ್ಮ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಕೆಳಗೆ ಟೈಪ್ ಮಾಡಿ. ಈ ನವೀಕರಣವು ಅಂತಿಮವಾಗಿ ಕಡ್ಡಾಯವಾಗುತ್ತದೆ." + }, + "updateEncryptionKeyWarning": { + "message": "ನಿಮ್ಮ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಕೀಲಿಯನ್ನು ನವೀಕರಿಸಿದ ನಂತರ, ನೀವು ಪ್ರಸ್ತುತ ಬಳಸುತ್ತಿರುವ (ಮೊಬೈಲ್ ಅಪ್ಲಿಕೇಶನ್ ಅಥವಾ ಬ್ರೌಸರ್ ವಿಸ್ತರಣೆಗಳಂತಹ) ಎಲ್ಲಾ ಬಿಟ್‌ವಾರ್ಡೆನ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ನೀವು ಲಾಗ್ ಔಟ್ ಮತ್ತು ಬ್ಯಾಕ್ ಇನ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ಲಾಗ್ and ಟ್ ಮಾಡಲು ಮತ್ತು ಹಿಂತಿರುಗಲು ವಿಫಲವಾದರೆ (ಅದು ನಿಮ್ಮ ಹೊಸ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಕೀಲಿಯನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡುತ್ತದೆ) ಡೇಟಾ ಭ್ರಷ್ಟಾಚಾರಕ್ಕೆ ಕಾರಣವಾಗಬಹುದು. ನಾವು ನಿಮ್ಮನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಲಾಗ್ ಔಟ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತೇವೆ, ಆದಾಗ್ಯೂ, ಇದು ವಿಳಂಬವಾಗಬಹುದು." + }, + "updateEncryptionKeyExportWarning": { + "message": "ನೀವು ಉಳಿಸಿದ ಯಾವುದೇ ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಿದ ರಫ್ತು ಸಹ ಅಮಾನ್ಯವಾಗುತ್ತದೆ." + }, + "subscription": { + "message": "ಚಂದಾದಾರಿಕೆ" + }, + "loading": { + "message": "ಲೋಡ್‌ಆಗುತ್ತಿದೆ" + }, + "upgrade": { + "message": "ನವೀಕರಿಸಿ" + }, + "upgradeOrganization": { + "message": "ಸಂಘಟನೆಯನ್ನು ನವೀಕರಿಸಿ" + }, + "upgradeOrganizationDesc": { + "message": "ಉಚಿತ ಸಂಸ್ಥೆಗಳಿಗೆ ಈ ವೈಶಿಷ್ಟ್ಯವು ಲಭ್ಯವಿಲ್ಲ. ಹೆಚ್ಚಿನ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ಪಾವತಿಸಿದ ಯೋಜನೆಗೆ ಬದಲಿಸಿ." + }, + "createOrganizationStep1": { + "message": "ಸಂಘಟನೆಯನ್ನು ರಚಿಸಿ: ಹಂತ 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "ನಿಮ್ಮ ಸಂಸ್ಥೆಯನ್ನು ರಚಿಸುವ ಮೊದಲು, ನೀವು ಮೊದಲು ಉಚಿತ ವೈಯಕ್ತಿಕ ಖಾತೆಯನ್ನು ರಚಿಸಬೇಕಾಗಿದೆ." + }, + "refunded": { + "message": "ಮರುಪಾವತಿ ಮಾಡಲಾಗಿದೆ" + }, + "nothingSelected": { + "message": "ನೀವು ಯಾವುದನ್ನೂ ಆಯ್ಕೆ ಮಾಡಿಲ್ಲ." + }, + "acceptPolicies": { + "message": "ಈ ಪೆಟ್ಟಿಗೆಯನ್ನು ಪರಿಶೀಲಿಸುವ ಮೂಲಕ ನೀವು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಒಪ್ಪುತ್ತೀರಿ:" + }, + "acceptPoliciesError": { + "message": "ಸೇವಾ ನಿಯಮಗಳು ಮತ್ತು ಗೌಪ್ಯತೆ ನೀತಿಯನ್ನು ಅಂಗೀಕರಿಸಲಾಗಿಲ್ಲ." + }, + "termsOfService": { + "message": "ಸೇವಾ ನಿಯಮಗಳು" + }, + "privacyPolicy": { + "message": "ಗೌಪ್ಯತಾ ನೀತಿ" + }, + "filters": { + "message": "ಶೋಧಕಗಳು" + }, + "vaultTimeout": { + "message": "ವಾಲ್ಟ್ ಕಾಲಾವಧಿ" + }, + "vaultTimeoutDesc": { + "message": "ನಿಮ್ಮ ಕಮಾನು ಸಮಯ ಮೀರಲಿ ಮತ್ತು ಆಯ್ದ ಕ್ರಮವನ್ನು ನಿರ್ವಹಿಸುವಾಗ ಆರಿಸಿಕೊಳ್ಳಿ." + }, + "oneMinute": { + "message": "೧ ನಿಮಿಷ" + }, + "fiveMinutes": { + "message": "೫ ನಿಮಿಷಗಳು" + }, + "fifteenMinutes": { + "message": "೧೫ ನಿಮಿಷಗಳು" + }, + "thirtyMinutes": { + "message": "30 ನಿಮಿಷಗಳು" + }, + "oneHour": { + "message": "೧ ಗಂಟೆ" + }, + "fourHours": { + "message": "೪ ಗಂಟೆಗಳು" + }, + "onRefresh": { + "message": "ಬ್ರೌಸರ್ ರಿಫ್ರೆಶ್‌ನಲ್ಲಿ" + }, + "dateUpdated": { + "message": "ನವೀಕರಿಸಲಾಗಿದೆ", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "ಪಾಸ್ವರ್ಡ್ ನವೀಕರಿಸಲಾಗಿದೆ", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "ಸಂಘಟನೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ." + }, + "licenseIsExpired": { + "message": "ಪರವಾನಗಿ ಅವಧಿ ಮೀರಿದೆ." + }, + "updatedUsers": { + "message": "ನವೀಕರಿಸಿದ ಬಳಕೆದಾರರು" + }, + "selected": { + "message": "ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ" + }, + "ownership": { + "message": "ಮಾಲೀಕತ್ವ" + }, + "whoOwnsThisItem": { + "message": "ಈ ಐಟಂ ಅನ್ನು ಯಾರು ಹೊಂದಿದ್ದಾರೆ?" + }, + "strong": { + "message": "ಬಲಶಾಲಿ", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "ಒಳ್ಳೆಯ", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "ದುರ್ಬಲ", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "ಅತ್ಯಂತ ದುರ್ಬಲ", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "ದುರ್ಬಲ ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್" + }, + "weakMasterPasswordDesc": { + "message": "ನೀವು ಆಯ್ಕೆ ಮಾಡಿದ ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ದುರ್ಬಲವಾಗಿದೆ. ನಿಮ್ಮ ಬಿಟ್ವರ್ಡ್ ಖಾತೆಯನ್ನು ಸರಿಯಾಗಿ ರಕ್ಷಿಸಲು ನೀವು ಬಲವಾದ ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ (ಅಥವಾ ಪಾಸ್ಫ್ರೇಸ್) ಅನ್ನು ಬಳಸಬೇಕು. ಈ ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ನೀವು ಬಳಸಲು ಬಯಸುತ್ತೀರಾ?" + }, + "rotateAccountEncKey": { + "message": "ನನ್ನ ಖಾತೆಯ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಕೀಲಿಯನ್ನು ಸಹ ತಿರುಗಿಸಿ" + }, + "rotateEncKeyTitle": { + "message": "ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಕೀಲಿಯನ್ನು ತಿರುಗಿಸಿ" + }, + "rotateEncKeyConfirmation": { + "message": "ನಿಮ್ಮ ಖಾತೆಯ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಕೀಲಿಯನ್ನು ತಿರುಗಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?" + }, + "attachmentsNeedFix": { + "message": "ಈ ಐಟಂ ಹಳೆಯ ಫೈಲ್ ಲಗತ್ತುಗಳನ್ನು ಹೊಂದಿದ್ದು ಅದನ್ನು ಸರಿಪಡಿಸಬೇಕಾಗಿದೆ." + }, + "attachmentFixDesc": { + "message": "ಇದು ಸರಿಪಡಿಸಬೇಕಾದ ಹಳೆಯ ಫೈಲ್ ಲಗತ್ತು. ಇನ್ನಷ್ಟು ತಿಳಿಯಲು ಕ್ಲಿಕ್ ಮಾಡಿ." + }, + "fix": { + "message": "ಹೊಂದಿಸು", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "ನಿಮ್ಮ ವಾಲ್ಟ್‌ನಲ್ಲಿ ಹಳೆಯ ಫೈಲ್ ಲಗತ್ತುಗಳಿವೆ, ಅದನ್ನು ನಿಮ್ಮ ಖಾತೆಯ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಕೀಲಿಯನ್ನು ತಿರುಗಿಸುವ ಮೊದಲು ಸರಿಪಡಿಸಬೇಕಾಗಿದೆ." + }, + "yourAccountsFingerprint": { + "message": "ನಿಮ್ಮ ಖಾತೆಯ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ನುಡಿಗಟ್ಟು", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "ನಿಮ್ಮ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಕೀಗಳ ಸಮಗ್ರತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, ದಯವಿಟ್ಟು ಮುಂದುವರಿಯುವ ಮೊದಲು ಬಳಕೆದಾರರ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ನುಡಿಗಟ್ಟು ಪರಿಶೀಲಿಸಿ.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "ಫಿಂಗರ್ಪ್ರಿಂಟ್ ನುಡಿಗಟ್ಟು ಮತ್ತೆ ಪರಿಶೀಲಿಸಲು ಕೇಳಬೇಡಿ", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "ಉಚಿತ", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API ಕೀಲಿ" + }, + "apiKeyDesc": { + "message": "ನಿಮ್ಮ API ಕೀಲಿಯನ್ನು ಬಿಟ್‌ವಾರ್ಡೆನ್ ಸಾರ್ವಜನಿಕ API ಗೆ ದೃಢೀಕರಿಸಲು ಬಳಸಬಹುದು." + }, + "apiKeyRotateDesc": { + "message": "API ಕೀಲಿಯನ್ನು ತಿರುಗಿಸುವುದರಿಂದ ಹಿಂದಿನ ಕೀಲಿಯನ್ನು ಅಮಾನ್ಯಗೊಳಿಸುತ್ತದೆ. ಪ್ರಸ್ತುತ ಕೀಲಿಯು ಇನ್ನು ಮುಂದೆ ಸುರಕ್ಷಿತವಲ್ಲ ಎಂದು ನೀವು ಭಾವಿಸಿದರೆ ನಿಮ್ಮ API ಕೀಲಿಯನ್ನು ನೀವು ತಿರುಗಿಸಬಹುದು." + }, + "apiKeyWarning": { + "message": "ನಿಮ್ಮ API ಕೀ ಸಂಸ್ಥೆಗೆ ಪೂರ್ಣ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿದೆ. ಅದನ್ನು ರಹಸ್ಯವಾಗಿಡಬೇಕು." + }, + "userApiKeyDesc": { + "message": "ನಿಮ್ಮ API ಕೀಲಿಯನ್ನು ಬಿಟ್‌ವಾರ್ಡನ್ CLI ನಲ್ಲಿ ದೃಢೀಕರಿಸಲು ಬಳಸಬಹುದು." + }, + "userApiKeyWarning": { + "message": "ನಿಮ್ಮ API ಕೀ ಪರ್ಯಾಯ ದೃಢೀಕರಣ ಕಾರ್ಯವಿಧಾನವಾಗಿದೆ. ಅದನ್ನು ರಹಸ್ಯವಾಗಿಡಬೇಕು." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 ಕ್ಲೈಂಟ್ ರುಜುವಾತುಗಳು", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "API ಕೀಲಿಯನ್ನು ವೀಕ್ಷಿಸಿ" + }, + "rotateApiKey": { + "message": "API ಕೀಲಿಯನ್ನು ತಿರುಗಿಸಿ" + }, + "selectOneCollection": { + "message": "ನೀವು ಕನಿಷ್ಠ ಒಂದು ಸಂಗ್ರಹವನ್ನು ಆರಿಸಬೇಕು." + }, + "couldNotChargeCardPayInvoice": { + "message": "ನಿಮ್ಮ ಕಾರ್ಡ್ ಅನ್ನು ಚಾರ್ಜ್ ಮಾಡಲು ನಮಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ದಯವಿಟ್ಟು ಕೆಳಗೆ ಪಟ್ಟಿ ಮಾಡಲಾದ ಪಾವತಿಸದ ಸರಕುಪಟ್ಟಿ ವೀಕ್ಷಿಸಿ ಮತ್ತು ಪಾವತಿಸಿ." + }, + "inAppPurchase": { + "message": "ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ಖರೀದಿ" + }, + "cannotPerformInAppPurchase": { + "message": "ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ಖರೀದಿ ಪಾವತಿ ವಿಧಾನವನ್ನು ಬಳಸುವಾಗ ನೀವು ಈ ಕ್ರಿಯೆಯನ್ನು ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ." + }, + "manageSubscriptionFromStore": { + "message": "ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ಖರೀದಿಸಿದ ಅಂಗಡಿಯಿಂದ ನಿಮ್ಮ ಚಂದಾದಾರಿಕೆಯನ್ನು ನೀವು ನಿರ್ವಹಿಸಬೇಕು." + }, + "minLength": { + "message": "ಕನಿಷ್ಠ ಉದ್ದ" + }, + "clone": { + "message": "ಕ್ಲೋನ್" + }, + "masterPassPolicyDesc": { + "message": "ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಶಕ್ತಿಗಾಗಿ ಕನಿಷ್ಠ ಅವಶ್ಯಕತೆಗಳನ್ನು ಹೊಂದಿಸಿ." + }, + "twoStepLoginPolicyDesc": { + "message": "ಬಳಕೆದಾರರು ತಮ್ಮ ವೈಯಕ್ತಿಕ ಖಾತೆಗಳಲ್ಲಿ ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಅನ್ನು ಹೊಂದಿಸಲು ಅಗತ್ಯವಿದೆ." + }, + "twoStepLoginPolicyWarning": { + "message": "ಮಾಲೀಕರು ಅಥವಾ ನಿರ್ವಾಹಕರಲ್ಲದ ಮತ್ತು ಅವರ ವೈಯಕ್ತಿಕ ಖಾತೆಗಾಗಿ ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸದ ಸಂಸ್ಥೆಯ ಸದಸ್ಯರನ್ನು ಸಂಸ್ಥೆಯಿಂದ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ ಮತ್ತು ಬದಲಾವಣೆಯ ಬಗ್ಗೆ ಅವರಿಗೆ ತಿಳಿಸುವ ಇಮೇಲ್ ಅನ್ನು ಸ್ವೀಕರಿಸಲಾಗುತ್ತದೆ." + }, + "twoStepLoginPolicyUserWarning": { + "message": "ನಿಮ್ಮ ಬಳಕೆದಾರ ಖಾತೆಯಲ್ಲಿ ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಅಗತ್ಯವಿರುವ ಸಂಸ್ಥೆಯ ಸದಸ್ಯರಾಗಿದ್ದೀರಿ. ನೀವು ಎಲ್ಲಾ ಎರಡು-ಹಂತದ ಲಾಗಿನ್ ಪೂರೈಕೆದಾರರನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ ನಿಮ್ಮನ್ನು ಈ ಸಂಸ್ಥೆಗಳಿಂದ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ." + }, + "passwordGeneratorPolicyDesc": { + "message": "ಪಾಸ್ವರ್ಡ್ ಜನರೇಟರ್ ಕಾನ್ಫಿಗರೇಶನ್ಗಾಗಿ ಕನಿಷ್ಠ ಅವಶ್ಯಕತೆಗಳನ್ನು ಹೊಂದಿಸಿ." + }, + "passwordGeneratorPolicyInEffect": { + "message": "ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಸಂಸ್ಥೆ ನೀತಿಗಳು ನಿಮ್ಮ ಜನರೇಟರ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತವೆ." + }, + "masterPasswordPolicyInEffect": { + "message": "ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಸಂಸ್ಥೆ ನೀತಿಗಳಿಗೆ ಈ ಕೆಳಗಿನ ಅವಶ್ಯಕತೆಗಳನ್ನು ಪೂರೈಸಲು ನಿಮ್ಮ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಅಗತ್ಯವಿದೆ:" + }, + "policyInEffectMinComplexity": { + "message": "$SCORE$ ನ ಕನಿಷ್ಠ ಸಂಕೀರ್ಣತೆಯ ಸ್ಕೋರ್", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "$LENGTH$ನ ಕನಿಷ್ಠ ಉದ್ದ", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ದೊಡ್ಡಕ್ಷರಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ" + }, + "policyInEffectLowercase": { + "message": "ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಸಣ್ಣ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ" + }, + "policyInEffectNumbers": { + "message": "ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ" + }, + "policyInEffectSpecial": { + "message": "ಕೆಳಗಿನ ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ವಿಶೇಷ ಅಕ್ಷರಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ: $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "ನಿಮ್ಮ ಹೊಸ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ನೀತಿಯ ಅವಶ್ಯಕತೆಗಳನ್ನು ಪೂರೈಸುವುದಿಲ್ಲ." + }, + "minimumNumberOfWords": { + "message": "ಪದಗಳ ಕನಿಷ್ಠ ಸಂಖ್ಯೆ" + }, + "defaultType": { + "message": "ಡೀಫಾಲ್ಟ್ ಪ್ರಕಾರ" + }, + "userPreference": { + "message": "ಬಳಕೆದಾರರ ಆದ್ಯತೆ" + }, + "vaultTimeoutAction": { + "message": "ವಾಲ್ಟ್ ಸಮಯ ಮೀರುವ ಕ್ರಿಯೆ" + }, + "vaultTimeoutActionLockDesc": { + "message": "ಲಾಕ್ ಮಾಡಿದ ವಾಲ್ಟ್‌ಗೆ ನಿಮ್ಮ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮತ್ತೆ ಪ್ರವೇಶಿಸಲು ನೀವು ಅದನ್ನು ಮರು ನಮೂದಿಸುವ ಅಗತ್ಯವಿದೆ." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "ಲಾಗ್ out ಟ್ ವಾಲ್ಟ್‌ಗೆ ನೀವು ಅದನ್ನು ಮತ್ತೆ ಪ್ರವೇಶಿಸಲು ಮರು ದೃಢೀಕರಿಸುವ ಅಗತ್ಯವಿದೆ." + }, + "lock": { + "message": "ಲಾಕ್‌", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "ಅನುಪಯುಕ್ತ", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "ಅನುಪಯುಕ್ತವನ್ನು ಹುಡುಕಿ" + }, + "permanentlyDelete": { + "message": "ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಿ" + }, + "permanentlyDeleteSelected": { + "message": "ಆಯ್ದವನ್ನು ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಿ" + }, + "permanentlyDeleteItem": { + "message": "ಐಟಂ ಅನ್ನು ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಿ" + }, + "permanentlyDeleteItemConfirmation": { + "message": "ಈ ಐಟಂ ಅನ್ನು ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?" + }, + "permanentlyDeletedItem": { + "message": "ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಲಾದ ಐಟಂ" + }, + "permanentlyDeletedItems": { + "message": "ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಲಾದ ವಸ್ತುಗಳು" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಲು ನೀವು $COUNT$ ಐಟಂ (ಗಳನ್ನು) ಆಯ್ಕೆ ಮಾಡಿದ್ದೀರಿ. ಈ ಎಲ್ಲಾ ವಸ್ತುಗಳನ್ನು ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಲಾದ ಐಟಂ $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "ಪುನಸ್ಥಾಪಿಸಿ" + }, + "restoreSelected": { + "message": "ಆಯ್ಕೆಮಾಡಿ ಮರುಸ್ಥಾಪಿಸಿ" + }, + "restoreItem": { + "message": "ಐಟಂ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಿ" + }, + "restoredItem": { + "message": "ಐಟಂ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಲಾಗಿದೆ" + }, + "restoredItems": { + "message": "ವಸ್ತುಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಲಾಗಿದೆ" + }, + "restoreItemConfirmation": { + "message": "ಈ ಐಟಂ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?" + }, + "restoreItems": { + "message": "ವಸ್ತುಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಿ" + }, + "restoreSelectedItemsDesc": { + "message": "ಪುನಃಸ್ಥಾಪಿಸಲು ನೀವು $COUNT$ ಐಟಂ (ಗಳನ್ನು) ಆಯ್ಕೆ ಮಾಡಿದ್ದೀರಿ. ಈ ಎಲ್ಲಾ ವಸ್ತುಗಳನ್ನು ಪುನಃಸ್ಥಾಪಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "ಐಟಂ $ID$ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಲಾಗಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "ಲಾಗ್ ಔಟ್ ಆಗುವುದರಿಂದ ನಿಮ್ಮ ವಾಲ್ಟ್‌ನ ಎಲ್ಲಾ ಪ್ರವೇಶವನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ ಮತ್ತು ಕಾಲಾವಧಿ ಅವಧಿಯ ನಂತರ ಆನ್‌ಲೈನ್ ದೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ. ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬಳಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "ಕಾಲಾವಧಿ ಕ್ರಿಯೆಯ ದೃಢೀಕರಣ" + }, + "hidePasswords": { + "message": "ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ಮರೆಮಾಡಿ" + }, + "countryPostalCodeRequiredDesc": { + "message": "ಮಾರಾಟ ತೆರಿಗೆ ಮತ್ತು ಹಣಕಾಸು ವರದಿಯನ್ನು ಮಾತ್ರ ಲೆಕ್ಕಹಾಕಲು ನಮಗೆ ಈ ಮಾಹಿತಿಯ ಅಗತ್ಯವಿದೆ." + }, + "includeVAT": { + "message": "ವ್ಯಾಟ್ / ಜಿಎಸ್ಟಿ ಮಾಹಿತಿಯನ್ನು ಸೇರಿಸಿ (ಐಚ್ಛಿಕ)" + }, + "taxIdNumber": { + "message": "ವ್ಯಾಟ್ / ಜಿಎಸ್ಟಿ ತೆರಿಗೆ ಐಡಿ" + }, + "taxInfoUpdated": { + "message": "ತೆರಿಗೆ ಮಾಹಿತಿಯನ್ನು ನವೀಕರಿಸಲಾಗಿದೆ." + }, + "setMasterPassword": { + "message": "ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ಹೊಂದಿಸಿ" + }, + "ssoCompleteRegistration": { + "message": "ಎಸ್‌ಎಸ್‌ಒನೊಂದಿಗೆ ಲಾಗಿನ್ ಆಗುವುದನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು, ದಯವಿಟ್ಟು ನಿಮ್ಮ ವಾಲ್ಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ಮತ್ತು ರಕ್ಷಿಸಲು ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಹೊಂದಿಸಿ." + }, + "identifier": { + "message": "ಗುರುತಿಸುವಿಕೆ" + }, + "organizationIdentifier": { + "message": "ಸಂಸ್ಥೆ ಗುರುತಿಸುವಿಕೆ" + }, + "ssoLogInWithOrgIdentifier": { + "message": "ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಏಕ ಸೈನ್-ಆನ್ ಪೋರ್ಟಲ್ ಬಳಸಿ ಲಾಗ್ ಇನ್ ಮಾಡಿ. ಪ್ರಾರಂಭಿಸಲು ದಯವಿಟ್ಟು ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಗುರುತಿಸುವಿಕೆಯನ್ನು ನಮೂದಿಸಿ." + }, + "enterpriseSingleSignOn": { + "message": "ಎಂಟರ್‌ಪ್ರೈಸ್ ಏಕ ಸೈನ್-ಆನ್" + }, + "ssoHandOff": { + "message": "ನೀವು ಈಗ ಈ ಟ್ಯಾಬ್ ಅನ್ನು ಮುಚ್ಚಬಹುದು ಮತ್ತು ವಿಸ್ತರಣೆಯಲ್ಲಿ ಮುಂದುವರಿಯಬಹುದು." + }, + "includeAllTeamsFeatures": { + "message": "ಎಲ್ಲಾ ತಂಡಗಳ ವೈಶಿಷ್ಟ್ಯಗಳು, ಜೊತೆಗೆ:" + }, + "includeSsoAuthentication": { + "message": "SAML2.0 ಮತ್ತು OpenID Connect ಮೂಲಕ SSO ದೃಢೀಕರಣ" + }, + "includeEnterprisePolicies": { + "message": "ಎಂಟರ್‌ಪ್ರೈಸ್ ನೀತಿಗಳು" + }, + "ssoValidationFailed": { + "message": "ಎಸ್‌ಎಸ್‌ಒ ಕ್ರಮಬದ್ಧಗೊಳಿಸುವಿಕೆ ವಿಫಲವಾಗಿದೆ" + }, + "ssoIdentifierRequired": { + "message": "ಸಂಸ್ಥೆ ಗುರುತಿಸುವಿಕೆ ಅಗತ್ಯವಿದೆ." + }, + "unlinkSso": { + "message": "ಎಸ್‌ಎಸ್‌ಒ ಅನ್ಲಿಂಕ್ ಮಾಡಿ" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "ಎಸ್‌ಎಸ್‌ಒ ಲಿಂಕ್ ಮಾಡಿ" + }, + "singleOrg": { + "message": "ಏಕ ಸಂಸ್ಥೆ" + }, + "singleOrgDesc": { + "message": "ಬಳಕೆದಾರರು ಬೇರೆ ಯಾವುದೇ ಸಂಸ್ಥೆಗಳಿಗೆ ಸೇರಲು ಸಾಧ್ಯವಾಗದಂತೆ ನಿರ್ಬಂಧಿಸಿ." + }, + "singleOrgBlockCreateMessage": { + "message": "ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಸಂಸ್ಥೆಯು ಒಂದು ನೀತಿಯನ್ನು ಹೊಂದಿದ್ದು ಅದು ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಂಸ್ಥೆಗಳಿಗೆ ಸೇರಲು ನಿಮಗೆ ಅನುಮತಿಸುವುದಿಲ್ಲ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ ಅಥವಾ ಬೇರೆ ಬಿಟ್‌ವಾರ್ಡನ್ ಖಾತೆಯಿಂದ ಸೈನ್ ಅಪ್ ಮಾಡಿ." + }, + "singleOrgPolicyWarning": { + "message": "ಮಾಲೀಕರು ಅಥವಾ ನಿರ್ವಾಹಕರಲ್ಲದ ಮತ್ತು ಈಗಾಗಲೇ ಮತ್ತೊಂದು ಸಂಸ್ಥೆಯ ಸದಸ್ಯರಾಗಿರುವ ಸಂಸ್ಥೆಯ ಸದಸ್ಯರನ್ನು ನಿಮ್ಮ ಸಂಸ್ಥೆಯಿಂದ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ." + }, + "requireSso": { + "message": "ಏಕ ಸೈನ್-ಆನ್ ದೃಢೀಕರಣ" + }, + "requireSsoPolicyDesc": { + "message": "ಎಂಟರ್ಪ್ರೈಸ್ ಸಿಂಗಲ್ ಸೈನ್-ಆನ್ ವಿಧಾನದೊಂದಿಗೆ ಬಳಕೆದಾರರು ಲಾಗ್ ಇನ್ ಆಗಬೇಕು." + }, + "prerequisite": { + "message": "ಪೂರ್ವಾಪೇಕ್ಷಿತ" + }, + "requireSsoPolicyReq": { + "message": "ಈ ನೀತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೊದಲು ಏಕ ಸಂಸ್ಥೆ ಉದ್ಯಮ ನೀತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕು." + }, + "requireSsoPolicyReqError": { + "message": "ಏಕ ಸಂಸ್ಥೆ ನೀತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿಲ್ಲ." + }, + "requireSsoExemption": { + "message": "ಸಂಸ್ಥೆಯ ಮಾಲೀಕರು ಮತ್ತು ನಿರ್ವಾಹಕರು ಈ ನೀತಿಯ ಜಾರಿಯಿಂದ ವಿನಾಯಿತಿ ಪಡೆದಿದ್ದಾರೆ." + }, + "sendTypeFile": { + "message": "ಫೈಲ್" + }, + "sendTypeText": { + "message": "ಪಠ್ಯ" + }, + "createSend": { + "message": "ಹೊಸ ಕಳುಹಿಸುವಿಕೆಯನ್ನು ರಚಿಸಿ", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "ಕಳುಹಿಸು ತಿದ್ದು", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "ಕಳುಹಿಸು ರಚಿಸಲಾಗಿದೆ", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "ಕಳುಹಿಸಿದ ಸಂಪಾದನೆ", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "ಅಳಿಸಿದ ಕಳುಹಿಸಲಾಗಿದೆ", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "ಅಳಿಸಿ ಕಳುಹಿಸಿ", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "ಈ ಕಳುಹಿಸುವಿಕೆಯನ್ನು ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "ಇದು ಯಾವ ರೀತಿಯ ಕಳುಹಿಸುತ್ತದೆ?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "ಅಳಿಸುವ ದಿನಾಂಕ" + }, + "deletionDateDesc": { + "message": "ಕಳುಹಿಸಿದ ದಿನಾಂಕ ಮತ್ತು ಸಮಯದ ಮೇಲೆ ಕಳುಹಿಸುವಿಕೆಯನ್ನು ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಲಾಗುತ್ತದೆ.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "ಮುಕ್ತಾಯ ದಿನಾಂಕ" + }, + "expirationDateDesc": { + "message": "ಹೊಂದಿಸಿದ್ದರೆ, ಈ ಕಳುಹಿಸುವಿಕೆಯ ಪ್ರವೇಶವು ನಿಗದಿತ ದಿನಾಂಕ ಮತ್ತು ಸಮಯದ ಮೇಲೆ ಮುಕ್ತಾಯಗೊಳ್ಳುತ್ತದೆ.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "ಗರಿಷ್ಠ ಪ್ರವೇಶ ಎಣಿಕೆ" + }, + "maxAccessCountDesc": { + "message": "ಹೊಂದಿಸಿದ್ದರೆ, ಗರಿಷ್ಠ ಪ್ರವೇಶ ಎಣಿಕೆ ತಲುಪಿದ ನಂತರ ಬಳಕೆದಾರರಿಗೆ ಈ ಕಳುಹಿಸುವಿಕೆಯನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "ಪ್ರಸ್ತುತ ಪ್ರವೇಶ ಎಣಿಕೆ" + }, + "sendPasswordDesc": { + "message": "ಈ ಕಳುಹಿಸುವಿಕೆಯನ್ನು ಪ್ರವೇಶಿಸಲು ಬಳಕೆದಾರರಿಗೆ ಪಾಸ್‌ವರ್ಡ್ ಐಚ್ ಗತ್ಯವಿದೆ.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "ಈ ಕಳುಹಿಸುವ ಬಗ್ಗೆ ಖಾಸಗಿ ಟಿಪ್ಪಣಿಗಳು.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ" + }, + "sendLink": { + "message": "ಲಿಂಕ್ ಕಳುಹಿಸಿ", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "ಲಿಂಕ್ ಕಳುಹಿಸಿ", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "ಪಾಸ್ವರ್ಡ್ ತೆಗೆದುಹಾಕಿ" + }, + "removedPassword": { + "message": "ಪಾಸ್ವರ್ಡ್ ತೆಗೆದುಹಾಕಲಾಗಿದೆ" + }, + "removePasswordConfirmation": { + "message": "ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?" + }, + "hideEmail": { + "message": "ಸ್ವೀಕರಿಸುವವರಿಂದ ನನ್ನ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಮರೆಮಾಡಿ." + }, + "disableThisSend": { + "message": "ಇದನ್ನು ಕಳುಹಿಸುವುದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ ಇದರಿಂದ ಯಾರೂ ಅದನ್ನು ಪ್ರವೇಶಿಸಲಾಗುವುದಿಲ್ಲ.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "ಎಲ್ಲಾ ಕಳುಹಿಸುತ್ತದೆ" + }, + "maxAccessCountReached": { + "message": "ಗರಿಷ್ಠ ಪ್ರವೇಶ ಎಣಿಕೆ ತಲುಪಿದೆ", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "ಅಳಿಸುವಿಕೆ ಬಾಕಿ ಉಳಿದಿದೆ" + }, + "expired": { + "message": "ಅವಧಿ ಮೀರಿದೆ" + }, + "searchSends": { + "message": "ಹುಡುಕಾಟ ಕಳುಹಿಸುತ್ತದೆ", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "ಈ ಕಳುಹಿಸುವಿಕೆಯನ್ನು ಪಾಸ್‌ವರ್ಡ್‌ನೊಂದಿಗೆ ರಕ್ಷಿಸಲಾಗಿದೆ. ಮುಂದುವರಿಸಲು ದಯವಿಟ್ಟು ಕೆಳಗಿನ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಟೈಪ್ ಮಾಡಿ.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "ಪಾಸ್ವರ್ಡ್ ತಿಳಿದಿಲ್ಲವೇ? ಈ ಕಳುಹಿಸುವಿಕೆಯನ್ನು ಪ್ರವೇಶಿಸಲು ಅಗತ್ಯವಿರುವ ಪಾಸ್‌ವರ್ಡ್‌ಗಾಗಿ ಕಳುಹಿಸುವವರನ್ನು ಕೇಳಿ.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "ಈ ಕಳುಹಿಸುವಿಕೆಯನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಮರೆಮಾಡಲಾಗಿದೆ. ಕೆಳಗಿನ ಬಟನ್ ಬಳಸಿ ನೀವು ಅದರ ಗೋಚರತೆಯನ್ನು ಟಾಗಲ್ ಮಾಡಬಹುದು.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "ಫೈಲ್ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ" + }, + "sendAccessUnavailable": { + "message": "ನೀವು ಪ್ರವೇಶಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರುವ ಕಳುಹಿಸುವಿಕೆಯು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ ಅಥವಾ ಇನ್ನು ಮುಂದೆ ಲಭ್ಯವಿಲ್ಲ.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "ಈ ಕಳುಹಿಸುವಿಕೆಗೆ ಸಂಬಂಧಿಸಿದ ಫೈಲ್ ಅನ್ನು ಕಂಡುಹಿಡಿಯಲಾಗಲಿಲ್ಲ.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "ಪಟ್ಟಿ ಮಾಡಲು ಕಳುಹಿಸುವುದಿಲ್ಲ.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "ತುರ್ತು ಪ್ರವೇಶ" + }, + "emergencyAccessDesc": { + "message": "ವಿಶ್ವಾಸಾರ್ಹ ಸಂಪರ್ಕಗಳಿಗಾಗಿ ತುರ್ತು ಪ್ರವೇಶವನ್ನು ನೀಡಿ ಮತ್ತು ನಿರ್ವಹಿಸಿ. ವಿಶ್ವಾಸಾರ್ಹ ಸಂಪರ್ಕಗಳು ತುರ್ತು ಸಂದರ್ಭದಲ್ಲಿ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ವೀಕ್ಷಿಸಲು ಅಥವಾ ಸ್ವಾಧೀನಪಡಿಸಿಕೊಳ್ಳಲು ಪ್ರವೇಶವನ್ನು ಕೋರಬಹುದು. ಶೂನ್ಯ ಜ್ಞಾನ ಹಂಚಿಕೆ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದರ ಕುರಿತು ಹೆಚ್ಚಿನ ಮಾಹಿತಿ ಮತ್ತು ವಿವರಗಳಿಗಾಗಿ ನಮ್ಮ ಸಹಾಯ ಪುಟಕ್ಕೆ ಭೇಟಿ ನೀಡಿ." + }, + "emergencyAccessOwnerWarning": { + "message": "ನೀವು ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಸಂಸ್ಥೆಗಳ ಮಾಲೀಕರು. ತುರ್ತು ಸಂಪರ್ಕಕ್ಕೆ ನೀವು ಸ್ವಾಧೀನದ ಪ್ರವೇಶವನ್ನು ನೀಡಿದರೆ, ಸ್ವಾಧೀನದ ನಂತರ ಅವರು ನಿಮ್ಮ ಎಲ್ಲ ಅನುಮತಿಗಳನ್ನು ಮಾಲೀಕರಾಗಿ ಬಳಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ." + }, + "trustedEmergencyContacts": { + "message": "ವಿಶ್ವಾಸಾರ್ಹ ತುರ್ತು ಸಂಪರ್ಕಗಳು" + }, + "noTrustedContacts": { + "message": "ನೀವು ಇನ್ನೂ ಯಾವುದೇ ತುರ್ತು ಸಂಪರ್ಕಗಳನ್ನು ಸೇರಿಸಿಲ್ಲ, ಪ್ರಾರಂಭಿಸಲು ವಿಶ್ವಾಸಾರ್ಹ ಸಂಪರ್ಕವನ್ನು ಆಹ್ವಾನಿಸಿ." + }, + "addEmergencyContact": { + "message": "ತುರ್ತು ಸಂಪರ್ಕವನ್ನು ಸೇರಿಸಿ" + }, + "designatedEmergencyContacts": { + "message": "ತುರ್ತು ಸಂಪರ್ಕ ಎಂದು ಗೊತ್ತುಪಡಿಸಲಾಗಿದೆ" + }, + "noGrantedAccess": { + "message": "ನಿಮ್ಮನ್ನು ಇನ್ನೂ ಯಾರಿಗೂ ತುರ್ತು ಸಂಪರ್ಕವಾಗಿ ನೇಮಿಸಲಾಗಿಲ್ಲ." + }, + "inviteEmergencyContact": { + "message": "ತುರ್ತು ಸಂಪರ್ಕವನ್ನು ಆಹ್ವಾನಿಸಿ" + }, + "editEmergencyContact": { + "message": "ತುರ್ತು ಸಂಪರ್ಕವನ್ನು ಸಂಪಾದಿಸಿ" + }, + "inviteEmergencyContactDesc": { + "message": "ಅವರ ಬಿಟ್‌ವಾರ್ಡನ್ ಖಾತೆ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಕೆಳಗೆ ನಮೂದಿಸುವ ಮೂಲಕ ಹೊಸ ತುರ್ತು ಸಂಪರ್ಕವನ್ನು ಆಹ್ವಾನಿಸಿ. ಅವರು ಈಗಾಗಲೇ ಬಿಟ್‌ವಾರ್ಡನ್ ಖಾತೆಯನ್ನು ಹೊಂದಿಲ್ಲದಿದ್ದರೆ, ಹೊಸ ಖಾತೆಯನ್ನು ರಚಿಸಲು ಅವರನ್ನು ಕೇಳಲಾಗುತ್ತದೆ." + }, + "emergencyAccessRecoveryInitiated": { + "message": "ತುರ್ತು ಪ್ರವೇಶ ಪ್ರಾರಂಭಿಸಲಾಗಿದೆ" + }, + "emergencyAccessRecoveryApproved": { + "message": "ತುರ್ತು ಪ್ರವೇಶ ಅನುಮೋದಿಸಲಾಗಿದೆ" + }, + "viewDesc": { + "message": "ನಿಮ್ಮ ಸ್ವಂತ ವಾಲ್ಟ್ನಲ್ಲಿ ಎಲ್ಲಾ ವಸ್ತುಗಳನ್ನು ವೀಕ್ಷಿಸಬಹುದು." + }, + "takeover": { + "message": "ಸ್ವಾಧೀನ" + }, + "takeoverDesc": { + "message": "ಹೊಸ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್‌ನೊಂದಿಗೆ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಮರುಹೊಂದಿಸಬಹುದು." + }, + "waitTime": { + "message": "ಸಮಯ ಕಾಯಿರಿ" + }, + "waitTimeDesc": { + "message": "ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪ್ರವೇಶವನ್ನು ನೀಡುವ ಮೊದಲು ಸಮಯ ಬೇಕಾಗುತ್ತದೆ." + }, + "oneDay": { + "message": "1 ದಿನ" + }, + "days": { + "message": "$DAYS$ ದಿನಗಳು", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "ಆಹ್ವಾನಿತ ಬಳಕೆದಾರ." + }, + "acceptEmergencyAccess": { + "message": "ಮೇಲೆ ಪಟ್ಟಿ ಮಾಡಲಾದ ಬಳಕೆದಾರರಿಗೆ ತುರ್ತು ಸಂಪರ್ಕವಾಗಲು ನಿಮ್ಮನ್ನು ಆಹ್ವಾನಿಸಲಾಗಿದೆ. ಆಹ್ವಾನವನ್ನು ಸ್ವೀಕರಿಸಲು, ನೀವು ಲಾಗ್ ಇನ್ ಆಗಬೇಕು ಅಥವಾ ಹೊಸ ಬಿಟ್‌ವಾರ್ಡನ್ ಖಾತೆಯನ್ನು ರಚಿಸಬೇಕು." + }, + "emergencyInviteAcceptFailed": { + "message": "ಆಹ್ವಾನವನ್ನು ಸ್ವೀಕರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಹೊಸ ಆಹ್ವಾನವನ್ನು ಕಳುಹಿಸಲು ಬಳಕೆದಾರರನ್ನು ಕೇಳಿ." + }, + "emergencyInviteAcceptFailedShort": { + "message": "ಆಹ್ವಾನವನ್ನು ಸ್ವೀಕರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "ನಿಮ್ಮ ಗುರುತನ್ನು ದೃಢಪಡಿಸಿದ ನಂತರ ನೀವು ಈ ಬಳಕೆದಾರರಿಗಾಗಿ ತುರ್ತು ಆಯ್ಕೆಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು. ಅದು ಸಂಭವಿಸಿದಾಗ ನಾವು ನಿಮಗೆ ಇಮೇಲ್ ಕಳುಹಿಸುತ್ತೇವೆ." + }, + "requestAccess": { + "message": "ಪ್ರವೇಶವನ್ನು ವಿನಂತಿಸಿ" + }, + "requestAccessConfirmation": { + "message": "ತುರ್ತು ಪ್ರವೇಶವನ್ನು ಕೋರಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ? $WAITTIME$ ದಿನ (ಗಳ) ನಂತರ ಅಥವಾ ಬಳಕೆದಾರರು ವಿನಂತಿಯನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಅನುಮೋದಿಸಿದಾಗಲೆಲ್ಲಾ ನಿಮಗೆ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸಲಾಗುತ್ತದೆ.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "ತುರ್ತು ಪ್ರವೇಶವನ್ನು $USER$ ಗೆ ವಿನಂತಿಸಲಾಗಿದೆ. ಮುಂದುವರಿಯಲು ಸಾಧ್ಯವಾದಾಗ ನಾವು ನಿಮಗೆ ಇಮೇಲ್ ಮೂಲಕ ತಿಳಿಸುತ್ತೇವೆ.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "ಅನುಮೋದಿಸಿದೆ" + }, + "reject": { + "message": "ತಿರಸ್ಕರಿಸು" + }, + "approveAccessConfirmation": { + "message": "ತುರ್ತು ಪ್ರವೇಶವನ್ನು ಅನುಮೋದಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ? ಇದು ನಿಮ್ಮ ಖಾತೆಗೆ $USER$ ಗೆ $ACTION$ ಗೆ ಅನುಮತಿಸುತ್ತದೆ.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "ತುರ್ತು ಪ್ರವೇಶ ಅನುಮೋದಿಸಲಾಗಿದೆ." + }, + "emergencyRejected": { + "message": "ತುರ್ತು ಪ್ರವೇಶವನ್ನು ತಿರಸ್ಕರಿಸಲಾಗಿದೆ" + }, + "passwordResetFor": { + "message": "$USER$ ಗೆ ಪಾಸ್‌ವರ್ಡ್ ಮರುಹೊಂದಿಸಿ. ನೀವು ಈಗ ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ಬಳಸಿ ಲಾಗಿನ್ ಮಾಡಬಹುದು.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "ವೈಯಕ್ತಿಕ ಮಾಲೀಕತ್ವ" + }, + "personalOwnershipPolicyDesc": { + "message": "ವೈಯಕ್ತಿಕ ಮಾಲೀಕತ್ವದ ಆಯ್ಕೆಯನ್ನು ತೆಗೆದುಹಾಕುವ ಮೂಲಕ ಬಳಕೆದಾರರಿಗೆ ವಾಲ್ಟ್ ವಸ್ತುಗಳನ್ನು ಸಂಸ್ಥೆಗೆ ಉಳಿಸಲು ಅಗತ್ಯವಿದೆ." + }, + "personalOwnershipExemption": { + "message": "ಸಂಸ್ಥೆಯ ಮಾಲೀಕರು ಮತ್ತು ನಿರ್ವಾಹಕರು ಈ ನೀತಿಯ ಜಾರಿಯಿಂದ ವಿನಾಯಿತಿ ಪಡೆದಿದ್ದಾರೆ." + }, + "personalOwnershipSubmitError": { + "message": "ಎಂಟರ್‌ಪ್ರೈಸ್ ನೀತಿಯಿಂದಾಗಿ, ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ವಾಲ್ಟ್‌ಗೆ ವಸ್ತುಗಳನ್ನು ಉಳಿಸುವುದರಿಂದ ನಿಮ್ಮನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ. ಮಾಲೀಕತ್ವದ ಆಯ್ಕೆಯನ್ನು ಸಂಸ್ಥೆಗೆ ಬದಲಾಯಿಸಿ ಮತ್ತು ಲಭ್ಯವಿರುವ ಸಂಗ್ರಹಗಳಿಂದ ಆರಿಸಿಕೊಳ್ಳಿ." + }, + "disableSend": { + "message": "ಕಳುಹಿಸುವುದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ" + }, + "disableSendPolicyDesc": { + "message": "ಬಿಟ್‌ವಾರ್ಡೆನ್ ಕಳುಹಿಸುವಿಕೆಯನ್ನು ರಚಿಸಲು ಅಥವಾ ಸಂಪಾದಿಸಲು ಬಳಕೆದಾರರನ್ನು ಅನುಮತಿಸಬೇಡಿ. ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕಳುಹಿಸುವಿಕೆಯನ್ನು ಅಳಿಸಲು ಇನ್ನೂ ಅನುಮತಿಸಲಾಗಿದೆ.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "ಸಂಸ್ಥೆಯ ನೀತಿಗಳನ್ನು ನಿರ್ವಹಿಸಬಲ್ಲ ಸಂಸ್ಥೆ ಬಳಕೆದಾರರಿಗೆ ಈ ನೀತಿಯ ಜಾರಿಯಿಂದ ವಿನಾಯಿತಿ ಇದೆ." + }, + "sendDisabled": { + "message": "ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಕಳುಹಿಸಿ", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "ಎಂಟರ್‌ಪ್ರೈಸ್ ನೀತಿಯಿಂದಾಗಿ, ನೀವು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕಳುಹಿಸುವಿಕೆಯನ್ನು ಮಾತ್ರ ಅಳಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "ಆಯ್ಕೆಗಳನ್ನು ಕಳುಹಿಸಿ", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "ಕಳುಹಿಸುವಿಕೆಯನ್ನು ರಚಿಸಲು ಮತ್ತು ಸಂಪಾದಿಸಲು ಆಯ್ಕೆಗಳನ್ನು ಹೊಂದಿಸಿ.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "ಸಂಸ್ಥೆಯ ನೀತಿಗಳನ್ನು ನಿರ್ವಹಿಸಬಲ್ಲ ಸಂಸ್ಥೆ ಬಳಕೆದಾರರಿಗೆ ಈ ನೀತಿಯ ಜಾರಿಯಿಂದ ವಿನಾಯಿತಿ ಇದೆ." + }, + "disableHideEmail": { + "message": "ಕಳುಹಿಸುವಿಕೆಯನ್ನು ರಚಿಸುವಾಗ ಅಥವಾ ಸಂಪಾದಿಸುವಾಗ ಬಳಕೆದಾರರು ತಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಸ್ವೀಕರಿಸುವವರಿಂದ ಮರೆಮಾಡಲು ಅನುಮತಿಸಬೇಡಿ.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "ಕೆಳಗಿನ ಸಂಸ್ಥೆಯ ನೀತಿಗಳು ಪ್ರಸ್ತುತ ಜಾರಿಯಲ್ಲಿವೆ:" + }, + "sendDisableHideEmailInEffect": { + "message": "ಕಳುಹಿಸುವಿಕೆಯನ್ನು ರಚಿಸುವಾಗ ಅಥವಾ ಸಂಪಾದಿಸುವಾಗ ಬಳಕೆದಾರರು ತಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಸ್ವೀಕರಿಸುವವರಿಂದ ಮರೆಮಾಡಲು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "ಮಾರ್ಪಡಿಸಿದ ನೀತಿ $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "ಯೋಜನೆ ಬೆಲೆ" + }, + "estimatedTax": { + "message": "ಅಂದಾಜು ತೆರಿಗೆ" + }, + "custom": { + "message": "ಕಸ್ಟಮ್" + }, + "customDesc": { + "message": "ಸುಧಾರಿತ ಸಂರಚನೆಗಳಿಗಾಗಿ ಬಳಕೆದಾರರ ಅನುಮತಿಗಳ ಹೆಚ್ಚಿನ ಹರಳಿನ ನಿಯಂತ್ರಣವನ್ನು ಅನುಮತಿಸುತ್ತದೆ." + }, + "permissions": { + "message": "ಅನುಮತಿಗಳು" + }, + "accessEventLogs": { + "message": "ಈವೆಂಟ್ ಲಾಗ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಿ" + }, + "accessImportExport": { + "message": "ಆಮದು / ರಫ್ತು ಪ್ರವೇಶಿಸಿ" + }, + "accessReports": { + "message": "ಪ್ರವೇಶ ವರದಿಗಳು" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "ಎಲ್ಲಾ ಸಂಗ್ರಹಗಳನ್ನು ನಿರ್ವಹಿಸಿ" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "ನಿಯೋಜಿಸಲಾದ ಸಂಗ್ರಹಗಳನ್ನು ನಿರ್ವಹಿಸಿ" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "ಗುಂಪುಗಳನ್ನು ನಿರ್ವಹಿಸಿ" + }, + "managePolicies": { + "message": "ನೀತಿಗಳನ್ನು ನಿರ್ವಹಿಸಿ" + }, + "manageSso": { + "message": "SSO ಅನ್ನು ನಿರ್ವಹಿಸಿ" + }, + "manageUsers": { + "message": "ಬಳಕೆದಾರರನ್ನು ನಿರ್ವಹಿಸಿ" + }, + "manageResetPassword": { + "message": "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಕೆಯನ್ನು ನಿರ್ವಹಿಸಿ" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "ಸಂಸ್ಥೆಯ ನೀತಿಯು ನಿಮ್ಮ ಮಾಲೀಕತ್ವದ ಆಯ್ಕೆಗಳ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತಿದೆ." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "ಸಂಸ್ಥೆ ಬಳಕೆದಾರರಿಗಾಗಿ ವೈಯಕ್ತಿಕ ಮಾಲೀಕತ್ವವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ" + }, + "textHiddenByDefault": { + "message": "ಕಳುಹಿಸುವಿಕೆಯನ್ನು ಪ್ರವೇಶಿಸುವಾಗ, ಪಠ್ಯವನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಮರೆಮಾಡಿ", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "ಇದನ್ನು ಕಳುಹಿಸಲು ವಿವರಿಸಲು ಸ್ನೇಹಪರ ಹೆಸರು.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "ನೀವು ಕಳುಹಿಸಲು ಬಯಸುವ ಪಠ್ಯ." + }, + "sendFileDesc": { + "message": "ನೀವು ಕಳುಹಿಸಲು ಬಯಸುವ ಫೈಲ್." + }, + "copySendLinkOnSave": { + "message": "ಇದನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಲಿಂಕ್ ಅನ್ನು ನಕಲಿಸಿ ಉಳಿಸಿದ ನಂತರ ನನ್ನ ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ಕಳುಹಿಸಿ." + }, + "sendLinkLabel": { + "message": "ಲಿಂಕ್ ಕಳುಹಿಸಿ", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "ಕಳುಹಿಸಿ", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "ಬಿಟ್ವಾರ್ಡೆನ್ ಕಳುಹಿಸಿ ಸೂಕ್ಷ್ಮ ಮತ್ತು ತಾತ್ಕಾಲಿಕ ಮಾಹಿತಿಯನ್ನು ಇತರರಿಗೆ ಸುಲಭವಾಗಿ ಮತ್ತು ಸುರಕ್ಷಿತವಾಗಿ ರವಾನಿಸುತ್ತದೆ.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "ಪಠ್ಯ ಅಥವಾ ಫೈಲ್‌ಗಳನ್ನು ಯಾರೊಂದಿಗೂ ನೇರವಾಗಿ ಹಂಚಿಕೊಳ್ಳಿ." + }, + "sendVaultCardLearnMore": { + "message": "ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "ನೋಡಿ", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "ಅಥವ", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "ಅದನ್ನೀಗ ಪ್ರಯತ್ನಿಸಿ", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "ಅಥವ", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "ಸೈನ್ ಅಪ್ ಮಾಡಿ", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "ಇಂದು ಅದನ್ನು ಪ್ರಯತ್ನಿಸಲು.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "ಬಿಟ್‌ವಾರ್ಡೆನ್ ಬಳಕೆದಾರ $USER_IDENTIFIER$ ಈ ಕೆಳಗಿನವುಗಳನ್ನು ನಿಮ್ಮೊಂದಿಗೆ ಹಂಚಿಕೊಂಡಿದ್ದಾರೆ", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "ಈ ಕಳುಹಿಸುವಿಕೆಯನ್ನು ರಚಿಸಿದ ಬಿಟ್‌ವಾರ್ಡೆನ್ ಬಳಕೆದಾರರು ತಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಮರೆಮಾಡಲು ಆಯ್ಕೆ ಮಾಡಿದ್ದಾರೆ. ಈ ಲಿಂಕ್‌ನ ವಿಷಯವನ್ನು ಬಳಸುವ ಅಥವಾ ಡೌನ್‌ಲೋಡ್ ಮಾಡುವ ಮೊದಲು ಅದರ ಮೂಲವನ್ನು ನೀವು ನಂಬಿದ್ದೀರಿ ಎಂದು ನೀವು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬೇಕು.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "ಒದಗಿಸಿದ ಮುಕ್ತಾಯ ದಿನಾಂಕವು ಮಾನ್ಯವಾಗಿಲ್ಲ." + }, + "deletionDateIsInvalid": { + "message": "ಒದಗಿಸಿದ ಅಳಿಸುವ ದಿನಾಂಕವು ಮಾನ್ಯವಾಗಿಲ್ಲ." + }, + "expirationDateAndTimeRequired": { + "message": "ಮುಕ್ತಾಯ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ ಅಗತ್ಯವಿದೆ." + }, + "deletionDateAndTimeRequired": { + "message": "ಅಳಿಸುವ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ ಅಗತ್ಯವಿದೆ." + }, + "dateParsingError": { + "message": "ನಿಮ್ಮ ಅಳಿಸುವಿಕೆ ಮತ್ತು ಮುಕ್ತಾಯ ದಿನಾಂಕಗಳನ್ನು ಉಳಿಸುವಲ್ಲಿ ದೋಷ ಕಂಡುಬಂದಿದೆ." + }, + "webAuthnFallbackMsg": { + "message": "ನಿಮ್ಮ 2FA ಅನ್ನು ಪರಿಶೀಲಿಸಲು ದಯವಿಟ್ಟು ಕೆಳಗಿನ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ." + }, + "webAuthnAuthenticate": { + "message": "WebAuthn ಅನ್ನು ಪ್ರಮಾಣಿಕರಿಸು" + }, + "webAuthnNotSupported": { + "message": "ಈ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ವೆಬ್‌ಆಥ್ನ್ ಬೆಂಬಲಿಸುವುದಿಲ್ಲ." + }, + "webAuthnSuccess": { + "message": "WebAuthn ಯಶಸ್ವಿಯಾಗಿ ಪರಿಶೀಲಿಸಲಾಗಿದೆ! ನೀವು ಈ ಟ್ಯಾಬ್ ಅನ್ನು ಮುಚ್ಚಬಹುದು." + }, + "hintEqualsPassword": { + "message": "ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಸುಳಿವು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ನಂತೆಯೇ ಇರಬಾರದು." + }, + "enrollPasswordReset": { + "message": "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸಲು ನೋಂದಾಯಿಸಿ" + }, + "enrolledPasswordReset": { + "message": "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸಲು ದಾಖಲಾಗಿದೆ" + }, + "withdrawPasswordReset": { + "message": "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸುವಿಕೆಯಿಂದ ಹಿಂತೆಗೆದುಕೊಳ್ಳಿ" + }, + "enrollPasswordResetSuccess": { + "message": "ದಾಖಲಾತಿ ಯಶಸ್ಸು!" + }, + "withdrawPasswordResetSuccess": { + "message": "ಹಿಂತೆಗೆದುಕೊಳ್ಳುವ ಯಶಸ್ಸು!" + }, + "eventEnrollPasswordReset": { + "message": "ಬಳಕೆದಾರ $ID$ ಪಾಸ್‌ವರ್ಡ್ ಮರುಹೊಂದಿಸುವ ಸಹಾಯಕ್ಕೆ ಸೇರಿಕೊಂಡಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "ಬಳಕೆದಾರ $ID$ ಪಾಸ್‌ವರ್ಡ್ ಮರುಹೊಂದಿಸುವ ಸಹಾಯದಿಂದ ಹಿಂದೆ ಸರಿದಿದೆ.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "ಬಳಕೆದಾರ $ID$ ಗಾಗಿ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಮರುಹೊಂದಿಸಿ.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸಿ" + }, + "resetPasswordLoggedOutWarning": { + "message": "ಮುಂದುವರಿಯುವುದರಿಂದ ಅವರ ಪ್ರಸ್ತುತ ಸೆಷನ್‌ನಿಂದ $NAME$ ಅನ್ನು ಲಾಗ್ ಮಾಡುತ್ತದೆ, ಅವರಿಗೆ ಮತ್ತೆ ಲಾಗ್ ಇನ್ ಆಗುವ ಅಗತ್ಯವಿರುತ್ತದೆ. ಇತರ ಸಾಧನಗಳಲ್ಲಿನ ಸಕ್ರಿಯ ಸೆಷನ್‌ಗಳು ಒಂದು ಗಂಟೆಯವರೆಗೆ ಸಕ್ರಿಯವಾಗಿ ಮುಂದುವರಿಯಬಹುದು.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "ಈ ಬಳಕೆದಾರ" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಸಂಸ್ಥೆಯ ನೀತಿಗಳಿಗೆ ಈ ಕೆಳಗಿನ ಅವಶ್ಯಕತೆಗಳನ್ನು ಪೂರೈಸಲು ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಅಗತ್ಯವಿದೆ:" + }, + "resetPasswordSuccess": { + "message": "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸುವ ಯಶಸ್ಸು!" + }, + "resetPasswordEnrollmentWarning": { + "message": "ನಿಮ್ಮ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಸಂಸ್ಥೆಯ ನಿರ್ವಾಹಕರಿಗೆ ದಾಖಲಾತಿ ಅನುಮತಿಸುತ್ತದೆ. ನೀವು ದಾಖಲಾತಿ ಮಾಡಲು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?" + }, + "resetPasswordPolicy": { + "message": "ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸಿ" + }, + "resetPasswordPolicyDescription": { + "message": "ಸಂಸ್ಥೆಯ ಬಳಕೆದಾರರ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಲು ಸಂಸ್ಥೆಯಲ್ಲಿನ ನಿರ್ವಾಹಕರನ್ನು ಅನುಮತಿಸಿ." + }, + "resetPasswordPolicyWarning": { + "message": "ನಿರ್ವಾಹಕರು ತಮ್ಮ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸುವ ಮೊದಲು ಸಂಸ್ಥೆಯಲ್ಲಿನ ಬಳಕೆದಾರರು ಸ್ವಯಂ-ದಾಖಲಾತಿ ಅಥವಾ ಸ್ವಯಂ-ದಾಖಲಾತಿ ಮಾಡಬೇಕಾಗುತ್ತದೆ." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "ಸ್ವಯಂಚಾಲಿತ ದಾಖಲಾತಿ" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "ಎಲ್ಲಾ ಬಳಕೆದಾರರು ತಮ್ಮ ಆಹ್ವಾನವನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪಾಸ್‌ವರ್ಡ್ ಮರುಹೊಂದಿಸುವಿಕೆಗೆ ದಾಖಲಾಗುತ್ತಾರೆ." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "ಈಗಾಗಲೇ ಸಂಸ್ಥೆಯಲ್ಲಿರುವ ಬಳಕೆದಾರರನ್ನು ಪಾಸ್‌ವರ್ಡ್ ಮರುಹೊಂದಿಸುವಿಕೆಯಲ್ಲಿ ಪೂರ್ವಭಾವಿಯಾಗಿ ದಾಖಲಿಸಲಾಗುವುದಿಲ್ಲ. ನಿರ್ವಾಹಕರು ತಮ್ಮ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸುವ ಮೊದಲು ಅವರು ಸ್ವಯಂ-ದಾಖಲಾತಿ ಮಾಡಬೇಕಾಗುತ್ತದೆ." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ದಾಖಲಿಸಿ" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "ಈ ಸಂಸ್ಥೆಯು ಎಂಟರ್‌ಪ್ರೈಸ್ ನೀತಿಯನ್ನು ಹೊಂದಿದ್ದು ಅದು ನಿಮ್ಮನ್ನು ಪಾಸ್‌ವರ್ಡ್ ಮರುಹೊಂದಿಸಲು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ದಾಖಲಿಸುತ್ತದೆ. ನಿಮ್ಮ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಸಂಸ್ಥೆಯ ನಿರ್ವಾಹಕರಿಗೆ ದಾಖಲಾತಿ ಅನುಮತಿಸುತ್ತದೆ." + }, + "resetPasswordOrgKeysError": { + "message": "ಸಂಸ್ಥೆ ಕೀಗಳ ಪ್ರತಿಕ್ರಿಯೆ ಶೂನ್ಯವಾಗಿದೆ" + }, + "resetPasswordDetailsError": { + "message": "ಪಾಸ್ವರ್ಡ್ ವಿವರಗಳನ್ನು ಮರುಹೊಂದಿಸಿ ಪ್ರತಿಕ್ರಿಯೆ ಶೂನ್ಯವಾಗಿದೆ" + }, + "trashCleanupWarning": { + "message": "30 ದಿನಗಳಿಗಿಂತ ಹೆಚ್ಚು ಅನುಪಯುಕ್ತದಲ್ಲಿರುವ ಐಟಂಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅಳಿಸಲಾಗುತ್ತದೆ." + }, + "trashCleanupWarningSelfHosted": { + "message": "ಸ್ವಲ್ಪ ಸಮಯದವರೆಗೆ ಅನುಪಯುಕ್ತದಲ್ಲಿರುವ ಐಟಂಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅಳಿಸಲಾಗುತ್ತದೆ." + }, + "passwordPrompt": { + "message": "ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ಮರು-ಪ್ರಾಂಪ್ಟ್" + }, + "passwordConfirmation": { + "message": "ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ದೃಢೀಕರಣ" + }, + "passwordConfirmationDesc": { + "message": "ಮುಂದುವರಿಯಲು ಈ ಕ್ರಿಯೆಯನ್ನು ರಕ್ಷಿಸಲಾಗಿದೆ, ದಯವಿಟ್ಟು ನಿಮ್ಮ ಗುರುತನ್ನು ಪರಿಶೀಲಿಸಲು ನಿಮ್ಮ ಮಾಸ್ಟರ್ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರು ನಮೂದಿಸಿ." + }, + "reinviteSelected": { + "message": "ಆಮಂತ್ರಣಗಳನ್ನು ಮರುಹೊಂದಿಸಿ" + }, + "noSelectedUsersApplicable": { + "message": "ಆಯ್ದ ಯಾವುದೇ ಬಳಕೆದಾರರಿಗೆ ಈ ಕ್ರಿಯೆ ಅನ್ವಯಿಸುವುದಿಲ್ಲ." + }, + "removeUsersWarning": { + "message": "ಕೆಳಗಿನ ಬಳಕೆದಾರರನ್ನು ತೆಗೆದುಹಾಕಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ? ಪ್ರಕ್ರಿಯೆಯು ಪೂರ್ಣಗೊಳ್ಳಲು ಕೆಲವು ಸೆಕೆಂಡುಗಳು ತೆಗೆದುಕೊಳ್ಳಬಹುದು ಮತ್ತು ಅದನ್ನು ಅಡ್ಡಿಪಡಿಸಲು ಅಥವಾ ರದ್ದುಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "ಆಯ್ಕೆಮಾಡಿದದನ್ನು ದೃಢೀಕರಿಸಿ" + }, + "bulkConfirmStatus": { + "message": "ಬೃಹತ್ ಕ್ರಿಯೆಯ ಸ್ಥಿತಿ" + }, + "bulkConfirmMessage": { + "message": "ಯಶಸ್ವಿಯಾಗಿ ದೃಢಪಡಿಸಲಾಗಿದೆ." + }, + "bulkReinviteMessage": { + "message": "ಯಶಸ್ವಿಯಾಗಿ ಪುನಃ ಆಹ್ವಾನಿಸಲಾಗಿದೆ." + }, + "bulkRemovedMessage": { + "message": "ಯಶಸ್ವಿಯಾಗಿ ತೆಗೆದುಹಾಕಲಾಗಿದೆ" + }, + "bulkFilteredMessage": { + "message": "ಹೊರಗಿಡಲಾಗಿದೆ, ಈ ಕ್ರಿಯೆಗೆ ಅನ್ವಯಿಸುವುದಿಲ್ಲ." + }, + "fingerprint": { + "message": "ಫಿಂಗರ್‌ಪ್ರಿಂಟ್" + }, + "removeUsers": { + "message": "ಬಳಕೆದಾರರನ್ನು ತೆಗೆದುಹಾಕಿ" + }, + "error": { + "message": "ದೋಷ" + }, + "resetPasswordManageUsers": { + "message": "ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸಿ ಅನುಮತಿಯೊಂದಿಗೆ ಬಳಕೆದಾರರನ್ನು ನಿರ್ವಹಿಸಿ" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/ko/messages.json b/apps/web/src/locales/ko/messages.json new file mode 100644 index 0000000000..dd72400512 --- /dev/null +++ b/apps/web/src/locales/ko/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ 웹 보관함", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "항목의 유형이 무엇입니까?" + }, + "name": { + "message": "이름" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "새 URI" + }, + "username": { + "message": "사용자 이름" + }, + "password": { + "message": "비밀번호" + }, + "newPassword": { + "message": "새 비밀번호" + }, + "passphrase": { + "message": "패스프레이즈" + }, + "notes": { + "message": "메모" + }, + "customFields": { + "message": "사용자 지정 필드" + }, + "cardholderName": { + "message": "카드 소유자 이름" + }, + "number": { + "message": "번호" + }, + "brand": { + "message": "브랜드" + }, + "expiration": { + "message": "만료" + }, + "securityCode": { + "message": "카드 보안 코드 (CVV)" + }, + "identityName": { + "message": "ID 이름" + }, + "company": { + "message": "회사" + }, + "ssn": { + "message": "주민등록번호" + }, + "passportNumber": { + "message": "여권 번호" + }, + "licenseNumber": { + "message": "면허 번호" + }, + "email": { + "message": "이메일" + }, + "phone": { + "message": "전화번호" + }, + "january": { + "message": "1월" + }, + "february": { + "message": "2월" + }, + "march": { + "message": "3월" + }, + "april": { + "message": "4월" + }, + "may": { + "message": "5월" + }, + "june": { + "message": "6월" + }, + "july": { + "message": "7월" + }, + "august": { + "message": "8월" + }, + "september": { + "message": "9월" + }, + "october": { + "message": "10월" + }, + "november": { + "message": "11월" + }, + "december": { + "message": "12월" + }, + "title": { + "message": "제목" + }, + "mr": { + "message": "Mr" + }, + "mrs": { + "message": "Mrs" + }, + "ms": { + "message": "Ms" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "만료 월" + }, + "expirationYear": { + "message": "만료 연도" + }, + "authenticatorKeyTotp": { + "message": "인증 키 (TOTP)" + }, + "folder": { + "message": "폴더" + }, + "newCustomField": { + "message": "새 사용자 지정 필드" + }, + "value": { + "message": "값" + }, + "dragToSort": { + "message": "드래그하여 정렬" + }, + "cfTypeText": { + "message": "텍스트" + }, + "cfTypeHidden": { + "message": "숨김" + }, + "cfTypeBoolean": { + "message": "참 / 거짓" + }, + "cfTypeLinked": { + "message": "연결됨", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "제거" + }, + "unassigned": { + "message": "지정되지 않음" + }, + "noneFolder": { + "message": "폴더 없음", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "폴더 추가" + }, + "editFolder": { + "message": "폴더 편집" + }, + "baseDomain": { + "message": "기본 도메인", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "호스트", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "정확히 일치" + }, + "startsWith": { + "message": "...으로 시작" + }, + "regEx": { + "message": "정규 표현식", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "일치 인식", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "기본 일치 인식", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "잠그지 않음" + }, + "toggleVisibility": { + "message": "표시 전환" + }, + "toggleCollapse": { + "message": "Toggle Collapse", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "비밀번호 생성" + }, + "checkPassword": { + "message": "비밀번호가 노출되었는지 확인합니다." + }, + "passwordExposed": { + "message": "이 비밀번호는 데이터 유출에 $VALUE$회 노출되었습니다. 비밀번호를 변경하는 것이 좋습니다.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "이 비밀번호는 데이터 유출 목록에 없습니다. 사용하기에 안전한 비밀번호입니다." + }, + "save": { + "message": "저장" + }, + "cancel": { + "message": "취소" + }, + "canceled": { + "message": "취소됨" + }, + "close": { + "message": "닫기" + }, + "delete": { + "message": "삭제" + }, + "favorite": { + "message": "즐겨찾기" + }, + "unfavorite": { + "message": "즐겨찾기 해제" + }, + "edit": { + "message": "편집" + }, + "searchCollection": { + "message": "컬렉션 검색" + }, + "searchFolder": { + "message": "폴더 검색" + }, + "searchFavorites": { + "message": "즐겨찾기 검색" + }, + "searchType": { + "message": "유형 검색", + "description": "Search item type" + }, + "searchVault": { + "message": "보관함 검색" + }, + "allItems": { + "message": "모든 항목" + }, + "favorites": { + "message": "즐겨찾기" + }, + "types": { + "message": "유형" + }, + "typeLogin": { + "message": "로그인" + }, + "typeCard": { + "message": "카드" + }, + "typeIdentity": { + "message": "신원" + }, + "typeSecureNote": { + "message": "보안 메모" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "폴더" + }, + "collections": { + "message": "컬렉션" + }, + "firstName": { + "message": "이름" + }, + "middleName": { + "message": "가운데 이름" + }, + "lastName": { + "message": "성" + }, + "fullName": { + "message": "전체 이름" + }, + "address1": { + "message": "주소 1" + }, + "address2": { + "message": "주소 2" + }, + "address3": { + "message": "주소 3" + }, + "cityTown": { + "message": "읍 / 면 / 동" + }, + "stateProvince": { + "message": "시 / 도" + }, + "zipPostalCode": { + "message": "우편번호" + }, + "country": { + "message": "국가" + }, + "shared": { + "message": "공유됨" + }, + "attachments": { + "message": "첨부 파일" + }, + "select": { + "message": "선택" + }, + "addItem": { + "message": "항목 추가" + }, + "editItem": { + "message": "항목 편집" + }, + "viewItem": { + "message": "항목 보기" + }, + "ex": { + "message": "예)", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "기타" + }, + "share": { + "message": "공유" + }, + "moveToOrganization": { + "message": "조직으로 이동하기" + }, + "valueCopied": { + "message": "$VALUE$를 클립보드에 복사함", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "값 복사", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "비밀번호 복사", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "사용자 이름 복사", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "번호 복사", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "보안 코드 복사", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "URI 복사", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "내 보관함" + }, + "vault": { + "message": "보관함" + }, + "moveSelectedToOrg": { + "message": "선택한 항목을 조직으로 이동함" + }, + "deleteSelected": { + "message": "선택 항목 삭제" + }, + "moveSelected": { + "message": "선택 항목 이동" + }, + "selectAll": { + "message": "모두 선택" + }, + "unselectAll": { + "message": "모두 선택 해제" + }, + "launch": { + "message": "열기" + }, + "newAttachment": { + "message": "새 첨부 파일 추가" + }, + "deletedAttachment": { + "message": "첨부 파일 삭제함" + }, + "deleteAttachmentConfirmation": { + "message": "정말 이 첨부 파일을 삭제하시겠습니까?" + }, + "attachmentSaved": { + "message": "첨부 파일을 저장했습니다." + }, + "file": { + "message": "파일" + }, + "selectFile": { + "message": "파일을 선택하세요." + }, + "maxFileSize": { + "message": "최대 파일 크기는 500MB입니다." + }, + "updateKey": { + "message": "이 기능을 사용하려면 암호화 키를 업데이트해야 합니다." + }, + "addedItem": { + "message": "항목 추가함" + }, + "editedItem": { + "message": "항목 편집함" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$이(가) $ORGNAME$(으)로 이동됨", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "선택한 항목이 $ORGNAME$(으)로 이동됨", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "항목 삭제" + }, + "deleteFolder": { + "message": "폴더 삭제" + }, + "deleteAttachment": { + "message": "첨부 파일 삭제" + }, + "deleteItemConfirmation": { + "message": "정말로 휴지통으로 이동시킬까요?" + }, + "deletedItem": { + "message": "항목 삭제함" + }, + "deletedItems": { + "message": "항목 삭제함" + }, + "movedItems": { + "message": "항목 이동함" + }, + "overwritePasswordConfirmation": { + "message": "정말 현재 비밀번호를 덮어쓰시겠습니까?" + }, + "editedFolder": { + "message": "폴더 편집함" + }, + "addedFolder": { + "message": "폴더 추가함" + }, + "deleteFolderConfirmation": { + "message": "정말 이 폴더를 삭제하시겠습니까?" + }, + "deletedFolder": { + "message": "폴더 삭제함" + }, + "loggedOut": { + "message": "로그아웃됨" + }, + "loginExpired": { + "message": "로그인 세션이 만료되었습니다." + }, + "logOutConfirmation": { + "message": "정말 로그아웃하시겠습니까?" + }, + "logOut": { + "message": "로그아웃" + }, + "ok": { + "message": "확인" + }, + "yes": { + "message": "예" + }, + "no": { + "message": "아니오" + }, + "loginOrCreateNewAccount": { + "message": "안전 보관함에 접근하려면 로그인하거나 새 계정을 만드세요." + }, + "createAccount": { + "message": "계정 만들기" + }, + "logIn": { + "message": "로그인" + }, + "submit": { + "message": "보내기" + }, + "emailAddressDesc": { + "message": "로그인에 이메일 주소를 사용하게 될 것입니다." + }, + "yourName": { + "message": "이름" + }, + "yourNameDesc": { + "message": "당신은 어떻게 불립니까?" + }, + "masterPass": { + "message": "마스터 비밀번호" + }, + "masterPassDesc": { + "message": "마스터 비밀번호는 보관함을 열 때 필요한 비밀번호입니다. 절대 마스터 비밀번호를 잊어버리지 마세요. 잊어버리면 복구할 수 있는 방법이 없습니다." + }, + "masterPassHintDesc": { + "message": "마스터 비밀번호 힌트는 마스터 비밀번호를 잊었을 때 도움이 될 수 있습니다." + }, + "reTypeMasterPass": { + "message": "마스터 비밀번호 다시 입력" + }, + "masterPassHint": { + "message": "마스터 비밀번호 힌트 (선택)" + }, + "masterPassHintLabel": { + "message": "마스터 비밀번호 힌트" + }, + "settings": { + "message": "설정" + }, + "passwordHint": { + "message": "비밀번호 힌트" + }, + "enterEmailToGetHint": { + "message": "마스터 비밀번호 힌트를 받으려면 계정의 이메일 주소를 입력하세요." + }, + "getMasterPasswordHint": { + "message": "마스터 비밀번호 힌트 얻기" + }, + "emailRequired": { + "message": "이메일은 반드시 입력해야 합니다." + }, + "invalidEmail": { + "message": "잘못된 이메일 주소입니다." + }, + "masterPassRequired": { + "message": "마스터 비밀번호는 반드시 입력해야 합니다." + }, + "masterPassLength": { + "message": "마스터 비밀번호는 최소 8자 이상이어야 합니다." + }, + "masterPassDoesntMatch": { + "message": "마스터 비밀번호 확인과 마스터 비밀번호가 일치하지 않습니다." + }, + "newAccountCreated": { + "message": "계정 생성이 완료되었습니다! 이제 로그인하실 수 있습니다." + }, + "masterPassSent": { + "message": "마스터 비밀번호 힌트가 담긴 이메일을 보냈습니다." + }, + "unexpectedError": { + "message": "예기치 못한 오류가 발생했습니다." + }, + "emailAddress": { + "message": "이메일 주소" + }, + "yourVaultIsLocked": { + "message": "보관함이 잠겨 있습니다. 마스터 비밀번호를 입력하여 계속하세요." + }, + "unlock": { + "message": "잠금 해제" + }, + "loggedInAsEmailOn": { + "message": "$HOSTNAME$ 에 $EMAIL$ 로 로그인했습니다.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "잘못된 마스터 비밀번호" + }, + "lockNow": { + "message": "지금 잠그기" + }, + "noItemsInList": { + "message": "항목이 없습니다." + }, + "noCollectionsInList": { + "message": "콜렉션이 없습니다." + }, + "noGroupsInList": { + "message": "그룹이 없습니다." + }, + "noUsersInList": { + "message": "유저가 없습니다." + }, + "noEventsInList": { + "message": "이벤트가 없습니다." + }, + "newOrganization": { + "message": "새 조직" + }, + "noOrganizationsList": { + "message": "당신은 어떤 조직에도 속해있지 않습니다. 조직은 다른 사용자들과 안전하게 항목을 공유할 수 있게 해줍니다." + }, + "versionNumber": { + "message": "버전 $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "인증 앱에서 6자리 인증 코드를 입력하세요." + }, + "enterVerificationCodeEmail": { + "message": "$EMAIL$ 주소로 전송된 6자리 인증 코드를 입력하세요.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "$EMAIL$ 주소로 인증 이메일을 보냈습니다.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "기억하기" + }, + "sendVerificationCodeEmailAgain": { + "message": "인증 코드 이메일 다시 보내기" + }, + "useAnotherTwoStepMethod": { + "message": "다른 2단계 인증 사용" + }, + "insertYubiKey": { + "message": "YubiKey를 컴퓨터의 USB 포트에 삽입하고 버튼을 누르세요." + }, + "insertU2f": { + "message": "보안 키를 컴퓨터의 USB 포트에 삽입하고 버튼이 있는 경우 누르세요." + }, + "loginUnavailable": { + "message": "로그인 불가능" + }, + "noTwoStepProviders": { + "message": "이 계정은 2단계 인증을 사용합니다. 그러나 설정된 2단계 인증 중 이 웹 브라우저에서 지원하는 방식이 없습니다." + }, + "noTwoStepProviders2": { + "message": "지원하는 웹 브라우저(Chrome 등)를 사용하거나 더 많은 브라우저를 지원하는 2단계 인증 방식(인증 앱 등)을 추가하세요." + }, + "twoStepOptions": { + "message": "2단계 인증 옵션" + }, + "recoveryCodeDesc": { + "message": "모든 2단계 인증을 사용할 수 없는 상황인가요? 복구 코드를 사용하여 계정의 모든 2단계 인증을 비활성화할 수 있습니다." + }, + "recoveryCodeTitle": { + "message": "복구 코드" + }, + "authenticatorAppTitle": { + "message": "인증 앱" + }, + "authenticatorAppDesc": { + "message": "인증 앱(Authy, Google OTP 등)을 통하여 일회용 인증 코드를 생성합니다.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP 보안 키" + }, + "yubiKeyDesc": { + "message": "YubiKey를 사용하여 사용자의 계정에 접근합니다. YubiKey 4, 4 Nano, 4C 및 NEO 기기를 사용할 수 있습니다." + }, + "duoDesc": { + "message": "Duo Mobile 앱, SMS, 전화 통화를 사용한 Duo Security 또는 U2F 보안 키를 사용하여 인증하세요.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Duo Mobile 앱, SMS, 전화 통화를 사용한 조직용 Duo Security 또는 U2F 보안 키를 사용하여 인증하세요.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "FIDO U2F가 활성화된 보안 키를 사용하여 계정에 접근하세요." + }, + "u2fTitle": { + "message": "FIDO U2F 보안 키" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "WebAuthn이 활성화된 보안 키를 사용하여 계정에 접근하세요." + }, + "webAuthnMigrated": { + "message": "(FIDO에서 이전됨)" + }, + "emailTitle": { + "message": "이메일" + }, + "emailDesc": { + "message": "인증 코드가 담긴 이메일을 다시 보냅니다." + }, + "continue": { + "message": "계속" + }, + "organization": { + "message": "조직" + }, + "organizations": { + "message": "조직" + }, + "moveToOrgDesc": { + "message": "이 항목을 이동할 조직을 선택하십시오. 항목이 조직으로 이동되면 소유권이 조직으로 이전됩니다. 일단 이동되면, 더는 이동된 항목의 직접적인 소유자가 아니게 됩니다." + }, + "moveManyToOrgDesc": { + "message": "이 항목을 이동할 조직을 선택하십시오. 항목이 조직으로 이동되면 소유권이 조직으로 이전됩니다. 일단 이동되면, 더는 이동된 항목의 직접적인 소유자가 아니게 됩니다." + }, + "collectionsDesc": { + "message": "이 항목이 공유될 콜렉션을 수정하십시오. 이 콜렉션에 접근할 수 있는 조직 사용자만 이 항목을 볼 수 있습니다." + }, + "deleteSelectedItemsDesc": { + "message": "삭제를 위해 $COUNT$ 개의 항목이 선택됨. 정말로 이 항목들을 삭제하시겠습니까?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "선택된 $COUNT$ 개의 항목을 옮길 폴더를 선택하십시오.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "$COUNT$개의 항목을 선택하셨습니다. $MOVEABLE_COUNT$개의 항목은 조직으로 이동시킬 수 있지만 나머지 $NONMOVEABLE_COUNT$개의 항목은 이동시킬 수 없습니다.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "인증 코드 (TOTP)" + }, + "copyVerificationCode": { + "message": "인증 코드 복사" + }, + "warning": { + "message": "경고" + }, + "confirmVaultExport": { + "message": "보관함 내보내기 확인" + }, + "exportWarningDesc": { + "message": "내보내기는 보관함 데이터가 암호화되지 않은 형식으로 포함됩니다. 내보낸 파일을 안전하지 않은 채널(예: 이메일)을 통해 저장하거나 보내지 마십시오. 사용이 끝난 후에는 즉시 삭제하십시오." + }, + "encExportKeyWarningDesc": { + "message": "이 내보내기는 계정의 암호화 키를 사용하여 데이터를 암호화합니다. 추후 계정의 암호화 키를 교체할 경우 다시 내보내기를 진행해야 합니다. 그러지 않을 경우 이 내보내기 파일을 해독할 수 없게 됩니다." + }, + "encExportAccountWarningDesc": { + "message": "모든 Bitwarden 사용자 계정은 고유한 계정 암호화 키를 가지고 있습니다. 따라서, 다른 계정에서는 암호화된 내보내기를 가져올 수 없습니다." + }, + "export": { + "message": "내보내기" + }, + "exportVault": { + "message": "보관함 내보내기" + }, + "fileFormat": { + "message": "파일 형식" + }, + "exportSuccess": { + "message": "보관함 데이터를 내보냈습니다." + }, + "passwordGenerator": { + "message": "비밀번호 생성기" + }, + "minComplexityScore": { + "message": "최소 복잡도 점수" + }, + "minNumbers": { + "message": "숫자 최소 개수" + }, + "minSpecial": { + "message": "특수 문자 최소 개수", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "모호한 문자 사용 안 함" + }, + "regeneratePassword": { + "message": "비밀번호 재생성" + }, + "length": { + "message": "길이" + }, + "numWords": { + "message": "단어 수" + }, + "wordSeparator": { + "message": "구분 기호" + }, + "capitalize": { + "message": "첫 글자를 대문자로", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "숫자 추가" + }, + "passwordHistory": { + "message": "비밀번호 변경 기록" + }, + "noPasswordsInList": { + "message": "비밀번호가 없습니다." + }, + "clear": { + "message": "삭제", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "계정 업데이트됨" + }, + "changeEmail": { + "message": "이메일 변경" + }, + "changeEmailTwoFactorWarning": { + "message": "계속 진행하면 계정의 이메일 주소가 변경됩니다. 이때, 2단계 인증에 사용되는 이메일 주소는 변경되지 않습니다. 2단계 인증 설정에서 해당 이메일 주소를 변경할 수 있습니다." + }, + "newEmail": { + "message": "새 이메일" + }, + "code": { + "message": "코드" + }, + "changeEmailDesc": { + "message": "$EMAIL$으로 인증 코드를 발송했습니다. 이메일에서 이 코드를 확인하고 아래에 입력하여 이메일 주소 변경을 완료하십시오.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "계속 진행하면, 현재 세션 또한 로그아웃 되므로 다시 로그인하여야 합니다. 2단계 로그인이 활성화 된 경우 다시 요구하는 메세지가 표시됩니다. 다른 기기의 활성화 된 세션은 최대 1시간 동안 유지 될 수 있습니다." + }, + "emailChanged": { + "message": "이메일 변경됨" + }, + "logBackIn": { + "message": "다시 로그인해 주세요." + }, + "logBackInOthersToo": { + "message": "다시 로그인해 주세요. 다른 Bitwarden 앱을 사용 중인 경우 해당 앱에서도 다시 로그인해야 합니다." + }, + "changeMasterPassword": { + "message": "마스터 비밀번호 변경" + }, + "masterPasswordChanged": { + "message": "마스터 비밀번호 변경됨" + }, + "currentMasterPass": { + "message": "현재 마스터 비밀번호" + }, + "newMasterPass": { + "message": "새 마스터 비밀번호" + }, + "confirmNewMasterPass": { + "message": "새 마스터 비밀번호 확인" + }, + "encKeySettings": { + "message": "암호화 키 설정" + }, + "kdfAlgorithm": { + "message": "KDF 알고리즘" + }, + "kdfIterations": { + "message": "KDF 이터레이션" + }, + "kdfIterationsDesc": { + "message": "높은 KDF 반복자는 공격자의 무차별 공격으로부터 마스터 비밀번호를 보호해줍니다. $VALUE$ 이상의 값을 추천합니다.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "KDF 반복자를 너무 높게 설정하면 CPU가 느린 장치에서 Bitwarden에 로그인(및 잠금 해제)할 때 성능이 저하될 수 있습니다. $INCREMENT$ 단위로 값을 올려가며 모든 장치를 테스트하는 것이 좋습니다.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "KDF 변경" + }, + "encKeySettingsChanged": { + "message": "암호화 키 설정 변경됨" + }, + "dangerZone": { + "message": "위험 구역" + }, + "dangerZoneDesc": { + "message": "주의, 이 행동들은 되돌릴 수 없음!" + }, + "deauthorizeSessions": { + "message": "세션 해제" + }, + "deauthorizeSessionsDesc": { + "message": "계정이 다른 장치에 로그인되어 있습니까? 이전에 사용된 모든 컴퓨터 또는 장치 인증을 취소하려면 다음 단계로 나아가십시오. 이 보안 단계는 이전에 공용 PC를 사용했거나 실수로 타인의 장치에 비밀번호를 저장한 경우 권장됩니다. 이 단계에서는 이전에 기억된 2단계 로그인 세션도 모두 삭제됩니다." + }, + "deauthorizeSessionsWarning": { + "message": "계속 진행하면, 현재 세션 또한 로그아웃 되므로 다시 로그인하여야 합니다. 2단계 로그인이 활성화 된 경우 다시 요구하는 메세지가 표시됩니다. 다른 기기의 활성화 된 세션은 최대 1시간 동안 유지 될 수 있습니다." + }, + "sessionsDeauthorized": { + "message": "모든 세션 해제 됨" + }, + "purgeVault": { + "message": "보관함 삭제" + }, + "purgedOrganizationVault": { + "message": "삭제 된 조직 보관함" + }, + "vaultAccessedByProvider": { + "message": "보관함에 제공자가 액세스했습니다." + }, + "purgeVaultDesc": { + "message": "보관함 내의 모든 항목과 폴더를 삭제하려면 다음 단계로 나아가십시오. 조직에 속한 공유 항목들은 삭제되지 않습니다." + }, + "purgeOrgVaultDesc": { + "message": "조직의 보관함 내 모든 항목을 삭제하려면 다음 단계로 나아가십시오." + }, + "purgeVaultWarning": { + "message": "계정 삭제는 영구적이며 되돌릴 수 없습니다." + }, + "vaultPurged": { + "message": "보관함이 삭제되었습니다." + }, + "deleteAccount": { + "message": "계정 삭제" + }, + "deleteAccountDesc": { + "message": "귀하의 계정과 저장된 데이터들을 삭제하려면 아래를 계속 진행하십시오." + }, + "deleteAccountWarning": { + "message": "계정 삭제는 영구적이며 되돌릴 수 없습니다." + }, + "accountDeleted": { + "message": "계정 삭제됨" + }, + "accountDeletedDesc": { + "message": "당신의 계정과 연관된 모든 데이터들이 삭제되었습니다." + }, + "myAccount": { + "message": "내 계정" + }, + "tools": { + "message": "도구" + }, + "importData": { + "message": "데이터 가져오기" + }, + "importError": { + "message": "가져오기 오류" + }, + "importErrorDesc": { + "message": "가져오려고 하는 데이터에 문제가 있습니다. 아래에 표시된 파일의 오류를 해결한 뒤 다시 시도해 주세요." + }, + "importSuccess": { + "message": "데이터를 보관함으로 성공적으로 불러왔습니다." + }, + "importWarning": { + "message": "$ORGANIZATION$ 조직으로 데이터를 가져오려고 합니다. 데이터가 이 조직의 구성원과 공유될 수 있습니다. 계속하시겠습니까?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "데이터의 포맷이 올바르지 않습니다. 불러올 파일을 확인하고 다시 시도해 주십시오." + }, + "importNothingError": { + "message": "아무것도 가져오지 못했습니다." + }, + "importEncKeyError": { + "message": "내보내려는 파일을 복호화하던 중 오류가 발생했습니다. 암호화 키가 내보내려는 데이터를 암호화한 키와 일치하지 않습니다." + }, + "selectFormat": { + "message": "불러올 파일의 포맷" + }, + "selectImportFile": { + "message": "불러올 파일" + }, + "orCopyPasteFileContents": { + "message": "또는 가져온 파일 내용 복사/붙여넣기" + }, + "instructionsFor": { + "message": "$NAME$ 안내사항", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "옵션" + }, + "optionsDesc": { + "message": "웹 보관함 환경 사용자 지정" + }, + "optionsUpdated": { + "message": "옵션 업데이트됨" + }, + "language": { + "message": "언어(Language)" + }, + "languageDesc": { + "message": "웹 보관함에서 사용할 언어를 변경합니다." + }, + "disableIcons": { + "message": "웹 사이트 아이콘 사용 안 함" + }, + "disableIconsDesc": { + "message": "웹 사이트 아이콘을 사용하면 보관함 각 항목 옆에 이미지를 보여줍니다." + }, + "enableGravatars": { + "message": "Gravatar 사용", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "gravatar.com의 아바타 이미지를 사용." + }, + "enableFullWidth": { + "message": "전체 너비 레이아웃 활성화", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "웹 보관함이 브라우저 창의 전체 너비를 사용하도록 확장합니다." + }, + "default": { + "message": "기본값" + }, + "domainRules": { + "message": "도메인 규칙" + }, + "domainRulesDesc": { + "message": "여러 웹 사이트 도메인에 대해 동일한 로그인이 있는 경우, 웹 사이트가 \"유사\"하다고 표시할 수 있습니다. \"전역\" 도메인은 Bitwarden에서 당신을 위해 이미 생성했습니다." + }, + "globalEqDomains": { + "message": "전역 유사 도메인" + }, + "customEqDomains": { + "message": "사용자 지정 유사 도메인" + }, + "exclude": { + "message": "제외" + }, + "include": { + "message": "포함" + }, + "customize": { + "message": "사용자 지정" + }, + "newCustomDomain": { + "message": "새 사용자 지정 도메인" + }, + "newCustomDomainDesc": { + "message": "도메인 목록을 쉼표(,)로 구분하여 입력하십시오. \"기본\" 도메인만 사용할 수 있습니다. 하위 도메인을 입력하지 마십시오. 예를 들면, \"www.google.com\" 대신 \"google.com\"을 입력합니다. Android 앱을 다른 웹 사이트 도메인과 연결하려면 \"androidapp://package.name\"을 입력하십시오." + }, + "customDomainX": { + "message": "사용자 정의 도메인 $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "도메인 업데이트됨" + }, + "twoStepLogin": { + "message": "2단계 인증" + }, + "twoStepLoginDesc": { + "message": "로그인할 때 추가 단계를 요구하여 계정을 보호하십시오." + }, + "twoStepLoginOrganizationDesc": { + "message": "조직 수준에서 제공자를 구성하여 조직 내 사용자에게 2단계 로그인을 요구합니다." + }, + "twoStepLoginRecoveryWarning": { + "message": "2단계 로그인을 활성화하면 Bitwarden 계정을 영원히 잠글 수 있습니다. 복구 코드를 사용하면 정상적인 2단계 로그인 제공자를 더 이상 사용할 수 없는 경우(예. 장치를 잃어버렸을 때) 계정에 액세스할 수 있습니다. 계정에 접근하지 못한다면 Bitwarden 지원팀은 어떤 도움도 줄 수 없습니다. 복구 코드를 기록하거나 출력하여 안전한 장소에 보관할 것을 권장합니다." + }, + "viewRecoveryCode": { + "message": "복구 코드" + }, + "providers": { + "message": "공급자", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "활성화" + }, + "enabled": { + "message": "활성화됨" + }, + "premium": { + "message": "프리미엄", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "프리미엄 멤버십" + }, + "premiumRequired": { + "message": "프리미엄 멤버십 필요" + }, + "premiumRequiredDesc": { + "message": "이 기능을 사용하려면 프리미엄 멤버십이 필요합니다." + }, + "youHavePremiumAccess": { + "message": "프리미엄 멤버십 사용 중" + }, + "alreadyPremiumFromOrg": { + "message": "소속된 조직으로 이미 프리미엄 기능에 액세스할 수 있습니다." + }, + "manage": { + "message": "관리" + }, + "disable": { + "message": "비활성화" + }, + "twoStepLoginProviderEnabled": { + "message": "이 2단계 로그인 제공자는 귀하의 계정에 사용 가능합니다." + }, + "twoStepLoginAuthDesc": { + "message": "2단계 로그인 설정을 수정하려면 마스터 암호를 입력하십시오." + }, + "twoStepAuthenticatorDesc": { + "message": "다음 단계에 따라 인증자 앱으로 2단계 로그인 설정:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "2단계 인증자 앱 다운로드" + }, + "twoStepAuthenticatorNeedApp": { + "message": "2단계 인증자 앱이 필요하십니까? 다음 중 하나를 다운로드하세요" + }, + "iosDevices": { + "message": "iOS 기기" + }, + "androidDevices": { + "message": "Android 기기" + }, + "windowsDevices": { + "message": "Windows 기기" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "These apps are recommended, however, other authenticator apps will also work." + }, + "twoStepAuthenticatorScanCode": { + "message": "이 QR 코드를 인증 앱으로 스캔" + }, + "key": { + "message": "키" + }, + "twoStepAuthenticatorEnterCode": { + "message": "앱에서 결과로 나온 6자리 인증코드를 입력하십시오" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "다른 장치에 추가해야 하는 경우, 아래의 QR코드(혹은 키) 가 인증자 앱에 필요합니다." + }, + "twoStepDisableDesc": { + "message": "이 2단계 로그인 제공자를 사용하지 않도록 설정하시겠습니까?" + }, + "twoStepDisabled": { + "message": "2단계 로그인 제공자 비활성화됨." + }, + "twoFactorYubikeyAdd": { + "message": "계정에 새로운 YubiKey를 추가합니다." + }, + "twoFactorYubikeyPlugIn": { + "message": "YubiKey(NEO 혹은 4 시리즈)를 컴퓨터 USB 포트에 삽입하십시오." + }, + "twoFactorYubikeySelectKey": { + "message": "첫번째 비어있는 YubiKey 입력 필드를 선택하십시오." + }, + "twoFactorYubikeyTouchButton": { + "message": "YubiKey의 버튼을 터치하십시오" + }, + "twoFactorYubikeySaveForm": { + "message": "폼 저장하기" + }, + "twoFactorYubikeyWarning": { + "message": "플랫폼 제한으로 인해, 모든 Bitwarden 애플리케이션에서 YubiKey를 사용할 수 없습니다. YubiKey를 사용할 수 없을 때 계정에 접근할 수 있도록 다른 2단계 로그인 제공자를 활성화하십시오. 지원하는 플랫폼:" + }, + "twoFactorYubikeySupportUsb": { + "message": "웹 보관함, 데스크톱 응용프로그램, 명령 줄 인터페이스, USB 포트가 있는 장치의 브라우저 확장 기능은 YubiKey를 사용할 수 있습니다." + }, + "twoFactorYubikeySupportMobile": { + "message": "NFC 또는 USB 포트가 있는 장치의 모바일 앱은 YubiKey를 사용할 수 있습니다." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn 키 $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC 지원" + }, + "twoFactorYubikeySupportsNfc": { + "message": "내 키 중의 하나가 NFC를 지원합니다." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "YubiKey중 하나가 NFC(예: YubiKey NEO)를 지원할 경우, NFC 사용가능 여부가 감지될 때마다 모바일 장치에서 메시지가 표시됩니다." + }, + "yubikeysUpdated": { + "message": "YubiKey 업데이트됨" + }, + "disableAllKeys": { + "message": "Disable All Keys" + }, + "twoFactorDuoDesc": { + "message": "Duo 관리자 패널에서 Bitwarden 애플리케이션 정보를 입력하십시오." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration Key" + }, + "twoFactorDuoSecretKey": { + "message": "비밀 키" + }, + "twoFactorDuoApiHostname": { + "message": "API 호스트 이름" + }, + "twoFactorEmailDesc": { + "message": "다음 단계에 따라 이메일로 2단계 로그인 설정:" + }, + "twoFactorEmailEnterEmail": { + "message": "확인 코드를 수신할 이메일을 입력하십시오." + }, + "twoFactorEmailEnterCode": { + "message": "이메일에서 결과로 나온 6자리 인증코드를 입력하십시오" + }, + "sendEmail": { + "message": "Send Email" + }, + "twoFactorU2fAdd": { + "message": "계정에 FIDO U2F 보안 키 추가" + }, + "removeU2fConfirmation": { + "message": "정말로 이 보안 키를 제거하시겠습니까?" + }, + "twoFactorWebAuthnAdd": { + "message": "계정에 WebAuthn 보안 키 추가" + }, + "readKey": { + "message": "키 읽기" + }, + "keyCompromised": { + "message": "키가 손상되었습니다." + }, + "twoFactorU2fGiveName": { + "message": "보안 키를 식별할 수 있는 친근한 이름을 지정하십시오." + }, + "twoFactorU2fPlugInReadKey": { + "message": "컴퓨터의 USB 포트에 보안 키를 삽입하고 \"키 읽기\" 버튼을 클릭하십시오." + }, + "twoFactorU2fTouchButton": { + "message": "보안 키에 버튼이 있다면, 터치하십시오" + }, + "twoFactorU2fSaveForm": { + "message": "폼 저장하기" + }, + "twoFactorU2fWarning": { + "message": "플랫폼 제한으로 인해, 모든 Bitwarden 애플리케이션에서 FIDO U2F를 사용할 수 없습니다. FIDO U2F를 사용할 수 없을 때 계정에 접근할 수 있도록 다른 2단계 로그인 제공자를 활성화하십시오. 지원하는 플랫폼:" + }, + "twoFactorU2fSupportWeb": { + "message": "U2F 지원 브라우저가 있는 데스크탑/랩탑의 웹 보관함 및 브라우저 확장 (FIDO U2F가 활성화된 Chrome, Opera, Vivaldi 또는 Firefox 사용)" + }, + "twoFactorU2fWaiting": { + "message": "보안 키 버튼 터치를 기다리는 중" + }, + "twoFactorU2fClickSave": { + "message": "2단계 로그인에 이 보안 키를 사용하려면 아래의 \"저장\" 버튼을 클릭하십시오" + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "보안 키를 읽어오는데 문제가 발생했습니다. 다시 시도해보십시오." + }, + "twoFactorWebAuthnWarning": { + "message": "플랫폼 제한으로 인해, 모든 Bitwarden 애플리케이션에서 WebAuthn을 사용할 수 없습니다. WebAuthn을 사용할 수 없을 때 계정에 접근할 수 있도록 다른 2단계 로그인 방법을 활성화하십시오. 지원하는 플랫폼:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "WebAuthn 지원 브라우저가 있는 데스크탑/랩탑의 웹 보관함 및 브라우저 확장 (WebAuthn이 활성화된 Chrome, Opera, Vivaldi 또는 Firefox 사용)" + }, + "twoFactorRecoveryYourCode": { + "message": "Bitwarden 2단계 로그인 복구 코드" + }, + "twoFactorRecoveryNoCode": { + "message": "아직 2단계 로그인 제공자를 사용하도록 설정하지 않았습니다. 2단계 로그인 제공자를 사용하도록 설정한 후 여기에서 복구 코드를 확인하십시오." + }, + "printCode": { + "message": "코드 출력", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "보고서" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "안전하지 않은 웹사이트들 보고서" + }, + "unsecuredWebsitesReportDesc": { + "message": "http:// 스키마처럼 안전하지 않은 웹 사이트를 사용하는 것은 위험할 수 있습니다. 웹 사이트가 허용하는 경우 항상 https:// 스키마를 통해 액세스하여 연결이 암호화되도록 하십시오." + }, + "unsecuredWebsitesFound": { + "message": "안전하지 않은 웹사이트가 발견됨" + }, + "unsecuredWebsitesFoundDesc": { + "message": "보관함에 안전하지 않은 URI를 가진 항목 $COUNT$개를 발견했습니다. 웹 사이트에서 허용하는 경우 URI 스키마를 https://로 변경하십시오.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "보관함에 안전하지 않은 URI를 가진 항목이 없습니다." + }, + "inactive2faReport": { + "message": "비활성 2단계 인증 보고서" + }, + "inactive2faReportDesc": { + "message": "2단계 인증은 계정을 보호하는데 중요한 보안 설정입니다. 웹 사이트에서 제공하는 경우 항상 2단계 인증을 사용해야 합니다." + }, + "inactive2faFound": { + "message": "2단계 인증이 없는 로그인이 발견됨" + }, + "inactive2faFoundDesc": { + "message": "보관함에 (2fa.directory에 따른) 2단계 인증이 설정되지 않은 웹 사이트를 $COUNT$개 발견했습니다. 이러한 계정을 더욱 보호하려면 2단계 인증을 사용하십시오.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "보관함에서 2단계 인증 구성이 누락된 웹 사이트를 찾을 수 없습니다." + }, + "instructions": { + "message": "안내사항" + }, + "exposedPasswordsReport": { + "message": "노출된 비밀번호 보고서" + }, + "exposedPasswordsReportDesc": { + "message": "노출된 비밀번호는 해커들이 공개적으로 배포하거나 다크 웹에 판매되어 알려진 데이터 유출에서 발견된 비밀번호입니다." + }, + "exposedPasswordsFound": { + "message": "노출된 비밀번호가 발견됨" + }, + "exposedPasswordsFoundDesc": { + "message": "보관함에 알려진 데이터 유출로 노출된 비밀번호가 있는 $COUNT$개의 항목을 발견했습니다. 새 암호를 사용하도록 암호를 변경해야합니다.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "보관함 내 알려진 데이터 유출로 노출된 비밀번호를 사용하는 항목이 없습니다." + }, + "checkExposedPasswords": { + "message": "노출된 비밀번호 확인하기" + }, + "exposedXTimes": { + "message": "$COUNT$회 노출됨", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "취약한 비밀번호 보고서" + }, + "weakPasswordsReportDesc": { + "message": "취약한 비밀번호는 해커와 암호 해독에 사용되는 자동화 도구로 쉽게 짐작할 수 있습니다. Bitwarden 암호 생성기는 강력한 암호를 만드는데 도움을 줄 것입니다." + }, + "weakPasswordsFound": { + "message": "취약한 비밀번호가 발견됨" + }, + "weakPasswordsFoundDesc": { + "message": "강력한 비밀번호가 아닌 $COUNT$개의 항목을 보관함에서 찾았습니다. 더 강력한 암호를 사용하도록 업데이트해야 합니다.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "보관함에 취약한 비밀번호를 가진 항목이 없습니다." + }, + "reusedPasswordsReport": { + "message": "재사용된 비밀번호 보고서" + }, + "reusedPasswordsReportDesc": { + "message": "사용하는 서비스가 손상된 경우 다른 곳에서 동일한 암호를 다시 사용하면 해커가 더 많은 온라인 계정에 쉽게 액세스할 수 있습니다. 모든 계정 또는 서비스에 대해 고유한 암호를 사용하십시오." + }, + "reusedPasswordsFound": { + "message": "재사용된 비밀번호가 발견됨" + }, + "reusedPasswordsFoundDesc": { + "message": "보관함에서 재사용중인 $COUNT$개의 비밀번호를 찾았습니다. 고유한 값으로 변경해야 합니다.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "보관함에 재사용된 비밀번호를 가진 로그인이 없습니다." + }, + "reusedXTimes": { + "message": "$COUNT$회 재사용됨", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "데이터 유출 보고서" + }, + "breachDesc": { + "message": "\"유출(breach)\"이란, 사이트의 데이터가 불법적으로 해커에 의해 접근되고 공개되는 사건을 뜻합니다. 손상된 데이터 유형(이메일 주소, 비밀번호, 신용카드 등)을 검토하고 비밀번호 변경 등 적절한 조치를 취하십시오." + }, + "breachCheckUsernameEmail": { + "message": "사용하는 사용자 이름 혹은 이메일 주소를 확인해보세요." + }, + "checkBreaches": { + "message": "유출 확인하기" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$을 알려진 데이터 유출에서 발견하지 못했습니다.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "좋은 소식이에요", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$을 $COUNT$개의 온라인 상의 데이터 유출에서 발견되었습니다.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "유출된 계정이 발견됨" + }, + "compromisedData": { + "message": "손상된 데이터" + }, + "website": { + "message": "웹 사이트" + }, + "affectedUsers": { + "message": "영향을 받는 사용자" + }, + "breachOccurred": { + "message": "유출 발생함" + }, + "breachReported": { + "message": "유출 보고됨" + }, + "reportError": { + "message": "보고서를 불러오는 도중 오류가 발생했습니다. 다시 시도해주세요." + }, + "billing": { + "message": "결제" + }, + "accountCredit": { + "message": "계정 크레딧", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "계정 잔액", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "크레딧 추가", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "금액", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "추가된 크레딧은 결제가 완전히 처리된 후 계정에 표시됩니다. 일부 결제 방식은 지연되거나 처리하는 데 시간이 오래 걸릴 수 있습니다." + }, + "makeSureEnoughCredit": { + "message": "이 구매에 사용할 수 있는 크레딧이 충분한지 확인하십시오. 만약 계정에 충분한 크레딧이 없다면, 그 차액만큼 기본 결제 방식에서 지불될 것입니다. 청구 페이지를 통해 계정에 크레딧을 추가할 수 있습니다." + }, + "creditAppliedDesc": { + "message": "계정의 크레딧을 구매에 사용할 수 있습니다. 사용 가능한 모든 크레딧이 이 계정에 대해 생성된 청구서에 자동으로 적용됩니다." + }, + "goPremium": { + "message": "프리미엄 가입", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "프리미엄으로 업그레이드했습니다." + }, + "premiumUpgradeUnlockFeatures": { + "message": "프리미엄 회원으로 계정을 업그레이드하고 몇 가지 훌륭한 추가 기능을 잠금 해제하세요." + }, + "premiumSignUpStorage": { + "message": "1GB의 암호화된 파일 저장소." + }, + "premiumSignUpTwoStep": { + "message": "YubiKey나 FIDO U2F, Duo 등의 추가적인 2단계 인증 옵션." + }, + "premiumSignUpEmergency": { + "message": "긴급 접근" + }, + "premiumSignUpReports": { + "message": "보관함을 안전하게 유지하기 위한 암호 위생, 계정 상태, 데이터 유출 보고서" + }, + "premiumSignUpTotp": { + "message": "보관함에 등록된 로그인 항목을 위한 TOTP 인증 코드(2FA) 생성기." + }, + "premiumSignUpSupport": { + "message": "고객 지원 우선 순위 제공." + }, + "premiumSignUpFuture": { + "message": "앞으로 추가될 모든 프리미엄 기능을 사용할 수 있습니다. 기대하세요!" + }, + "premiumPrice": { + "message": "이 모든 기능을 연 $PRICE$에 이용하실 수 있습니다!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "부가 기능" + }, + "premiumAccess": { + "message": "프리미엄 이용권" + }, + "premiumAccessDesc": { + "message": "$INTERVAL$간 $PRICE$로 조직의 모든 구성원에게 프리미엄 액세스를 추가할 수 있습니다.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "추가 저장소 용량 (GB)" + }, + "additionalStorageGbDesc": { + "message": "# 의 추가 GB" + }, + "additionalStorageIntervalDesc": { + "message": "귀하의 플랜은 $SIZE$의 암호화된 파일 저장소가 제공됩니다. GB / $INTERVAL$당 $PRICE$로 저장소용량을 추가할 수 있습니다.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "요약" + }, + "total": { + "message": "총합" + }, + "year": { + "message": "년" + }, + "month": { + "message": "월" + }, + "monthAbbr": { + "message": "월", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "귀하의 결제방식으로 즉시 요금이 부과되고 정기적으로 매 년 부과됩니다. 언제든지 취소할 수 있습니다." + }, + "paymentCharged": { + "message": "귀하의 결제방식으로 즉시 요금이 부과되고 정기적으로 매 $INTERVAL$ 부과됩니다. 언제든지 취소할 수 있습니다.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "귀하의 플랜은 7일 무료 평가판입니다. 평가 기간이 만료될 때까지 카드에서 대금이 지불되지 않습니다. 이후 정기적으로 매 $INTERVAL$ 청구됩니다. 언제든지 취소할 수 있습니다." + }, + "paymentInformation": { + "message": "결제 정보" + }, + "billingInformation": { + "message": "결제 정보" + }, + "creditCard": { + "message": "신용카드" + }, + "paypalClickSubmit": { + "message": "PayPal 버튼을 클릭하여 PayPal 계정에 로그인한 후 아래의 제출 버튼을 클릭하여 계속 진행하십시오." + }, + "cancelSubscription": { + "message": "구독 취소" + }, + "subscriptionCanceled": { + "message": "구독을 취소했습니다." + }, + "pendingCancellation": { + "message": "보류 취소" + }, + "subscriptionPendingCanceled": { + "message": "구독은 현재 결제 기간이 끝날 때 취소로 표시됩니다." + }, + "reinstateSubscription": { + "message": "구독 복원" + }, + "reinstateConfirmation": { + "message": "보류중인 취소 요청을 제거하고 구독을 복원하시겠습니까?" + }, + "reinstated": { + "message": "구독을 복원했습니다." + }, + "cancelConfirmation": { + "message": "정말로 취소하시겠습니까? 청구 주기 후에 이 구독의 모든 기능에 대한 접근을 잃게 됩니다." + }, + "canceledSubscription": { + "message": "구독을 취소했습니다." + }, + "neverExpires": { + "message": "만료 없음" + }, + "status": { + "message": "상태" + }, + "nextCharge": { + "message": "다음 지불" + }, + "details": { + "message": "세부사항" + }, + "downloadLicense": { + "message": "라이선스 다운로드" + }, + "updateLicense": { + "message": "라이선스 업데이트" + }, + "updatedLicense": { + "message": "라이선스 업데이트됨" + }, + "manageSubscription": { + "message": "구독 관리" + }, + "storage": { + "message": "저장소" + }, + "addStorage": { + "message": "저장소 용량 추가" + }, + "removeStorage": { + "message": "저장소 용량 제거" + }, + "subscriptionStorage": { + "message": "귀하의 구독은 총 $MAX_STORAGE$ GB의 암호화된 파일 저장소 용량을 갖고 있습니다. 현재 $USED_STORAGE$만큼 사용했습니다.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "결제 수단" + }, + "noPaymentMethod": { + "message": "파일에 결제방식이 없습니다." + }, + "addPaymentMethod": { + "message": "결제 수단 추가" + }, + "changePaymentMethod": { + "message": "결제 수단 변경" + }, + "invoices": { + "message": "청구서" + }, + "noInvoices": { + "message": "청구서 없음" + }, + "paid": { + "message": "결제됨", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "미결제", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "거래내역", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "거래내역 없음." + }, + "chargeNoun": { + "message": "결제", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "환불", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "모든 요금은 $STATEMENT_NAME$으로 내역서에 표시됩니다.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "추가되는 저장소 용량 (GB)" + }, + "gbStorageRemove": { + "message": "삭제되는 저장소 용량 (GB)" + }, + "storageAddNote": { + "message": "저장소 용량을 추가하면 청구 총계가 조정되고 파일에 즉시 지불 방법이 청구됩니다. 첫 번째 요금은 현재 청구 주기의 나머지 기간 동안 적립될 것입니다." + }, + "storageRemoveNote": { + "message": "저장소 용량을 제거하면 다음 청구 비용에 대한 크레딧으로 할당된 청구 총계가 조정될 것입니다." + }, + "adjustedStorage": { + "message": "$AMOUNT$GB 저장소로 조정됨", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "고객 지원 서비스에 문의" + }, + "updatedPaymentMethod": { + "message": "결제방식 업데이트됨." + }, + "purchasePremium": { + "message": "프리미엄 구매" + }, + "licenseFile": { + "message": "라이선스 파일" + }, + "licenseFileDesc": { + "message": "라이선스 파일의 파일명은 $FILE_NAME$과 같을 것입니다.", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "프리미엄 멤버십으로 계정을 업그레이드하려면 유효한 라이선스 파일을 업로드해야 합니다." + }, + "uploadLicenseFileOrg": { + "message": "온-프레미스 호스트 조직을 생성하려면 유효한 라이선스 파일을 업로드하십시오." + }, + "accountEmailMustBeVerified": { + "message": "계정의 이메일 주소를 확인 해야 합니다." + }, + "newOrganizationDesc": { + "message": "조직에서는 다른 사람과 저장소 일부를 공유할 수 있을 뿐 아니라 가족, 소규모 팀 또는 대기업과 같은 특정 엔터티에 대한 관련 사용자를 관리할 수 있습니다." + }, + "generalInformation": { + "message": "일반 정보" + }, + "organizationName": { + "message": "조직 이름" + }, + "accountOwnedBusiness": { + "message": "이 계정은 기업이 소유하고 있습니다." + }, + "billingEmail": { + "message": "결제 이메일" + }, + "businessName": { + "message": "기업 이름" + }, + "chooseYourPlan": { + "message": "플랜을 선택하십시오" + }, + "users": { + "message": "사용자" + }, + "userSeats": { + "message": "사용자 수" + }, + "additionalUserSeats": { + "message": "추가 사용자 수" + }, + "userSeatsDesc": { + "message": "# 의 사용자 수" + }, + "userSeatsAdditionalDesc": { + "message": "귀하의 플랜은 $BASE_SEATS$개의 사용자 수가 제공됩니다. 사용자 당 월 $SEAT_PRICE$로 사용자를 추가할 수 있습니다.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "사용자 수가 얼마나 필요하십니까? 필요한 경우 나중에 사용자를 추가할 수 있습니다." + }, + "planNameFree": { + "message": "무료", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "테스트 용도나 개인 사용자는 다른 사용자에게 $COUNT$회 공유할 수 있습니다.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "가정" + }, + "planDescFamilies": { + "message": "개인적인 사용을 위해 가족과 친구들에게 공유하세요." + }, + "planNameTeams": { + "message": "팀" + }, + "planDescTeams": { + "message": "기업 및 기타 팀 조직용." + }, + "planNameEnterprise": { + "message": "기업" + }, + "planDescEnterprise": { + "message": "기업 및 기타 대규모 조직용." + }, + "freeForever": { + "message": "영구 무료" + }, + "includesXUsers": { + "message": "$COUNT$명의 사용자 포함", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "추가 사용자" + }, + "costPerUser": { + "message": "사용자 당 $COST$", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "$COUNT$명의 사용자(자신 포함) 로 제한됨", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "$COUNT$개의 컬렉션으로 제한됨", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "$COUNT$명까지 사용자 추가 및 공유", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "사용자 무제한 추가 및 공유" + }, + "createUnlimitedCollections": { + "message": "무제한 컬렉션 만들기" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$의 암호화된 파일 저장소", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "온-프레미스 호스팅 (선택 사항)" + }, + "usersGetPremium": { + "message": "사용자가 프리미엄 멤버십 기능에 액세스 가능" + }, + "controlAccessWithGroups": { + "message": "그룹을 통한 사용자 액세스 제어" + }, + "syncUsersFromDirectory": { + "message": "디렉토리로부터 사용자 및 그룹 동기화" + }, + "trackAuditLogs": { + "message": "감사 로그로 사용자 동작 추적" + }, + "enforce2faDuo": { + "message": "Duo 2FA를 적용" + }, + "priorityCustomerSupport": { + "message": "우선 고객 지원" + }, + "xDayFreeTrial": { + "message": "$COUNT$일간 무료 평가, 언제든지 취소", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "월간" + }, + "annually": { + "message": "연간" + }, + "basePrice": { + "message": "기준 단가" + }, + "organizationCreated": { + "message": "조직 생성됨" + }, + "organizationReadyToGo": { + "message": "새 조직이 준비 완료되었습니다!" + }, + "organizationUpgraded": { + "message": "조직이 업그레이드되었습니다." + }, + "leave": { + "message": "나가기" + }, + "leaveOrganizationConfirmation": { + "message": "정말 이 조직을 떠나시겠습니까?" + }, + "leftOrganization": { + "message": "조직을 떠났습니다." + }, + "defaultCollection": { + "message": "기본 컬렉션" + }, + "getHelp": { + "message": "문의하기" + }, + "getApps": { + "message": "앱 다운로드" + }, + "loggedInAs": { + "message": "로그인됨" + }, + "eventLogs": { + "message": "이벤트 로그" + }, + "people": { + "message": "인물" + }, + "policies": { + "message": "정책" + }, + "singleSignOn": { + "message": "통합 인증(SSO)" + }, + "editPolicy": { + "message": "정책 수정" + }, + "groups": { + "message": "그룹" + }, + "newGroup": { + "message": "새 그룹" + }, + "addGroup": { + "message": "그룹 추가" + }, + "editGroup": { + "message": "그룹 편집" + }, + "deleteGroupConfirmation": { + "message": "정말 이 그룹을 삭제하시겠습니까?" + }, + "removeUserConfirmation": { + "message": "정말 이 사용자를 제거하시겠습니까?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "외부 ID" + }, + "externalIdDesc": { + "message": "외부 Id는 참조로 사용되거나 사용자 디렉토리같은 외부 시스템에 리소스를 링크할 수 있습니다." + }, + "accessControl": { + "message": "접근 제어" + }, + "groupAccessAllItems": { + "message": "이 그룹은 모든 항목에 액세스하고 수정할 수 있습니다." + }, + "groupAccessSelectedCollections": { + "message": "이 그룹은 선택된 컬렉션에만 액세스할 수 있습니다." + }, + "readOnly": { + "message": "읽기 전용" + }, + "newCollection": { + "message": "새 컬렉션" + }, + "addCollection": { + "message": "컬렉션 추가" + }, + "editCollection": { + "message": "컬렉션 편집" + }, + "deleteCollectionConfirmation": { + "message": "정말 이 컬렉션을 삭제하시겠습니까?" + }, + "editUser": { + "message": "사용자 편집" + }, + "inviteUser": { + "message": "사용자 초대" + }, + "inviteUserDesc": { + "message": "아래에 Bitwarden 계정 이메일 주소를 입력하여 조직에 새 사용자를 초대하십시오. Bitwarden 계정을 가지고 있지 않다면, 새로운 계정을 만들라는 메시지가 표시됩니다." + }, + "inviteMultipleEmailDesc": { + "message": "이메일 주소 목록을 쉼표(,)로 구분하여 한 번에 최대 $COUNT$명의 사용자를 초대할 수 있습니다.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "이 사용자는 계정을 보호하기 위해 2단계 로그인을 사용하고 있습니다." + }, + "userAccessAllItems": { + "message": "이 사용자는 모든 항목에 액세스하고 수정할 수 있습니다." + }, + "userAccessSelectedCollections": { + "message": "이 사용자는 선택된 컬렉션에만 액세스할 수 있습니다." + }, + "search": { + "message": "검색" + }, + "invited": { + "message": "초대함" + }, + "accepted": { + "message": "수락함" + }, + "confirmed": { + "message": "확인됨" + }, + "clientOwnerEmail": { + "message": "클라이언트 소유자 이메일" + }, + "owner": { + "message": "소유자" + }, + "ownerDesc": { + "message": "조직의 모든 측면을 관리할 수있는 최고 액세스 사용자." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "관리자" + }, + "adminDesc": { + "message": "관리자는 모든 항목, 컬렉션 및 조직 내 속한 사용자에 대해 액세스하고 관리할 수 있습니다." + }, + "user": { + "message": "사용자" + }, + "userDesc": { + "message": "조직 내 할당된 컬렉션에 액세스할 수 있는 일반 사용자." + }, + "manager": { + "message": "관리자" + }, + "managerDesc": { + "message": "관리자는 조직 내 할당된 컬렉션에 액세스하고 관리할 수 있습니다." + }, + "all": { + "message": "모두" + }, + "refresh": { + "message": "새로 고침" + }, + "timestamp": { + "message": "타임스탬프" + }, + "event": { + "message": "이벤트" + }, + "unknown": { + "message": "알 수 없음" + }, + "loadMore": { + "message": "더 불러오기" + }, + "mobile": { + "message": "모바일", + "description": "Mobile app" + }, + "extension": { + "message": "확장", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "데스크탑", + "description": "Desktop app" + }, + "webVault": { + "message": "웹 보관함" + }, + "loggedIn": { + "message": "로그인됨." + }, + "changedPassword": { + "message": "계정 비밀번호가 변경됨." + }, + "enabledUpdated2fa": { + "message": "2단계 로그인 활성화/갱신됨." + }, + "disabled2fa": { + "message": "2단계 로그인 비활성화됨." + }, + "recovered2fa": { + "message": "2단계 로그인으로 복구된 계정." + }, + "failedLogin": { + "message": "잘못된 암호로 로그인 시도가 실패했습니다." + }, + "failedLogin2fa": { + "message": "잘못된 2단계 로그인으로 로그인 시도가 실패했습니다." + }, + "exportedVault": { + "message": "보관함을 내보냈습니다." + }, + "exportedOrganizationVault": { + "message": "조직 보관함을 내보냈습니다." + }, + "editedOrgSettings": { + "message": "조직 설정이 수정되었습니다." + }, + "createdItemId": { + "message": "$ID$ 항목이 생성되었습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "$ID$ 항목이 수정되었습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "$ID$ 항목이 삭제되었습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "$ID$ 항목을 조직으로 이동시켰습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "$ID$ 항목을 확인했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "$ID$ 항목의 비밀번호를 확인했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "$ID$ 항목의 숨겨진 필드를 확인했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "$ID$ 항목의 보안 코드를 확인했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "$ID$ 항목의 비밀번호를 복사했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "$ID$ 항목의 숨겨진 필드를 복사했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "$ID$ 항목의 보안 코드를 복사했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "$ID$ 항목을 자동으로 채웠습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "$ID$ 컬렉션이 생성되었습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "$ID$ 컬렉션이 수정되었습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "$ID$ 컬렉션이 삭제되었습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "$ID$ 정책을 편집했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "$ID$ 그룹을 만들었습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "$ID$ 그룹을 편집했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "$ID$ 그룹을 삭제했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "$ID$ 사용자를 제거했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "$ID$ 항목에 첨부 파일을 만들었습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "$ID$ 항목에서 첨부 파일을 삭제했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "$ID$ 항목에 대한 컬렉션이 수정되었습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "$ID$ 사용자를 초대했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "$ID$ 사용자가 확인되었습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "$ID$ 사용자를 편집했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "$ID$ 사용자에 대한 그룹이 편집되었습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "$ID$ 사용자에 대한 SSO 연결이 해제되었습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "$ID$ 조직을 만들었습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "$ID$ 조직을 추가했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "$ID$ 조직을 제거했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "기기" + }, + "view": { + "message": "보기" + }, + "invalidDateRange": { + "message": "날짜 범위가 잘못되었습니다." + }, + "errorOccurred": { + "message": "오류가 발생했습니다." + }, + "userAccess": { + "message": "사용자 접근" + }, + "userType": { + "message": "사용자 유형" + }, + "groupAccess": { + "message": "그룹 접근" + }, + "groupAccessUserDesc": { + "message": "이 사용자가 속한 그룹을 편집합니다." + }, + "invitedUsers": { + "message": "사용자를 초대했습니다." + }, + "resendInvitation": { + "message": "초대장 다시 보내기" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$가 다시 초대되었습니다.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "확인" + }, + "confirmUser": { + "message": "사용자 확인" + }, + "hasBeenConfirmed": { + "message": "$USER$가 확인되었습니다.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "사용자 확인" + }, + "usersNeedConfirmed": { + "message": "초대에 수락한 사용자가 있지만 여전히 확인이 필요합니다. 사용자는 확인될 때까지 조직에 액세스할 수 없습니다." + }, + "startDate": { + "message": "시작 날짜" + }, + "endDate": { + "message": "종료 날짜" + }, + "verifyEmail": { + "message": "이메일 인증하기" + }, + "verifyEmailDesc": { + "message": "모든 기능에 대한 액세스 잠금을 해제하려면 계정의 이메일을 인증하십시오." + }, + "verifyEmailFirst": { + "message": "계정의 이메일 주소를 먼저 확인해야 합니다." + }, + "checkInboxForVerification": { + "message": "이메일 편지함에서 인증 링크를 확인하십시오." + }, + "emailVerified": { + "message": "이메일이 확인되었습니다." + }, + "emailVerifiedFailed": { + "message": "이메일을 인증할 수 없습니다. 새로운 인증을 이메일로 전송하십시오." + }, + "emailVerificationRequired": { + "message": "이메일 인증 필요함" + }, + "emailVerificationRequiredDesc": { + "message": "이 기능을 이용하기 위해서는 이메일을 인증해야 합니다." + }, + "updateBrowser": { + "message": "브라우저 업데이트" + }, + "updateBrowserDesc": { + "message": "지원하지 않는 웹 브라우저를 사용하고 있습니다. 웹 보관함 기능이 제대로 동작하지 않을 수 있습니다." + }, + "joinOrganization": { + "message": "조직 참가" + }, + "joinOrganizationDesc": { + "message": "이 조직에서 귀하에게 가입 초대를 보냈습니다. 초대를 수락하려면 로그인하거나 Bitwarden 계정을 생성해야 합니다." + }, + "inviteAccepted": { + "message": "초대 수락됨" + }, + "inviteAcceptedDesc": { + "message": "관리자의 확인을 받으면 조직에 액세스할 수 있습니다. 승인이 이뤄지면 이메일을 보내드리겠습니다." + }, + "inviteAcceptFailed": { + "message": "초대를 수락할 수 없습니다. 조직 관리자에게 새 초대장을 보내도록 요청하십시오." + }, + "inviteAcceptFailedShort": { + "message": "초대를 수락할 수 없습니다. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "이메일 기억하기" + }, + "recoverAccountTwoStepDesc": { + "message": "일반적인 2단계 로그인 방법을 통해 계정에 액세스할 수 없는 경우, 2단계 로그인 복구 코드를 사용하여 계정의 모든 2단계 제공자를 비활성화할 수 있습니다." + }, + "recoverAccountTwoStep": { + "message": "계정 2단계 로그인 복구하기" + }, + "twoStepRecoverDisabled": { + "message": "계정에 2단계 로그인이 비활성화되어 있습니다." + }, + "learnMore": { + "message": "더 알아보기" + }, + "deleteRecoverDesc": { + "message": "계정을 복구하거나 삭제하려면 아래에 이메일 주소를 입력하십시오." + }, + "deleteRecoverEmailSent": { + "message": "계정이 존재한다면 추가적인 안내사항이 있는 이메일을 보냈습니다." + }, + "deleteRecoverConfirmDesc": { + "message": "Biitiwarden 계정을 삭제하도록 요청했습니다. 아래 버튼을 클릭하여 확인하십시오." + }, + "myOrganization": { + "message": "내 조직" + }, + "deleteOrganization": { + "message": "조직 삭제" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "조직 삭제됨" + }, + "organizationDeletedDesc": { + "message": "조직과 연관된 모든 데이터가 삭제되었습니다." + }, + "organizationUpdated": { + "message": "조직 갱신됨" + }, + "taxInformation": { + "message": "세금 정보" + }, + "taxInformationDesc": { + "message": "청구서에 대한 세금 정보를 제공(또는 업데이트) 하려면 지원팀에 문의하십시오." + }, + "billingPlan": { + "message": "플랜", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Change Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "아래 정보를 제공하여 계정을 다른 플랜으로 업그레이드하십시오. 계정에 활성화된 결제 방식이 추가되어 있는지 확인하십시오.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "청구서 #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "청구서 보기" + }, + "downloadInvoice": { + "message": "청구서 다운로드" + }, + "verifyBankAccount": { + "message": "은행 계좌 인증하기" + }, + "verifyBankAccountDesc": { + "message": "우리는 귀하의 은행 계좌에 2건의 소액 결제정보를 생성했습니다(보여지기까지 1~2영업일 소요됨). 은행 계좌를 인증하려면 해당 금액을 입력하십시오." + }, + "verifyBankAccountInitialDesc": { + "message": "은행 계좌를 통한 결제는 미국 내 고객만 이용할 수 있습니다. 은행 계좌는 확인이 필요합니다. 1-2영업일 이내에 2건의 소액 결제정보를 생성할 것입니다. 은행 계좌를 인증하려면 조직 내 청구 페이지에서 해당 금액을 입력하십시오." + }, + "verifyBankAccountFailureWarning": { + "message": "은행 계좌를 확인하지 않으면 결제가 누락되어 구독이 비활성화됩니다." + }, + "verifiedBankAccount": { + "message": "계좌 번호가 확인되었습니다." + }, + "bankAccount": { + "message": "은행 계좌" + }, + "amountX": { + "message": "금액 $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "라우팅 번호", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "계좌 번호" + }, + "accountHolderName": { + "message": "계좌 소유자 이름" + }, + "bankAccountType": { + "message": "계좌 유형" + }, + "bankAccountTypeCompany": { + "message": "회사 (기업)" + }, + "bankAccountTypeIndividual": { + "message": "개인 (개인)" + }, + "enterInstallationId": { + "message": "설치 ID를 입력하십시오" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "최대 시트 제한 (선택)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "사용자 수 추가", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "사용자 수 제거", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "귀하의 구독은 총 $COUNT$명의 사용자를 허용합니다.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "구독 제한 (선택)" + }, + "subscriptionSeats": { + "message": "구독 시트" + }, + "subscriptionUpdated": { + "message": "구독 업데이트됨" + }, + "additionalOptions": { + "message": "추가 옵션" + }, + "additionalOptionsDesc": { + "message": "구독과 관련하여 추가적인 도움이 필요한 경우 고객 지원에 문의하십시오." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "추가할 사용자 수" + }, + "seatsToRemove": { + "message": "제거할 사용자 수" + }, + "seatsAddNote": { + "message": "사용자 수를 추가하면 청구 총계가 조정되고 파일에 즉시 지불 방법이 청구됩니다. 첫 번째 요금은 현재 청구 주기의 나머지 기간 동안 적립될 것입니다." + }, + "seatsRemoveNote": { + "message": "사용자 수를 제거하면 다음 청구 비용에 대한 크레딧으로 할당된 청구 총계가 조정될 것입니다." + }, + "adjustedSeats": { + "message": "사용자 수가 $AMOUNT$명으로 조정됨", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "키 업데이트됨" + }, + "updateKeyTitle": { + "message": "키 업데이트" + }, + "updateEncryptionKey": { + "message": "암호화 키 업데이트" + }, + "updateEncryptionKeyShortDesc": { + "message": "현재 오래된 암호화 체계를 사용하고 있습니다." + }, + "updateEncryptionKeyDesc": { + "message": "우리는 더 나은 보안 및 새로운 기능에 대한 액세스를 제공하는 더 큰 암호화 키로 이동했습니다. 암호화 키를 업데이트하는 것은 빠르고 쉽습니다. 그저 마스터 비밀번호를 입력하면 됩니다. 이 업데이트는 결국 필수사항이 될 것입니다." + }, + "updateEncryptionKeyWarning": { + "message": "암호화 키를 업데이트하고난 후 현재 사용 중인 모든 Bitwarden 애플리케이션(예. 모바일 앱 혹은 브라우저 확장 기능)에서 로그아웃 후 다시 로그인해야 합니다. 재로그인하지 않으면 (새 암호화 키를 다운로드받는 경우) 데이터 손실이 발생할 수 있습니다. 자동으로 로그아웃을 시도하지만 지연될 수 있습니다." + }, + "updateEncryptionKeyExportWarning": { + "message": "이전에 암호화 상태로 내보내기하여 저장한 데이터도 무효화됩니다." + }, + "subscription": { + "message": "구독" + }, + "loading": { + "message": "불러오는 중" + }, + "upgrade": { + "message": "업그레이드" + }, + "upgradeOrganization": { + "message": "조직 업그레이드" + }, + "upgradeOrganizationDesc": { + "message": "이 기능은 무료 조직에서는 사용할 수 없습니다. 더 많은 기능을 이용하려면 유료 플랜으로 전환하십시오." + }, + "createOrganizationStep1": { + "message": "조직 만들기: 1단계" + }, + "createOrganizationCreatePersonalAccount": { + "message": "조직을 생성하기 전에 먼저 무료 개인 계정을 생성해야 합니다." + }, + "refunded": { + "message": "환불됨" + }, + "nothingSelected": { + "message": "아무것도 선택하지 않았습니다." + }, + "acceptPolicies": { + "message": "이 박스를 체크하면 다음에 동의하는 것으로 간주됩니다:" + }, + "acceptPoliciesError": { + "message": "서비스 약관 및 개인 정보 보호 정책을 확인하지 않았습니다." + }, + "termsOfService": { + "message": "서비스 약관" + }, + "privacyPolicy": { + "message": "개인 정보 보호 정책" + }, + "filters": { + "message": "필터" + }, + "vaultTimeout": { + "message": "보관함 시간 제한" + }, + "vaultTimeoutDesc": { + "message": "보관함이 언제까지 시간을 제한하고 선택된 행동을 수행하지 선택해주세요." + }, + "oneMinute": { + "message": "1분" + }, + "fiveMinutes": { + "message": "5분" + }, + "fifteenMinutes": { + "message": "15분" + }, + "thirtyMinutes": { + "message": "30분" + }, + "oneHour": { + "message": "1시간" + }, + "fourHours": { + "message": "4시간" + }, + "onRefresh": { + "message": "브라우저 새로 고침 시" + }, + "dateUpdated": { + "message": "업데이트됨", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "비밀번호 업데이트됨", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "조직이 비활성화됨" + }, + "licenseIsExpired": { + "message": "라이선스가 만료되었습니다." + }, + "updatedUsers": { + "message": "업데이트된 사용자" + }, + "selected": { + "message": "선택됨" + }, + "ownership": { + "message": "소유자" + }, + "whoOwnsThisItem": { + "message": "이 항목의 소유자는 누구입니까?" + }, + "strong": { + "message": "강함", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "괜찮음", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "약함", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "매우 약함", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "취약한 마스터 비밀번호" + }, + "weakMasterPasswordDesc": { + "message": "선택한 마스터 비밀번호는 취약합니다. Bitwarden 계정을 확실히 보호하려면 강력한 마스터 비밀번호(혹은 패스프레이즈)를 사용해야 합니다. 정말 이 마스터 비밀번호를 사용하시겠습니까?" + }, + "rotateAccountEncKey": { + "message": "내 계정의 암호화 키 회전" + }, + "rotateEncKeyTitle": { + "message": "암호화 키 교체하기" + }, + "rotateEncKeyConfirmation": { + "message": "정말 계정의 암호화 키를 교체하시겠습니까?" + }, + "attachmentsNeedFix": { + "message": "이 항목은 수정이 필요한 오래된 파일을 갖고 있습니다." + }, + "attachmentFixDesc": { + "message": "이것은 수정이 필요한 오래된 파일입니다. 자세한 내용을 보려면 클릭하십시오." + }, + "fix": { + "message": "수정", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "계정의 암호화 키를 교체하기 전에 보관함 내 오래된 파일 수정이 필요합니다." + }, + "yourAccountsFingerprint": { + "message": "계정 지문 구절", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "암호화 키의 무결성을 확인하려면 계속하기 전에 사용자의 지문 구문을 확인하십시오.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "지문 구절을 다시 확인하지 않음", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "무료", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API 키" + }, + "apiKeyDesc": { + "message": "API 키를 사용하여 Bitwarden 공용 API에 인증할 수 있습니다." + }, + "apiKeyRotateDesc": { + "message": "API 키를 교체하면 이전 키는 무효화됩니다. 현재 키가 더 이상 안전하지 않다고 판단되면 API 키를 교체할 수 있습니다." + }, + "apiKeyWarning": { + "message": "귀하의 API 키는 조직에 대한 전체 액세스 권한을 가집니다. 이것은 비밀로 해야 합니다." + }, + "userApiKeyDesc": { + "message": "API 키를 사용하여 Bitwarden CLI에 인증할 수 있습니다." + }, + "userApiKeyWarning": { + "message": "당신의 API 키는 대체 인증 수단입니다. 안전하게 보관해주세요." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 클라이언트 자격 증명", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "API 키 보기" + }, + "rotateApiKey": { + "message": "API 키 교체" + }, + "selectOneCollection": { + "message": "반드시 하나 이상의 모음을 선택해야 합니다." + }, + "couldNotChargeCardPayInvoice": { + "message": "카드에 청구할 수 없습니다. 아래 목록에서 결제되지 않은 인보이스를 확인하고 결제해주세요." + }, + "inAppPurchase": { + "message": "애플리케이션 내 구매" + }, + "cannotPerformInAppPurchase": { + "message": "인 앱 결제 수단을 사용하고 있을 때에는 이 행동을 수행할 수 없습니다." + }, + "manageSubscriptionFromStore": { + "message": "인 앱 결제가 이루어진 스토어에서 구독을 관리해야 합니다." + }, + "minLength": { + "message": "최소 길이" + }, + "clone": { + "message": "복제" + }, + "masterPassPolicyDesc": { + "message": "마스터 비밀번호 강도에 대한 최소 요구 사항을 설정해주세요." + }, + "twoStepLoginPolicyDesc": { + "message": "개인 계정에서 2단계 로그인을 요구합니다." + }, + "twoStepLoginPolicyWarning": { + "message": "2단계 로그인을 활성화하지 않은 단체 맴버는 단체에서 제거되며 변경 사항에 대한 이메일 알림을 받습니다." + }, + "twoStepLoginPolicyUserWarning": { + "message": "사용자 계정에 대해서 2단계 로그인을 요구하는 단체의 멤버입니다. 모든 2단계 로그인 수단을 비활성화한다면 단체에서 자동으로 제거됩니다." + }, + "passwordGeneratorPolicyDesc": { + "message": "비밀번호 생성기 설정에 최소 요구 사항을 설정해주세요." + }, + "passwordGeneratorPolicyInEffect": { + "message": "하나 이상의 단체 정책이 생성기 설정에 영항을 미치고 있습니다." + }, + "masterPasswordPolicyInEffect": { + "message": "하나 이상의 단체 정책이 마스터 비밀번호가 다음 사항을 따르도록 요구합니다:" + }, + "policyInEffectMinComplexity": { + "message": "최소 복잡도 점수 $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "최소 길이 $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "하나 이상의 대문자 포함" + }, + "policyInEffectLowercase": { + "message": "하나 이상의 소문자 포함" + }, + "policyInEffectNumbers": { + "message": "하나 이상의 숫자 포함" + }, + "policyInEffectSpecial": { + "message": "하나 이상의 특수문자 포함 $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "새 마스터 비밀번호가 정책 요구 사항을 따르지 않습니다." + }, + "minimumNumberOfWords": { + "message": "단어 최소 개수" + }, + "defaultType": { + "message": "기본 유형" + }, + "userPreference": { + "message": "사용자 설정" + }, + "vaultTimeoutAction": { + "message": "보관함 시간 제한 초과시 동작" + }, + "vaultTimeoutActionLockDesc": { + "message": "잠긴 보관함에 다시 접근하려면 마스터 비밀번호를 입력해야 합니다." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "로그아웃한 보관함에 다시 접근하려면 다시 인증해야 합니다." + }, + "lock": { + "message": "잠금", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "휴지통", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "휴지통 검색" + }, + "permanentlyDelete": { + "message": "영구적으로 삭제" + }, + "permanentlyDeleteSelected": { + "message": "선택한 항목을 영구적으로 삭제" + }, + "permanentlyDeleteItem": { + "message": "영구적으로 항목 삭제" + }, + "permanentlyDeleteItemConfirmation": { + "message": "정말로 이 항목을 영구적으로 삭제하시겠습니까?" + }, + "permanentlyDeletedItem": { + "message": "영구적으로 삭제된 항목" + }, + "permanentlyDeletedItems": { + "message": "영구적으로 삭제된 항목" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "영구 삭제를 위해 $COUNT$ 개의 항목이 선택되었습니다. 정말로 이 항목들을 모두 영구적으로 삭제하시겠습니까?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "영구적으로 삭제된 항목 $ID$ 을(를) 삭제했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "복원" + }, + "restoreSelected": { + "message": "선택 항목 복원" + }, + "restoreItem": { + "message": "항목 복구" + }, + "restoredItem": { + "message": "복구된 항목" + }, + "restoredItems": { + "message": "복구된 항목" + }, + "restoreItemConfirmation": { + "message": "정말로 이 항목을 복구하시겠습니까?" + }, + "restoreItems": { + "message": "항목 복구" + }, + "restoreSelectedItemsDesc": { + "message": "복구를 위해 $COUNT$ 개의 항목이 선택되었습니다. 정말로 이 항목들을 모두 복구하시겠습니까?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "$ID$ 항목이 복구되었습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "로그아웃하면 보관함에 대한 모든 접근이 제거되며 시간 제한을 초과하면 온라인 인증을 요구합니다. 정말로 이 설정을 사용하시겠습니까?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "시간 제한 초과시 동작 확인" + }, + "hidePasswords": { + "message": "비밀번호 숨기기" + }, + "countryPostalCodeRequiredDesc": { + "message": "세금 계산 및 금융 보고만을 위해서 해당 정보가 필요합니다." + }, + "includeVAT": { + "message": "VAT/GST 정보 포함 (선택)" + }, + "taxIdNumber": { + "message": "VAT/GST 세금 ID" + }, + "taxInfoUpdated": { + "message": "세금 정보가 업데이트되었습니다." + }, + "setMasterPassword": { + "message": "마스터 비밀번호 설정" + }, + "ssoCompleteRegistration": { + "message": "SSO 로그인을 하기 위해서 보관함에 접근하고 보호할 수 있도록 마스터 비밀번호를 설정해주세요." + }, + "identifier": { + "message": "식별자" + }, + "organizationIdentifier": { + "message": "조직 식별자" + }, + "ssoLogInWithOrgIdentifier": { + "message": "조직의 통합 인증(SSO) 포탈을 통해서 로그인하세요. 시작하려면 조직 식별자를 입력해주세요." + }, + "enterpriseSingleSignOn": { + "message": "엔터프라이즈 통합 인증 (SSO)" + }, + "ssoHandOff": { + "message": "이제 이 탭을 닫고 확장 프로그램에서 계속 진행하셔도 됩니다." + }, + "includeAllTeamsFeatures": { + "message": "모든 팀 기능, 추가로:" + }, + "includeSsoAuthentication": { + "message": "SAML2.0과 OpenID Connect를 통한 SSO 인증" + }, + "includeEnterprisePolicies": { + "message": "엔터프라이즈 정책" + }, + "ssoValidationFailed": { + "message": "SSO 검증 실패" + }, + "ssoIdentifierRequired": { + "message": "조직 식별자가 필요합니다." + }, + "unlinkSso": { + "message": "SSO 연결 해제" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "SSO 연결" + }, + "singleOrg": { + "message": "통합 조직" + }, + "singleOrgDesc": { + "message": "사용자들이 다른 조직에 가입하지 못하도록 제한합니다." + }, + "singleOrgBlockCreateMessage": { + "message": "현재 조직에 하나 이상의 조직에 참가할 수 없도록 정책이 지정되어 있습니다. 조직 관리자에게 문의하거나 다른 Bitwarden 계정으로 로그앤해주세요." + }, + "singleOrgPolicyWarning": { + "message": "소유자 또는 관리자가 아닌 조직 구성원 및 이미 다른 조직의 구성원인 경우 이 조직에서 제거됩니다." + }, + "requireSso": { + "message": "통합 (SSO) 인증" + }, + "requireSsoPolicyDesc": { + "message": "엔터프라이즈 통합 로그인 (SSO) 수단을 사용해서 로그인해야 합니다." + }, + "prerequisite": { + "message": "필요 조건" + }, + "requireSsoPolicyReq": { + "message": "이 정책을 활성화하기 전에 통합 조직 엔터프라이즈 정책이 활성화되어 있어야합니다." + }, + "requireSsoPolicyReqError": { + "message": "통합 조직 정책이 활성화되지 않았습니다." + }, + "requireSsoExemption": { + "message": "조직 소유자와 관리자는 이 정책을 적용받지 않습니다." + }, + "sendTypeFile": { + "message": "파일" + }, + "sendTypeText": { + "message": "텍스트" + }, + "createSend": { + "message": "새 Send 생성", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Send 편집", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send 생성함", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Send 수정함", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send 삭제함", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Send 삭제", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "정말 이 Send를 삭제하시겠습니까?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "어떤 유형의 Send인가요?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "삭제 날짜" + }, + "deletionDateDesc": { + "message": "이 Send가 정해진 일시에 영구적으로 삭제됩니다.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "만료일" + }, + "expirationDateDesc": { + "message": "설정할 경우, 이 Send에 대한 접근 권한이 정해진 일시에 만료됩니다.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "최대 접근 횟수" + }, + "maxAccessCountDesc": { + "message": "설정할 경우, 최대 접근 횟수에 도달할 때 이 Send에 접근할 수 없게 됩니다.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "현재 접근 횟수" + }, + "sendPasswordDesc": { + "message": "이 Send에 접근하기 위해 암호를 입력하도록 선택적으로 요구합니다.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "이 Send에 대한 비공개 메모", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "비활성화됨" + }, + "sendLink": { + "message": "Send 링크", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Send 링크 복사", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "비밀번호 제거" + }, + "removedPassword": { + "message": "비밀번호 제거함" + }, + "removePasswordConfirmation": { + "message": "비밀번호를 제거하시겠습니까?" + }, + "hideEmail": { + "message": "받는 사람으로부터 나의 이메일 주소 숨기기" + }, + "disableThisSend": { + "message": "이 Send를 비활성화하여 아무도 접근할 수 없게 합니다.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "모든 Send" + }, + "maxAccessCountReached": { + "message": "최대 접근 횟수 도달", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "삭제 대기 중" + }, + "expired": { + "message": "만료됨" + }, + "searchSends": { + "message": "Send 검색", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "이 Send는 비밀번호로 보호되어 있습니다. 계속하려면 비밀번호를 입력해주세요.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "비밀번호를 모르시나요? 보낸 사람에게 Send에 접근할 수 있는 비밀번호를 요청하세요.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "이 Send는 기본적으로 숨겨져 있습니다. 아래의 버튼을 눌러 공개 여부를 전환할 수 있습니다.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "파일 다운로드" + }, + "sendAccessUnavailable": { + "message": "접근하려고 하는 Send가 존재하지 않거나 더이상 제공되지 않습니다.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "이 Send와 연관된 파일을 찾을 수 없습니다.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Send가 없습니다.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "긴급 접근" + }, + "emergencyAccessDesc": { + "message": "신뢰할 수 있는 연락처에 긴급 접근 권한을 부여하고 관리합니다. 신뢰할 수 있는 연락처는 보관함 내용을 보거나 계정을 넘겨받기 위해 권한을 요청할 수도 있습니다. 도움말 페이지를 방문하여 영지식 증명을 통한 공유의 작동 방식에 대해 더 자세히 알아보세요." + }, + "emergencyAccessOwnerWarning": { + "message": "현재 하나 이상의 조직의 소유자입니다. 긴급 연락처에 넘겨받기 권한을 부여할 경우, 해당 연락처가 계정을 넘겨받은 뒤에는 소유자로서의 당신의 권한을 모두 행사할 수 있게 됩니다." + }, + "trustedEmergencyContacts": { + "message": "신뢰할 수 있는 긴급 연락처" + }, + "noTrustedContacts": { + "message": "아직 긴급 연락처를 추가하지 않으셨습니다. 시작하려면 신뢰할 수 있는 연락처를 초대하십시오." + }, + "addEmergencyContact": { + "message": "긴급 연락처 추가" + }, + "designatedEmergencyContacts": { + "message": "긴급 연락처로 지정됨" + }, + "noGrantedAccess": { + "message": "아직 당신을 긴급 연락처로 지정한 사람이 없습니다." + }, + "inviteEmergencyContact": { + "message": "긴급 연락처 초대" + }, + "editEmergencyContact": { + "message": "긴급 연락처 편집" + }, + "inviteEmergencyContactDesc": { + "message": "긴급 연락처로 초대하고자 하는 사람의 Bitwarden 계정 이메일 주소를 아래에 입력하십시오. 초대받는 사람이 Bitwarden 계정을 가지고 있지 않은 경우에는 새로운 계정을 만들라는 메시지가 표시될 것입니다." + }, + "emergencyAccessRecoveryInitiated": { + "message": "긴급 접근 시작됨" + }, + "emergencyAccessRecoveryApproved": { + "message": "긴급 접근 승인됨" + }, + "viewDesc": { + "message": "보관함의 모든 항목을 볼 수 있습니다." + }, + "takeover": { + "message": "넘겨받기" + }, + "takeoverDesc": { + "message": "새로운 마스터 비밀번호를 만들어 계정을 재설정할 수 있습니다." + }, + "waitTime": { + "message": "대기 시간" + }, + "waitTimeDesc": { + "message": "자동으로 접근 권한을 부여하기까지 필요한 시간." + }, + "oneDay": { + "message": "1일" + }, + "days": { + "message": "$DAYS$일", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "사용자를 초대했습니다." + }, + "acceptEmergencyAccess": { + "message": "위에 표시된 사용자가 자신의 긴급 연락처에 당신을 초대했습니다. 이 초대를 수락하기 위해서는 로그인하거나 새로운 Bitwarden 계정을 만들어야 합니다." + }, + "emergencyInviteAcceptFailed": { + "message": "초대를 수락할 수 없습니다. 해당 사용자에게 새 초대장을 보내도록 요청하십시오." + }, + "emergencyInviteAcceptFailedShort": { + "message": "초대를 수락할 수 없습니다. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "이 사용자가 당신의 신원을 확인하면 이 사용자에 대한 긴급 설정에 접근할 수 있게 됩니다. 확인이 진행되면 이메일을 보내드리겠습니다." + }, + "requestAccess": { + "message": "접근 요청" + }, + "requestAccessConfirmation": { + "message": "정말 긴급 접근을 요청하시겠습니까? $WAITTIME$일 후 혹은 해당 사용자가 직접 이 요청을 수락할 때 접근할 수 있게 됩니다.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "$USER$에 대한 긴급 접근을 요청했습니다. 다음 단계로 진행할 수 있을 때 이메일로 알려드리겠습니다.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "승인" + }, + "reject": { + "message": "거절" + }, + "approveAccessConfirmation": { + "message": "정말 긴급 접근을 승인하시겠습니까? 승인하는 경우 $USER$ 사용자가 이 계정에 다음의 동작을 수행할 수 있습니다: $ACTION$", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "긴급 접근 승인됨." + }, + "emergencyRejected": { + "message": "긴급 접근 거절됨." + }, + "passwordResetFor": { + "message": "$USER$ 사용자의 비밀번호가 초기화되었습니다. 이제 새로운 비밀번호로 로그인할 수 있습니다.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "개인 소유권" + }, + "personalOwnershipPolicyDesc": { + "message": "개인 소유권 옵션을 해제함으로써 보관함의 항목을 조직에 저장하도록 사용자에게 요청합니다." + }, + "personalOwnershipExemption": { + "message": "조직 소유자와 관리자는 이 정책을 적용받지 않습니다." + }, + "personalOwnershipSubmitError": { + "message": "엔터프라이즈 정책으로 인해 개인 보관함에 항목을 저장할 수 없습니다. 조직에서 소유권 설정을 변경한 다음, 사용 가능한 컬렉션 중에서 선택해주세요." + }, + "disableSend": { + "message": "Send 비활성화" + }, + "disableSendPolicyDesc": { + "message": "사용자가 Bitwarden Send를 생성하거나 수정할 수 없게 합니다. 이미 생성된 Send를 삭제하는 것은 계속 허용됩니다.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "조직의 정책을 관리할 수 있는 사용자는 이 정책의 영향을 받지 않습니다." + }, + "sendDisabled": { + "message": "Send 비활성화됨", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "엔터프라이즈 정책으로 인해 이미 생성된 Send를 삭제하는 것만 허용됩니다.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send 설정", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Send를 생성하거나 수정하는 것과 관련된 옵션을 설정합니다.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "조직의 정책을 관리할 수 있는 사용자는 이 정책의 영향을 받지 않습니다." + }, + "disableHideEmail": { + "message": "사용자가 Send를 생성하거나 수정할 때 받는 사람으로부터 자신의 이메일 주소를 숨기지 못하게 합니다.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "다음 단체 정책이 현재 영향을 미치고 있습니다:" + }, + "sendDisableHideEmailInEffect": { + "message": "사용자는 Send를 생성하거나 수정할 때 받는 사람으로부터 자신의 이메일 주소를 숨기지 못하게 됩니다.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "$ID$ 정책을 편집했습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "요금제 가격" + }, + "estimatedTax": { + "message": "예상 세금" + }, + "custom": { + "message": "사용자 지정" + }, + "customDesc": { + "message": "고급 설정을 위해 더욱 세분화된 사용자 권한 설정을 활성화합니다." + }, + "permissions": { + "message": "권한" + }, + "accessEventLogs": { + "message": "이벤트 로그 접근" + }, + "accessImportExport": { + "message": "가져오기/내보내기 접근" + }, + "accessReports": { + "message": "보고서 접근" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "모든 컬렉션 관리" + }, + "createNewCollections": { + "message": "새 컬렉션 만들기" + }, + "editAnyCollection": { + "message": "아무 컬렉션 편집" + }, + "deleteAnyCollection": { + "message": "아무 컬렉션 삭제" + }, + "manageAssignedCollections": { + "message": "할당된 컬렉션 관리" + }, + "editAssignedCollections": { + "message": "할당된 컬렉션 수정" + }, + "deleteAssignedCollections": { + "message": "할당된 컬렉션 삭제" + }, + "manageGroups": { + "message": "그룹 관리" + }, + "managePolicies": { + "message": "정책 관리" + }, + "manageSso": { + "message": "SSO 관리" + }, + "manageUsers": { + "message": "사용자 관리" + }, + "manageResetPassword": { + "message": "비밀번호 초기화 관리" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "조직의 정책이 소유권 설정에 영향을 미치고 있습니다." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "조직 사용자의 개인 소유권 비활성화" + }, + "textHiddenByDefault": { + "message": "Send에 접근할 때 기본적으로 텍스트를 숨김", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "이 Send의 이름", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "전송하려는 텍스트" + }, + "sendFileDesc": { + "message": "전송하려는 파일" + }, + "copySendLinkOnSave": { + "message": "저장할 때 이 Send를 공유하기 위한 링크를 클립보드에 복사합니다." + }, + "sendLinkLabel": { + "message": "Send 링크", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send는 민감하고 일시적인 정보를 다른 사람들에게 쉽고 안전하게 보낼 수 있게 해줍니다.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "오늘", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "다른 사람에게 텍스트 또는 파일을 공유하세요." + }, + "sendVaultCardLearnMore": { + "message": "자세히 알아보고", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "어떻게", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "작동하는지 확인하거나", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "지금", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "체험해보세요", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "에 대해서 알아보거나", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "가입을", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "해서 체험해보세요.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden의 $USER_IDENTIFIER$ 사용자가 다음 내용을 당신과 공유했습니다", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "이 Send를 생성한 Bitwarden 사용자가 자신의 이메일 주소를 숨겼습니다. 이 링크에 접속하거나 내용을 다운로드하기 전에, 이 링크의 출처를 신뢰하는지 확인하십시오.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "제공된 만료 날짜가 유효하지 않습니다." + }, + "deletionDateIsInvalid": { + "message": "제공된 삭제 날짜가 유효하지 않습니다." + }, + "expirationDateAndTimeRequired": { + "message": "만료 날짜와 시간은 반드시 입력해야 합니다." + }, + "deletionDateAndTimeRequired": { + "message": "삭제 날짜와 시간은 반드시 입력해야 합니다." + }, + "dateParsingError": { + "message": "삭제 날짜와 만료 날짜를 저장하는 도중 오류가 발생했습니다." + }, + "webAuthnFallbackMsg": { + "message": "2단계 인증을 확인하려면 아래의 버튼을 클릭하십시오." + }, + "webAuthnAuthenticate": { + "message": "WebAuthn 인증" + }, + "webAuthnNotSupported": { + "message": "이 브라우저에서는 WebAuthn이 지원되지 않습니다." + }, + "webAuthnSuccess": { + "message": "WebAuthn 인증을 성공적으로 완료했습니다!
이제 이 탭을 닫아도 좋습니다." + }, + "hintEqualsPassword": { + "message": "비밀번호 힌트는 비밀번호와 같을 수 없습니다." + }, + "enrollPasswordReset": { + "message": "비밀번호 초기화에 등록" + }, + "enrolledPasswordReset": { + "message": "비밀번호 초기화에 등록됨" + }, + "withdrawPasswordReset": { + "message": "비밀번호 초기화에서 등록 해제" + }, + "enrollPasswordResetSuccess": { + "message": "성공적으로 등록됨!" + }, + "withdrawPasswordResetSuccess": { + "message": "성공적으로 등록 해제됨!" + }, + "eventEnrollPasswordReset": { + "message": "$ID$ 사용자가 비밀번호 초기화 지원에 등록되었습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "$ID$ 사용자가 비밀번호 초기화 지원에서 등록 해제되었습니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "$ID$ 사용자의 마스터 비밀번호를 재설정합니다.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "사용자 $ID$ SSO 링크 초기화", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "비밀번호 재설정" + }, + "resetPasswordLoggedOutWarning": { + "message": "계속 진행하면 $NAME$이 로그아웃되므로 다시 로그인해야 합니다. 다른 기기에서 접속 중인 세션은 1시간 동안 접속이 가능합니다.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "이 사용자" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "하나 이상의 단체 정책이 마스터 비밀번호가 다음 사항을 따르도록 요구합니다:" + }, + "resetPasswordSuccess": { + "message": "비밀번호 재설정 성공!" + }, + "resetPasswordEnrollmentWarning": { + "message": "등록하면 조직 관리자가 마스터 비밀번호를 변경할 수 있습니다. 등록하시겠습니까?" + }, + "resetPasswordPolicy": { + "message": "마스터 비밀번호 재설정" + }, + "resetPasswordPolicyDescription": { + "message": "조직 관리자가 조직 사용자의 마스터 비밀번호를 재설정할 수 있도록 허용합니다." + }, + "resetPasswordPolicyWarning": { + "message": "조직의 사용자는 관리자가 마스터 암호를 재설정하기 전에 직접 등록 또는 자동 등록이 되어야 합니다." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "자동 등록" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "초대가 수락되면 모든 사용자는 자동으로 비밀번호 재설정에 등록됩니다." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "조직에 이미 있는 사용자는 비밀번호 재설정에 등록되지 않습니다. 관리자가 마스터 암호를 재설정하려면 먼저 직접 등록해야 합니다." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "자동으로 새로운 사용자 등록" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "이 조직에는 자동으로 비밀번호 재설정에 등록하는 기업 정책이 있습니다. 등록하면 조직 관리자가 마스터 암호를 변경할 수 있습니다." + }, + "resetPasswordOrgKeysError": { + "message": "조직 키 반응 없음" + }, + "resetPasswordDetailsError": { + "message": "비밀번호 재성정 정보 반응 없음" + }, + "trashCleanupWarning": { + "message": "휴지통으로 이동된 암호는 30일 이후 자동으로 삭제됩니다." + }, + "trashCleanupWarningSelfHosted": { + "message": "휴지통으로 이동된 암호는 일정 기간 이후 자동으로 삭제됩니다." + }, + "passwordPrompt": { + "message": "마스터 비밀번호 재확인" + }, + "passwordConfirmation": { + "message": "마스터 비밀번호 확인" + }, + "passwordConfirmationDesc": { + "message": "이 작업은 보호되어 있습니다. 계속하려면 마스터 비밀번호를 입력하여 신원을 인증하세요." + }, + "reinviteSelected": { + "message": "초대장 다시 보내기" + }, + "noSelectedUsersApplicable": { + "message": "이 작업은 선택한 사용자에게 적용할 수 없습니다." + }, + "removeUsersWarning": { + "message": "정말로 다음 사용자를 삭제하시겠어요? 프로세스를 완료하는 데에는 몇 초 정도가 걸릴 수 있으며 도중에 중단하거나 취소할 수 없습니다." + }, + "theme": { + "message": "테마" + }, + "themeDesc": { + "message": "보관함에 사용할 테마를 선택하십시오." + }, + "themeSystem": { + "message": "시스템 테마 사용하기" + }, + "themeDark": { + "message": "어두운 테마" + }, + "themeLight": { + "message": "밝은 테마" + }, + "confirmSelected": { + "message": "선택 항목 확인" + }, + "bulkConfirmStatus": { + "message": "일괄 작업 상태" + }, + "bulkConfirmMessage": { + "message": "성공적으로 확인되었습니다." + }, + "bulkReinviteMessage": { + "message": "성공적으로 재초대되었습니다." + }, + "bulkRemovedMessage": { + "message": "성공적으로 제거됨" + }, + "bulkFilteredMessage": { + "message": "제외되었습니다. 이 작업에는 적용되지 않습니다." + }, + "fingerprint": { + "message": "지문" + }, + "removeUsers": { + "message": "사용자 삭제" + }, + "error": { + "message": "오류" + }, + "resetPasswordManageUsers": { + "message": "비밀번호 재설정 관리 권한으로 사용자 관리도 활성화해야 합니다" + }, + "setupProvider": { + "message": "공급자 설정" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "공급자 이름" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "클라이언트" + }, + "providerAdmin": { + "message": "공급자 관리자" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "서비스 사용자" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "공급자 참가" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "공급자" + }, + "newClientOrganization": { + "message": "새 클라이언트 조직" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "이미 있는 조직 추가" + }, + "myProvider": { + "message": "내 공급자" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "공급자가 비활성화되었습니다." + }, + "providerUpdated": { + "message": "공급자 업데이트됨" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "추가" + }, + "updatedMasterPassword": { + "message": "마스터 비밀번호 변경됨" + }, + "updateMasterPassword": { + "message": "마스터 비밀번호 변경" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "보관함 시간 제한" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "최대 보관함 시간 제한" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "시" + }, + "minutes": { + "message": "분" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "사용자 지정 보관함 시간 제한" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "개인 보관함 내보내기 비활성화" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "보관함 내보내기 비활성화됨" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "SSO 유형 선택" + }, + "type": { + "message": "유형" + }, + "openIdConnectConfig": { + "message": "OpenID 연결 설정" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "콜백 경로" + }, + "signedOutCallbackPath": { + "message": "로그아웃 콜백 경로" + }, + "authority": { + "message": "기관" + }, + "clientId": { + "message": "클라이언트 ID" + }, + "clientSecret": { + "message": "클라이언트 비밀" + }, + "metadataAddress": { + "message": "메타데이터 액세스" + }, + "oidcRedirectBehavior": { + "message": "OIDC 리다이렉트 동작" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "추가/사용자 지정 사용자 ID 클레임 유형 (쉼표로 구분됨)" + }, + "additionalEmailClaimTypes": { + "message": "추가/사용자 지정 이메일 클레임 유형 (쉼표로 구분됨)" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP 엔티티 ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 메타데이터 URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "이름 ID 형식" + }, + "spOutboundSigningAlgorithm": { + "message": "아웃바운드 서명 알고리즘" + }, + "spSigningBehavior": { + "message": "로그인 동작" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "어써션 서명 필요" + }, + "spValidateCertificates": { + "message": "인증서 확인" + }, + "idpEntityId": { + "message": "엔티티 ID" + }, + "idpBindingType": { + "message": "바인딩 유형" + }, + "idpSingleSignOnServiceUrl": { + "message": "SSO 서비스 URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "SLO 서비스 URL" + }, + "idpX509PublicCert": { + "message": "X509 공개 인증서" + }, + "idpOutboundSigningAlgorithm": { + "message": "아웃바운드 서명 알고리즘" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "키 커넥터 URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "코드 전송" + }, + "codeSent": { + "message": "코드 전송됨" + }, + "verificationCode": { + "message": "인증 코드" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "인증 코드는 반드시 입력해야 합니다." + }, + "invalidVerificationCode": { + "message": "유효하지 않은 확인 코드" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "조직 나가기" + }, + "removeMasterPassword": { + "message": "마스터 비밀번호 제거" + }, + "removedMasterPassword": { + "message": "마스터 비밀번호가 제거되었습니다." + }, + "allowSso": { + "message": "SSO 인증 허용" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "활성화:", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO 인증 정책", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "멤버 복호화 옵션" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "키 커넥터" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "SSO 활성화됨" + }, + "disabledSso": { + "message": "SSO 비활성화됨" + }, + "enabledKeyConnector": { + "message": "키 커넥터 활성화됨" + }, + "disabledKeyConnector": { + "message": "키 커넥터 비활성화됨" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "키 커넥터로 마이그레이션됨" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "테스트" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/lv/messages.json b/apps/web/src/locales/lv/messages.json new file mode 100644 index 0000000000..38fa0e7a98 --- /dev/null +++ b/apps/web/src/locales/lv/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ tīmekļa glabātava", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Kāda veida vienums tas ir?" + }, + "name": { + "message": "Nosaukums" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Jauns URI" + }, + "username": { + "message": "Lietotājvārds" + }, + "password": { + "message": "Parole" + }, + "newPassword": { + "message": "Jauna parole" + }, + "passphrase": { + "message": "Paroles vārdkopa" + }, + "notes": { + "message": "Piezīmes" + }, + "customFields": { + "message": "Pielāgoti lauki" + }, + "cardholderName": { + "message": "Kartes īpašnieka vārds" + }, + "number": { + "message": "Numurs" + }, + "brand": { + "message": "Zīmols" + }, + "expiration": { + "message": "Derīgums" + }, + "securityCode": { + "message": "Drošības kods (CVV)" + }, + "identityName": { + "message": "Identitātes nosaukums" + }, + "company": { + "message": "Uzņēmums" + }, + "ssn": { + "message": "Personas kods" + }, + "passportNumber": { + "message": "Pases numurs" + }, + "licenseNumber": { + "message": "Autovadītāja apliecības numurs" + }, + "email": { + "message": "E-pasts" + }, + "phone": { + "message": "Tālrunis" + }, + "january": { + "message": "Janvāris" + }, + "february": { + "message": "Februāris" + }, + "march": { + "message": "Marts" + }, + "april": { + "message": "Aprīlis" + }, + "may": { + "message": "Maijs" + }, + "june": { + "message": "Jūnijs" + }, + "july": { + "message": "Jūlijs" + }, + "august": { + "message": "Augusts" + }, + "september": { + "message": "Septembris" + }, + "october": { + "message": "Oktobris" + }, + "november": { + "message": "Novembris" + }, + "december": { + "message": "Decembris" + }, + "title": { + "message": "Uzruna" + }, + "mr": { + "message": "K-gs" + }, + "mrs": { + "message": "K-dze" + }, + "ms": { + "message": "Jk-dze" + }, + "dr": { + "message": "Dr." + }, + "expirationMonth": { + "message": "Derīguma mēnesis" + }, + "expirationYear": { + "message": "Derīguma gads" + }, + "authenticatorKeyTotp": { + "message": "Autentificētāja atslēga (TOTP)" + }, + "folder": { + "message": "Mape" + }, + "newCustomField": { + "message": "Jauns pielāgotais lauks" + }, + "value": { + "message": "Vērtība" + }, + "dragToSort": { + "message": "Vilkt, lai kārtotu" + }, + "cfTypeText": { + "message": "Teksts" + }, + "cfTypeHidden": { + "message": "Paslēpts" + }, + "cfTypeBoolean": { + "message": "Patiesuma vērtība" + }, + "cfTypeLinked": { + "message": "Saistīts", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Noņemt" + }, + "unassigned": { + "message": "Nav piešķirts" + }, + "noneFolder": { + "message": "Nav mapes", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Pievienot mapi" + }, + "editFolder": { + "message": "Labot mapi" + }, + "baseDomain": { + "message": "Pamata domēns", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domēna vārds", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Saimniekdators", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Tiešs" + }, + "startsWith": { + "message": "Sākas ar" + }, + "regEx": { + "message": "Regulārā izteiksme", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Atbilstības noteikšana", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Noklusējuma atbilstības noteikšana", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Nekad" + }, + "toggleVisibility": { + "message": "Pārslēgt redzamību" + }, + "toggleCollapse": { + "message": "Pārslēgt sakļaušanu", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Veidot paroli" + }, + "checkPassword": { + "message": "Pārbaudīt, vai parole ir bijusi nopludināta." + }, + "passwordExposed": { + "message": "Šī parole datu pārkāpumos ir atklāta $VALUE$ reizi(es). To vajag mainīt.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Šī parole netika atrasta nevienā no zināmajiem datu pārkāpumiem. Tai vajadzētu būt droši izmantojamai." + }, + "save": { + "message": "Saglabāt" + }, + "cancel": { + "message": "Atcelt" + }, + "canceled": { + "message": "Atcelts" + }, + "close": { + "message": "Aizvērt" + }, + "delete": { + "message": "Dzēst" + }, + "favorite": { + "message": "Izlasē" + }, + "unfavorite": { + "message": "Izņemt no izlases" + }, + "edit": { + "message": "Labot" + }, + "searchCollection": { + "message": "Meklēt krājumā" + }, + "searchFolder": { + "message": "Meklēt mapē" + }, + "searchFavorites": { + "message": "Meklēt izlasē" + }, + "searchType": { + "message": "Meklēt veidu", + "description": "Search item type" + }, + "searchVault": { + "message": "Meklēt glabātavā" + }, + "allItems": { + "message": "Visi vienumi" + }, + "favorites": { + "message": "Izlase" + }, + "types": { + "message": "Veidi" + }, + "typeLogin": { + "message": "Pierakstīšanās vienums" + }, + "typeCard": { + "message": "Karte" + }, + "typeIdentity": { + "message": "Identitāte" + }, + "typeSecureNote": { + "message": "Droša piezīme" + }, + "typeLoginPlural": { + "message": "Pierakstīšanās vienumi" + }, + "typeCardPlural": { + "message": "Kartes" + }, + "typeIdentityPlural": { + "message": "Identitātes" + }, + "typeSecureNotePlural": { + "message": "Drošās piezīmes" + }, + "folders": { + "message": "Mapes" + }, + "collections": { + "message": "Krājumi" + }, + "firstName": { + "message": "Vārds" + }, + "middleName": { + "message": "Citi vārdi" + }, + "lastName": { + "message": "Uzvārds" + }, + "fullName": { + "message": "Pilnais vārds" + }, + "address1": { + "message": "Adrese 1" + }, + "address2": { + "message": "Adrese 2" + }, + "address3": { + "message": "Adrese 3" + }, + "cityTown": { + "message": "Pilsēta / ciems" + }, + "stateProvince": { + "message": "Novads / pagasts" + }, + "zipPostalCode": { + "message": "Pasta indekss" + }, + "country": { + "message": "Valsts" + }, + "shared": { + "message": "Kopīgots" + }, + "attachments": { + "message": "Pielikumi" + }, + "select": { + "message": "Atlasīt" + }, + "addItem": { + "message": "Pievienot vienumu" + }, + "editItem": { + "message": "Labot vienumu" + }, + "viewItem": { + "message": "Skatīt vienumu" + }, + "ex": { + "message": "piem.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Cits" + }, + "share": { + "message": "Kopīgot" + }, + "moveToOrganization": { + "message": "Pārvietot uz apvienību" + }, + "valueCopied": { + "message": "$VALUE$ ievietota starpliktuvē", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Ievietot vērtību starpliktuvē", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Ievietot paroli starpliktuvē", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Ievietot lietotājvārdu starpliktuvē", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Ievietot numuru starpliktuvē", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Ievietot drošības kodu starpliktuvē", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Ievietot URI starpliktuvē", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Mana glabātava" + }, + "vault": { + "message": "Glabātava" + }, + "moveSelectedToOrg": { + "message": "Pārvietot atzīmēto uz apvienību" + }, + "deleteSelected": { + "message": "Izdzēst atlasītos" + }, + "moveSelected": { + "message": "Pārvietot atlasītos" + }, + "selectAll": { + "message": "Atlasīt visu" + }, + "unselectAll": { + "message": "Noņemt atlasi" + }, + "launch": { + "message": "Palaist" + }, + "newAttachment": { + "message": "Pievienot jaunu pielikumu" + }, + "deletedAttachment": { + "message": "Pielikums izdzēsts" + }, + "deleteAttachmentConfirmation": { + "message": "Vai tiešām izdzēst šo pielikumu?" + }, + "attachmentSaved": { + "message": "Pielikums tika saglabāts." + }, + "file": { + "message": "Datne" + }, + "selectFile": { + "message": "Atlasīt datni." + }, + "maxFileSize": { + "message": "Lielākais pieļaujamais datnes izmērs ir 500 MB." + }, + "updateKey": { + "message": "Šo iespēju nevar izmantot, kamēr nav atjaunināta šifrēšanas atslēga." + }, + "addedItem": { + "message": "Vienums pievienots" + }, + "editedItem": { + "message": "Vienums labots" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ pārvietots uz $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Atzīmētie vienumi pārvietoti uz $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Izdzēst vienumu" + }, + "deleteFolder": { + "message": "Izdzēst mapi" + }, + "deleteAttachment": { + "message": "Izdzēst pielikumu" + }, + "deleteItemConfirmation": { + "message": "Vai tiešām pārvietot uz atkritni?" + }, + "deletedItem": { + "message": "Vienums pārvietots uz atkritni" + }, + "deletedItems": { + "message": "Vienumi pārvietoti uz atkritni" + }, + "movedItems": { + "message": "Vienumi pārvietoti" + }, + "overwritePasswordConfirmation": { + "message": "Vai tiešām pārrakstīt esošo paroli?" + }, + "editedFolder": { + "message": "Mape labota" + }, + "addedFolder": { + "message": "Mape pievienota" + }, + "deleteFolderConfirmation": { + "message": "Vai tiešām izdzēst šo mapi?" + }, + "deletedFolder": { + "message": "Mape izdzēsta" + }, + "loggedOut": { + "message": "Izrakstījies" + }, + "loginExpired": { + "message": "Pierakstīšanās sesija ir beigusies." + }, + "logOutConfirmation": { + "message": "Vai tiešām izrakstīties?" + }, + "logOut": { + "message": "Izrakstīties" + }, + "ok": { + "message": "Labi" + }, + "yes": { + "message": "Jā" + }, + "no": { + "message": "Nē" + }, + "loginOrCreateNewAccount": { + "message": "Pieraksties vai izveido jaunu kontu, lai piekļūtu drošajai glabātavai!" + }, + "createAccount": { + "message": "Izveidot kontu" + }, + "logIn": { + "message": "Pierakstīties" + }, + "submit": { + "message": "Iesniegt" + }, + "emailAddressDesc": { + "message": "E-pasta adrese būs jāizmanto, lai pierakstītos." + }, + "yourName": { + "message": "Vārds" + }, + "yourNameDesc": { + "message": "Kā mums Tevi uzrunāt?" + }, + "masterPass": { + "message": "Galvenā parole" + }, + "masterPassDesc": { + "message": "Galvenā parole ir parole, kas tiek izmantota, lai piekļūtu glabātavai. Ir ļoti svarīgi, ka tā netiek aizmirsta, jo tādā gadījumā to nav iespējams atgūt." + }, + "masterPassHintDesc": { + "message": "Galvenās paroles norāde var palīdzēt atcerēties paroli, ja tā ir aizmirsta." + }, + "reTypeMasterPass": { + "message": "Atkārtoti ievadīt galveno paroli" + }, + "masterPassHint": { + "message": "Galvenās paroles norāde (nav nepieciešama)" + }, + "masterPassHintLabel": { + "message": "Galvenās paroles norāde" + }, + "settings": { + "message": "Iestatījumi" + }, + "passwordHint": { + "message": "Paroles norāde" + }, + "enterEmailToGetHint": { + "message": "Norādīt konta e-pasta adresi, lai saņemtu galvenās paroles norādi." + }, + "getMasterPasswordHint": { + "message": "Saņemt galvenās paroles norādi" + }, + "emailRequired": { + "message": "Ir jānorāda e-pasta adrese." + }, + "invalidEmail": { + "message": "Nederīga e-pasta adrese." + }, + "masterPassRequired": { + "message": "Ir jānorāda galvenā parole." + }, + "masterPassLength": { + "message": "Galvenajai parolei ir jābūt vismaz 8 rakstzīmes garai." + }, + "masterPassDoesntMatch": { + "message": "Galvenās paroles apstiprinājums nesakrīt." + }, + "newAccountCreated": { + "message": "Tavs jaunais konts ir izveidots. Tagad Tu vari pierakstīties." + }, + "masterPassSent": { + "message": "Galvenās paroles norāde ir nosūtīta e-pastā." + }, + "unexpectedError": { + "message": "Ir radusies neparedzēta kļūda." + }, + "emailAddress": { + "message": "E-pasta adrese" + }, + "yourVaultIsLocked": { + "message": "Glabātava ir slēgta. Nepieciešams norādīt galveno paroli, lai turpinātu." + }, + "unlock": { + "message": "Atslēgt" + }, + "loggedInAsEmailOn": { + "message": "Pierakstījies $HOSTNAME$ kā $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Nederīga galvenā parole" + }, + "lockNow": { + "message": "Aizslēgt" + }, + "noItemsInList": { + "message": "Nav vienumu, ko parādīt." + }, + "noCollectionsInList": { + "message": "Nav krājumu, ko parādīt." + }, + "noGroupsInList": { + "message": "Nav kopu, ko parādīt." + }, + "noUsersInList": { + "message": "Nav lietotāju, ko parādīt." + }, + "noEventsInList": { + "message": "Nav notikumu, ko parādīt." + }, + "newOrganization": { + "message": "Jauna apvienība" + }, + "noOrganizationsList": { + "message": "Tu neesi iekļauts nevienā apvienībā. Apvienības sniedz iespēju droši kopīgot vienumus ar citiem lietotājiem." + }, + "versionNumber": { + "message": "Laidiens $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Ievadi 6 ciparu apstiprinājuma kodu no autentificētāja lietotnes!" + }, + "enterVerificationCodeEmail": { + "message": "Ievadi 6 ciparu apstiprinājuma kodu, kas tika nosūtīts uz $EMAIL$!", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "E-pasts apstiprināšanai nosūtīts uz $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Atcerēties mani" + }, + "sendVerificationCodeEmailAgain": { + "message": "Atkārtoti nosūtīt apstiprinājuma kodu" + }, + "useAnotherTwoStepMethod": { + "message": "Izmantot citu divpakāpju pierakstīšanās veidu" + }, + "insertYubiKey": { + "message": "Ievieto savu YubiKey datora USB ligzdā un pieskaries tā pogai!" + }, + "insertU2f": { + "message": "Ievieto savu drošības atslēgu datora USB ligzdā! Ja tai ir poga, pieskaries tai!" + }, + "loginUnavailable": { + "message": "Pierakstīšanās nav pieejama" + }, + "noTwoStepProviders": { + "message": "Šim kontam ir iespējota divpakāpju pierakstīšanās, bet šajā pārlūkā netiek atbalstīts neviens no uzstādītajiem divpakāpju pārbaudes nodrošinātājiem." + }, + "noTwoStepProviders2": { + "message": "Lūgums izmantot atbalstītu tīmekļa pārlūku (piemēram Chrome) un/vai pievienot papildus nodrošinātājus, kas tiek labāk atbalstīti dažādos pārlūkos (piemēram autentificētāja lietotni)." + }, + "twoStepOptions": { + "message": "Divpakāpju pierakstīšanās iespējas" + }, + "recoveryCodeDesc": { + "message": "Zaudēta piekļuve visiem divpakāpju nodrošinātājiem? Izmanto atkopšanas kodus, lai atspējotu visus sava konta divpakāpju nodrošinātājus!" + }, + "recoveryCodeTitle": { + "message": "Atgūšanas kods" + }, + "authenticatorAppTitle": { + "message": "Autentificētāja lietotne" + }, + "authenticatorAppDesc": { + "message": "Izmanto autentificētāja lietotni (piemēram, Authy vai Google autentifikators), lai izveidotu laikā balstītus apstiprinājuma kodus!", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP drošības atslēga" + }, + "yubiKeyDesc": { + "message": "Izmanto YubiKey, lai piekļūtu savam kontam! Darbojas ar YubiKey 4. un 5. sērijas un NEO ierīcēm." + }, + "duoDesc": { + "message": "Apstiprini ar Duo Security, izmantojot Duo Mobile lietotni, īsziņu, tālruņa zvanu vai U2F drošības atslēgu!", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Apstiprini ar Duo Security savā apvienībā, izmantojot Duo Mobile lietotni, īsziņu, tālruņa zvanu vai U2F drošības atslēgu!", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Izmantot jebkuru FIDO U2F atbalstošu drošības atslēgu, lai piekļūtu kontam." + }, + "u2fTitle": { + "message": "FIDO U2F drošības atslēga" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Izmantot jebkuru WebAuthn atbalstošu drošības atslēgu, lai piekļūtu kontam." + }, + "webAuthnMigrated": { + "message": "(Pārgājis no FIDO)" + }, + "emailTitle": { + "message": "E-pasts" + }, + "emailDesc": { + "message": "Apstiprinājuma kodi tiks nosūtīti e-pastā." + }, + "continue": { + "message": "Turpināt" + }, + "organization": { + "message": "Apvienība" + }, + "organizations": { + "message": "Apvienības" + }, + "moveToOrgDesc": { + "message": "Izvēlies apvienību, uz kuru pārvietot šo vienumu. Pārvietošana nodod šī vienuma piederību apvienībai. Tu vairs nebūsi šī vienuma tiešais īpašnieks pēc tā pārvietošanas." + }, + "moveManyToOrgDesc": { + "message": "Izvēlies apvienību, uz kuru pārvietot šos vienumus. Pārvietošana nodod šo vienumu piederību apvienībai. Tu vairs nebūsi šo vienumu tiešais īpašnieks pēc to pārvietošanas." + }, + "collectionsDesc": { + "message": "Labot krājumus, ar kuriem šis vienums ir kopīgots. Tikai apvienības lietotāji, kam ir piekļuve šiem krājumiem, redzēs šo vienumu." + }, + "deleteSelectedItemsDesc": { + "message": "Izdzēšanai ir atlasīts(i) $COUNT$ vienums(i). Vai tiešām izdzēst tos visus?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Izvēlēties mapi, uz kuru pārvietot atlasīto(s) $COUNT$ vienumu(s).", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Ir atzīmēts(i) $COUNT$ vienums(i). $MOVEABLE_COUNT$ vienums(i) var tikt pārvietoti uz apvienību, bet $NONMOVEABLE_COUNT$ nē.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Apstiprinājuma kods (TOTP)" + }, + "copyVerificationCode": { + "message": "Ievietot apstiprinājuma kodu starpliktuvē" + }, + "warning": { + "message": "Brīdinājums" + }, + "confirmVaultExport": { + "message": "Apstiprināt glabātavas satura izgūšanu" + }, + "exportWarningDesc": { + "message": "Šī izguve satur glabātavas datus nešifrētā veidā. Izdoto datni nevajadzētu glabāt vai sūtīt nedrošos veidos (piemēram, e-pastā). Izdzēst to uzreiz pēc izmantošanas." + }, + "encExportKeyWarningDesc": { + "message": "Šī izguve šifrē datus ar konta šifrēšanas atslēgu. Ja tā jebkad tiks mainīta, izvadi vajadzētu veikt vēlreiz, jo vairs nebūs iespējams atšifrēt šo datni." + }, + "encExportAccountWarningDesc": { + "message": "Katram Bitwarden kontam ir neatkārtojamas šifrēšanas atslēgas, tādēļ nav iespējams ievietot šifrētu izguvi citā kontā." + }, + "export": { + "message": "Izgūšana" + }, + "exportVault": { + "message": "Izgūt glabātavas saturu" + }, + "fileFormat": { + "message": "Datnes veids" + }, + "exportSuccess": { + "message": "Glabātavas saturs ir izgūts." + }, + "passwordGenerator": { + "message": "Paroļu veidotājs" + }, + "minComplexityScore": { + "message": "Mazākais pieļaujamais sarežģītības novērtējums" + }, + "minNumbers": { + "message": "Mazākais pieļaujamais ciparu skaits" + }, + "minSpecial": { + "message": "Mazākais pieļaujamais īpašo rakstzīmju skaits", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Izvairīties no viegli sajaucamām rakstzīmēm" + }, + "regeneratePassword": { + "message": "Pārizveidot paroli" + }, + "length": { + "message": "Garums" + }, + "numWords": { + "message": "Vārdu skaits" + }, + "wordSeparator": { + "message": "Vārdu atdalītājs" + }, + "capitalize": { + "message": "Izmantot lielos sākumburtus", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Iekļaut ciparu" + }, + "passwordHistory": { + "message": "Paroles izmaiņu vēsture" + }, + "noPasswordsInList": { + "message": "Nav paroļu, ko parādīt." + }, + "clear": { + "message": "Notīrīt", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Konts atjaunināts" + }, + "changeEmail": { + "message": "Mainīt e-pasta adresi" + }, + "changeEmailTwoFactorWarning": { + "message": "Turpinot tiks mainīta konta e-pasta adrese. Netiks mainīta tā e-pasta adrese, kas tiek izmantota divpakāpju apstiprinājumam. To var mainīt divpakāpju pieteikšanās iestatījumos." + }, + "newEmail": { + "message": "Jauna e-pasta adrese" + }, + "code": { + "message": "Kods" + }, + "changeEmailDesc": { + "message": "Uz e-pasta adresi $EMAIL$ ir nosūtīts apstiprinājuma kods. Lūgums pārbaudīt e-pastu, vai tas ir saņemts, un ievadīt kodu zemāk esošajā laukā, lai pabeigtu e-pasta adreses maiņu.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Tiks veikta izrakstīšanās no pašreizējās sesijas, un pēc tam būs nepieciešams pierakstīties. Citās ierīcēs darbojošās sesijas var būt spēkā līdz vienai stundai." + }, + "emailChanged": { + "message": "E-pasta adrese nomainīta" + }, + "logBackIn": { + "message": "Lūgums atkārtoti pierakstīties." + }, + "logBackInOthersToo": { + "message": "Lūgums pierakstīties atkārtoti. Ja tiek izmantotas citas Bitwarden lietotnes, ir nepieciešams izrakstīties un atkārtoti pierakstīties arī tajās." + }, + "changeMasterPassword": { + "message": "Mainīt galveno paroli" + }, + "masterPasswordChanged": { + "message": "Galvenā parole nomainīta" + }, + "currentMasterPass": { + "message": "Pašreizējā galvenā parole" + }, + "newMasterPass": { + "message": "Jaunā galvenā parole" + }, + "confirmNewMasterPass": { + "message": "Apstiprināt jauno galveno paroli" + }, + "encKeySettings": { + "message": "Šifrēšanas atslēgas iestatījumi" + }, + "kdfAlgorithm": { + "message": "KDF algoritms" + }, + "kdfIterations": { + "message": "KDF atkārtojumi" + }, + "kdfIterationsDesc": { + "message": "Lielāks KDF atkārtojumu skaits var palīdzēt aizsargāt galveno paroli no pārlases uzbrukumiem. Ieteicamā vērtība ir $VALUE$ vai lielāka.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Iestatot pārāk lielu KDF atkārtojumu skaitu var novest pie vājas veiktspējas, kad notiek pierakstīšanās Bitwarden (un atslēgšana) ierīcēs ar lēnākiem procesoriem. Ir ieteicams secīgi palielināt vērtību par $INCREMENT$ un tad pārbaudīt ietekmi visās ierīcēs.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Mainīt KDF" + }, + "encKeySettingsChanged": { + "message": "Šifrēšanas atslēgas iestatījumi mainīti" + }, + "dangerZone": { + "message": "Bīstamā sadaļa" + }, + "dangerZoneDesc": { + "message": "Piesardzību, šīs darbības nav atsaucamas!" + }, + "deauthorizeSessions": { + "message": "Padarīt sesijas spēkā neesošas" + }, + "deauthorizeSessionsDesc": { + "message": "Vai ir raizes par to, ka pierakstīšanās kontā ir notikusi citā ierīcē? Turpināt zemāk, lai atsauktu pierakstīšanos visos datoros un ierīcēs, kas iepriekš ir izmantoti. Šis solis ir nepieciešams, ja tika izmantots koplietošanas dators vai nejauši saglabāta parole nepiederošā ierīcē. Šis solis notīrīs arī visas iepriekš iegaumētās divpakāpju pierakstīšanās sesijas." + }, + "deauthorizeSessionsWarning": { + "message": "Tiks veikta izrakstīšanās no pašreizējāš sesijas, un pēc tam būs nepieciešams atkārtoti pierakstīties. Būs nepieciešama arī divpakāpju pierakstīšanās, ja tā ir iespējota. Citās ierīcēs darbojošās sesijas var būt spēkā līdz vienai stundai." + }, + "sessionsDeauthorized": { + "message": "Visu sesiju darbība ir atsaukta" + }, + "purgeVault": { + "message": "Iztīrīt glabātavu" + }, + "purgedOrganizationVault": { + "message": "Apvienības glabātava iztīrīta." + }, + "vaultAccessedByProvider": { + "message": "Glabātavai piekļuva sniedzējs." + }, + "purgeVaultDesc": { + "message": "Turpnāt zemāk, lai izdzēstu visus glabātavas vienumus un mapes. Vienumi, kas pieder apvienībai un kas tiek koplietoti, netiks izdzēsti." + }, + "purgeOrgVaultDesc": { + "message": "Turpināt zemāk, lai izdzēstu visus apvienības glabātavas vienumus." + }, + "purgeVaultWarning": { + "message": "Glabātavas iztīrīšana ir paliekoša. To nevar tikt atsaukta." + }, + "vaultPurged": { + "message": "Glabātava tika iztīrīta." + }, + "deleteAccount": { + "message": "Dzēst kontu" + }, + "deleteAccountDesc": { + "message": "Turpināt zemāk, lai izdzēstu kontu un visus saistītos datus." + }, + "deleteAccountWarning": { + "message": "Konta dzēšana ir paliekoša. To nevar atsaukt." + }, + "accountDeleted": { + "message": "Konts izdzēsts" + }, + "accountDeletedDesc": { + "message": "Konts ir slēgts, un visi saistītie dati ir izdzēsti." + }, + "myAccount": { + "message": "Mans konts" + }, + "tools": { + "message": "Rīki" + }, + "importData": { + "message": "Ievietot datus" + }, + "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." + }, + "importSuccess": { + "message": "Dati ir veiksmīgi ievietoti glabātavā." + }, + "importWarning": { + "message": "Dati tiks ievietoti $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 pareizā veidolā. 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." + }, + "selectFormat": { + "message": "Atlasīt ievietošanas datnes veidolu" + }, + "selectImportFile": { + "message": "Atlasīt ievietošanas datni" + }, + "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)" + } + } + }, + "options": { + "message": "Iespējas" + }, + "optionsDesc": { + "message": "Pielāgot tīmekļa glabātavas lietošanas pieredzi." + }, + "optionsUpdated": { + "message": "Iespējas atjauninātas" + }, + "language": { + "message": "Valoda" + }, + "languageDesc": { + "message": "Nomainīt tīmekļa glabātavā izmantoto valodu." + }, + "disableIcons": { + "message": "Atspējot tīmekļa vietņu ikonas" + }, + "disableIconsDesc": { + "message": "Tīmekļa vietņu ikonas nodrošina atpazīstamu attēlu pie katra glabātavas pieteikšanās vienuma." + }, + "enableGravatars": { + "message": "Iespējot Gravatārus", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Izmantot no gravatar.com ielādētus avatāra attēlus." + }, + "enableFullWidth": { + "message": "Iespējot pilna platuma izkārtojumu", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Ļauj tīmekļa glabātavai aizņemt visu pārlūka loga platumu." + }, + "default": { + "message": "Noklusējums" + }, + "domainRules": { + "message": "Domēnu nosacījumi" + }, + "domainRulesDesc": { + "message": "Ja viens pierakstīšanās vienums tiek izmantots dažādos tīmekļa vietņu domēnos, tīmekļa vietni var atzīmēt kā \"līdzvērtīgu\". \"Vispārējie\" domēni jau ir Bitwarden izveidoti." + }, + "globalEqDomains": { + "message": "Vispārēji vienlīdzīgie domēni" + }, + "customEqDomains": { + "message": "Pielāgoti vienlīdzīgie domēni" + }, + "exclude": { + "message": "Izslēgt" + }, + "include": { + "message": "Iekļaut" + }, + "customize": { + "message": "Pielāgot" + }, + "newCustomDomain": { + "message": "Jauns pielāgotais domēns" + }, + "newCustomDomainDesc": { + "message": "Jāievada ar komatiem atdalīts domēnu saraksts. Ir atļauti tikai \"pamata\" domēni. Neievadīt apakšdomēnus. Piemēram, ievadīt \"google.com\" \"www.google.com\" vietā. Ir iespējams ievadīt arī \"androidapp://package.name\", lai saistītu Android lietotni ar citiem tīmekļa vietņu domēniem." + }, + "customDomainX": { + "message": "Pielāgotais domēns $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domēni atjaunināti" + }, + "twoStepLogin": { + "message": "Divpakāpju pierakstīšanās" + }, + "twoStepLoginDesc": { + "message": "Nodrošināt kontu, pieprasot papildus darbību pierakstoties." + }, + "twoStepLoginOrganizationDesc": { + "message": "Pieprasīt divpakāpju pierakstīšanos apvienības lietotājiem, uzstādot nodrošinātājus apvienības līmenī." + }, + "twoStepLoginRecoveryWarning": { + "message": "Divpakāpju pierakstīšanās var pastāvīgi liegt piekļuvi Bitwarden kontam. Atkopšanas kods ļauj piekļūt tam gadījumā, kad vairs nav iespējams izmantot ierasto divpakāpju pierakstīšanās nodrošinātāju (piemēram, ir pazaudēta ierīce). Bitwarden atbalsts nevarēs palīdzēt, ja tiks pazaudēta piekļuve kontam. Ir ieteicams, ka atkopšanas kods tiek pierakstīts vai izdrukāts un turēts drošā vietā." + }, + "viewRecoveryCode": { + "message": "Skatīt atkopšanas kodu" + }, + "providers": { + "message": "Nodrošinātāji", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Iespējot" + }, + "enabled": { + "message": "Iespējots" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium dalība" + }, + "premiumRequired": { + "message": "Nepieciešams Premium" + }, + "premiumRequiredDesc": { + "message": "Ir nepieciešama Premium dalība, lai izmantotu šo iespēju." + }, + "youHavePremiumAccess": { + "message": "Tev ir Premium piekļuve" + }, + "alreadyPremiumFromOrg": { + "message": "Tev jau ir piekļuve Premium iespējām no apvienības, kuras dalībnieks Tu esi." + }, + "manage": { + "message": "Pārvaldīt" + }, + "disable": { + "message": "Atspējot" + }, + "twoStepLoginProviderEnabled": { + "message": "Šis divpakāpju pierakstīšanās nodrošinātājs ir iespējots kontā." + }, + "twoStepLoginAuthDesc": { + "message": "Ievadīt galveno paroli, lai mainītu divpakāpju pierakstīšanās iestatījumus." + }, + "twoStepAuthenticatorDesc": { + "message": "Sekot šiem soļiem, lai uzstādīt divpakāpju pierakstīšanos ar autentificētāja lietotni:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Jālejupielādē divpakāpju autentificētāja lietotne" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Ir nepieciešama divpakāpju autentificētāja lietotne? Lejupielādē vienu no sekojošām" + }, + "iosDevices": { + "message": "iOS ierīces" + }, + "androidDevices": { + "message": "Android ierīces" + }, + "windowsDevices": { + "message": "Windows ierīces" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Šīs ir ieteicamās lietotnes, bet darbosies arī citas autentificētāja lietotnes." + }, + "twoStepAuthenticatorScanCode": { + "message": "Nolasīt šo kvadrātkodu ar autentificētāja lietotni" + }, + "key": { + "message": "Atslēga" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Ievadīt lietotnes izveidoto 6 ciparu apstiprināšanas kodu" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Ja ir vajadzība pievienot citās ierīcēs, zemāk ir kvadrātkods (vai atslēga), kas ir izmantojams autentificētāja lietotnē." + }, + "twoStepDisableDesc": { + "message": "Vai tiešām atspējot šo divpakāpju pierakstīšanās nodrošinātāju?" + }, + "twoStepDisabled": { + "message": "Divpakāpju pierakstīšanāš nodrošinātājs atspējots." + }, + "twoFactorYubikeyAdd": { + "message": "Pievienot jaunu YubiKey kontam" + }, + "twoFactorYubikeyPlugIn": { + "message": "YubiKey ir jāievieto datora USB ligzdā." + }, + "twoFactorYubikeySelectKey": { + "message": "Jāizvēlas pirmais tukšais zemāk esošais YubiKey ievades lauks." + }, + "twoFactorYubikeyTouchButton": { + "message": "Jāpieskaras YubiKey pogai." + }, + "twoFactorYubikeySaveForm": { + "message": "Saglabāt veidlapu." + }, + "twoFactorYubikeyWarning": { + "message": "Platformas ierobežojumu dēļ YubiKey nevar izmantot visās Bitwarden lietotnēs. Ir ieteicams iespējot vēl kādu divpakāpju pierakstīšanās nodrošinātāju, lai varētu piekļūt kontam, kad nevar izmantot YubiKey. Atbalstītās platformas:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Tīmekļa glabātava, darbvirsmas lietotne, CLI un visi pārlūku paplašinājums ierīcēs ar USB ligzdu, kas pieņem YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Tālruņa lietotnes ierīcē ar NFC iespējām vai datu ligzdu, kas pieņem YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F atslēga $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn atslēga $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC atbalsts" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Viena no atslēgām atbalsta NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Ja kāda no YubiKey atbalsta NFC (kā, piemēram, YubiKey NEO), pārvietojamajās ierīcēs tiks attēlota uzvedne, kad vien tiks noteikta NFC pieejamība." + }, + "yubikeysUpdated": { + "message": "YubiKey atjauninātas" + }, + "disableAllKeys": { + "message": "Atspējot visas atslēgas" + }, + "twoFactorDuoDesc": { + "message": "Ievadīt Bitwarden lietotnes informāciju no Duo pārvaldības rīka." + }, + "twoFactorDuoIntegrationKey": { + "message": "Iekļaušanas atslēga" + }, + "twoFactorDuoSecretKey": { + "message": "Slepenā atslēga" + }, + "twoFactorDuoApiHostname": { + "message": "API saimniekdatora nosaukums" + }, + "twoFactorEmailDesc": { + "message": "Sekot šiem soļiem, lai uzstādīt divpakāpju pierakstīšanos ar e-pastu:" + }, + "twoFactorEmailEnterEmail": { + "message": "Ievadīt e-pasta adresi, uz kuru saņemt apstiprināšanas kodus" + }, + "twoFactorEmailEnterCode": { + "message": "Ievadīt e-pastā saņemto 6 ciparu apstiprinājuma kodu" + }, + "sendEmail": { + "message": "Nosūtīt e-pastu" + }, + "twoFactorU2fAdd": { + "message": "Pievienot FIDO U2F drošības atslēgu kontam" + }, + "removeU2fConfirmation": { + "message": "Vai tiešām noņemt šo drošības atslēgu?" + }, + "twoFactorWebAuthnAdd": { + "message": "Pievienot kontam WebAuthn drošības atslēgu" + }, + "readKey": { + "message": "Nolasīt atslēgu" + }, + "keyCompromised": { + "message": "Atslēgas drošība ir ietekmēta." + }, + "twoFactorU2fGiveName": { + "message": "Piešķirt drošības atslēgai vienkāršu nosaukumu, lai tā būtu vieglāk nosakāma." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Ievietot drošības atslēgu datora USB ligzdā un nospiest pogu \"Nolasīt atslēgu\"." + }, + "twoFactorU2fTouchButton": { + "message": "Ja drošības atslēgai ir poga, tai ir jāpieskaras." + }, + "twoFactorU2fSaveForm": { + "message": "Saglabāt veidlapu." + }, + "twoFactorU2fWarning": { + "message": "Platformas ierobežojumu dēļ FIDO U2F nevar izmantot visās Bitwarden lietotnēs. Ir Ieteicams iespējot vēl kādu divpakāpju pierakstīšanās nodrošinātāju, lai varētu piekļūt kontam, kad FIDO U2F nevar izmantot. Atbalstītās platformas:" + }, + "twoFactorU2fSupportWeb": { + "message": "Tīmekļa glabātava un pārlūku paplašinājums galddatorā/klēpjdatorā ar U2F iespējotu pārlūku (Chrome, Opera, Vivaldi vai Firefox ar iespējotu FIDO U2F)." + }, + "twoFactorU2fWaiting": { + "message": "Tiek gaidīts, līdz tiks veikta pieskaršanās drošības atslēgas pogai" + }, + "twoFactorU2fClickSave": { + "message": "Nospist zemāk esošo pogu \"Saglabāt\", lai iespējotu šo drošības atslēgu divpakāpju pierakstīšanās pārbaudei." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Radās sarežģījumi, nolasot drošības atslēgu. Jāmēģina vēlreiz." + }, + "twoFactorWebAuthnWarning": { + "message": "Platformas ierobežojumu dēļ WebAuth nevar izmantot visās Bitwarden lietotnēs. Ir ieteicams iespējot vēl kādu divpakāpju pierakstīšanās nodrošinātāju, lai varētu piekļūt kontam, kad nav iespējams izmantot WebAuth. Atbalstītās platformas:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Tīmekļa glabātava un pārlūku paplašinājums galddatorā/klēpjdatorā ar WebAuthn iespējotu pārlūku (Chrome, Opera, Vivaldi vai Firefox ar iespējotu FIDO U2F)." + }, + "twoFactorRecoveryYourCode": { + "message": "Bitwarden divpakāpju pierakstīšanās atkopšanas kods" + }, + "twoFactorRecoveryNoCode": { + "message": "Vēl nav iespējots neviens divpakāpju pierakstīšanās nodrošinātāju. Kad tas būs izdarīts, šeit varēs apskatīt atkopšanas kodu." + }, + "printCode": { + "message": "Izdrukāt kodu", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Pārskati" + }, + "reportsDesc": { + "message": "Noteikt un novērst drošības nepilnības tiešsaistes kontos klikšķinot uz zemāk esošajām atskaitēm." + }, + "unsecuredWebsitesReport": { + "message": "Nedrošu tīmekļa vietņu pārskats" + }, + "unsecuredWebsitesReportDesc": { + "message": "Nedrošu tīmekļa vietņu, kuru adrese sākas ar http://, apmeklēšana var būt bīstama. Ja tīmekļa vietne to nodrošina, vienmēr ir ieteicams tai piekļūt, izmantojot adresi ar https://, lai savienojums būtu šifrēts." + }, + "unsecuredWebsitesFound": { + "message": "Atrastas nedrošās tīmekļa vietnes" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Glabātavā tika atrasts(i) $COUNT$ vienums(i) ar nedrošām adresēm. Ir ieteicams tās mainīt uz URI ar https://, ja tīmekļa vietne to nodrošina.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Nevienam glabātavas vienumam nav nedrošu URI." + }, + "inactive2faReport": { + "message": "Neizmantoto 2FA pārskats" + }, + "inactive2faReportDesc": { + "message": "Divfaktoru autentificēšanās (2FA) ir būtisks drošības iestatījums, kas palīdz nodrošināt kontus. Ja tīmekļa vietne to piedāvā, vienmēr vajadzētu iespējot divfaktoru autentificēšanos." + }, + "inactive2faFound": { + "message": "Atrastie pierakstīšanās vienumi bez 2FA" + }, + "inactive2faFoundDesc": { + "message": "Glabātavā tika atrasta(s) $COUNT$ tīmekļa vietne(s), kurās nav uzstādīta divfaktoru autentificēšanās (vadoties pēc twofactorauth.org). Lai labāk aizsargātu šos kontus, ir ieteicams iespējot divfaktoru autentificēšanos.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Glabātavā netika atrasta neviena tīmekļa vietne bez uzstādītas divfaktoru autentificēšanās." + }, + "instructions": { + "message": "Norādes" + }, + "exposedPasswordsReport": { + "message": "Atklāto paroļu pārskats" + }, + "exposedPasswordsReportDesc": { + "message": "Atklātās paroles ir paroles, kas ir atrastas zināmos datu pārkāpumos, kuras urķi ir publicējuši vai pārdod tumšajā tīmeklī." + }, + "exposedPasswordsFound": { + "message": "Atrastas atklātās paroles" + }, + "exposedPasswordsFoundDesc": { + "message": "Glabātavā tika atrasts(i) $COUNT$ vienums(i), kuros ir paroles, kas ir atklātas zināmos datu pārkāpumos. Vienumus vajadzētu mainīt, lai izmantotu jaunu paroli.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Glabātavā nav vienumu, kam būtu paroles, kas ir atklātas zināmos datu pārkāpumos." + }, + "checkExposedPasswords": { + "message": "Pārbaudīt atklātās paroles" + }, + "exposedXTimes": { + "message": "Atklātas $COUNT$ reizi(-es)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Vājo paroļu pārskats" + }, + "weakPasswordsReportDesc": { + "message": "Vājas paroles var viegli uzminēt urķi un automatizētie rīki, kas tiek izmantoti paroļu uzlaušanā. Bitwarden paroļu veidotājs var palīdzēt izveidot spēcīgas paroles." + }, + "weakPasswordsFound": { + "message": "Atrastas vājas paroles" + }, + "weakPasswordsFoundDesc": { + "message": "Glabātavā tika atrasts(i) $COUNT$ vienums(i) ar parolēm, kas nav spēcīgas. Tos vajadzētu atjaunināt, lai izmantotu spēcīgākas paroles.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Glabātavā nav vienumu ar vājām parolēm." + }, + "reusedPasswordsReport": { + "message": "Vairākkārt izmantoto paroļu pārskats" + }, + "reusedPasswordsReportDesc": { + "message": "Ja izmantota pakalpojuma drošība ir ietekmēta, vienādas paroles izmantošana citur rada urķiem iespēju viegli iegūt piekļuvi citiem tiešsaistes kontiem. Katrā kontā vai pakalpojumā ir ieteicams izmantot paroli, kas nav izmantota citur." + }, + "reusedPasswordsFound": { + "message": "Atrastās vairākkārt izmantotās paroles" + }, + "reusedPasswordsFoundDesc": { + "message": "Glabātavā tika atrasta(s) $COUNT$ parole(s), kas tiek vairākkārt izmantotas. Ir ieteicams tās nomainīt uz vērtību, kas neatkārtojas citur.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Glabātavā nav pierakstīšanās vienumu ar vairākkārt izmantotām parolēm." + }, + "reusedXTimes": { + "message": "Vairākkārt izmantota(s) $COUNT$ reizi(es)", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Datu pārākumu pārskats" + }, + "breachDesc": { + "message": "\"Pārkāpums\" ir notikums, kurā urķi ir nelikumīgi piekļuvuši tās datiem un tad tos ir publicējuši. Jāpārskata datu veidi, kas ir ietekmēti (e-pasta adreses, paroles, bankas kartes utt.) un jāveic atbilstošas darbības, piemēram, paroļu nomaiņa." + }, + "breachCheckUsernameEmail": { + "message": "Jāpārbauda jebkurš lietotājvārds vai e-pasta adrese, kas tiek izmantota." + }, + "checkBreaches": { + "message": "Pārbaudīt datu pārkāpumus" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ netika atrasts nevienā zināmā datu noplūdē.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Labas ziņas", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ tika atrasts $COUNT$ (dažādos) datu pārkāpumā(os) tīmeklī.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Atrasti datu pārkāpumos iekļuvušie konti" + }, + "compromisedData": { + "message": "Datu pārkāpumos iesaistītie dati" + }, + "website": { + "message": "Tīmekļa vietne" + }, + "affectedUsers": { + "message": "Ietekmētie lietotāji" + }, + "breachOccurred": { + "message": "Ir bijis datu pārkāpums" + }, + "breachReported": { + "message": "Par datu pārkāpumu ir ziņots" + }, + "reportError": { + "message": "Radusies kļūda pārskata lādēšanā. Lūgums mēģināt vēlreiz" + }, + "billing": { + "message": "Norēķini" + }, + "accountCredit": { + "message": "Konta kredīts", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Konta bilance", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Pievienot kredītu", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Daudzums", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Pievienotais kredīts būs redzams kontā, kad maksājums būs pilnībā apstrādāts. Daži norēķinu veidi aizkavējas un to apstrāde var aizņemt vairāk laika nekā citiem." + }, + "makeSureEnoughCredit": { + "message": "Lūgums pārliecināties, ka kontā ir pieejams pietiekami daudz kredīta šim pirkumam. Ja kontā nav pieejams pietiekami daudz kredīta, tiks izmantots noklusējuma norēķinu veids, lai segtu starpību. Kredītu kontam var pievienot norēķinu sadaļā." + }, + "creditAppliedDesc": { + "message": "Konta kredīts var tikt izmantots, lai veiktu pirkumus. Viss pieejamais kredīts tiks automātiski izmantots kontam veidotajiem rēķiniem." + }, + "goPremium": { + "message": "Iegūt Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Tu esi pārgājis uz Premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Kontu var uzlabot ar Premium dalību un piekļūt lieliskām papildiespējām." + }, + "premiumSignUpStorage": { + "message": "1 GB šifrētas krātuves datņu pielikumiem." + }, + "premiumSignUpTwoStep": { + "message": "Tādas papildus divpakāpju pierakstīšanās iespējas kā YubiKey, FIDO U2F un Duo." + }, + "premiumSignUpEmergency": { + "message": "Ārkārtas piekļuve" + }, + "premiumSignUpReports": { + "message": "Paroļu higiēnas, kontu veselības un datu pārkāpumu atskaites, lai uzturētu glabātavu drošu." + }, + "premiumSignUpTotp": { + "message": "TOTP apstiprinājuma kodu (2FA) veidotājs piekļuves ierakstiem glabātavā." + }, + "premiumSignUpSupport": { + "message": "Priekšrocīgs lietotāju atbalsts." + }, + "premiumSignUpFuture": { + "message": "Visas nākotnes Premium iespējas. Vairāk drīzumā!" + }, + "premiumPrice": { + "message": "Viss par tikai $PRICE$ gadā!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Papildinājumi" + }, + "premiumAccess": { + "message": "Premium piekļuve" + }, + "premiumAccessDesc": { + "message": "Ir iespējams pievienot Premium piekļuvi visiem apvienības dalībniekiem par $PRICE$/$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Papildus krātuve (GB)" + }, + "additionalStorageGbDesc": { + "message": "# papildus GB" + }, + "additionalStorageIntervalDesc": { + "message": "Pašreizējais plāns iever $SIZE$ šifrētas datņu krātuves. Ir iespējams pievienot papildus krātuvi par $PRICE$ GB / $INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Kopsavilkums" + }, + "total": { + "message": "Kopā" + }, + "year": { + "message": "gadā" + }, + "month": { + "message": "mēnesī" + }, + "monthAbbr": { + "message": "mēn.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Summa no apmaksas veida tiks iekasēta nekavējoties un atkārtoti ik gadu. To var atcelt jebkurā laikā." + }, + "paymentCharged": { + "message": "Summa no apmaksas veida tiks iekasēta nekavējoties un atkārtoti katru $INTERVAL$. To var atcelt jebkurā laikā.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Pašreizējā plānā ir iekļauts bezmaksas 7 dienu izmēģinājuma laiks. Izvēlētais apmaksas veids netiks izmantots līdz izmēģinājuma beigā. Norēķini notiks katru $INTERVAL$. To var atcelt jebkurā brīdī." + }, + "paymentInformation": { + "message": "Maksājuma informācija" + }, + "billingInformation": { + "message": "Norēķinu informācija" + }, + "creditCard": { + "message": "Maksājumu karte" + }, + "paypalClickSubmit": { + "message": "Nospiest PayPal pogu, lai pierakstītos PayPal kontā, pēc tam jāspiež poga \"Iesniegt\", lai turpinātu." + }, + "cancelSubscription": { + "message": "Atcelt abonementu" + }, + "subscriptionCanceled": { + "message": "Abonements ir atcelts." + }, + "pendingCancellation": { + "message": "Tiek gaidīta atcelšana" + }, + "subscriptionPendingCanceled": { + "message": "Abonements ir atzīmēts atcelšanai pašreizējā norēķinu perioda beigās." + }, + "reinstateSubscription": { + "message": "Atjaunot abonementu" + }, + "reinstateConfirmation": { + "message": "Vai tiešām noņemt abonementa atcelšanas pieprasījumu un atjaunot abonementu?" + }, + "reinstated": { + "message": "Abonements tika atjaunots." + }, + "cancelConfirmation": { + "message": "Vai tiešām atcelt? Tiks zaudēta piekļuve visām abonementa iespējām pēc pašreizējā norēķinu laika posma beigām." + }, + "canceledSubscription": { + "message": "Abonements ir atcelts." + }, + "neverExpires": { + "message": "Nekad nebeidzas" + }, + "status": { + "message": "Stāvoklis" + }, + "nextCharge": { + "message": "Nākamais maksājums" + }, + "details": { + "message": "Izklāsts" + }, + "downloadLicense": { + "message": "Lejupielādēt licenci" + }, + "updateLicense": { + "message": "Atjaunināt licenci" + }, + "updatedLicense": { + "message": "Atjauninātā licence" + }, + "manageSubscription": { + "message": "Pārvaldīt abonementus" + }, + "storage": { + "message": "Krātuve" + }, + "addStorage": { + "message": "Pievienot krātuvi" + }, + "removeStorage": { + "message": "Noņemt krātuvi" + }, + "subscriptionStorage": { + "message": "Pašreizējam abonementam ir $MAX_STORAGE$ GB šifrētas datņu krātuves. Pašreiz izmantotais apjoms ir $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Apmaksas veids" + }, + "noPaymentMethod": { + "message": "Nav norādīts apmaksas veids." + }, + "addPaymentMethod": { + "message": "Pievienot apmaksas veidu" + }, + "changePaymentMethod": { + "message": "Mainīt apmaksas veidu" + }, + "invoices": { + "message": "Rēķini" + }, + "noInvoices": { + "message": "Nav rēķinu." + }, + "paid": { + "message": "Apmaksāts", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Neapmaksāts", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Darījumi", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Nav darījumu." + }, + "chargeNoun": { + "message": "Apmaksa", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Atmaksa", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Visas apmaksas parādīsies izrakstā kā $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "Krātuves GB, ko pievienot" + }, + "gbStorageRemove": { + "message": "Krātuves GB, ko noņemt" + }, + "storageAddNote": { + "message": "Krātuves izmēra palielināšana ietekmēs norēķinu kopējo apjomu, un uzreiz tiks veikta apmaksa ar norādīto maksājumu veidu. Pirmās apmaksas lielums būs atbilstošs atlikušajai pašreizējā norēķinu laika posma daļai." + }, + "storageRemoveNote": { + "message": "Krātuves apjoma samazināšana ietekmēs apmaksas apjomu, kas tiks piešķirts kā kredīts, kas atbilst atlikušajam laikam līdz nākamajam apmaksas laika posmam." + }, + "adjustedStorage": { + "message": "Tika mainīts(i) $AMOUNT$ GB krātuves.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Sazinieties ar klientu atbalstu" + }, + "updatedPaymentMethod": { + "message": "Apmaksas veids atjaunināts." + }, + "purchasePremium": { + "message": "Iegādāties Premium" + }, + "licenseFile": { + "message": "Licences datne" + }, + "licenseFileDesc": { + "message": "Licences datne tiks nosaukta apmēram šādi: $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Lai uzlabotu kontu ar Premium dalību, ir nepieciešams augšupielādēt derīgu licences datni." + }, + "uploadLicenseFileOrg": { + "message": "Lai izveidotu pašizvietotu apvienību, ir nepieciešams augšupielādēt derīgu licences datni." + }, + "accountEmailMustBeVerified": { + "message": "Ir jāapstiprina konta e-pasta adrese." + }, + "newOrganizationDesc": { + "message": "Apvienības sniedz iespēju kopīgot daļu no glabātavas ar citiem, kā arī pārvaldīt saistītos lietotājus tādos veidojumos kā ģimene, maza vienība vai liels uzņēmums." + }, + "generalInformation": { + "message": "Vispārīga informācija" + }, + "organizationName": { + "message": "Apvienības nosaukums" + }, + "accountOwnedBusiness": { + "message": "Šis konts pieder uzņēmumam." + }, + "billingEmail": { + "message": "E-pasta adrese norēķiniem" + }, + "businessName": { + "message": "Uzņēmuma nosaukums" + }, + "chooseYourPlan": { + "message": "Izvēlēties plānu" + }, + "users": { + "message": "Lietotāji" + }, + "userSeats": { + "message": "Lietotāju vietas" + }, + "additionalUserSeats": { + "message": "Papildus lietotāju vietas" + }, + "userSeatsDesc": { + "message": "# lietotāju vietas" + }, + "userSeatsAdditionalDesc": { + "message": "Pašreizējā plānā ir iekļauta(s) $BASE_SEATS$ lietotāju vieta(s). Papildus lietotājus var pievienot par $SEAT_PRICE$ mēnesī par katru.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Cik daudz lietotāju vietas ir nepieciešamas? Vēlāk ir iespējams pievienot papildus vietas, ja nepieciešams." + }, + "planNameFree": { + "message": "Bezmaksas", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Pārbaudei vai personīgai izmantošanai, lai kopīgotu ar $COUNT$ citiem lietotājiem.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Ģimenes" + }, + "planDescFamilies": { + "message": "Personīgai izmantošanai, lai kopīgotu ar ģimeni un draugiem." + }, + "planNameTeams": { + "message": "Vienības" + }, + "planDescTeams": { + "message": "Uzņēmumiem un citām apvienībām." + }, + "planNameEnterprise": { + "message": "Uzņēmējdarbība" + }, + "planDescEnterprise": { + "message": "Uzņēmumiem un citām lielām apvienībām." + }, + "freeForever": { + "message": "Vienmēr bezmaksas" + }, + "includesXUsers": { + "message": "ietver $COUNT$ lietotāju(s)", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Papildus lietotāji" + }, + "costPerUser": { + "message": "$COST$ par lietotāju", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Ierobežots līdz $COUNT$ lietotājiem (ieskaitot Tevi)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Ierobežots līdz $COUNT$ krājumiem", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Pievieno un kopīgo ar līdz $COUNT$ lietotājiem", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Pievieno un kopīgo ar neierobežotu lietotāju skaitu" + }, + "createUnlimitedCollections": { + "message": "Izveido neierobežotu daudzumu krājumu" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ šifrēta datņu krātuve", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Pašizvietošana (nav nepieciešama)" + }, + "usersGetPremium": { + "message": "Lietotāji saņem piekļuvi Premium iespējām" + }, + "controlAccessWithGroups": { + "message": "Pārvaldi lietotāju piekļuvi ar kopām" + }, + "syncUsersFromDirectory": { + "message": "Sinhronizē lietotājus un kopas no direktorija" + }, + "trackAuditLogs": { + "message": "Seko lietotāju darbībām pārbaudes žurnālos" + }, + "enforce2faDuo": { + "message": "Ieviest 2FA ar Duo" + }, + "priorityCustomerSupport": { + "message": "Priekšrocīgs lietotāju atbalsts" + }, + "xDayFreeTrial": { + "message": "$COUNT$ dienu bezmaksas izmēģinājums, atcelt var jebkurā brīdī", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Katru mēnesi" + }, + "annually": { + "message": "Katru gadu" + }, + "basePrice": { + "message": "Pamata cena" + }, + "organizationCreated": { + "message": "Apvienība izveidota" + }, + "organizationReadyToGo": { + "message": "Jaunā apvienība ir gatava darbam!" + }, + "organizationUpgraded": { + "message": "Apvienība tika uzlabota." + }, + "leave": { + "message": "Pamest" + }, + "leaveOrganizationConfirmation": { + "message": "Vai tiešām pamest šo apvienību?" + }, + "leftOrganization": { + "message": "Apvienība ir pamesta." + }, + "defaultCollection": { + "message": "Noklusējuma krājums" + }, + "getHelp": { + "message": "Saņemt palīdzību" + }, + "getApps": { + "message": "Iegūt lietotnes" + }, + "loggedInAs": { + "message": "Pierakstījies kā" + }, + "eventLogs": { + "message": "Notikumu žurnāli" + }, + "people": { + "message": "Cilvēki" + }, + "policies": { + "message": "Nosacījumi" + }, + "singleSignOn": { + "message": "Vienotā pierakstīšanās (Single Sign-On)" + }, + "editPolicy": { + "message": "Labot nosacījumus" + }, + "groups": { + "message": "Kopas" + }, + "newGroup": { + "message": "Jauna kopa" + }, + "addGroup": { + "message": "Pievienot kopu" + }, + "editGroup": { + "message": "Labot kopu" + }, + "deleteGroupConfirmation": { + "message": "Vai tiešām vēlaties dzēst šo kopu?" + }, + "removeUserConfirmation": { + "message": "Vai tiešām noņemt šo lietotāju?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Uzmanību! Šim lietotājam ir nepieciešams Key Connector, lai pārvaldītu šifrēšanu. Lietotāja noņemšana no apvienības neatgriezeniski atspējos viņa kontu. Šī darbība nevar tikt atdarīta. Vai turpināt?" + }, + "externalId": { + "message": "Ārējais ID" + }, + "externalIdDesc": { + "message": "Ārējo ID var izmanto kā atsauci vai kā saikni starp šo līdzekli un ārēju sistēmu, piemēram, lietotāju direktoriju." + }, + "accessControl": { + "message": "Piekļuves pārraudzība" + }, + "groupAccessAllItems": { + "message": "Šī kopa var piekļūt visiem vienumiem un mainīt tos." + }, + "groupAccessSelectedCollections": { + "message": "Šī kopa var piekļūt tikai izvēlētajiem krājumiem." + }, + "readOnly": { + "message": "Tikai lasāms" + }, + "newCollection": { + "message": "Jauns krājums" + }, + "addCollection": { + "message": "Pievienot krājumu" + }, + "editCollection": { + "message": "Labot krājumu" + }, + "deleteCollectionConfirmation": { + "message": "Vai tiešām izdzēst šo krājumu?" + }, + "editUser": { + "message": "Labot lietotāju" + }, + "inviteUser": { + "message": "Uzaicināt lietotāju" + }, + "inviteUserDesc": { + "message": "Uziacināt apvienībā jaunu lietotāju, zemāk esošajā laukā ievadot viņa Bitwarden konta e-pasta adresi. Ja viņam vēl nav Bitwarden konta, tiks vaicāts izveidot jaunu." + }, + "inviteMultipleEmailDesc": { + "message": "Ir iespējams vienlaicīgi uzaicināt līdz $COUNT$ lietotājiem, atdalot to e-pasta adreses ar komatiem.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Šis lietotājs izmanto divpakāpju pierakstīšanos, lai aizsargātu savu kontu." + }, + "userAccessAllItems": { + "message": "Šis lietotājs var piekļūt visiem vienumiem un mainīt tos." + }, + "userAccessSelectedCollections": { + "message": "Šis lietotājs var piekļūt tikai pie atlasītajiem krājumiem." + }, + "search": { + "message": "Meklēt" + }, + "invited": { + "message": "Uzaicināts" + }, + "accepted": { + "message": "Pieņemts" + }, + "confirmed": { + "message": "Apstiprināts" + }, + "clientOwnerEmail": { + "message": "Pasūtītāja īpašnieka e-pasta adrese" + }, + "owner": { + "message": "Īpašnieks" + }, + "ownerDesc": { + "message": "Lietotājs ar augstākajām piekļuves tiesībām, kurš var pārvaldīt visu apvienībā." + }, + "clientOwnerDesc": { + "message": "Šim lietotājam būtu jābūt neatkarīgam no sniedzēja. Ja sniedzējs tiek atdalīts no apvienības, šis lietotājs saglabās tās īpašumtiesības." + }, + "admin": { + "message": "Pārvaldnieks" + }, + "adminDesc": { + "message": "Pārvaldnieki var piekļūt un pārvaldīt visus apvienības vienumus, krājumus un lietotājus." + }, + "user": { + "message": "Lietotājs" + }, + "userDesc": { + "message": "Parasts lietotājs ar piekļuvi piešķirtajiem apvienības krājumiem." + }, + "manager": { + "message": "Vadītājs" + }, + "managerDesc": { + "message": "Vadītāji var piekļūt un pārvaldīt piešķirtos apvienības krājumus." + }, + "all": { + "message": "Visi" + }, + "refresh": { + "message": "Atsvaidzināt" + }, + "timestamp": { + "message": "Laikspiedols" + }, + "event": { + "message": "Notikums" + }, + "unknown": { + "message": "Nezināms" + }, + "loadMore": { + "message": "Ielādēt vairāk" + }, + "mobile": { + "message": "Tālrunis", + "description": "Mobile app" + }, + "extension": { + "message": "Paplašinājums", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Darbvirsma", + "description": "Desktop app" + }, + "webVault": { + "message": "Tīmekļa glabātava" + }, + "loggedIn": { + "message": "Pierakstījies." + }, + "changedPassword": { + "message": "Konta parole nomainīta." + }, + "enabledUpdated2fa": { + "message": "Divpakāpju pierakstīšanās iespējota/atjaunināta." + }, + "disabled2fa": { + "message": "Divpakāpju pierakstīšanās atspējota." + }, + "recovered2fa": { + "message": "Konts atkopts no divpakāpju pierakstīšanās." + }, + "failedLogin": { + "message": "Pierakstīšanās mēģinājums neizdevās nepareizas paroles dēļ." + }, + "failedLogin2fa": { + "message": "Pierakstīšanās mēģinājums neizdevās nepareizas divpakāpju pierakstīšanās dēļ." + }, + "exportedVault": { + "message": "Glabātavas saturs izgūts." + }, + "exportedOrganizationVault": { + "message": "Izgūts apvienības glabātavas saturs." + }, + "editedOrgSettings": { + "message": "Laboti apvienības iestatījumi." + }, + "createdItemId": { + "message": "Izveidots vienums $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Labots vienums $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Vienumu $ID$ pārvietots uz atkritni.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Vienums $ID$ tika pārvietots uz apvienību.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Skatīts vienums $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Skatīta vienuma $ID$ parole.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Skatīts vienuma $ID$ slēpts lauks.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Skatīts vienuma $ID$ drošības kods.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Vienuma $ID$ parole ievietota starpliktuvē.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Vienuma $ID$ slēpts lauks ievietots starpliktuvē.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Vienuma $ID$ drošības kods ievietots starpliktuvē.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Automātiski aizpildīts vienums $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Izveidots krājums $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Labots krājums $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Izdzēsts krājums $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Labots nosacījumu kopums $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Izveidota kopa $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Labota kopa $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Izdzēsta kopa $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Noņemts lietotājs $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Izveidots pielikumu vienumam $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Izdzēsts pielikums vienumam $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Laboti krājumi vienumam $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Uzaicināts lietotājs $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Apstiprināts lietotājs $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Labots lietotājs $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Labotas kopas lietotājam $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Atsaistīta vienotā pieteikšanās lietotājam $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Izveidota apvienība $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Pievienota apvienība $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Noņemta apvienība $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Piekļūts apvienības $ID$ glabātavai.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Ierīce" + }, + "view": { + "message": "Skatīt" + }, + "invalidDateRange": { + "message": "Nederīgs datumu apgabals." + }, + "errorOccurred": { + "message": "Radusies kļūda." + }, + "userAccess": { + "message": "Lietotāja piekļuve" + }, + "userType": { + "message": "Lietotāja veids" + }, + "groupAccess": { + "message": "Kopu piekļuve" + }, + "groupAccessUserDesc": { + "message": "Labot kopas, kurās ir iekļauts šis lietotājs." + }, + "invitedUsers": { + "message": "Uzaicināts(i) lietotājs(i)." + }, + "resendInvitation": { + "message": "Atkārtoti nosūtīt uzaicinājumu" + }, + "resendEmail": { + "message": "Atkārtoti nosūtīt e-pastu" + }, + "hasBeenReinvited": { + "message": "$USER$ tika atkārtoti uzaicināts.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Apstiprināt" + }, + "confirmUser": { + "message": "Apstiprināt lietotāju" + }, + "hasBeenConfirmed": { + "message": "$USER$ tika apstiprināts.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Apstiprināt lietotājus" + }, + "usersNeedConfirmed": { + "message": "Ir lietotāji, kas nav pieņēmuši uzaicinājumu, bet joprojām ir jāapstiprina. Lietotājiem nebūs piekļuves apvienībai, līdz tie nebūs apstiprināti." + }, + "startDate": { + "message": "Sākuma datums" + }, + "endDate": { + "message": "Beigu datums" + }, + "verifyEmail": { + "message": "Apstiprināt e-pastu" + }, + "verifyEmailDesc": { + "message": "Ir jāapstiprina konta e-pasta adrese, lai piekļūtu visām iespējām." + }, + "verifyEmailFirst": { + "message": "Vispirms ir jāapstiprina konta e-pasta adrese." + }, + "checkInboxForVerification": { + "message": "Jāpārbauda e-pasts, vai tajā ir ziņojums ar apstiprinājuma saiti." + }, + "emailVerified": { + "message": "E-pasta adrese ir apstiprināta." + }, + "emailVerifiedFailed": { + "message": "Nevarēja apstiprināt e-pasta adresi. Var mēģināt sūtīt atkārtotu apstiprinājuma e-pasta ziņojumu." + }, + "emailVerificationRequired": { + "message": "Nepieciešama e-pasta adreses apstiprināšana" + }, + "emailVerificationRequiredDesc": { + "message": "Ir jāapstiprina e-pasta adrese, lai izmantotu šo iespēju." + }, + "updateBrowser": { + "message": "Atjaunināt pārlūku" + }, + "updateBrowserDesc": { + "message": "Tiek izmantots neatbalstīts tīmekļa pārlūks. Tīmekļa glabātava var darboties nepareizi." + }, + "joinOrganization": { + "message": "Pievienoties apvienībai" + }, + "joinOrganizationDesc": { + "message": "Tu esi uzaicināts pievienoties augstāk norādītajai apvienībai. Lai to pieņemtu, jāpierakstās vai jāizveido jauns Bitwarden konts." + }, + "inviteAccepted": { + "message": "Uzaicinājums pieņemts" + }, + "inviteAcceptedDesc": { + "message": "Piekļūt apvienībai varēs, kad tās pārvaldnieks apstiprinās dalību. Tiks nosūtīts e-pasta ziņojums, kad tas notiks." + }, + "inviteAcceptFailed": { + "message": "Nav iespējams pieņemt uzaicinājumu. Jālūdz apvienības pārvaldniekam nosūtīt jaunu." + }, + "inviteAcceptFailedShort": { + "message": "Neizdevās pieņemt uzaicinājumu. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Atcerēties e-pasta adresi" + }, + "recoverAccountTwoStepDesc": { + "message": "Ja kontam nevar piekļūt ar ierastajiem divpakāpju pierakstīšanās veidiem, var izmantot atkopšanas kodu, lai atspējotu visus konta divpakāpju pierakstīšanās nodrošinātājus." + }, + "recoverAccountTwoStep": { + "message": "Atkopt konta divpakāpju pierakstīšanos" + }, + "twoStepRecoverDisabled": { + "message": "Divpakāpju pierakstīšanās kontā ir atspējota." + }, + "learnMore": { + "message": "Uzzināt vairāk" + }, + "deleteRecoverDesc": { + "message": "Ievadīt e-pasta adresi zemāk esošajā laukā, lai atkoptu un izdzēstu kontu." + }, + "deleteRecoverEmailSent": { + "message": "Ja konts pastāv, tika nosūtīts e-pasta ziņojums ar turpmākām norādēm." + }, + "deleteRecoverConfirmDesc": { + "message": "Tika pieprasīts dzēst Bitwarden kontu. Nospiest zemāk esošo pogu, lai apstiprinātu." + }, + "myOrganization": { + "message": "Mana apvienība" + }, + "deleteOrganization": { + "message": "Izdzēst apvienību" + }, + "deletingOrganizationContentWarning": { + "message": "Ir jāievada galvenā parole, lai apstiprinātu $ORGANIZATION$ un saistīto datu dzēšanu. $ORGANIZATION$ glabātavas dati iekļauj:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Pēc dzēšanas lietotāju konti joprojām darbosies, bet tie vairs nebūs saistīti ar šo apvienību." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "$ORGANIZATION$ dzēšana ir paliekoša un neatgriezeniska.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Apvienība izdzēsta" + }, + "organizationDeletedDesc": { + "message": "Apvienība un visi ar to saistītie dati ir izdzēsti." + }, + "organizationUpdated": { + "message": "Apvienība atjaunināta" + }, + "taxInformation": { + "message": "Nodokļu informācija" + }, + "taxInformationDesc": { + "message": "Klientiem, kas atrodas ASV, pasta indeksu ir nepieciešams norādīt, lai izpildītu pārdošanas nodokļa prasības, un citām valstīm var norādīt nodokļu maksātāja numuru (VAT/GST) un/vai adresi kas, būs redzama rēķinos." + }, + "billingPlan": { + "message": "Plāns", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Mainīt plānu", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Uzlabot kontu uz citu plānu var norādot informāciju zemāk. Lūgums pārliecinieties, ka kontam ir pievienots derīgs apmaksas veids.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Rēķins #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Skatīt rēķinu" + }, + "downloadInvoice": { + "message": "Lejupielādēt rēķinu" + }, + "verifyBankAccount": { + "message": "Apstiprināt bankas kontu" + }, + "verifyBankAccountDesc": { + "message": "Bankas kontā ir veiktas divas niecīga apjoma iemaksas (var būt nepieciešama 1 - 2 darba dienas, līdz tās tiks saņemtas). Šie daudzumi ir jāievada, lai apstiprinātu bankas kontu." + }, + "verifyBankAccountInitialDesc": { + "message": "Apmaksa no bankas konta ir pieejama tikai Amerikas Savienoto Valstu klientiem. Būs nepieciešams apstiprināt bankas kontu. Tiks veiktas divas niecīga apjoma iemaksas nākamās 1 - 2 darba dienu laikā. To apjoms būs jāievada apvienības norēķinu sadaļā, lai apstiprinātu bankas kontu." + }, + "verifyBankAccountFailureWarning": { + "message": "Ja neizdosies apstiprināt bankas kontu, tiks kavēts maksājums, un abonements tiks atspējots." + }, + "verifiedBankAccount": { + "message": "Bankas konts tika apstiprināts." + }, + "bankAccount": { + "message": "Bankas konts" + }, + "amountX": { + "message": "Summa $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Maršrutēšanas numurs", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Konta numurs" + }, + "accountHolderName": { + "message": "Konta īpašnieks vārds" + }, + "bankAccountType": { + "message": "Konta veids" + }, + "bankAccountTypeCompany": { + "message": "Uzņēmums (uzņēmējdarbība)" + }, + "bankAccountTypeIndividual": { + "message": "Persona (personīgs)" + }, + "enterInstallationId": { + "message": "Ievadīt uzstādīšanas ID" + }, + "limitSubscriptionDesc": { + "message": "Uzstāda abonentu skaita ierobežojumu. Kad tas tiks sasniegts, nebūs iespējams uzaicināt jaunus lietotājus." + }, + "maxSeatLimit": { + "message": "Lielākais iespējamais vietu skaits (var nenorādīt)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Lielākā iespējamā vietas cena" + }, + "addSeats": { + "message": "Pievienot vietas", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Noņemt vietas", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Abonementa pielāgojumi izvērtīsies attiecīgās izmaiņās kopējā rēķinā. Ja jauno uzaicināto lietotāju skaits pārsniedz abonementu vietas, nekavējoties tiks veikts atbilstošs maksājums par papildu lietotājiem." + }, + "subscriptionUserSeats": { + "message": "Pašreizējais abonements pieļaujamais lietotāju skaits ir līdz $COUNT$.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Ierobežot abonēšanu (pēc izvēles)" + }, + "subscriptionSeats": { + "message": "Abonementu skaits" + }, + "subscriptionUpdated": { + "message": "Abonements atjaunināts" + }, + "additionalOptions": { + "message": "Papildu iespējas" + }, + "additionalOptionsDesc": { + "message": "Papildu palīdzības saņemšanai abonementa pārvaldībā lūgums sazināties ar klientu atbalstu." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Abonementa pielāgojumi izvērtīsies attiecīgās izmaiņās kopējā rēķinā. Ja jauno uzaicināto lietotāju skaits pārsniedz abonementu vietas, nekavējoties tiks veikts atbilstošs maksājums par papildu lietotājiem." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Abonementa pielāgojumi izvērtīsies attiecīgās izmaiņās kopējā rēķinā. Ja jauno uzaicināto lietotāju skaits pārsniedz abonementu vietas, nekavējoties tiks veikts atbilstošs maksājums par papildu lietotājiem līdz tiks sasniegts $MAX$ vietu ierobežojums.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Nevar uzaicināt vairāk kā $COUNT$ lietotāju(s) bez plāna paaugstināšanas.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Nevar uzaicināt vairāk kā $COUNT$ lietotāju(s) bez plāna paaugstināšanas. Lūgums sazināties ar klientu atbalstu, lai to izdarītu.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Abonements pieļauj $COUNT$ lietotāju(s). Plānu ir apmaksāts un norēķinus veic ārēja apvienība.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Abonementa pielāgojumi izvērtīsies attiecīgās izmaiņās kopējā rēķinā. Nav iespējams uzaicināt vairāk kā $COUNT$ lietotājus bez abonementu vietu skaita palielināšanas.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Vietas, ko pievienot" + }, + "seatsToRemove": { + "message": "Vietas, ko noņemt" + }, + "seatsAddNote": { + "message": "Lietotāju vietu pievienošana ietekmēs norēķinu kopējo apjomu, un uzreiz tiks veikta apmaksa ar norādīto maksājumu veidu. Pirmās apmaksas lielums būs atbilstošs atlikušajai pašreizējā norēķinu laika posma daļai." + }, + "seatsRemoveNote": { + "message": "Lietotāju vietu mazināšana mainīs jūsu kopsummu, kas tiks atgriezta kā kredīti nākamai norēķinu apmaksai." + }, + "adjustedSeats": { + "message": "Pielāgota(s) $AMOUNT$ lietotāju vieta(s).", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Atslēga atjaunināta" + }, + "updateKeyTitle": { + "message": "Atjaunināt atslēgu" + }, + "updateEncryptionKey": { + "message": "Atjaunināt šifrēšanas atslēgu" + }, + "updateEncryptionKeyShortDesc": { + "message": "Pašreiz tiek izmantots novecojis šifrēšanas veids." + }, + "updateEncryptionKeyDesc": { + "message": "Tiek izmantotas garākas šifrēšanas atslēgas, kas nodrošina labāku drošību un piekļuvi jaunākām iespējām. Šifrēšanas atslēgas atjaunināšana ir ātra un vienkārša. Zemāk ir tikai jāievada galvenā parole. Ar laiku šis atjauninājums kļūs nepieciešams." + }, + "updateEncryptionKeyWarning": { + "message": "Pēc šifrēšanas atslēgas atjaunināšanas ir nepieciešams izrakstīties un tad pierakstīties visās Bitwarden lietotnēs, kas pašreiz tiek izmantotas (piemēram, tālruņa lietotnē vai pārlūku paplašinājumā). Ja tas netiks darīts (tā tiek lejupielādēta jaunā šifrēšanas atslēga), dati var tikt bojāti. Tiks veikts automātiskās izrakstīšanās mēģinājums, tomēr tas var notikt ar aizkavi." + }, + "updateEncryptionKeyExportWarning": { + "message": "Arī katra šifrētā izguve, kas ir saglabāta, kļūs nederīga." + }, + "subscription": { + "message": "Abonements" + }, + "loading": { + "message": "Ielādē" + }, + "upgrade": { + "message": "Uzlabot" + }, + "upgradeOrganization": { + "message": "Uzlabot apvienību" + }, + "upgradeOrganizationDesc": { + "message": "Šī iespēja nav pieejama bezmaksas apvienībām. Maksas plāna izvēle sniedz plašākas iespējas." + }, + "createOrganizationStep1": { + "message": "Apvienības izveidošana: 1. solis" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Pirms apvienības izveidošanas, vispirms ir nepieciešams izveidot bezmaksas personīgo kontu." + }, + "refunded": { + "message": "Atmaksa veikta" + }, + "nothingSelected": { + "message": "Nekas nav atlasīts." + }, + "acceptPolicies": { + "message": "Atzīmējot šo rūtiņu, Tu piekrīti sekojošajam:" + }, + "acceptPoliciesError": { + "message": "Nav pieņemti izmantošanas nosacījumi un privātuma politika." + }, + "termsOfService": { + "message": "Izmantošanas nosacījumi" + }, + "privacyPolicy": { + "message": "Privātuma nosacījumi" + }, + "filters": { + "message": "Atlases" + }, + "vaultTimeout": { + "message": "Glabātavas noildze" + }, + "vaultTimeoutDesc": { + "message": "Izvēlēties, kad glabātavai iestāsies noildze un tiks izpildīta atlasītā darbība." + }, + "oneMinute": { + "message": "1 minūte" + }, + "fiveMinutes": { + "message": "5 minūtes" + }, + "fifteenMinutes": { + "message": "15 minūtes" + }, + "thirtyMinutes": { + "message": "30 minūtes" + }, + "oneHour": { + "message": "1 stunda" + }, + "fourHours": { + "message": "4 stundas" + }, + "onRefresh": { + "message": "Pēc pārlūka pārlādes" + }, + "dateUpdated": { + "message": "Atjaunināts", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Parole atjaunināta", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Apvienība ir atspējota." + }, + "licenseIsExpired": { + "message": "Ir beidzies licences izmantošanas laiks." + }, + "updatedUsers": { + "message": "Lietotāji atjaunināti" + }, + "selected": { + "message": "Atlasīts" + }, + "ownership": { + "message": "Īpašumtiesības" + }, + "whoOwnsThisItem": { + "message": "Kam pieder šis vienums?" + }, + "strong": { + "message": "Spēcīga", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Laba", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Vāja", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Ļoti vāja", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Vāja galvenā parole" + }, + "weakMasterPasswordDesc": { + "message": "Izvēlētā galvenā parole ir vāja. Ir ieteicams izmantot spēcīgu galveno paroli (vai paroles vārdu salikumu), lai pienācīgi aizsargātu Bitwarden kontu. Vai tiešām izmanto šo galveno paroli?" + }, + "rotateAccountEncKey": { + "message": "Mainīt arī konta šifrēšanas atslēgu" + }, + "rotateEncKeyTitle": { + "message": "Mainīt šifrēšanas atslēgu" + }, + "rotateEncKeyConfirmation": { + "message": "Vai tiešām mainīt konta šifrēšanas atslēgu?" + }, + "attachmentsNeedFix": { + "message": "Šim vienumam ir veci datņu pielikumi, kas ir jāsalabo." + }, + "attachmentFixDesc": { + "message": "Šis ir vecs datnes pielikums, kas ir jāsalabo. Klikšķināt, lai uzzinātu vairāk." + }, + "fix": { + "message": "Salabot", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Glabātavā atrodas veci datņu pielikumi, kas ir jāsalabo, pirms tiek veikta konta šifrēšanas atslēgu maiņa." + }, + "yourAccountsFingerprint": { + "message": "Konta atpazīšanas vārdkopa", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Lai pārliecinātos par šifrēšanas atslēgu neskartību, lūgums pirms turpināšanas pārbaudīt lietotāja atpazīšanas vārdkopu.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Vairs nevaicāt pārbaudīt atpazīšanas vārdkopu", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Bezmaksas", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API atslēga" + }, + "apiKeyDesc": { + "message": "API atslēga var tikt izmantota, lai autentificētos Bitwarden publiskā API izmantošanai." + }, + "apiKeyRotateDesc": { + "message": "API atslēgas mainīšana padarīs nederīgu iepriekšējo. Pašreizējo API atslēgu var mainīt, ja ir aizdomas, ka tā vairs nav droša izmantošanai." + }, + "apiKeyWarning": { + "message": "API atslēga nodrošina pilnīgu piekļuvi apvienībai. To vajadzētu glabāt noslēpumā." + }, + "userApiKeyDesc": { + "message": "API atslēga var tikt izmantota, lai autentificētos Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "API atslēga ir papildus autentificēšanās risinājums. To vajadzētu glabāt noslēpumā." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 klienta akreditācijas dati", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Skatīt API atslēgu" + }, + "rotateApiKey": { + "message": "Mainīt API atslēgu" + }, + "selectOneCollection": { + "message": "Ir jāizvēlas vismaz viens krājums." + }, + "couldNotChargeCardPayInvoice": { + "message": "Nebija iespējams veikt apmaksu ar norādīto karti. Lūgums apskatīt un apmaksāt zemāk norādīto rēķinu." + }, + "inAppPurchase": { + "message": "Pirkšana lietotnē" + }, + "cannotPerformInAppPurchase": { + "message": "Šī darbība nevar tikt veikta, izmantojot pirkšana lietotnē apmaksas veidu." + }, + "manageSubscriptionFromStore": { + "message": "Abonements ir jāpārvalda veikalā, kurā tika veikts pirkums lietotnē." + }, + "minLength": { + "message": "Mazākais pieļaujamais garums" + }, + "clone": { + "message": "Pavairot" + }, + "masterPassPolicyDesc": { + "message": "Uzstādīt galvenās paroles stipruma mazākās izpildāmās prasības." + }, + "twoStepLoginPolicyDesc": { + "message": "Pieprasīt lietotājiem uzstādīt divpakāpju pierakstīšanos personīgajiem kontiem." + }, + "twoStepLoginPolicyWarning": { + "message": "Apvienības dalībnieki, kuri nav īpašnieki vai pārvaldītāji un kuriem nav iespējota divpakāpju pierakstīšanās personīgajam kontam, tiks noņemti, un viņiem tiks nosūtīts e-pasta ziņojums par izmaiņām." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Tu esi apvienību, kas pieprasa lietotāju kontā iespējot divpakāpju pierakstīšanos, dalībnieks. Ja tiks atspējoti visi divpakāpju pierakstīšanās nodrošinātāji, Tu automātiski tiksi noņemts šīm apvienībām." + }, + "passwordGeneratorPolicyDesc": { + "message": "Uzstādīt paroļu veidotāja uzstādījumu mazākās izpildāmās prasības." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Viens vai vairāki apvienības nosacījumi ietekmē veidotāja iestatījumus." + }, + "masterPasswordPolicyInEffect": { + "message": "Vienā vai vairākos apvienības nosacījumos ir norādīts, ka galvenajai parolei ir jāatbilst šādām prasībām:" + }, + "policyInEffectMinComplexity": { + "message": "Mazākais pieļaujamais sarežģītības novērtējums ir $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Mazākais pieļaujamais garums ir $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Satur vienu vai vairākus lielos burtus" + }, + "policyInEffectLowercase": { + "message": "Satur vienu vai vairākus mazos burtus" + }, + "policyInEffectNumbers": { + "message": "Satur vienu vai vairākus ciparus" + }, + "policyInEffectSpecial": { + "message": "Satur vienu vai vairākas no šīm īpašajām rakstzīmēm: $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Jaunā galvenā parole neatbilst nosacījumu prasībām." + }, + "minimumNumberOfWords": { + "message": "Mazākais pieļaujamais vārdu skaits" + }, + "defaultType": { + "message": "Noklusējuma veids" + }, + "userPreference": { + "message": "Lietotāja izvēle" + }, + "vaultTimeoutAction": { + "message": "Glabātavas noildzes darbība" + }, + "vaultTimeoutActionLockDesc": { + "message": "Ir nepieciešams atkārtoti ievadīt galveno paroli, lai piekļūt aizslēgtai glabātavai." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Pēc izrakstīšanās no glabātavas ir nepieciešams tai pieslēgties atkārtoti." + }, + "lock": { + "message": "Aizslēgt", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Atkritne", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Meklēt atkritnē" + }, + "permanentlyDelete": { + "message": "Neatgriezeniski izdzēst" + }, + "permanentlyDeleteSelected": { + "message": "Neatgriezeniski izdzēst atlasīto" + }, + "permanentlyDeleteItem": { + "message": "Neatgriezeniski izdzēst vienumu" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Vai tiešām neatgriezeniski izdzēst šo vienumu?" + }, + "permanentlyDeletedItem": { + "message": "Vienums neatgriezeniski izdzēsts" + }, + "permanentlyDeletedItems": { + "message": "Vienum neatgriezeniski izdzēsti" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Neatgriezeniskai izdzēšanai ir atlasīts(i) $COUNT$ vienums(i). Vai tiešām izdzēst tos visus?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Vienums $ID$ neatgriezeniski izdzēsts.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Atjaunot" + }, + "restoreSelected": { + "message": "Atjaunot atlasīto" + }, + "restoreItem": { + "message": "Atjaunot vienumu" + }, + "restoredItem": { + "message": "Vienums atjaunots" + }, + "restoredItems": { + "message": "Vienumi atjaunoti" + }, + "restoreItemConfirmation": { + "message": "Vai tiešām atjaunot šo vienumu?" + }, + "restoreItems": { + "message": "Atjaunot vienumus" + }, + "restoreSelectedItemsDesc": { + "message": "Atjaunošanai ir atlasīts(i) $COUNT$ vienums(i). Vai tiešām atjaunot tos visus?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Vienums $ID$ atjaunots.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Izrakstīšanās noņems piekļuvi glabātavai un pieprasa tiešsaistes pierakstīšanos pēc noildzes laika. Vai tiešām izmantot šo iestatījumu?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Noildzes darbības apstiprināšana" + }, + "hidePasswords": { + "message": "Slēpt paroles" + }, + "countryPostalCodeRequiredDesc": { + "message": "Šī informācija ir nepieciešama tikai tirdzniecības nodokļa aprēķināšanai un finanšu atskaitēm." + }, + "includeVAT": { + "message": "Iekļaut VAT/GST informāciju (nav nepieciešama)" + }, + "taxIdNumber": { + "message": "VAT/GST nodokļu maksātāja numurs" + }, + "taxInfoUpdated": { + "message": "Nodokļu informācija atjaunināta." + }, + "setMasterPassword": { + "message": "Uzstādīt galveno paroli" + }, + "ssoCompleteRegistration": { + "message": "Lai pabeigtu vienotās pieteikšanās uzstādīšanu, ir jānorāda galvenā parole, lai piekļūtu glabātavai un aizsargātu to." + }, + "identifier": { + "message": "Identifikators" + }, + "organizationIdentifier": { + "message": "Apvienības identifikators" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Pierakstīties, izmantojot apvienības vienotās pieteikšanās portālu. Lūgums ievadīt apvienības identifikatoru, lai sāktu." + }, + "enterpriseSingleSignOn": { + "message": "Uzņēmuma vienotā pierakstīšanās" + }, + "ssoHandOff": { + "message": "Šo cilni tagad var aizvērt un turpināt paplašinājumā." + }, + "includeAllTeamsFeatures": { + "message": "Visas vienību iespējas, kā arī:" + }, + "includeSsoAuthentication": { + "message": "Vienotā autentificēšanās ar SAML 2.0 un OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Uzņēmuma nosacījumi" + }, + "ssoValidationFailed": { + "message": "SSO pārbaude neizdevās" + }, + "ssoIdentifierRequired": { + "message": "Ir nepieciešams apvienības identifikators." + }, + "unlinkSso": { + "message": "Atsaistīt SSO" + }, + "unlinkSsoConfirmation": { + "message": "Vai tiešām atsaistīt vienoto pieteikšanos šai apvienībai?" + }, + "linkSso": { + "message": "Piesaistīt SSO" + }, + "singleOrg": { + "message": "Viena vienīga apvienība" + }, + "singleOrgDesc": { + "message": "Ierobežo lietotāju iespēju pievienoties citām apvienībām." + }, + "singleOrgBlockCreateMessage": { + "message": "Tavā pašreizējā apvienībā ir nosacījums, kas neļauj pievienoties vairāk kā vienai. Lūdzu, sazinies ar savas apvienības pārvaldniekiem vai piesakies no cita Bitwarden konta!" + }, + "singleOrgPolicyWarning": { + "message": "Apvienības dalībnieki, kas nav īpašnieki vai pārvaldītāji un jau ir dalībnieki citā apvienībā, tiks atbrīvoti." + }, + "requireSso": { + "message": "Vienotās pieteikšanās autentificēšana" + }, + "requireSsoPolicyDesc": { + "message": "Norāda, ka lietotājiem ir jāpierakstās ar uzņēmuma vienoto pieteikšanos." + }, + "prerequisite": { + "message": "Priekšnosacījumi" + }, + "requireSsoPolicyReq": { + "message": "Vienas vienīgas apvienības uzņēmuma nosacījumiem ir jābūt iespējotai pirms šī nosacījuma uzstādīšanas." + }, + "requireSsoPolicyReqError": { + "message": "Vienas vienīgas apvienības nosacījumi nav iespējoti." + }, + "requireSsoExemption": { + "message": "Uz apvienības īpašniekiem un pārvaldītājiem neattiecas šīs nosacījumu kopas piemērošana." + }, + "sendTypeFile": { + "message": "Datne" + }, + "sendTypeText": { + "message": "Teksts" + }, + "createSend": { + "message": "Izveidot jaunu \"Send\"", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Labot \"Send\"", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "\"Send\" izveidots", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "\"Send\" labots", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "\"Send\" izdzēsts", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Dzēst \"Send\"", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Vai tiešām izdzēst šo \"Send\"?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Kāds veids ir šim \"Send\"?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Dzēšanas datums" + }, + "deletionDateDesc": { + "message": "\"Send\" tiks pastāvīgi izdzēsts norādītajā dienā un laikā.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Derīguma beigu datums" + }, + "expirationDateDesc": { + "message": "Ja uzstādīts, piekļuve šim \"Send\" beigsies norādītajā dienā un laikā.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Lielākais pieļaujamais piekļuvju skaits" + }, + "maxAccessCountDesc": { + "message": "Ja uzstādīts, lietotāji nevarēs piekļūt šim \"Send\", kad tiks sasniegts lielākais pieļaujamais piekļūšanas reižu skaits.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Pašreizējais piekļuvju skaits" + }, + "sendPasswordDesc": { + "message": "Pēc izvēles pieprasīt lietotājiem paroli, lai viņi varētu piekļūt šim \"Send\".", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Personīgās piezīmes par šo \"Send\".", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Atspējots" + }, + "sendLink": { + "message": "\"Send\" saite", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Ievietot \"Send\" saiti starpliktuvē", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Noņemt paroli" + }, + "removedPassword": { + "message": "Parole noņemta" + }, + "removePasswordConfirmation": { + "message": "Vai tiešām noņemt paroli?" + }, + "hideEmail": { + "message": "Slēpt e-pasta adresi no saņēmējiem." + }, + "disableThisSend": { + "message": "Atspējot šo \"Send\", lai neviens tam nevarētu piekļūt.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Visi \"Send\"" + }, + "maxAccessCountReached": { + "message": "Sasniegts lielākais pieļaujamais piekļuvju skaits", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Gaida dzēšanu" + }, + "expired": { + "message": "Beidzies izmantošanas laiks" + }, + "searchSends": { + "message": "Meklēt \"Send\"", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Šis \"Send\" ir aizsargāts ar paroli. Lūgums ievadīt paroli, lai varētu turpināt.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Nezini paroli? Vaicā to sūtītājam, lai varētu piekļūt šim \"Send\"!", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Šis \"Send\" pēc noklusējuma ir paslēpts. Tā redzamību var pārslēgt ar zemāk esošo pogu.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Lejupielādēt datni" + }, + "sendAccessUnavailable": { + "message": "\"Send\", kam mēģini piekļūt, nepastāv vai arī nav vairs pieejams.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Ar šo \"Send\" saistīto datni nevarēja atrast.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Nav \"Send\", ko parādīt.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Ārkārtas piekļuve" + }, + "emergencyAccessDesc": { + "message": "Nodrošināt un pārvaldīt ārkārtas piekļuvi uzticamām kontaktpersonām. Tās var pieprasīt piekļuvi vai nu skatīt, vai arī pārņemt kontu ārkārtas gadījumā. Mūsu palīdzības lapā var uzzināt vairāk par to, kā darbojas bezzināšanu kopīgošana." + }, + "emergencyAccessOwnerWarning": { + "message": "Tu esi vienas vai vairāku apvienību īpašnieks. Ja sniegsi pārņemšanas piekļuvi ārkārtas kontaktpersonām, tās arī varēs izmantot visas īpašnieka tiesības pēc pārņemšanas." + }, + "trustedEmergencyContacts": { + "message": "Uzticamas ārkārtas kontaktpersonas" + }, + "noTrustedContacts": { + "message": "Vēl nav pievienots neviena ārkārtas kontaktpersona. Uzaicini kādu, lai uzsāktu!" + }, + "addEmergencyContact": { + "message": "Pievienot ārkārtas kontaktpersonu" + }, + "designatedEmergencyContacts": { + "message": "Norādīta kā ārkārtas kontaktpersona" + }, + "noGrantedAccess": { + "message": "Tu vēl neesi norādīts kā kāda ārkārtas kontaktpersona." + }, + "inviteEmergencyContact": { + "message": "Uzaicināt ārkārtas kontaktpersonu" + }, + "editEmergencyContact": { + "message": "Labot ārkārtas kontaktpersonu" + }, + "inviteEmergencyContactDesc": { + "message": "Uzaicināt jaunu ārkārtas kontaktpersonu, norādot tās Bitwarden konta e-pasta adresi zemāk esošajā ievades laukā. Ja kontaktpersonai vēl nav Bitwarden konta, tai tiks vaicāts izveidot jaunu." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Uzsākta ārkārtas piekļuve" + }, + "emergencyAccessRecoveryApproved": { + "message": "Ārkārtas piekļuve apstiprināta" + }, + "viewDesc": { + "message": "Var apskatīt visus glabātavas vienumus." + }, + "takeover": { + "message": "Pārņemšana" + }, + "takeoverDesc": { + "message": "Var atiestatīt kontu ar jaunu galveno paroli." + }, + "waitTime": { + "message": "Gaidīšanas laiks" + }, + "waitTimeDesc": { + "message": "Nepieciešamais laiks, pirms automātiski atļaut piekļuvi." + }, + "oneDay": { + "message": "1 diena" + }, + "days": { + "message": "$DAYS$ dienas", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Lietotājs uzaicināts." + }, + "acceptEmergencyAccess": { + "message": "Tu esi uzaicināts kļūt par ārkārtas kontaktpersonu augstāk norādītajam lietotājam. Lai apstiprinātu uzaicinājumu, ir nepieciešams pierakstīties vai izveidot jaunu Bitwarden kontu." + }, + "emergencyInviteAcceptFailed": { + "message": "Nav iespējams apstiprināt uzaicinājumu. Lūdz lietotājam nosūtīt jaunu!" + }, + "emergencyInviteAcceptFailedShort": { + "message": "Nav iespējams apstiprināt uzaicinājumu. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Šī lietotāja ārkārtas iespējas būs pieejamas pēc tam, kad būs apliecināta Tava identitāte. Tiks nosūtīts e-pasta paziņojums, kad tas notiks." + }, + "requestAccess": { + "message": "Pieprasīt piekļuvi" + }, + "requestAccessConfirmation": { + "message": "Vai tiešām pieprasīt ārkārtas piekļuvi? Tā tiks nodrošināta pēc $WAITTIME$ dienas(ām) vai pēc tam, kad lietotājs apstiprinās pieprasījumu.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Ārkārtas piekļuve ir pieprasīta lietotājam $USER$. Tiks nosūtīts e-pasta paziņojums, kad būs iespējams turpināt.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Apstiprināt" + }, + "reject": { + "message": "Noraidīt" + }, + "approveAccessConfirmation": { + "message": "Vai tiešām apstiprināt ārkārtas piekļuvi? Tā ļaus lietotājam $USER$ Tavā kontā veikt šādas darbības: $ACTION$.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Ārkārtas piekļuve apstiprināta." + }, + "emergencyRejected": { + "message": "Ārkārtas piekļuve noraidīta" + }, + "passwordResetFor": { + "message": "Parole atiestatīta lietotājam $USER$. Tagad var pierakstīties ar jauno paroli.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personīgās īpašumtiesības" + }, + "personalOwnershipPolicyDesc": { + "message": "Pieprasa lietotājus piesaistīt glabātavas vienumus apvienībai, noņemot personīgo īpašumtiesību iespēju." + }, + "personalOwnershipExemption": { + "message": "Uz apvienības īpašniekiem un pārvaldītājiem neattiecas šīs nosacījumu kopas piemērošana." + }, + "personalOwnershipSubmitError": { + "message": "Uzņēmuma nosacījumi liedz saglabāt vienumus privātajā glabātavā. Ir jānorāda piederība apvienībai un jāizvēlas kāds no pieejamajiem krājumiem." + }, + "disableSend": { + "message": "Atspējot \"Send\"" + }, + "disableSendPolicyDesc": { + "message": "Neļaut lietotājiem izveidot vai labot Bitwarden \"Send\". Esošu \"Send\" dzēšana joprojām ir iespējama.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Apvienību lietotāji, kas var pārvaldīt apvienības nosacījumu kopas, nav pakļauti šīs nosacījumu kopas piemērošanai." + }, + "sendDisabled": { + "message": "\"Send\" atspējots", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Uzņēmuma nosacījumu kopas dēļ ir tikai iespējams dzēst esošu \"Send\".", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "\"Send\" iestatījumi", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Uzstādīt iestatījumus \"Send\" izveidošanai un labošanai.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Apvienību lietotāji, kas var pārvaldīt apvienības nosacījumu kopas, nav pakļauti šīs nosacījumu kopas piemērošanai." + }, + "disableHideEmail": { + "message": "Neļaut lietotājiem slēpt e-pasta adresi no saņēmējiem, kad tiek izveidots vai labots \"Send\".", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Ir spēkā zemāk uzskaitītie apvienības nosacījumi:" + }, + "sendDisableHideEmailInEffect": { + "message": "Lietotājiem nav ļauts slēpt e-pasta adresi no saņēmējiem, kad tiek izveidots vai labots \"Send\".", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Nosacījums $ID$ izmainīts.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plāna cena" + }, + "estimatedTax": { + "message": "Aptuvenais nodokļa aprēķins" + }, + "custom": { + "message": "Pielāgots" + }, + "customDesc": { + "message": "Nodrošina izvērstāku lietotāju tiesību pārvaldību sarežģītākos uzstādījumos." + }, + "permissions": { + "message": "Atļaujas" + }, + "accessEventLogs": { + "message": "Piekļūt notikumu žurnāla ierakstiem" + }, + "accessImportExport": { + "message": "Piekļūt ievietošanai/izgūšanai" + }, + "accessReports": { + "message": "Piekļūt atskaitēm" + }, + "missingPermissions": { + "message": "Trūkst nepieciešamo atļauju, lai veiktu šo darbību." + }, + "manageAllCollections": { + "message": "Pārvaldīt visus krājumus" + }, + "createNewCollections": { + "message": "Izvaidot jaunus krājumus" + }, + "editAnyCollection": { + "message": "Labot jebkuru krājumu" + }, + "deleteAnyCollection": { + "message": "Izdzēst jebkuru kolekciju" + }, + "manageAssignedCollections": { + "message": "Pārvaldīt norīkotos krājumus" + }, + "editAssignedCollections": { + "message": "Labot norīkotos krājumus" + }, + "deleteAssignedCollections": { + "message": "Izdzēst norīkotos krājumus" + }, + "manageGroups": { + "message": "Pārvaldīt kopas" + }, + "managePolicies": { + "message": "Pārvaldīt nosacījumus" + }, + "manageSso": { + "message": "Pārvaldīt vienoto pieteikšanos" + }, + "manageUsers": { + "message": "Pārvaldīt lietotājus" + }, + "manageResetPassword": { + "message": "Pārvaldīt paroles atiestatīšanu" + }, + "disableRequiredError": { + "message": "Vispirms pašrocīgi ir jāatspējo nosacījums $POLICYNAME$, lai varētu atspējot šo.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "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 personīgajā glabātavā." + }, + "personalOwnershipCheckboxDesc": { + "message": "Atspējot personīgās īpašumtiesības apvienības lietotājiem" + }, + "textHiddenByDefault": { + "message": "Kad piekļūst šim \"Send\", pēc noklusējuma paslēpt saturu", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Lasāms nosaukums, kas apraksta šo \"Send\".", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Teksts, kuru ir vēlme nosūtīt." + }, + "sendFileDesc": { + "message": "Datne, kuru ir vēlme nosūtīt." + }, + "copySendLinkOnSave": { + "message": "Saglabājot ievietot šī \"Send\" saiti starpliktuvē." + }, + "sendLinkLabel": { + "message": "\"Send\" saite", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "\"Send\"", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden \"Send\" vienkārši un droši pārsūta citiem slepenu un īslaicīgu informāciju.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Uzzināt vairāk par", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Tieša teksta vai datņu kopīgošana ar jebkuru." + }, + "sendVaultCardLearnMore": { + "message": "Uzzināt vairāk", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "skatīt", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": ", kā tas darbojas", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "vai", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "izmēģināt tagad", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "vai", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "pieteikties", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "izmēģinātu šodien.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden lietotājs $USER_IDENTIFIER$ kopīgoja sekojošo", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Bitwarden lietotājs, kurš izveidoja šo \"Send\", ir izvēlējies slēpt savu e-pasta adresi. Ir jāpārliecinās par avota uzticamību, pirms tiek izmantots vai lejupielādēts tā saturs.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Norādītais derīguma beigu datums nav derīgs." + }, + "deletionDateIsInvalid": { + "message": "Norādītais dzēšanas datums nav derīgs." + }, + "expirationDateAndTimeRequired": { + "message": "Ir jānorāda derīguma beigu datums un laiks." + }, + "deletionDateAndTimeRequired": { + "message": "Ir jānorāda dzēšanas datums un laiks." + }, + "dateParsingError": { + "message": "Atgadījās kļūda, saglabājot dzēšanas un derīguma beigu datumus." + }, + "webAuthnFallbackMsg": { + "message": "Lai apstiprinātu 2FA, lūgums klikšķināt uz zemāk esošās pogas." + }, + "webAuthnAuthenticate": { + "message": "Autentificēt WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn šajā pārlūkā netiek atbalstīts." + }, + "webAuthnSuccess": { + "message": "WebAuthn tika veiksmīgi apstiprināts.
Šo cilni var aizvērt." + }, + "hintEqualsPassword": { + "message": "Paroles norāde nedrīkst būt tāda pati kā parole." + }, + "enrollPasswordReset": { + "message": "Pievienot paroles atiestatīšanās sarakstam" + }, + "enrolledPasswordReset": { + "message": "Pievienots paroles atiestatīšanās sarakstam" + }, + "withdrawPasswordReset": { + "message": "Izņemt no paroles atiestatīšanas saraksta" + }, + "enrollPasswordResetSuccess": { + "message": "Pievienošana bija veiksmīga." + }, + "withdrawPasswordResetSuccess": { + "message": "Izņemšana bija veiksmīga." + }, + "eventEnrollPasswordReset": { + "message": "Lietotājs $ID$ tika pievienots paroles atiestatīšanas atbalsta sarakstam.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Lietotājs $ID$ tika izņemts no paroles atiestatīšanas atbalsta saraksta.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Lietotāja $ID$ galvenā parole tika atiestatīta.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Atiestatīt vienotās pierakstīšānās saiti lietotājam $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ pirmo reizi pierakstījās izmantojot vienoto pieteikšanos", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Atiestatīt paroli" + }, + "resetPasswordLoggedOutWarning": { + "message": "Turpināšana izrakstīs $NAME$ no pašreizējās sesijas, un pēc tam būs nepieciešams pierakstīties. Citās ierīcēs darbojošās sesijas var būt spēkā līdz vienai stundai.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "šo lietotāju" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Vienā vai vairākos apvienības nosacījumos ir norādīts, ka galvenajai parolei ir jāatbilst šādām prasībām:" + }, + "resetPasswordSuccess": { + "message": "Peroles atiestatīšana bija veiksmīga" + }, + "resetPasswordEnrollmentWarning": { + "message": "Ievietošana sarakstā ļaus apvienības pārvaldniekiem mainīt galveno paroli. Vai tiešām ievietot sarakstā?" + }, + "resetPasswordPolicy": { + "message": "Galvenās paroles atiestatīšana" + }, + "resetPasswordPolicyDescription": { + "message": "Ļaut apvienības pārvaldniekiem atiestatīt lietotāju galveno paroli." + }, + "resetPasswordPolicyWarning": { + "message": "Apvienības lietotājiem pašiem būs sevi jāievieto sarakstā vai viņiem jābūt automātiski ievietotiem sarakstā, pirms pārvaldnieki var atiestatīt galveno paroli." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automātiska ievietošana sarakstā" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Visi lietotāji tiks automātiski ievietoti paroles atiestatīšanas sarakstā, tiklīdz viņi apstiprinās uzaicinājumu." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Apvienībā jau esošie lietotāji netiks ar atpakaļejošu spēku ievietoti paroles atiestatīšanas sarakstā. Viņiem būs tas jāizdara pašiem, pirms pārvaldnieki varēs atiestatīt viņu galveno paroli." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Automātiski ievietot sarakstā jaunos lietotājus" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Šajā apvienībā ir uzņēmuma nosacījums, kas automātiski ievieto lietotājus paroles atiestatīšanas sarakstā. Tas ļauj apvienības pārvaldniekiem mainīt lietotāju galveno paroli." + }, + "resetPasswordOrgKeysError": { + "message": "Apvienības atslēgu atbilde ir `null`" + }, + "resetPasswordDetailsError": { + "message": "Paroles atiestatīšanas informācijas atbilde ir `null`" + }, + "trashCleanupWarning": { + "message": "Šifri, kas atkritnē atrodas vairāk nekā 30 dienas, tiks izdzēsti." + }, + "trashCleanupWarningSelfHosted": { + "message": "Šifri, kas atkritnē atrodas jau kādu laika posmu, tiks izdzēsti." + }, + "passwordPrompt": { + "message": "Galvenās paroles pārvaicāšana" + }, + "passwordConfirmation": { + "message": "Galvenās paroles apstiprināšana" + }, + "passwordConfirmationDesc": { + "message": "Šī darbība ir aizsargāta. Lai turpinātu, ir jāievada galvenā parole, lai apstiprinātu identitāti." + }, + "reinviteSelected": { + "message": "Atkārtoti nosūtīt uzaicinājumus" + }, + "noSelectedUsersApplicable": { + "message": "Šī darbība nav attiecināma uz nevienu no atlasītajiem lietotājiem." + }, + "removeUsersWarning": { + "message": "Vai tiešām noņemt šos lietotājus? Tas var aizņemt dažas sekundes un nevar tikt pārtraukts vai atcelts." + }, + "theme": { + "message": "Izskats" + }, + "themeDesc": { + "message": "Izvēlēties tīmekļa glabātavas izskatu." + }, + "themeSystem": { + "message": "Izmantot sistēmas izskatu" + }, + "themeDark": { + "message": "Tumšs" + }, + "themeLight": { + "message": "Gaišs" + }, + "confirmSelected": { + "message": "Apstiprināt atlasīto" + }, + "bulkConfirmStatus": { + "message": "Apjoma darbību stāvoklis" + }, + "bulkConfirmMessage": { + "message": "Veiksmīgi apstiprināts." + }, + "bulkReinviteMessage": { + "message": "Uzaicinājums veiksmīgi nosūtīts atkārtoti." + }, + "bulkRemovedMessage": { + "message": "Veiksmīgi noņemts" + }, + "bulkFilteredMessage": { + "message": "Nav iekļauts, tādēļ nav piemērojams šai darbībai." + }, + "fingerprint": { + "message": "Pirkstu nospiedums" + }, + "removeUsers": { + "message": "Noņemt lietotājus" + }, + "error": { + "message": "Kļūda" + }, + "resetPasswordManageUsers": { + "message": "Lietotāju pārvaldīšanai ir jābūt iespējotai arī ar paroļu atiestatīšanas pārvaldīšanas atļauju" + }, + "setupProvider": { + "message": "Sniedzēja iestatīšana" + }, + "setupProviderLoginDesc": { + "message": "Ir saņemts uzaicinājums iestatīt jaunu sniedzēju. Lai turpinātu, ir nepieciešams pierakstīties vai izveidot jaunu Bitwarden kontu." + }, + "setupProviderDesc": { + "message": "Lūgums zemāk norādīt nepieciešamo, lai pabeigtu sniedzēja iestatīšanu. Jautājumu gadījumā jāsazinās ar klientu atbalstu." + }, + "providerName": { + "message": "Sniedzēja nosaukums" + }, + "providerSetup": { + "message": "Sniedzējs ir iestatīts." + }, + "clients": { + "message": "Pasūtītāji" + }, + "providerAdmin": { + "message": "Sniedzēja pārvaldnieks" + }, + "providerAdminDesc": { + "message": "Augstākās piekļuves lietotājs, kurš var pilnībā pārvaldīt sniedzēju, kā arī piekļūt pasūtītāju apvienībām un tās pārvaldīt." + }, + "serviceUser": { + "message": "Pakalpojuma lietotājs" + }, + "serviceUserDesc": { + "message": "Apkalpes lietotāji var piekļūt visām pasūtītāju apvienībām un tās pārvaldīt." + }, + "providerInviteUserDesc": { + "message": "Uziacināt jaunu sniedzēja lietotāju, zemāk esošajā laukā ievadot viņa Bitwarden konta e-pasta adresi. Ja viņam vēl nav Bitwarden konta, tiks vaicāts izveidot jaunu." + }, + "joinProvider": { + "message": "Pievienoties sniedzējam" + }, + "joinProviderDesc": { + "message": "Tu esi uzaicināts pievienoties augstāk norādītajam sniedzējam. Lai to pieņemtu, jāpierakstās vai jāizveido jauns Bitwarden konts." + }, + "providerInviteAcceptFailed": { + "message": "Nav iespējams pieņemt uzaicinājumu. Jālūdz sniedzēja pārvaldniekam nosūtīt jaunu." + }, + "providerInviteAcceptedDesc": { + "message": "Piekļūt sniedzējam būs iespējams, kad tās pārvaldnieks apstiprinās dalību. Tiks nosūtīts e-pasta ziņojums, kad tas notiks." + }, + "providerUsersNeedConfirmed": { + "message": "Ir lietotāji, kas nav pieņēmuši uzaicinājumu, bet joprojām ir jāapstiprina. Lietotājiem nebūs piekļuves sniedzējam, līdz tie nebūs apstiprināti." + }, + "provider": { + "message": "Sniedzējs" + }, + "newClientOrganization": { + "message": "Jauna sniedzēja apvienība" + }, + "newClientOrganizationDesc": { + "message": "Izveidot jaunu pasūtītāja apvienību, kas būs piesaistīta šim kontam kā sniedzējam. Tas nodrošinās iespēju piekļūt šai apvienībai un to pārvaldīt." + }, + "addExistingOrganization": { + "message": "Pievienot esošo apvienību" + }, + "myProvider": { + "message": "Mans sniedzējs" + }, + "addOrganizationConfirmation": { + "message": "Vai tiešām pievienot $ORGANIZATION$ kā pasūtītāju $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Apvienība tika veiksmīgi pievienota sniedzējam" + }, + "accessingUsingProvider": { + "message": "Piekļūst apvienībai ar sniedzēju $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Sniedzējs ir atspējots." + }, + "providerUpdated": { + "message": "Sniedzējs atjaunināts" + }, + "yourProviderIs": { + "message": "Tavs nodrošinātājs ir $PROVIDER$. Tam apvienībā ir pārvaldīšanas (tajā skaitā izmaksu) tiesības.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "Apvienība $ORGANIZATION$ tika atdalīta no sniedzēja.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Vai tiešām atdalīt šo apvienību? Tā turpinās pastāvēt, bet to vairs nepārvaldīs sniedzējs." + }, + "add": { + "message": "Pievienot" + }, + "updatedMasterPassword": { + "message": "Galvenā parole atjaunināta" + }, + "updateMasterPassword": { + "message": "Atjaunināt galveno paroli" + }, + "updateMasterPasswordWarning": { + "message": "Apvienības pārvaldnieks nesen nomainīja galveno paroli. Lai piekļūtu glabātavai, tā ir jāatjaunina. Turpinot tiks izbeigta pašreizējā sesija un tiks pieprasīta atkārtota pierakstīšanās. Esošās sesijas citās iekārtās var turpināt darboties līdz vienai stundai." + }, + "masterPasswordInvalidWarning": { + "message": "Galvenā parole neatbilst apvienības nosacījumu prasībām. Lai pievienotos apvienībai, ir nepieciešams atjaunināt galveno paroli. Turpinot notiks izrakstīšanās no pašreizējās sesijas, pieprasot atkal pierakstīties. Esošās sesijas citās iekārtās var turpināt darboties līdz vienai stundai." + }, + "maximumVaultTimeout": { + "message": "Glabātavas noildze" + }, + "maximumVaultTimeoutDesc": { + "message": "Uzstādīt lielāko iespējamo glabātavas noildzi visiem lietotājiem." + }, + "maximumVaultTimeoutLabel": { + "message": "Lielākā iespējamā glabātavas noildze" + }, + "invalidMaximumVaultTimeout": { + "message": "Nederīga lielākās iespējamās glabātavas noildzes vērtība." + }, + "hours": { + "message": "Stundas" + }, + "minutes": { + "message": "Minūtes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Apvienības nosacījumi ietekmē glabātavas noildzi. Lielākā atļautā glabātavas noildze ir $HOURS$ stunda(s) un $MINUTES$ minūte(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Pielāgota glabātavas noildze" + }, + "vaultTimeoutToLarge": { + "message": "Glabātavas noildze pāŗsniedz apvienības uzstādīto ierobežojumu." + }, + "disablePersonalVaultExport": { + "message": "Atspējot personīgās glabātavas izgūšanu" + }, + "disablePersonalVaultExportDesc": { + "message": "Aizliedz lietotājiem izgūt viņu personīgo glabātavu saturu." + }, + "vaultExportDisabled": { + "message": "Glabātavas izgūšana ir atspējota" + }, + "personalVaultExportPolicyInEffect": { + "message": "Viens vai vairāki apvienības nosacījumi neļauj izgūt privātās glabātavas saturu." + }, + "selectType": { + "message": "Atlasīt vienotās pieteikšanās veidu" + }, + "type": { + "message": "Veids" + }, + "openIdConnectConfig": { + "message": "OpenID Connect uzstādījumi" + }, + "samlSpConfig": { + "message": "SAML pakalpojuma nodrošinātāja uzstādījumi" + }, + "samlIdpConfig": { + "message": "SAML identitātes nodrošinātāja uzstādījumi" + }, + "callbackPath": { + "message": "Atzvana ceļš" + }, + "signedOutCallbackPath": { + "message": "Izrakstīšanās atzvana ceļš" + }, + "authority": { + "message": "Autoritāte" + }, + "clientId": { + "message": "Pasūtītāja Id" + }, + "clientSecret": { + "message": "Pasūtītāja noslēpums" + }, + "metadataAddress": { + "message": "Metadatu adrese" + }, + "oidcRedirectBehavior": { + "message": "OIDC pārvirzīšanas uzvedība" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Iegūt prasības no lietotāja informācijas galapunkta" + }, + "additionalScopes": { + "message": "Papildu/pielāgoti tvērumi (atdalīti ar komatu)" + }, + "additionalUserIdClaimTypes": { + "message": "Papildu/pielāgoti lietotāja Id prasību veidi (atdalīti ar komatu)" + }, + "additionalEmailClaimTypes": { + "message": "Papildu/pielāgoti e-pasta prasību veidi (atdalīti ar komatu)" + }, + "additionalNameClaimTypes": { + "message": "Papildu/pielāgoti vārda prasību veidi (atdalīti ar komatu)" + }, + "acrValues": { + "message": "Pieprasītās autentifikācijas konteksta klases atsauces vērtības (acr_values)" + }, + "expectedReturnAcrValue": { + "message": "Gaidāmā \"acr\" prasību vērtība atbildē (\"acr\" pārbaude)" + }, + "spEntityId": { + "message": "SP vienības Id" + }, + "spMetadataUrl": { + "message": "SAML 2.0 metadatu URL" + }, + "spAcsUrl": { + "message": "Apgalvojuma patērētāja pakalpes (ACS) URL" + }, + "spNameIdFormat": { + "message": "Vārda Id veidols" + }, + "spOutboundSigningAlgorithm": { + "message": "Izejošais parakstīšanas algoritms" + }, + "spSigningBehavior": { + "message": "Parakstīšānas uzvedība" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Mazākais pieļaujamais ienākošās parakstīšanas algoritms" + }, + "spWantAssertionsSigned": { + "message": "Grib parakstītus apgalvojumus" + }, + "spValidateCertificates": { + "message": "Pārbaudīt sertifikātus" + }, + "idpEntityId": { + "message": "Vienības Id" + }, + "idpBindingType": { + "message": "Saistīšanas veids" + }, + "idpSingleSignOnServiceUrl": { + "message": "Vienotās pierakstīšanās pakalpojuma URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Vienotās izrakstīšanās pakalpojuma URL" + }, + "idpX509PublicCert": { + "message": "X509 publiskais sertifikāts" + }, + "idpOutboundSigningAlgorithm": { + "message": "Izejošais parakstīšanas algoritms" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Atļaut nelūgtas autentifikācijas atbildi" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Atļaut izejošos izrakstīšanās pieprasījumus" + }, + "idpSignAuthenticationRequests": { + "message": "Parakstīt autentifikācijas pieprasījumus" + }, + "ssoSettingsSaved": { + "message": "Vienotās pieteikšanās uzstādījumi tika saglabāti." + }, + "sponsoredFamilies": { + "message": "Bezmaksas Bitwarden ģimenēm" + }, + "sponsoredFamiliesEligible": { + "message": "Tu un Tava ģimene esat atbilstīgi bezmaksas Bitwarden Families. Piesakies ar personīgo e-pasta adresi, lai turētu datus drošībā pat tad, kad neesi darbā!" + }, + "sponsoredFamiliesEligibleCard": { + "message": "Izmanto savu bezmaksas Bitwarden ģimenēm šodien, lai turētu datus drošībā pat tad, kad neesi darbā." + }, + "sponsoredFamiliesInclude": { + "message": "Bitwarden ģimenēm iekļauj" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium piekļuve līdz 6 lietotājiem" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Ģimenes noslēpumu kopīgotie krājumi" + }, + "badToken": { + "message": "Saite vairs nav derīga. Lūdz pabalstītāju atkārtoti nosūtīt piedāvājumu!" + }, + "reclaimedFreePlan": { + "message": "Mainīts uz bezmaksas plānu" + }, + "redeem": { + "message": "Izmantot" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Atlastīt apvienību, kuru atbalstīt" + }, + "familiesSponsoringOrgSelect": { + "message": "Kuru bezmaksas ģimeņu piedāvājumu Tu vēlies izmantot?" + }, + "sponsoredFamiliesEmail": { + "message": "Ievadīt personīgo e-pasta adresi, lai izmantotu Bitwarden ģimenēm" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Ja Tu pamet vai tiec noņemts no atbalstošās apvienības, Tavs ģimeņu plāns beigsies apmaksas laika posma beigās." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Pieņemt piedāvājumu esošai apvienībai vai izveidot jaunu ģimenes apvienību." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Tev ir piedāvāta bezmaksas Bitwarden ģimenēm apvienība. Lai turpinātu, ir nepieciešams pierakstītites kontā, kas saņēma piedāvājumu." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Nav iespējams pieņemt piedāvājumu. Lūgums pārsūtīt piedāvājuma e-pasta ziņu no uzņēmējdarbības konta un mēģināt vēlreiz." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Nav iespējams apstiprināt piedāvājumu. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Pieņemt bezmaksas Bitwarden ģimenēm" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Bezmaksas Bitwarden ģimenēm piedāvājums veiksmīgi izmantots" + }, + "redeemed": { + "message": "Izmantots" + }, + "redeemedAccount": { + "message": "Izmantots konts" + }, + "revokeAccount": { + "message": "Atsaukt kontu $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Pārsūtīt $NAME$ pabalstītājdarbības e-pasta ziņojumu", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Bezmaksas ģimenes plāns" + }, + "redeemNow": { + "message": "Izmantot tagad" + }, + "recipient": { + "message": "Saņēmējs" + }, + "removeSponsorship": { + "message": "Noņemt pabalstītājdarbību" + }, + "removeSponsorshipConfirmation": { + "message": "Pēc pabalstītājdarbības noņemšanas Tu būsi atbildīgs par šo abonementu un saistītajiem rēķiniem. Vai tiešām turpināt?" + }, + "sponsorshipCreated": { + "message": "Izveidota pabalstītājdarbība" + }, + "revoke": { + "message": "Atsaukt" + }, + "emailSent": { + "message": "E-pasts nosūtīts" + }, + "revokeSponsorshipConfirmation": { + "message": "Pēc šī konta noņemšanas, ģimenes apvienības īpašnieks būsi atbildīgs par šo abonementu un saistītajiem rēķiniem. Vai tiešām turpināt?" + }, + "removeSponsorshipSuccess": { + "message": "Noņemta pabalstītājdarbība" + }, + "ssoKeyConnectorUnavailable": { + "message": "Nav iespējams sasniegt Key Connector, tāpēc vēlāk jāmēģina atkal." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Sūtīt apstiprinājuma kodu uz e-pastu" + }, + "sendCode": { + "message": "Nosūtīt kodu" + }, + "codeSent": { + "message": "Kods nosūtīts" + }, + "verificationCode": { + "message": "Apstiprinājuma kods" + }, + "confirmIdentity": { + "message": "Apstiprināt identitāti, lai turpinātu." + }, + "verificationCodeRequired": { + "message": "Ir nepieciešams apstiprinājuma kods." + }, + "invalidVerificationCode": { + "message": "Nederīgs apstiprinājuma kods" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ izmanto vienoto pieteikšanos ar pašizvietotu atslēgu serveri. Tās dalībniekiem vairs nav nepieciešama galvenā parole, lai pieslēgtos.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Pamest apvienību" + }, + "removeMasterPassword": { + "message": "Noņemt galveno paroli" + }, + "removedMasterPassword": { + "message": "Galvenā parole tika noņemta." + }, + "allowSso": { + "message": "Atļauto vienoto pieteikšanos" + }, + "allowSsoDesc": { + "message": "Pēc pabeigšanas uzstādījumi tiks saglabāti un dalībnieki varēs pieslēgties izmantojot savus identitātes nodrošinātāja akreditācijas datus." + }, + "ssoPolicyHelpStart": { + "message": "Iespējot", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "Vienotās pieteikšanās nosacījumi", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": ", lai pieprasītu dalībniekiem pierakstīties ar vienoto pieteikšanos.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "Ir nepieciešami vienotās pieteikšanās un vienas apvienības nosacījumi, lai uzstādītu Key Connector šifrēšanu." + }, + "memberDecryptionOption": { + "message": "Dalībnieka atšifrēšanas iespējas" + }, + "memberDecryptionPassDesc": { + "message": "Pēc pieteikšanās dalībnieki atšifrēs glabātavas saturu ar galveno paroli." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Savienot pierakstīšanos ar vienoto pieteikšanos pašizvietotā atšifrēšanas atslēgu serverī. Šī iespēja nodrošina, ka dalībniekiem nebūs nepieciešama galvenā parole, lai atšifrētu glabātavas saturu." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Pierakstīšanas ar vienoto pieteikšanos un Key Connectory atšifrēšana\" ir iespējots. Šis nosacījums attieksies tikai uz īpašniekiem un pārvaldniekiem." + }, + "enabledSso": { + "message": "Iespējota vienotā pieteikšanās" + }, + "disabledSso": { + "message": "Atspējota vienotā pieteikšanās" + }, + "enabledKeyConnector": { + "message": "Iespējots Key Connector" + }, + "disabledKeyConnector": { + "message": "Atspējots Key Connector" + }, + "keyConnectorWarning": { + "message": "Tiklīdz Key Connector ir uzstādīts, dalībnieku atšifrēšanas iespējas nevar mainīt." + }, + "migratedKeyConnector": { + "message": "Pāriets uz Key Connector" + }, + "paymentSponsored": { + "message": "Lūgums norādīt maksājumu veidu, ko piesaistīt apvienībai. Satraukties nevajag, jo iemaksa netiks ieturēta, ja vien netiks izvēlētas papildu iespējas vai kad izbeigsies pabalstītājdarbība. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "Atbalsta piedāvājums ir beidzies. Ir iespējams izdzēst izveidoto apvienību, lai izvairītos no maksas pēc 7 dienu izmēģinājuma laika. Pretējā gadījumā šo uzvedni, lai turpinātu izmantot apvienību un uzņemtos atbildību par norēķiniem." + }, + "newFamiliesOrganization": { + "message": "Jauna ģimeņu apvienība" + }, + "acceptOffer": { + "message": "Pieņemt piedāvājumu" + }, + "sponsoringOrg": { + "message": "Atbalstoša apvienība" + }, + "keyConnectorTest": { + "message": "Pārbaude" + }, + "keyConnectorTestSuccess": { + "message": "Panākums! Key Connector sasniegts." + }, + "keyConnectorTestFail": { + "message": "Nav iespējams sasniegt Key Connector. Jāpārbauda URL." + }, + "sponsorshipTokenHasExpired": { + "message": "Atbalsta piedāvājums ir beidzies." + }, + "freeWithSponsorship": { + "message": "Bezmaksas ar pabalstītājdarbību" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ augstāk esošajiem laukiem ir jāpievērš uzmanība.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 augstāk esošajam laukam jāpievērš uzmanība." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ ir nepieciešams.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "nepieciešams" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Nepieciešams, ja vienības Id nav URL." + }, + "openIdOptionalCustomizations": { + "message": "Papildu pielāgojumi" + }, + "openIdAuthorityRequired": { + "message": "Nepieciešams, ja autoritāte ir nederīga." + }, + "separateMultipleWithComma": { + "message": "Vairākus atdalīt ar komatu." + }, + "sessionTimeout": { + "message": "Sesijai iestājās noildze. Lūgums mēģināt pierakstīties vēlreiz." + }, + "exportingPersonalVaultTitle": { + "message": "Izdod personīgo glabātavu" + }, + "exportingOrganizationVaultTitle": { + "message": "Izdod apvienības glabātavu" + }, + "exportingPersonalVaultDescription": { + "message": "Tiks izdoti tikai personīgie glabātavas vienumi, kas ir saistīti ar $EMAIL$. Apvienības glabātavas vienumi netiks iekļauti.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Tiks izdota tikai apvienības glabātava, kas ir saistīta ar $ORGANIZATION$. Personīgie glabātavas vienumi un vienumi no citām apvienībām netiks iekļauti.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Atgriezties pie atskaitēm" + }, + "generator": { + "message": "Veidotājs" + }, + "whatWouldYouLikeToGenerate": { + "message": "Ko ir nepieciešams izveidot?" + }, + "passwordType": { + "message": "Paroles veids" + }, + "regenerateUsername": { + "message": "Pārizveidot lietotājvārdu" + }, + "generateUsername": { + "message": "Izveidot lietotājvārdu" + }, + "usernameType": { + "message": "Lietotājvārda veids" + }, + "plusAddressedEmail": { + "message": "E-pasta adrese ar plusu", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Izmantot e-pasta pakalpojuma nodrošinātāja apakšadresēšanas spējas." + }, + "catchallEmail": { + "message": "Visu tveroša e-pasta adrese" + }, + "catchallEmailDesc": { + "message": "Izmantot uzstādīto domēna visu tverošo iesūtni." + }, + "random": { + "message": "Nejauši" + }, + "randomWord": { + "message": "Nejaušs vārds" + }, + "service": { + "message": "Pakalpojums" + } +} diff --git a/apps/web/src/locales/ml/messages.json b/apps/web/src/locales/ml/messages.json new file mode 100644 index 0000000000..6e799f1f95 --- /dev/null +++ b/apps/web/src/locales/ml/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ വെബ് വാൾട്", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "ഇത് ഏതു തരം ഇനം ആണ്?" + }, + "name": { + "message": "പേര്" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "പുതിയ URI" + }, + "username": { + "message": "ഉപയോക്തൃനാമം" + }, + "password": { + "message": "പാസ്‌വേഡ്" + }, + "newPassword": { + "message": "പുതിയ പാസ്വേഡ്" + }, + "passphrase": { + "message": "രഹസ്യ വാചകം" + }, + "notes": { + "message": "കുറിപ്പുകൾ" + }, + "customFields": { + "message": "ഇഷ്‌ടാനുസൃത ഫീൽഡുകൾ" + }, + "cardholderName": { + "message": "കാർഡ് ഉടമയുടെ പേര്" + }, + "number": { + "message": "നമ്പർ" + }, + "brand": { + "message": "ബ്രാൻഡ്" + }, + "expiration": { + "message": "കാലഹരണപ്പെടൽ" + }, + "securityCode": { + "message": "സുരക്ഷാ കോഡ് സിവി‌വി" + }, + "identityName": { + "message": "തിരിച്ചറിയലിൻ്റെ പേര്" + }, + "company": { + "message": "കമ്പനി" + }, + "ssn": { + "message": "സാമൂഹിക സുരക്ഷാ നമ്പർ" + }, + "passportNumber": { + "message": "പാസ്പോർട്ട് നമ്പർ" + }, + "licenseNumber": { + "message": "ലൈസൻസ് നമ്പർ" + }, + "email": { + "message": "ഇമെയിൽ" + }, + "phone": { + "message": "ഫോൺ" + }, + "january": { + "message": "ജനുവരി" + }, + "february": { + "message": "ഫെബ്രുവരി" + }, + "march": { + "message": "മാർച്ച്‌" + }, + "april": { + "message": "ഏപ്രിൽ" + }, + "may": { + "message": "മെയ്‌" + }, + "june": { + "message": "ജൂണ്‍" + }, + "july": { + "message": "ജൂലൈ" + }, + "august": { + "message": "ഓഗസ്റ്റ്" + }, + "september": { + "message": "സെപ്റ്റംബർ" + }, + "october": { + "message": "ഒക്ടോബര്‍" + }, + "november": { + "message": "നവംബർ" + }, + "december": { + "message": "ഡിസംബർ" + }, + "title": { + "message": "ശീർഷകം" + }, + "mr": { + "message": "ശ്രീ" + }, + "mrs": { + "message": "ശ്രിമതി" + }, + "ms": { + "message": "കുമാരി" + }, + "dr": { + "message": "ഡോ" + }, + "expirationMonth": { + "message": "കാലാവതി കഴിയുന്ന മാസം" + }, + "expirationYear": { + "message": "കാലാവതി കഴിയുന്ന വർഷം" + }, + "authenticatorKeyTotp": { + "message": "ഓതന്റിക്കേറ്റർ കീ (TOTP)" + }, + "folder": { + "message": "ഫോൾഡർ" + }, + "newCustomField": { + "message": "പുതിയ ഇഷ്‌ടാനുസൃത ഫീൽഡ്" + }, + "value": { + "message": "മൂല്യം" + }, + "dragToSort": { + "message": "അടുക്കാൻ വലിച്ചിടുക" + }, + "cfTypeText": { + "message": "വാചകം" + }, + "cfTypeHidden": { + "message": "മറച്ചത്" + }, + "cfTypeBoolean": { + "message": "ബൂളിയൻ" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "നീക്കംചെയ്യുക" + }, + "unassigned": { + "message": "നിയുക്തമാക്കിയിട്ടില്ല" + }, + "noneFolder": { + "message": "ഫോൾഡർ ഇല്ല", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "ഫോൾഡർ ചേർക്കുക" + }, + "editFolder": { + "message": "ഫോൾഡർ തിരുത്തുക" + }, + "baseDomain": { + "message": "അടിസ്ഥാന ഡൊമെയ്ൻ", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "ഹോസ്റ്റ്", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "കൃത്യമായ" + }, + "startsWith": { + "message": "ഇതും വെച്ച് ആരംഭിക്കുന്ന" + }, + "regEx": { + "message": "പതിവ് പദപ്രയോഗം", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "പൊരുത്തം കണ്ടെത്തൽ", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "സാധാരണ കണ്ടെത്തൽ", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "അത് ചെയ്യരുത്" + }, + "toggleVisibility": { + "message": "ദൃശ്യപരത ടോഗിൾ ചെയ്യുക" + }, + "toggleCollapse": { + "message": "ചുരുക്കുക", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "പാസ്‌വേഡ് സൃഷ്ടിക്കുക" + }, + "checkPassword": { + "message": "പാസ്സ്‌വേർഡ് ചോർന്നോ എന്ന് നോക്കുക." + }, + "passwordExposed": { + "message": "ഈ പാസ്‌വേഡ് ഡാറ്റാ $VALUE$ ലംഘനങ്ങളിൽ ചോർന്നു. തങ്ങൾ ഇത് മാറ്റണം.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "അറിയപ്പെടുന്ന ഡാറ്റാ ലംഘനങ്ങളിൽ ഒന്നും ഈ പാസ്‌വേഡ് കണ്ടെത്തിയില്ല. ഇത് ഉപയോഗിക്കുന്നത് സുരക്ഷിതമായിരിക്കും." + }, + "save": { + "message": "സംരക്ഷിക്കുക " + }, + "cancel": { + "message": "റദ്ദാക്കുക" + }, + "canceled": { + "message": "റദ്ദാക്കി" + }, + "close": { + "message": "അടയ്ക്കുക" + }, + "delete": { + "message": "നീക്കംചെയ്യുക" + }, + "favorite": { + "message": "പ്രിയങ്കരം" + }, + "unfavorite": { + "message": "പ്രിയങ്കരമല്ല" + }, + "edit": { + "message": "തിരുത്തുക" + }, + "searchCollection": { + "message": "കളക്ഷനുകൾ തിരയുക" + }, + "searchFolder": { + "message": "ഫോൾഡറുകൾ തിരയുക" + }, + "searchFavorites": { + "message": "പ്രിയങ്കരങ്ങൾ തിരയുക" + }, + "searchType": { + "message": "തരം തിരയുക", + "description": "Search item type" + }, + "searchVault": { + "message": "വാൾട് തിരയുക" + }, + "allItems": { + "message": "എല്ലാ ഇനങ്ങൾ" + }, + "favorites": { + "message": "പ്രിയങ്കരങ്ങള്‍" + }, + "types": { + "message": "തരങ്ങൾ" + }, + "typeLogin": { + "message": "പ്രവേശനം" + }, + "typeCard": { + "message": "കാർഡ്" + }, + "typeIdentity": { + "message": "തിരിച്ചറിയൽ" + }, + "typeSecureNote": { + "message": "സുരക്ഷിത കുറിപ്പ്" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "ഫോൾഡറുകൾ" + }, + "collections": { + "message": "കളക്ഷനുകൾ " + }, + "firstName": { + "message": "പേരിന്റെ ആദ്യഭാഗം" + }, + "middleName": { + "message": "മധ്യ നാമം" + }, + "lastName": { + "message": "പേരിന്റെ അവസാന ഭാഗം" + }, + "fullName": { + "message": "Full Name" + }, + "address1": { + "message": "മേൽവിലാസം 1" + }, + "address2": { + "message": "മേൽവിലാസം 2" + }, + "address3": { + "message": "മേൽവിലാസം 3" + }, + "cityTown": { + "message": "നഗരം / പട്ടണം" + }, + "stateProvince": { + "message": "സംസ്ഥാനം/ ദേശം" + }, + "zipPostalCode": { + "message": "പിൻകോഡ്" + }, + "country": { + "message": "രാജ്യം" + }, + "shared": { + "message": "പങ്കിട്ടവ" + }, + "attachments": { + "message": "അറ്റാച്ചുമെന്റുകൾ" + }, + "select": { + "message": "തിരഞ്ഞെടുക്കുക" + }, + "addItem": { + "message": "ഇനം ചേർക്കുക" + }, + "editItem": { + "message": "ഇനം എഡിറ്റുചെയ്യുക" + }, + "viewItem": { + "message": "ഇനം കാണുക" + }, + "ex": { + "message": "ഉദാഹരണം.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "മറ്റുള്ളവ" + }, + "share": { + "message": "പങ്കിടുക" + }, + "moveToOrganization": { + "message": "Move to Organization" + }, + "valueCopied": { + "message": "$VALUE$ പകർത്തി", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "മൂല്യം പകർത്തുക", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "പാസ്‌വേഡ് ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തുക", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "ഉപയോക്തൃനാമം പകർത്തുക", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "നമ്പർ പകർത്തുക ", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "സുരക്ഷാ കോഡ് പകർത്തുക", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "URL പകർത്തുക", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "എൻ്റെ വാൾട്" + }, + "vault": { + "message": "വാൾട്" + }, + "moveSelectedToOrg": { + "message": "Move Selected to Organization" + }, + "deleteSelected": { + "message": "തിരഞ്ഞെടുത്തത് ഇല്ലാതാക്കുക" + }, + "moveSelected": { + "message": "തിരഞ്ഞെടുത്തത് നീക്കുക " + }, + "selectAll": { + "message": "എല്ലാം തിരഞ്ഞെടുക്കുക" + }, + "unselectAll": { + "message": "എല്ലാം തിരഞ്ഞെടുത്തത് മാറ്റുക" + }, + "launch": { + "message": "തുറക്കുക" + }, + "newAttachment": { + "message": "പുതിയ അറ്റാച്ചുമെന്റ് ചേർക്കുക" + }, + "deletedAttachment": { + "message": "മായ്ച്ച അറ്റാച്ചുമെന്റ്" + }, + "deleteAttachmentConfirmation": { + "message": "ഈ അറ്റാച്ചുമെന്റ് ഇല്ലാതാക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?" + }, + "attachmentSaved": { + "message": "ഈ അറ്റാച്ചുമെന്റ് സംരക്ഷിച്ചു." + }, + "file": { + "message": "ഫയൽ" + }, + "selectFile": { + "message": "ഫയൽ തിരഞ്ഞെടുക്കുക." + }, + "maxFileSize": { + "message": "പരമാവധി ഫയൽ വലുപ്പം 500 MB ആണ്." + }, + "updateKey": { + "message": "നിങ്ങളുടെ എൻ‌ക്രിപ്ഷൻ കീ അപ്‌ഡേറ്റ് ചെയ്യുന്നതുവരെ നിങ്ങൾക്ക് ഈ സവിശേഷത ഉപയോഗിക്കാൻ കഴിയില്ല." + }, + "addedItem": { + "message": "ചേർക്കപ്പെട്ട ഇനം" + }, + "editedItem": { + "message": "തിരുത്തപ്പെട്ട ഇനം" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ moved to $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Selected items moved to $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "ഇനം ഇല്ലാതാക്കുക " + }, + "deleteFolder": { + "message": "ഫോൾഡർ ഇല്ലാതാക്കുക" + }, + "deleteAttachment": { + "message": "അറ്റാച്ചുമെന്റ് ഇല്ലാതാക്കുക" + }, + "deleteItemConfirmation": { + "message": "ഈ ഇനം ഇല്ലാതാക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?" + }, + "deletedItem": { + "message": "ഇനം ട്രാഷിലേക്ക് അയച്ചു" + }, + "deletedItems": { + "message": "ഇനങ്ങൾ ട്രാഷിലേക്ക് അയച്ചു" + }, + "movedItems": { + "message": "നീക്കിയ ഇനങ്ങൾ" + }, + "overwritePasswordConfirmation": { + "message": "നിലവിലെ പാസ്‌വേഡ് പുനരാലേഖനം ചെയ്യണമെന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ?" + }, + "editedFolder": { + "message": "തിരുത്തിയ ഫോൾഡറുകൾ" + }, + "addedFolder": { + "message": "ചേർക്കപ്പെട്ട ഫോൾഡർ" + }, + "deleteFolderConfirmation": { + "message": "ഈ ഫോൾഡർ ഇല്ലാതാക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?" + }, + "deletedFolder": { + "message": "ഇല്ലാതാക്കിയ ഫോൾഡർ" + }, + "loggedOut": { + "message": "ലോഗ് ഔട്ട് ചെയ്തിരിക്കുന്നു" + }, + "loginExpired": { + "message": "നിങ്ങളുടെ പ്രവർത്തന സമയം കഴിഞ്ഞിരിക്കുന്നു." + }, + "logOutConfirmation": { + "message": "നിങ്ങൾക്ക് ലോഗ് ഔട്ട് ചെയ്യണമെന്ന് ഉറപ്പാണോ?" + }, + "logOut": { + "message": "ലോഗ് ഔട്ട്" + }, + "ok": { + "message": "ശരി" + }, + "yes": { + "message": "അതെ" + }, + "no": { + "message": "അല്ല" + }, + "loginOrCreateNewAccount": { + "message": "നിങ്ങളുടെ സുരക്ഷിത വാൾട്ടിലേക്ക് പ്രവേശിക്കാൻ ലോഗിൻ ചെയ്യുക അല്ലെങ്കിൽ ഒരു പുതിയ അക്കൗണ്ട് സൃഷ്ടിക്കുക." + }, + "createAccount": { + "message": "അക്കൗണ്ട് സൃഷ്ടിക്കുക" + }, + "logIn": { + "message": "പ്രവേശിക്കുക" + }, + "submit": { + "message": "സമർപ്പിക്കുക" + }, + "emailAddressDesc": { + "message": "ലോഗിൻ ചെയ്യുന്നതിന് നിങ്ങളുടെ ഇമെയിൽ വിലാസം ഉപയോഗിക്കും." + }, + "yourName": { + "message": "നിങ്ങളുടെ പേര്" + }, + "yourNameDesc": { + "message": "ഞങ്ങൾ തങ്ങളെ എന്ത് വിളിക്കണം?" + }, + "masterPass": { + "message": "പ്രാഥമിക പാസ്‌വേഡ്" + }, + "masterPassDesc": { + "message": "നിങ്ങളുടെ വാൾട്ടിലേക്ക് പ്രവേശിക്കാൻ ഉപയോഗിക്കുന്ന പാസ്‌വേഡാണ് പ്രാഥമിക പാസ്‌വേഡ്. പ്രാഥമിക പാസ്‌വേഡ് നിങ്ങൾ ഒരു കാരണവശാലും മറക്കരുത്. നിങ്ങൾ പാസ്‌വേഡ് മറന്നാൽ, വീണ്ടെടുക്കാൻ വേറെ ഒരു മാർഗ്ഗവുമില്ല." + }, + "masterPassHintDesc": { + "message": "നിങ്ങളുടെ പാസ്‌വേഡ് മറന്നാൽ അത് ഓർമ്മിക്കാൻ ഒരു പ്രാഥമിക പാസ്‌വേഡ് സൂചന സഹായിക്കും." + }, + "reTypeMasterPass": { + "message": "പ്രാഥമിക പാസ്‌വേഡ് വീണ്ടും ടൈപ്പ്‌ ചെയ്യുക" + }, + "masterPassHint": { + "message": "പ്രാഥമിക പാസ്‌വേഡ് സൂചന (ഇഷ്ടാനുസൃതമായ)" + }, + "masterPassHintLabel": { + "message": "പ്രാഥമിക പാസ്‌വേഡ് സൂചന" + }, + "settings": { + "message": "ക്രമീകരണങ്ങള്‍" + }, + "passwordHint": { + "message": "പാസ്‌വേഡ് സൂചനാ" + }, + "enterEmailToGetHint": { + "message": "നിങ്ങളുടെ പ്രാഥമിക പാസ്‌വേഡ് സൂചന ലഭിക്കുന്നതിന് നിങ്ങളുടെ അക്കൗണ്ട് ഇമെയിൽ വിലാസം നൽകുക." + }, + "getMasterPasswordHint": { + "message": "പ്രാഥമിക പാസ്‌വേഡ് സൂചന നേടുക" + }, + "emailRequired": { + "message": "ഇമെയിൽ അഡ്രസ്സ് നിർബന്ധമാണ്‌." + }, + "invalidEmail": { + "message": "അസാധുവായ ഇമെയിൽ." + }, + "masterPassRequired": { + "message": "പ്രാഥമിക പാസ്‌വേഡ് നിർബന്ധമാണ്‌." + }, + "masterPassLength": { + "message": "പ്രാഥമിക പാസ്‌വേഡിന് കുറഞ്ഞത് 8 പ്രതീകങ്ങളെങ്കിലും ദൈർഘ്യമുണ്ടായിരിക്കണം." + }, + "masterPassDoesntMatch": { + "message": "പ്രാഥമിക പാസ്‌വേഡ് സ്ഥിരീകരണം പൊരുത്തപ്പെടുന്നില്ല." + }, + "newAccountCreated": { + "message": "നിങ്ങളുടെ അക്കൗണ്ട് സൃഷ്ടിക്കപ്പെട്ടു. ഇനി നിങ്ങൾക്ക് ലോഗിൻ ചെയ്യാം." + }, + "masterPassSent": { + "message": "നിങ്ങളുടെ പ്രാഥമിക പാസ്‌വേഡ് സൂചനയുള്ള ഒരു ഇമെയിൽ ഞങ്ങൾ നിങ്ങൾക്ക് അയച്ചു." + }, + "unexpectedError": { + "message": "ഒരു അപ്രതീക്ഷിത പിശക് സംഭവിച്ചു." + }, + "emailAddress": { + "message": "ഇ-മെയിൽ വിലാസം" + }, + "yourVaultIsLocked": { + "message": "നിങ്ങളുടെ വാൾട് പൂട്ടിയിരിക്കുന്നു. തുടരുന്നതിന് നിങ്ങളുടെ പ്രാഥമിക പാസ്‌വേഡ് സ്ഥിരീകരിക്കുക." + }, + "unlock": { + "message": "അൺലോക്ക്" + }, + "loggedInAsEmailOn": { + "message": "$HOSTNAME$-ൽ $EMAIL$ ലോഗിൻ ചെയ്തിരിക്കുന്നു.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "അസാധുവായ പ്രാഥമിക പാസ്‌വേഡ്" + }, + "lockNow": { + "message": "ഇപ്പോൾ പൂട്ടുക" + }, + "noItemsInList": { + "message": "പ്രദർശിപ്പിക്കാൻ ഇനങ്ങളൊന്നുമില്ല." + }, + "noCollectionsInList": { + "message": "പ്രദർശിപ്പിക്കാൻ കളക്ഷൻസ് ഒന്നും ഇല്ല." + }, + "noGroupsInList": { + "message": "പട്ടികപ്പെടുത്താൻ ഗ്രൂപ്പുകളൊന്നുമില്ല." + }, + "noUsersInList": { + "message": "പ്രദർശിപ്പിക്കാൻ ഉപയോക്താക്കളൊന്നുമില്ല." + }, + "noEventsInList": { + "message": "പ്രദർശിപ്പിക്കാൻ ഇവന്റുകളൊന്നുമില്ല." + }, + "newOrganization": { + "message": "പുതിയ സംഘടന" + }, + "noOrganizationsList": { + "message": "നിങ്ങൾ ഒരു സംഘടനയുടെയും അംഗമല്ല. മറ്റ് ഉപയോക്താക്കളുമായി ഇനങ്ങൾ സുരക്ഷിതമായി പങ്കിടാൻ ഓർഗനൈസേഷനുകൾ നിങ്ങളെ അനുവദിക്കുന്നു." + }, + "versionNumber": { + "message": "വേർഷൻ $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "നിങ്ങളുടെ ഓതന്റിക്കേറ്റർ അപ്ലിക്കേഷനിൽ നിന്ന് 6 അക്ക സ്ഥിരീകരണ കോഡ് നൽകുക." + }, + "enterVerificationCodeEmail": { + "message": "$EMAIL$-ൽ ഇമെയിൽ ചെയ്ത 6 അക്ക സ്ഥിരീകരണ കോഡ് നൽകുക.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "സ്ഥിരീകരണ ഇമെയിൽ $EMAIL$-ലേക്ക് അയച്ചു.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "എന്നെ ഓർക്കണം" + }, + "sendVerificationCodeEmailAgain": { + "message": "സ്ഥിരീകരണ കോഡ് ഇമെയിൽ വഴി വീണ്ടും അയയ്ക്കുക" + }, + "useAnotherTwoStepMethod": { + "message": "മറ്റൊരു രണ്ട് ഘട്ട പ്രവേശന രീതി ഉപയോഗിക്കുക" + }, + "insertYubiKey": { + "message": "നിങ്ങളുടെ കമ്പ്യൂട്ടറിന്റെ യു‌എസ്‌ബി പോർട്ടിലേക്ക് YubiKey ഇടുക, തുടർന്ന് അതിന്റെ ബട്ടൺ അമർത്തുക." + }, + "insertU2f": { + "message": "നിങ്ങളുടെ കമ്പ്യൂട്ടറിന്റെ യുഎസ്ബി പോർട്ടിൽ സുരക്ഷാ കീ ഇടുക. അതിന് ഒരു ബട്ടൺ ഉണ്ടെങ്കിൽ അത് അമർത്തുക." + }, + "loginUnavailable": { + "message": "പ്രവേശനം ലഭ്യമല്ല" + }, + "noTwoStepProviders": { + "message": "ഈ അക്കൗണ്ടിന് രണ്ട്-ഘട്ട പ്രവേശനം പ്രാപ്തമാക്കിയിട്ടുണ്ട്, എന്നിരുന്നാലും, ക്രമീകരിച്ച രണ്ട്-ഘട്ട ദാതാക്കളെയൊന്നും ഈ ഉപകരണം പിന്തുണയ്ക്കുന്നില്ല." + }, + "noTwoStepProviders2": { + "message": "മികച്ച പിന്തുണയുള്ള, കൂടുതൽ ദാതാക്കളെ ദയവായി ചേർക്കുക (ഒരു ഓതന്റിക്കേറ്റർ അപ്ലിക്കേഷൻ പോലുള്ളവ)." + }, + "twoStepOptions": { + "message": "രണ്ട്-ഘട്ട പ്രവേശനം ഓപ്ഷനുകൾ" + }, + "recoveryCodeDesc": { + "message": "നിങ്ങളുടെ രണ്ട്-ഘടക ദാതാക്കളിലേക്കുള്ള ആക്‌സസ്സ് നഷ്‌ടപ്പെട്ടോ? നിങ്ങളുടെ അക്കൗണ്ടിൽ നിന്ന് രണ്ട്-ഘടക ദാതാക്കളെ പ്രവർത്തനരഹിതമാക്കാൻ നിങ്ങളുടെ റിക്കവറി കോഡ് ഉപയോഗിക്കുക." + }, + "recoveryCodeTitle": { + "message": "റിക്കവറി കോഡ്" + }, + "authenticatorAppTitle": { + "message": "ഓതന്റിക്കേറ്റർ ആപ്പ്" + }, + "authenticatorAppDesc": { + "message": "സമയ-അടിസ്ഥാന പരിശോധന കോഡുകൾ സൃഷ്ടിക്കുന്നതിന് ഒരു ഓതന്റിക്കേറ്റർ അപ്ലിക്കേഷൻ (ഓത്തി അല്ലെങ്കിൽ Google ഓതന്റിക്കേറ്റർ പോലുള്ളവ) ഉപയോഗിക്കുക.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP സുരക്ഷാ കീ" + }, + "yubiKeyDesc": { + "message": "നിങ്ങളുടെ അക്കൗണ്ട് ആക്സസ് ചെയ്യുന്നതിന് ഒരു യൂബിക്കി ഉപയോഗിക്കുക. YubiKey 4, 4 Nano, 4C, NEO ഉപകരണങ്ങളിൽ പ്രവർത്തിക്കുന്നു." + }, + "duoDesc": { + "message": "Duo Mobile അപ്ലിക്കേഷൻ, എസ്എംഎസ്, ഫോൺ കോൾ അല്ലെങ്കിൽ യു 2 എഫ് സുരക്ഷാ കീ ഉപയോഗിച്ച് Duoസെക്യൂരിറ്റി ഉപയോഗിച്ച് പരിശോധിക്കുക.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Duo Mobile, എസ്എംഎസ്, ഫോൺ കോൾ അല്ലെങ്കിൽ യു 2 എഫ് സുരക്ഷാ കീ ഉപയോഗിച്ച് നിങ്ങളുടെ ഓർഗനൈസേഷനെ ഡ്യുവോ സെക്യൂരിറ്റി ഉപയോഗിച്ച് പരിശോധിക്കുക.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "നിങ്ങളുടെ അക്കൗണ്ട് ആക്സസ് ചെയ്യുന്നതിന് ഏതെങ്കിലും FIDO U2F പ്രാപ്തമാക്കിയ സുരക്ഷാ കീ ഉപയോഗിക്കുക." + }, + "u2fTitle": { + "message": "FIDO U2F സുരക്ഷാ കീ" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "ഇമെയിൽ" + }, + "emailDesc": { + "message": "സ്ഥിരീകരണ കോഡുകൾ നിങ്ങൾക്ക് ഇമെയിൽ ചെയ്യും." + }, + "continue": { + "message": "തുടരുക" + }, + "organization": { + "message": "ഓർഗനൈസേഷൻ" + }, + "organizations": { + "message": "സംഘടനകൾ" + }, + "moveToOrgDesc": { + "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organization that you wish to move these items to. Moving to an organization transfers ownership of the items to that organization. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "Edit the collections that this item is being shared with. Only organization users with access to these collections will be able to see this item." + }, + "deleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to delete. Are you sure you want to delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "$COUNT$ തിരഞ്ഞെടുത്ത ഇനങ്ങൾ നീക്കാൻ ആഗ്രഹിക്കുന്ന ഒരു ഫോൾഡർ തിരഞ്ഞെടുക്കുക).", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organization, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "സ്ഥിരീകരണ കോഡ് (TOTP)" + }, + "copyVerificationCode": { + "message": "സ്ഥിരീകരണ കോഡ് പകർത്തുക " + }, + "warning": { + "message": "മുന്നറിയിപ്പ്" + }, + "confirmVaultExport": { + "message": "വാൾട് എക്‌സ്‌പോർട്ട് ഉറപ്പാക്കു" + }, + "exportWarningDesc": { + "message": "ഈ എക്‌സ്‌പോർട്ടിൽ എൻക്രിപ്റ്റ് ചെയ്യാത്ത ഫോർമാറ്റിൽ നിങ്ങളുടെ വാൾട് ഡാറ്റ അടങ്ങിയിരിക്കുന്നു. എക്‌സ്‌പോർട് ചെയ്ത ഫയൽ സുരക്ഷിതമല്ലാത്ത ചാനലുകളിൽ (ഇമെയിൽ പോലുള്ളവ) നിങ്ങൾ സംഭരിക്കുകയോ അയയ്ക്കുകയോ ചെയ്യരുത്. നിങ്ങൾ ഇത് ഉപയോഗിച്ചുകഴിഞ്ഞാലുടൻ അത് മായ്ച്ചുകളയണം." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "വാൾട് എക്സ്പോർട്" + }, + "fileFormat": { + "message": "ഫയൽ ഫോർമാറ്റ്" + }, + "exportSuccess": { + "message": "നിങ്ങളുടെ വാൾട് ഡാറ്റ എക്‌സ്‌പോർട്ടുചെയ്‌തു." + }, + "passwordGenerator": { + "message": "പാസ്സ്‌വേഡ് സൃഷ്ടാവ്" + }, + "minComplexityScore": { + "message": "Minimum Complexity Score" + }, + "minNumbers": { + "message": "കുറഞ്ഞ സംഖ്യകൾ" + }, + "minSpecial": { + "message": "കുറഞ്ഞ പ്രത്യേക പ്രതീകങ്ങൾ", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "അവ്യക്തമായ പ്രതീകങ്ങൾ ഒഴിവാക്കുക" + }, + "regeneratePassword": { + "message": "പാസ്സ്‌വേഡ് വീണ്ടും സൃഷ്ടിക്കുക" + }, + "length": { + "message": "ദൈര്‍ഘ്യം" + }, + "numWords": { + "message": "വാക്കുകളുടെ എണ്ണം" + }, + "wordSeparator": { + "message": "വേര്‍പെടുത്തുക" + }, + "capitalize": { + "message": "വലിയഅക്ഷരമാകുക", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "നമ്പർ ഉൾപ്പെടുത്തുക" + }, + "passwordHistory": { + "message": "പാസ്സ്‌വേഡ് ചരിത്രം" + }, + "noPasswordsInList": { + "message": "പ്രദർശിപ്പിക്കാൻ പാസ്സ്‌വേഡുകൾ ഒന്നും ഇല്ല." + }, + "clear": { + "message": "മായ്ക്കുക", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "അക്കൗണ്ട് അപ്‌ഡേറ്റുചെയ്‌തു" + }, + "changeEmail": { + "message": "ഇമെയില്‍ മാറ്റുക" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "പുതിയ ഇമെയിൽ" + }, + "code": { + "message": "കോഡ്" + }, + "changeEmailDesc": { + "message": "We have emailed a verification code to $EMAIL$. Please check your email for this code and enter it below to finalize the email address change.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "emailChanged": { + "message": "ഇമെയിൽ മാറ്റി" + }, + "logBackIn": { + "message": "ദയവായി തിരികെ പ്രവേശിക്കുക." + }, + "logBackInOthersToo": { + "message": "Please log back in. If you are using other Bitwarden applications log out and back in to those as well." + }, + "changeMasterPassword": { + "message": "പ്രാഥമിക പാസ്‌വേഡ് മാറ്റുക" + }, + "masterPasswordChanged": { + "message": "മാസ്റ്റർ പാസ്‌വേഡ് മാറ്റി" + }, + "currentMasterPass": { + "message": "നിലവിലെ മാസ്റ്റർ പാസ്‌വേഡ്" + }, + "newMasterPass": { + "message": "പുതിയ പ്രാഥമിക പാസ്‌വേഡ് " + }, + "confirmNewMasterPass": { + "message": "പുതിയ പ്രാഥമിക പാസ്‌വേഡ് സ്ഥിരീകരിക്കുക" + }, + "encKeySettings": { + "message": "എൻക്രിപ്ഷൻ കീയുടെ ക്രമീകരണങ്ങൾ" + }, + "kdfAlgorithm": { + "message": "KDF അൽഗോരിതം" + }, + "kdfIterations": { + "message": "KDF Iterations" + }, + "kdfIterationsDesc": { + "message": "Higher KDF iterations can help protect your master password from being brute forced by an attacker. We recommend a value of $VALUE$ or more.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Setting your KDF iterations too high could result in poor performance when logging into (and unlocking) Bitwarden on devices with slower CPUs. We recommend that you increase the value in increments of $INCREMENT$ and then test all of your devices.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "KDF മാറ്റുക" + }, + "encKeySettingsChanged": { + "message": "എൻക്രിപ്ഷൻ കീയുടെ ക്രമീകരണങ്ങൾ മാറ്റി" + }, + "dangerZone": { + "message": "അപകട മേഖല" + }, + "dangerZoneDesc": { + "message": "ശ്രദ്ധിക്കുക, ഈ പ്രവർത്തനങ്ങൾ മാറ്റാനാവില്ല!" + }, + "deauthorizeSessions": { + "message": "Deauthorize Sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Concerned your account is logged in on another device? Proceed below to deauthorize all computers or devices that you have previously used. This security step is recommended if you previously used a public computer or accidentally saved your password on a device that isn't yours. This step will also clear all previously remembered two-step login sessions." + }, + "deauthorizeSessionsWarning": { + "message": "Proceeding will also log you out of your current session, requiring you to log back in. You will also be prompted for two-step login again, if enabled. Active sessions on other devices may continue to remain active for up to one hour." + }, + "sessionsDeauthorized": { + "message": "എല്ലാ സെഷനും നിരസിച്ചു." + }, + "purgeVault": { + "message": "വാൾട് നശിപ്പിക്കുക" + }, + "purgedOrganizationVault": { + "message": "Purged organization vault." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Proceed below to delete all items and folders in your vault. Items that belong to an organization that you share with will not be deleted." + }, + "purgeOrgVaultDesc": { + "message": "Proceed below to delete all items in the organization's vault." + }, + "purgeVaultWarning": { + "message": "Purging your vault is permanent. It cannot be undone." + }, + "vaultPurged": { + "message": "Your vault has been purged." + }, + "deleteAccount": { + "message": "അക്കൗണ്ട് ഇല്ലാതാക്കുക" + }, + "deleteAccountDesc": { + "message": "Proceed below to delete your account and all associated data." + }, + "deleteAccountWarning": { + "message": "Deleting your account is permanent. It cannot be undone." + }, + "accountDeleted": { + "message": "അക്കൗണ്ട് നീക്കംചെയ്തു" + }, + "accountDeletedDesc": { + "message": "Your account has been closed and all associated data has been deleted." + }, + "myAccount": { + "message": "എന്റെ അക്കൗണ്ട്" + }, + "tools": { + "message": "ഉപകരണങ്ങൾ" + }, + "importData": { + "message": "Import Data" + }, + "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." + }, + "importSuccess": { + "message": "Data has been successfully imported into your vault." + }, + "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." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "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)" + } + } + }, + "options": { + "message": "ഓപ്ഷനുകൾ" + }, + "optionsDesc": { + "message": "Customize your web vault experience." + }, + "optionsUpdated": { + "message": "Options updated" + }, + "language": { + "message": "ഭാഷ" + }, + "languageDesc": { + "message": "അപ്ലിക്കേഷൻ ഉപയോഗിക്കുന്ന ഭാഷ മാറ്റുക. പുനരാരംഭിക്കൽ ആവശ്യമാണ്." + }, + "disableIcons": { + "message": "Disable Website Icons" + }, + "disableIconsDesc": { + "message": "Website Icons provide a recognizable image next to each login item in your vault." + }, + "enableGravatars": { + "message": "Enable Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use avatar images loaded from gravatar.com." + }, + "enableFullWidth": { + "message": "Enable Full Width Layout", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Allow the web vault to expand the full width of the browser window." + }, + "default": { + "message": "സാധാരണ പോലെ" + }, + "domainRules": { + "message": "ഡൊമെയ്ൻ നിയമങ്ങൾ" + }, + "domainRulesDesc": { + "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + }, + "globalEqDomains": { + "message": "Global Equivalent Domains" + }, + "customEqDomains": { + "message": "Custom Equivalent Domains" + }, + "exclude": { + "message": "ഒഴിവാക്കുക" + }, + "include": { + "message": "ഉൾപെടുത്തുക " + }, + "customize": { + "message": "Customize" + }, + "newCustomDomain": { + "message": "New Custom Domain" + }, + "newCustomDomainDesc": { + "message": "Enter a list of domains separated by commas. Only \"base\" domains are allowed. Do not enter subdomains. For example, enter \"google.com\" instead of \"www.google.com\". You can also enter \"androidapp://package.name\" to associate an android app with other website domains." + }, + "customDomainX": { + "message": "Custom Domain $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "ഡൊമെയ്‌നുകൾ അപ്‌ഡേറ്റുചെയ്‌തു" + }, + "twoStepLogin": { + "message": "രണ്ട്-ഘട്ട പ്രവേശനം" + }, + "twoStepLoginDesc": { + "message": "Secure your account by requiring an additional step when logging in." + }, + "twoStepLoginOrganizationDesc": { + "message": "Require two-step login for your organization's users by configuring providers at the organization level." + }, + "twoStepLoginRecoveryWarning": { + "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (ex. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + }, + "viewRecoveryCode": { + "message": "View Recovery Code" + }, + "providers": { + "message": "ദാതാക്കൾ", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Enable" + }, + "enabled": { + "message": "പ്രവർത്തനക്ഷമമാക്കി" + }, + "premium": { + "message": "പ്രീമിയം", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "പ്രീമിയം അംഗത്വം" + }, + "premiumRequired": { + "message": "പ്രീമിയം അംഗത്വം ആവശ്യമാണ്" + }, + "premiumRequiredDesc": { + "message": "ഈ സവിശേഷത ഉപയോഗിക്കുന്നതിന് പ്രീമിയം അംഗത്വം ആവശ്യമാണ്." + }, + "youHavePremiumAccess": { + "message": "You have premium access" + }, + "alreadyPremiumFromOrg": { + "message": "You already have access to premium features because of an organization you are a member of." + }, + "manage": { + "message": "നിയന്ത്രിക്കുക" + }, + "disable": { + "message": "പ്രവര്‍ത്തന രഹിതമാക്കുക" + }, + "twoStepLoginProviderEnabled": { + "message": "This two-step login provider is enabled on your account." + }, + "twoStepLoginAuthDesc": { + "message": "Enter your master password to modify two-step login settings." + }, + "twoStepAuthenticatorDesc": { + "message": "Follow these steps to set up two-step login with an authenticator app:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "രണ്ട്-ഘട്ട ഓതന്റിക്കേറ്റർ അപ്ലിക്കേഷൻ ഡൗൺലോഡുചെയ്യുക" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Need a two-step authenticator app? Download one of the following" + }, + "iosDevices": { + "message": "iOS ഉപകരണങ്ങൾ" + }, + "androidDevices": { + "message": "Android ഉപകരണങ്ങൾ" + }, + "windowsDevices": { + "message": "Windows ഉപകരണങ്ങൾ" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "These apps are recommended, however, other authenticator apps will also work." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scan this QR code with your authenticator app" + }, + "key": { + "message": "Key" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Enter the resulting 6 digit verification code from the app" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app." + }, + "twoStepDisableDesc": { + "message": "Are you sure you want to disable this two-step login provider?" + }, + "twoStepDisabled": { + "message": "Two-step login provider disabled." + }, + "twoFactorYubikeyAdd": { + "message": "Add a new YubiKey to your account" + }, + "twoFactorYubikeyPlugIn": { + "message": "Plug the YubiKey into your computer's USB port." + }, + "twoFactorYubikeySelectKey": { + "message": "Select the first empty YubiKey input field below." + }, + "twoFactorYubikeyTouchButton": { + "message": "Touch the YubiKey's button." + }, + "twoFactorYubikeySaveForm": { + "message": "Save the form." + }, + "twoFactorYubikeyWarning": { + "message": "Due to platform limitations, YubiKeys cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when YubiKeys cannot be used. Supported platforms:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile apps on a device with NFC capabilities or a data port that can accept your YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC Support" + }, + "twoFactorYubikeySupportsNfc": { + "message": "One of my keys supports NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "If one of your YubiKeys supports NFC (such as a YubiKey NEO), you will be prompted on mobile devices whenever NFC availability is detected." + }, + "yubikeysUpdated": { + "message": "YubiKeys updated" + }, + "disableAllKeys": { + "message": "Disable All Keys" + }, + "twoFactorDuoDesc": { + "message": "Enter the Bitwarden application information from your Duo Admin panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration Key" + }, + "twoFactorDuoSecretKey": { + "message": "Secret Key" + }, + "twoFactorDuoApiHostname": { + "message": "API Hostname" + }, + "twoFactorEmailDesc": { + "message": "Follow these steps to set up two-step login with email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enter the email that you wish to receive verification codes" + }, + "twoFactorEmailEnterCode": { + "message": "Enter the resulting 6 digit verification code from the email" + }, + "sendEmail": { + "message": "ഇമെയിൽ അയയ്ക്കുക" + }, + "twoFactorU2fAdd": { + "message": "Add a FIDO U2F security key to your account" + }, + "removeU2fConfirmation": { + "message": "Are you sure you want to remove this security key?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Read Key" + }, + "keyCompromised": { + "message": "Key is compromised." + }, + "twoFactorU2fGiveName": { + "message": "Give the security key a friendly name to identify it." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Plug the security key into your computer's USB port and click the \"Read Key\" button." + }, + "twoFactorU2fTouchButton": { + "message": "If the security key has a button, touch it." + }, + "twoFactorU2fSaveForm": { + "message": "Save the form." + }, + "twoFactorU2fWarning": { + "message": "Due to platform limitations, FIDO U2F cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when FIDO U2F cannot be used. Supported platforms:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorU2fWaiting": { + "message": "Waiting for you to touch the button on your security key" + }, + "twoFactorU2fClickSave": { + "message": "Click the \"Save\" button below to enable this security key for two-step login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Your Bitwarden two-step login recovery code" + }, + "twoFactorRecoveryNoCode": { + "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + }, + "printCode": { + "message": "Print Code", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "റിപ്പോർട്ടുകൾ" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Unsecured Websites Report" + }, + "unsecuredWebsitesReportDesc": { + "message": "Using unsecured websites with the http:// scheme can be dangerous. If the website allows, you should always access it using the https:// scheme so that your connection is encrypted." + }, + "unsecuredWebsitesFound": { + "message": "Unsecured Websites Found" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Inactive 2FA Report" + }, + "inactive2faReportDesc": { + "message": "Two-factor authentication (2FA) is an important security setting that helps secure your accounts. If the website offers it, you should always enable two-factor authentication." + }, + "inactive2faFound": { + "message": "Logins Without 2FA Found" + }, + "inactive2faFoundDesc": { + "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to twofactorauth.org). To further protect these accounts, you should enable two-factor authentication.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No websites were found in your vault with a missing two-factor authentication configuration." + }, + "instructions": { + "message": "Instructions" + }, + "exposedPasswordsReport": { + "message": "Exposed Passwords Report" + }, + "exposedPasswordsReportDesc": { + "message": "Exposed passwords are passwords that have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers." + }, + "exposedPasswordsFound": { + "message": "Exposed Passwords Found" + }, + "exposedPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No items in your vault have passwords that have been exposed in known data breaches." + }, + "checkExposedPasswords": { + "message": "Check Exposed Passwords" + }, + "exposedXTimes": { + "message": "Exposed $COUNT$ time(s)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Weak Passwords Report" + }, + "weakPasswordsReportDesc": { + "message": "Weak passwords can easily be guessed by hackers and automated tools that are used to crack passwords. The Bitwarden password generator can help you create strong passwords." + }, + "weakPasswordsFound": { + "message": "ദുർബലമായ പാസ്‌വേഡുകൾ കണ്ടെത്തി" + }, + "weakPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "നിങ്ങളുടെ വാൾട്ടിലെ ഒരു ഇനത്തിനും ദുർബലമായ പാസ്‌വേഡുകൾ ഇല്ല." + }, + "reusedPasswordsReport": { + "message": "Reused Passwords Report" + }, + "reusedPasswordsReportDesc": { + "message": "If a service that you use is compromised, reusing the same password elsewhere can allow hackers to easily gain access to more of your online accounts. You should use a unique password for every account or service." + }, + "reusedPasswordsFound": { + "message": "Reused Passwords Found" + }, + "reusedPasswordsFoundDesc": { + "message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "No logins in your vault have passwords that are being reused." + }, + "reusedXTimes": { + "message": "Reused $COUNT$ times", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Data Breach Report" + }, + "breachDesc": { + "message": "A \"breach\" is an incident where a site's data has been illegally accessed by hackers and then released publicly. Review the types of data that were compromised (email addresses, passwords, credit cards etc.) and take appropriate action, such as changing passwords." + }, + "breachCheckUsernameEmail": { + "message": "Check any usernames or email addresses that you use." + }, + "checkBreaches": { + "message": "Check Breaches" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ was not found in any known data breaches.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "നല്ല വാർത്ത", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Breached Accounts Found" + }, + "compromisedData": { + "message": "Compromised data" + }, + "website": { + "message": "വെബ്സൈറ്റ്" + }, + "affectedUsers": { + "message": "ബാധിത ഉപയോക്താക്കൾ" + }, + "breachOccurred": { + "message": "ലംഘനം സംഭവിച്ചു" + }, + "breachReported": { + "message": "ലംഘനം റിപ്പോർട്ടുചെയ്‌തു" + }, + "reportError": { + "message": "റിപ്പോർട്ട് ലഭ്യമാക്കുന്നതിൽ ഒരു പിശക് സംഭവിച്ചു. വീണ്ടും ശ്രമിക്ക്." + }, + "billing": { + "message": "ബില്ലിംഗ്" + }, + "accountCredit": { + "message": "Account Credit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "അക്കൗണ്ട് ബാലൻസ്", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "ക്രെഡിറ്റ് ചേർക്കുക", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "തുക", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Added credit will appear on your account after the payment has been fully processed. Some payment methods are delayed and can take longer to process than others." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + }, + "goPremium": { + "message": "പ്രീമിയത്തിലേക്ക് പോകുക", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "നിങ്ങൾ പ്രീമിയത്തിലേക്ക് അപ്‌ഗ്രേഡുചെയ്‌തു." + }, + "premiumUpgradeUnlockFeatures": { + "message": "മികച്ച സവിശേഷതകൾ അൺലോക്ക് ചെയ്യാൻ നിങ്ങളുടെ അക്കൗണ്ട് പ്രീമിയംത്തിലേക്കു അപ്ഗ്രേഡ് ചെയ്യുക." + }, + "premiumSignUpStorage": { + "message": "ഫയൽ അറ്റാച്ചുമെന്റുകൾക്കായി 1 GB എൻക്രിപ്റ്റുചെയ്‌ത സ്റ്റോറേജ്." + }, + "premiumSignUpTwoStep": { + "message": "രണ്ട്-ഘട്ട പ്രവേശന ഓപ്ഷനുകളായ Yubikey, FIDO U2F, Duo." + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "നിങ്ങളുടെ വാൾട് സൂക്ഷിക്കുന്നതിന്. പാസ്‌വേഡ് ശുചിത്വം, അക്കൗണ്ട് ആരോഗ്യം, ഡാറ്റ ലംഘന റിപ്പോർട്ടുകൾ." + }, + "premiumSignUpTotp": { + "message": "നിങ്ങളുടെ വാൾട്ടിലെ പ്രവേശനങ്ങൾക്കായി TOTP പരിശോധന കോഡ് (2FA) സൃഷ്ടാവ്." + }, + "premiumSignUpSupport": { + "message": "മുൻ‌ഗണന ഉപഭോക്തൃ പിന്തുണ." + }, + "premiumSignUpFuture": { + "message": "ഭാവിയിലെ എല്ലാ പ്രീമിയം സവിശേഷതകളും. കൂടുതൽ ഉടനെ വരുന്നു !" + }, + "premiumPrice": { + "message": "എല്ലാം വെറും $PRICE$/ വർഷത്തേക്ക്!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Addons" + }, + "premiumAccess": { + "message": "പ്രീമിയം ആക്സസ്" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organization for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Additional Storage (GB)" + }, + "additionalStorageGbDesc": { + "message": "# of additional GB" + }, + "additionalStorageIntervalDesc": { + "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Summary" + }, + "total": { + "message": "ആകെ" + }, + "year": { + "message": "വർഷം" + }, + "month": { + "message": "മാസം" + }, + "monthAbbr": { + "message": "mo.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Your payment method will be charged immediately and then on a recurring basis each year. You may cancel at any time." + }, + "paymentCharged": { + "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Your plan comes with a free 7 day trial. Your payment method will not be charged until the trial has ended. Billing will occur on a recurring basis each $INTERVAL$. You may cancel at any time." + }, + "paymentInformation": { + "message": "പേയ്‌മെന്റ് വിവരങ്ങൾ" + }, + "billingInformation": { + "message": "Billing Information" + }, + "creditCard": { + "message": "ക്രെഡിറ്റ് കാർഡ്" + }, + "paypalClickSubmit": { + "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + }, + "cancelSubscription": { + "message": "സബ്‌സ്‌ക്രിപ്‌ഷൻ റദ്ദാക്കുക" + }, + "subscriptionCanceled": { + "message": "The subscription has been canceled." + }, + "pendingCancellation": { + "message": "Pending Cancellation" + }, + "subscriptionPendingCanceled": { + "message": "The subscription has been marked for cancellation at the end of the current billing period." + }, + "reinstateSubscription": { + "message": "Reinstate Subscription" + }, + "reinstateConfirmation": { + "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + }, + "reinstated": { + "message": "The subscription has been reinstated." + }, + "cancelConfirmation": { + "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + }, + "canceledSubscription": { + "message": "The subscription has been canceled." + }, + "neverExpires": { + "message": "Never Expires" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Next Charge" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "ലൈസൻസ് ഡൌൺലോഡ് ചെയ്യുക" + }, + "updateLicense": { + "message": "ലൈസൻസ് അപ്ഡേറ്റ് ചെയ്യുക" + }, + "updatedLicense": { + "message": "ലൈസൻസ് അപ്ഡേറ്റ് ചെയ്തു" + }, + "manageSubscription": { + "message": "സബ്സ്‌ക്രിപ്ഷനുകൾ മാനേജുചെയ്യുക" + }, + "storage": { + "message": "സ്റ്റോറേജ്" + }, + "addStorage": { + "message": "സ്റ്റോറേജ് ചേർക്കുക" + }, + "removeStorage": { + "message": "സ്റ്റോറേജ് നീക്കംചെയ്യുക" + }, + "subscriptionStorage": { + "message": "നിങ്ങളുടെ സബ്‌സ്‌ക്രിപ്‌ഷനിൽ മൊത്തം $MAX_STORAGE$ GB എൻ‌ക്രിപ്റ്റ് ചെയ്ത ഫയൽ സംഭരണമുണ്ട്. നിങ്ങൾ നിലവിൽ $USED_STORAGE$ ഉപയോഗിക്കുന്നു.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "പണംകൊടുക്കൽ രീതി" + }, + "noPaymentMethod": { + "message": "ഫയലിൽ പേയ്‌മെന്റ് രീതികളൊന്നുമില്ല." + }, + "addPaymentMethod": { + "message": "പണംകൊടുക്കൽ രീതി ചേർക്കുക" + }, + "changePaymentMethod": { + "message": "പണംകൊടുക്കൽരീതി മാറ്റുക" + }, + "invoices": { + "message": "ഇൻവോയ്സുകൾ" + }, + "noInvoices": { + "message": "ഇൻവോയ്സുകൾ ഇല്ല." + }, + "paid": { + "message": "പണമടച്ചു", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "പണമടച്ചില്ല", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "ഇടപാടുകൾ", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "ഇടപാടുകളൊന്നുമില്ല." + }, + "chargeNoun": { + "message": "ചാർജ്ജ്", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "റീഫണ്ട്", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "ചാർജുകൾ നിങ്ങളുടെ പ്രസ്താവനയിൽ $STATEMENT_NAME$ ആയി ദൃശ്യമാകും.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "ചേർക്കുന്നതിനുള്ള സംഭരണത്തിന്റെ ജിബി" + }, + "gbStorageRemove": { + "message": "നീക്കംചെയ്യുന്നതിന് സംഭരണത്തിന്റെ ജിബി" + }, + "storageAddNote": { + "message": "സംഭരണം ചേർക്കുന്നത് നിങ്ങളുടെ ബില്ലിംഗ് ആകെത്തുകകളിലേക്ക് ക്രമീകരിക്കുകയും ഫയലിൽ നിങ്ങളുടെ പേയ്‌മെന്റ് രീതി ഉടൻ ചാർജ് ചെയ്യുകയും ചെയ്യും. നിലവിലെ ബില്ലിംഗ് സൈക്കിളിന്റെ ബാക്കി ഭാഗത്തിനായി ആദ്യ ചാർജ് പ്രോറേറ്റ് ചെയ്യും." + }, + "storageRemoveNote": { + "message": "സംഭരണം നീക്കംചെയ്യുന്നത് നിങ്ങളുടെ ബില്ലിംഗ് ടോട്ടലുകളിലേക്കുള്ള ക്രമീകരണങ്ങളിൽ കലാശിക്കും, അത് നിങ്ങളുടെ അടുത്ത ബില്ലിംഗ് ചാർജിലേക്കുള്ള ക്രെഡിറ്റായി കണക്കാക്കപ്പെടും." + }, + "adjustedStorage": { + "message": "$AMOUNT$ GB സംഭരണം ക്രമീകരിച്ചു.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "ഉപഭോക്തൃ പിന്തുണയുമായി ബന്ധപ്പെടുക" + }, + "updatedPaymentMethod": { + "message": "പേയ്‌മെന്റ് രീതി പുതുക്കുക. " + }, + "purchasePremium": { + "message": "പ്രീമിയം വാങ്ങുക" + }, + "licenseFile": { + "message": "ലൈസൻസ് ഫയൽ" + }, + "licenseFileDesc": { + "message": "നിങ്ങളുടെ ലൈസൻസ് ഫയലിന് $FILE_NAME$ എന്ന് പേരുനൽകും", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "നിങ്ങളുടെ അക്കൗണ്ട് പ്രീമിയം അംഗത്വത്തിലേക്ക് അപ്ഗ്രേഡ് ചെയ്യുന്നതിന്, നിങ്ങൾ ശെരിയായ ഒരു ലൈസൻസ് ഫയൽ അപ്‌ലോഡ് ചെയ്യണം." + }, + "uploadLicenseFileOrg": { + "message": "ഒരു പരിസരത്ത് ഹോസ്റ്റുചെയ്ത ഓർഗനൈസേഷൻ സൃഷ്ടിക്കുന്നതിന് നിങ്ങൾ സാധുവായ ഒരു ലൈസൻസ് ഫയൽ അപ്‌ലോഡ് ചെയ്യേണ്ടതുണ്ട്." + }, + "accountEmailMustBeVerified": { + "message": "നിങ്ങളുടെ അക്കൗണ്ടിന്റെ ഇമെയിൽ വിലാസം സ്ഥിരീകരിക്കേണ്ടതാണ്." + }, + "newOrganizationDesc": { + "message": "നിങ്ങളുടെ നിലവറയുടെ ഭാഗങ്ങൾ മറ്റുള്ളവരുമായി പങ്കിടാനും ഒരു കുടുംബം, ചെറിയ ടീം അല്ലെങ്കിൽ വലിയ കമ്പനി പോലുള്ള ഒരു നിർദ്ദിഷ്ട എന്റിറ്റിക്കായി ബന്ധപ്പെട്ട ഉപയോക്താക്കളെ മാനേജുചെയ്യാനും ഓർഗനൈസേഷനുകൾ നിങ്ങളെ അനുവദിക്കുന്നു." + }, + "generalInformation": { + "message": "പൊതുവിവരം" + }, + "organizationName": { + "message": "സംഘടനയുടെ പേര്" + }, + "accountOwnedBusiness": { + "message": "ഈ അക്കൗണ്ട് ഒരു ബിസിനസ്സിന്റെ ഉടമസ്ഥതയിലാണ്." + }, + "billingEmail": { + "message": "ബില്ലിംഗ് ഇമെയിൽ" + }, + "businessName": { + "message": "ബിസിനസ്സ് പേര്" + }, + "chooseYourPlan": { + "message": "നിങ്ങളുടെ പ്ലാൻ തിരഞ്ഞെടുക്കുക" + }, + "users": { + "message": "ഉപയോക്താക്കൾ" + }, + "userSeats": { + "message": "ഉപയോക്തൃ സീറ്റുകൾ" + }, + "additionalUserSeats": { + "message": "അധിക ഉപയോക്തൃ സീറ്റുകൾ" + }, + "userSeatsDesc": { + "message": "# ഉപയോക്തൃ സീറ്റുകൾ" + }, + "userSeatsAdditionalDesc": { + "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "How many user seats do you need? You can also add additional seats later if needed." + }, + "planNameFree": { + "message": "സൗജന്യം", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing or personal users to share with $COUNT$ other user.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "കുടുംബങ്ങൾ" + }, + "planDescFamilies": { + "message": "വ്യക്തിഗത ഉപയോഗത്തിനായി, കുടുംബവുമായും സുഹൃത്തുക്കളുമായും പങ്കിടാൻ." + }, + "planNameTeams": { + "message": "ടീമുകൾ" + }, + "planDescTeams": { + "message": "ബിസിനസുകൾക്കും മറ്റ് ടീം ഓർഗനൈസേഷനുകൾക്കുമായി." + }, + "planNameEnterprise": { + "message": "എന്റർപ്രൈസ്" + }, + "planDescEnterprise": { + "message": "ബിസിനസുകൾക്കും മറ്റ് വലിയ ഓർഗനൈസേഷനുകൾക്കുമായി." + }, + "freeForever": { + "message": "എന്നേക്കും സൗജന്യം" + }, + "includesXUsers": { + "message": "includes $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Additional Users" + }, + "costPerUser": { + "message": "$COST$ per user", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limited to $COUNT$ users (including you)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limited to $COUNT$ collections", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Add and share with up to $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Add and share with unlimited users" + }, + "createUnlimitedCollections": { + "message": "Create unlimited Collections" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ encrypted file storage", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "On-premise hosting (optional)" + }, + "usersGetPremium": { + "message": "Users get access to Premium Features" + }, + "controlAccessWithGroups": { + "message": "ഉപയോക്തൃ ആക്സസ് ഗ്രൂപ്പുകൾ ഉപയോഗിച്ച് നിയന്ത്രിക്കുക" + }, + "syncUsersFromDirectory": { + "message": "ഒരു ഡയറക്‌ടറിയിൽ‌ നിന്നും നിങ്ങളുടെ ഉപയോക്താക്കളെയും ഗ്രൂപ്പുകളെയും സമന്വയിപ്പിക്കുക" + }, + "trackAuditLogs": { + "message": "ഓഡിറ്റ് ലോഗുകൾ ഉപയോഗിച്ച് ഉപയോക്തൃ പ്രവർത്തനങ്ങൾ ട്രാക്കുചെയ്യുക" + }, + "enforce2faDuo": { + "message": "ഡ്യുവോ ഉപയോഗിച്ച് 2 എഫ്എ നടപ്പിലാക്കുക" + }, + "priorityCustomerSupport": { + "message": "Priority customer support" + }, + "xDayFreeTrial": { + "message": "$COUNT$ ദിവസത്തെ സ trial ജന്യ ട്രയൽ, എപ്പോൾ വേണമെങ്കിലും റദ്ദാക്കുക", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "പ്രതിമാസം" + }, + "annually": { + "message": "വർഷം തോറും" + }, + "basePrice": { + "message": "അടിസ്ഥാന വില" + }, + "organizationCreated": { + "message": "സംഘടനാ സൃഷ്ടിച്ചു" + }, + "organizationReadyToGo": { + "message": "Your new organization is ready to go!" + }, + "organizationUpgraded": { + "message": "Your organization has been upgraded." + }, + "leave": { + "message": "Leave" + }, + "leaveOrganizationConfirmation": { + "message": "Are you sure you want to leave this organization?" + }, + "leftOrganization": { + "message": "You have left the organization." + }, + "defaultCollection": { + "message": "Default Collection" + }, + "getHelp": { + "message": "Get Help" + }, + "getApps": { + "message": "Get the Apps" + }, + "loggedInAs": { + "message": "Logged in as" + }, + "eventLogs": { + "message": "Event Logs" + }, + "people": { + "message": "People" + }, + "policies": { + "message": "നയങ്ങൾ" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "നയം എഡിറ്റുചെയ്യുക" + }, + "groups": { + "message": "ഗ്രൂപ്പുകൾ" + }, + "newGroup": { + "message": "പുതിയ ഗ്രൂപ്പ്" + }, + "addGroup": { + "message": "ഗ്രൂപ്പ് ചേർക്കുക" + }, + "editGroup": { + "message": "ഗ്രൂപ്പ് തിരുത്തുക" + }, + "deleteGroupConfirmation": { + "message": "ഈ ഗ്രൂപ്പ് ഇല്ലാതാക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?" + }, + "removeUserConfirmation": { + "message": "ഈ ഉപയോക്താവിനെ നീക്കംചെയ്യണമെന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "ബാഹ്യ Id" + }, + "externalIdDesc": { + "message": "ബാഹ്യ ഐഡി ഒരു റഫറൻസായി ഉപയോഗിക്കാം അല്ലെങ്കിൽ ഈ ഉറവിടം ഒരു ഉപയോക്തൃ ഡയറക്ടറി പോലുള്ള ഒരു ബാഹ്യ സിസ്റ്റത്തിലേക്ക് ലിങ്കുചെയ്യാൻ കഴിയും." + }, + "accessControl": { + "message": "പ്രവേശന നിയന്ത്രണം" + }, + "groupAccessAllItems": { + "message": "ഈ ഗ്രൂപ്പിന്എല്ലാ ഇനങ്ങളും ആക്‌സസ് ചെയ്യാനും പരിഷ്‌ക്കരിക്കാനും കഴിയും." + }, + "groupAccessSelectedCollections": { + "message": "തിരഞ്ഞെടുത്ത കളക്ഷനുകൾ മാത്രമേ ഈ ഗ്രൂപ്പിന് ആക്‌സസ് ചെയ്യാൻ കഴിയൂ." + }, + "readOnly": { + "message": "വായിക്കാൻ മാത്രം" + }, + "newCollection": { + "message": "പുതിയ കളക്ഷൻ" + }, + "addCollection": { + "message": "കളക്ഷൻ ചേർക്കുക " + }, + "editCollection": { + "message": "കളക്ഷൻ എഡിറ്റുചെയ്യുക" + }, + "deleteCollectionConfirmation": { + "message": "ഈ കളക്ഷൻ ഇല്ലാതാക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?" + }, + "editUser": { + "message": "ഉപയോക്താവിനെ എഡിറ്റുചെയ്യുക" + }, + "inviteUser": { + "message": "ഉപയോക്താവിനെ ക്ഷണിക്കുക" + }, + "inviteUserDesc": { + "message": "നിങ്ങളുടെ ഓർ‌ഗനൈസേഷനിലേക്ക് ഒരു പുതിയ ഉപയോക്താവിനെ അവരുടെ ബിറ്റ്‌വർ‌ഡൻ‌ അക്ക email ണ്ട് ഇമെയിൽ‌ വിലാസം നൽ‌കിക്കൊണ്ട് ക്ഷണിക്കുക. അവർക്ക് ഇതിനകം ഒരു ബിറ്റ്വാർഡൻ അക്ക have ണ്ട് ഇല്ലെങ്കിൽ, ഒരു പുതിയ അക്ക create ണ്ട് സൃഷ്ടിക്കാൻ അവരോട് ആവശ്യപ്പെടും." + }, + "inviteMultipleEmailDesc": { + "message": "ഇമെയിൽ വിലാസങ്ങളുടെ ഒരു ലിസ്റ്റ് കോമയാൽ വേർതിരിക്കുന്നതിലൂടെ നിങ്ങൾക്ക് ഒരു സമയം $COUNT$ വരെ ഉപയോക്താക്കളെ ക്ഷണിക്കാൻ കഴിയും.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "ഈ ഉപയോക്താവ് അവരുടെ അക്കൗണ്ട് രണ്ട്-പ്രവേശനം ഉപയോഗിച്ച് സുരക്ഷിതമാക്കിയിരിക്കുന്നു." + }, + "userAccessAllItems": { + "message": "ഈ ഉപയോക്താവിന് എല്ലാ ഇനങ്ങളും ആക്‌സസ് ചെയ്യാനും പരിഷ്‌ക്കരിക്കാനും കഴിയും." + }, + "userAccessSelectedCollections": { + "message": "This user can access only the selected collections." + }, + "search": { + "message": "തിരയുക" + }, + "invited": { + "message": "ക്ഷണിച്ചു" + }, + "accepted": { + "message": "അംഗീകരിച്ചു" + }, + "confirmed": { + "message": "സ്ഥിരീകരിച്ചു" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "ഉടമ" + }, + "ownerDesc": { + "message": "നിങ്ങളുടെ ഓർഗനൈസേഷന്റെ എല്ലാ വശങ്ങളും നിയന്ത്രിക്കാൻ കഴിയുന്ന ഏറ്റവും ഉയർന്ന ആക്‌സസ്സുള്ള ഉപയോക്താവ്." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "അഡ്മിൻ" + }, + "adminDesc": { + "message": "നിങ്ങളുടെ ഓർ‌ഗനൈസേഷനിലെ എല്ലാ ഇനങ്ങൾ‌, ശേഖരണങ്ങൾ‌, ഉപയോക്താക്കൾ‌ എന്നിവയിലേക്ക് അഡ്മിൻ‌മാർ‌ക്ക് പ്രവേശിക്കാനും മാനേജുചെയ്യാനും കഴിയും." + }, + "user": { + "message": "ഉപയോക്താവ്" + }, + "userDesc": { + "message": "നിങ്ങളുടെ ഓർഗനൈസേഷനിൽ നിയുക്ത ശേഖരങ്ങളിലേക്ക് ആക്‌സസ് ഉള്ള ഒരു സാധാരണ ഉപയോക്താവ്." + }, + "manager": { + "message": "മാനേജർ" + }, + "managerDesc": { + "message": "മാനേജർമാർക്ക് നിങ്ങളുടെ ഓർഗനൈസേഷനിൽ നിയുക്ത ശേഖരങ്ങൾ ആക്‌സസ് ചെയ്യാനും നിയന്ത്രിക്കാനും കഴിയും." + }, + "all": { + "message": "എല്ലാം" + }, + "refresh": { + "message": "റിഫ്രഷ് ചെയ്യുക" + }, + "timestamp": { + "message": "ടൈംസ്റ്റാമ്പ്" + }, + "event": { + "message": "ഇവന്റ്" + }, + "unknown": { + "message": "അറിയപ്പെടാത്ത" + }, + "loadMore": { + "message": "കൂടുതൽ ലഭ്യമാക്കുക" + }, + "mobile": { + "message": "മൊബൈൽ", + "description": "Mobile app" + }, + "extension": { + "message": "എക്സ്റ്റൻഷൻ", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "ഡെസ്‌ക്ടോപ്പ്", + "description": "Desktop app" + }, + "webVault": { + "message": "Web Vault" + }, + "loggedIn": { + "message": "പ്രവേശിച്ചിരിക്കുന്നു." + }, + "changedPassword": { + "message": "അക്കൗണ്ടിന്റെ പാസ്സ്‌വേർഡ് മാറ്റി." + }, + "enabledUpdated2fa": { + "message": "രണ്ട്-ഘട്ട ലോഗിൻ പ്രവർത്തനക്ഷമമാക്കി / അപ്‌ഡേറ്റുചെയ്‌തു." + }, + "disabled2fa": { + "message": "രണ്ട് ഘട്ട പ്രവേശനം അപ്രാപ്‌തമാക്കുക." + }, + "recovered2fa": { + "message": "രണ്ട്-ഘട്ട ലോഗിനിൽ നിന്ന് അക്കൗണ്ട് വീണ്ടെടുത്തു." + }, + "failedLogin": { + "message": "തെറ്റായ പാസ്‌വേഡ് ഉപയോഗിച്ച് ലോഗിൻ ശ്രമം പരാജയപ്പെട്ടു." + }, + "failedLogin2fa": { + "message": "തെറ്റായ രണ്ട്-ഘട്ട ലോഗിൻ ഉപയോഗിച്ച് ലോഗിൻ ശ്രമം പരാജയപ്പെട്ടു." + }, + "exportedVault": { + "message": "Exported vault." + }, + "exportedOrganizationVault": { + "message": "Exported organization vault." + }, + "editedOrgSettings": { + "message": "Edited organization settings." + }, + "createdItemId": { + "message": "Created item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Edited item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Sent item $ID$ to trash.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Viewed item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Viewed password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Viewed hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Viewed security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Copied password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Copied hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Copied security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Auto-filled item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Created collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Edited collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Deleted collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Edited policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Created group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Edited group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Deleted group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Removed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Created attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Deleted attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Edited collections for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Invited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Confirmed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Edited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Edited groups for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "ഉപകരണം" + }, + "view": { + "message": "പ്രദർശനം" + }, + "invalidDateRange": { + "message": "Invalid date range." + }, + "errorOccurred": { + "message": "ഒരു പിഴവ് സംഭവിച്ചിരിക്കുന്നു." + }, + "userAccess": { + "message": "User Access" + }, + "userType": { + "message": "User Type" + }, + "groupAccess": { + "message": "Group Access" + }, + "groupAccessUserDesc": { + "message": "Edit the groups that this user belongs to." + }, + "invitedUsers": { + "message": "Invited user(s)." + }, + "resendInvitation": { + "message": "ക്ഷണം വീണ്ടും അയയ്‌ക്കുക" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$-നെ വീണ്ടും ക്ഷണിച്ചു.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "സ്ഥിരീകരിക്കുക" + }, + "confirmUser": { + "message": "ഉപയോക്താവിനെ സ്ഥിരീകരിക്കുക" + }, + "hasBeenConfirmed": { + "message": "$USER$-നെ സ്ഥിരീകരിച്ചു.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "ഉപയോക്താക്കളെ സ്ഥിരീകരിക്കുക" + }, + "usersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organization until they are confirmed." + }, + "startDate": { + "message": "തുടങ്ങുന്ന ദിവസം" + }, + "endDate": { + "message": "അവസാന ദിവസം" + }, + "verifyEmail": { + "message": "ഇമെയില് ശരിയാണെന്ന് ഉറപ്പുവരുത്തക" + }, + "verifyEmailDesc": { + "message": "എല്ലാ സവിശേഷതകളിലേക്കും ആക്സസ് അൺലോക്കുചെയ്യുന്നതിന് നിങ്ങളുടെ അക്കൗണ്ടിന്റെ ഇമെയിൽ വിലാസം സ്ഥിരീകരിക്കുക." + }, + "verifyEmailFirst": { + "message": "നിങ്ങളുടെ അക്കൗണ്ടിന്റെ ഇമെയിൽ വിലാസം ആദ്യം സ്ഥിരീകരിക്കേണ്ടതാണ്. " + }, + "checkInboxForVerification": { + "message": "ഒരു സ്ഥിരീകരണ ലിങ്കിനായി നിങ്ങളുടെ ഇമെയിൽ ഇൻ‌ബോക്സ് പരിശോധിക്കുക." + }, + "emailVerified": { + "message": "നിങ്ങളുടെ ഇമെയിൽ സ്ഥിരീകരിച്ചു." + }, + "emailVerifiedFailed": { + "message": "നിങ്ങളുടെ ഇമെയിൽ പരിശോധിച്ചുറപ്പിക്കാനായില്ല. ഒരു പുതിയ സ്ഥിരീകരണ ഇമെയിൽ അയയ്‌ക്കാൻ ശ്രമിക്കുക." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "ബ്രൌസർ അപ്‌ഡേറ്റുചെയ്യുക" + }, + "updateBrowserDesc": { + "message": "You are using an unsupported web browser. The web vault may not function properly." + }, + "joinOrganization": { + "message": "ഓർഗനൈസേഷനിൽ ചേരുക" + }, + "joinOrganizationDesc": { + "message": "You've been invited to join the organization listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "inviteAccepted": { + "message": "ക്ഷണം സ്വീകരിച്ചു" + }, + "inviteAcceptedDesc": { + "message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens." + }, + "inviteAcceptFailed": { + "message": "Unable to accept invitation. Ask an organization admin to send a new invitation." + }, + "inviteAcceptFailedShort": { + "message": "ക്ഷണം സ്വീകരിക്കാൻ കഴിയില്ല. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "ഇമെയിൽ ഓർക്കണം" + }, + "recoverAccountTwoStepDesc": { + "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + }, + "recoverAccountTwoStep": { + "message": "അക്കൗണ്ടിന്റെ രണ്ട്-ഘട്ട പ്രവേശനം വീണ്ടെടുക്കുക" + }, + "twoStepRecoverDisabled": { + "message": "നിങ്ങളുടെ അക്കൗണ്ടിൽ രണ്ട്-ഘട്ട പ്രവേശനം പ്രവർത്തനരഹിതമാക്കി." + }, + "learnMore": { + "message": "കൂടുതൽ അറിയുക" + }, + "deleteRecoverDesc": { + "message": "നിങ്ങളുടെ അക്കൗണ്ട് വീണ്ടെടുക്കുന്നതിനും ഇല്ലാതാക്കുന്നതിനും ചുവടെ നിങ്ങളുടെ ഇമെയിൽ വിലാസം നൽകുക." + }, + "deleteRecoverEmailSent": { + "message": "നിങ്ങളുടെ അക്കൗണ്ട് നിലവിലുണ്ടെങ്കിൽ, കൂടുതൽ നിർദ്ദേശങ്ങളുള്ള ഒരു ഇമെയിൽ ഞങ്ങൾ നിങ്ങൾക്ക് അയച്ചു." + }, + "deleteRecoverConfirmDesc": { + "message": "നിങ്ങളുടെ Bitwarden അക്കൗണ്ട് ഇല്ലാതാക്കാൻ നിങ്ങൾ അഭ്യർത്ഥിച്ചു. സ്ഥിരീകരിക്കുന്നതിന് ചുവടെയുള്ള ബട്ടൺ ക്ലിക്കുചെയ്യുക." + }, + "myOrganization": { + "message": "എന്റെ സംഘടന" + }, + "deleteOrganization": { + "message": "സംഘടന ഇല്ലാതാക്കുക" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "സംഘടന ഇല്ലാതാക്കി" + }, + "organizationDeletedDesc": { + "message": "സംഘടനയും ബന്ധപ്പെട്ട എല്ലാ ഡാറ്റയും ഇല്ലാതാക്കി." + }, + "organizationUpdated": { + "message": "സംഘടന അപ്‌ഡേറ്റുചെയ്‌തു" + }, + "taxInformation": { + "message": "നികുതി വിവരങ്ങൾ" + }, + "taxInformationDesc": { + "message": "യു‌എസിനുള്ളിലെ ഉപഭോക്താക്കൾ‌ക്കായി, വിൽ‌പന നികുതി ആവശ്യകതകൾ‌ നിറവേറ്റുന്നതിന് പിൻ‌ കോഡ് ആവശ്യമാണ്, മറ്റ് രാജ്യങ്ങൾ‌ക്കായി നിങ്ങളുടെ ഇൻ‌വോയിസുകളിൽ‌ പ്രത്യക്ഷപ്പെടുന്നതിന് ഒരു ടാക്സ് ഐഡൻറിഫിക്കേഷൻ നമ്പറും (വാറ്റ് / ജിഎസ്ടി) കൂടാതെ / അല്ലെങ്കിൽ വിലാസവും നൽകാം." + }, + "billingPlan": { + "message": "പ്ലാൻ", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "പ്ലാൻ മാറ്റുക", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "ചുവടെയുള്ള വിവരങ്ങൾ നൽകി നിങ്ങളുടെ പ്ലാൻ മറ്റൊരു പ്ലാനിലേക്ക് അപ്‌ഗ്രേഡുചെയ്യുക. നിങ്ങൾക്ക് അക്കൗണ്ടിലേക്ക് ഒരു സജീവ പേയ്‌മെന്റ് രീതി ചേർത്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "ഇൻവോയ്സ് #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "ഇൻവോയ്സ് കാണിക്കുക" + }, + "downloadInvoice": { + "message": "ഇൻവോയ്സ് ഡൗൺലോഡുചെയ്യുക" + }, + "verifyBankAccount": { + "message": "ബാങ്ക് അക്കൗണ്ട് സ്ഥിരീകരിക്കുക" + }, + "verifyBankAccountDesc": { + "message": "ഞങ്ങൾ നിങ്ങളുടെ ബാങ്ക് അക്കൗണ്ടിലേക്ക് രണ്ട് മൈക്രോ ഡെപ്പോസിറ്റുകൾ നടത്തി (ഇത് കാണിക്കാൻ 1-2 പ്രവൃത്തി ദിവസമെടുത്തേക്കാം). ബാങ്ക് അക്കൗണ്ട് സ്ഥിരീകരിക്കുന്നതിന് ഈ തുകകൾ നൽകുക." + }, + "verifyBankAccountInitialDesc": { + "message": "ഒരു ബാങ്ക് അക്ക with ണ്ട് ഉപയോഗിച്ചുള്ള പേയ്‌മെന്റ് യുണൈറ്റഡ് സ്റ്റേറ്റ്സിലെ ഉപയോക്താക്കൾക്ക് മാത്രമേ ലഭ്യമാകൂ. നിങ്ങളുടെ ബാങ്ക് അക്കൗണ്ട് പരിശോധിക്കേണ്ടതുണ്ട്. അടുത്ത 1-2 പ്രവൃത്തി ദിവസത്തിനുള്ളിൽ ഞങ്ങൾ രണ്ട് മൈക്രോ നിക്ഷേപങ്ങൾ നടത്തും. ബാങ്ക് അക്കൗണ്ട് സ്ഥിരീകരിക്കുന്നതിന് ഓർഗനൈസേഷന്റെ ബില്ലിംഗ് പേജിൽ ഈ തുകകൾ നൽകുക." + }, + "verifyBankAccountFailureWarning": { + "message": "ബാങ്ക് അക്കൗണ്ട് സ്ഥിരീകരിക്കുന്നതിൽ പരാജയപ്പെടുന്നത് പേയ്‌മെന്റ് നഷ്‌ടപ്പെടുന്നതിനും നിങ്ങളുടെ സബ്‌സ്‌ക്രിപ്‌ഷൻ പ്രവർത്തനരഹിതമാക്കുന്നതിനും ഇടയാക്കും." + }, + "verifiedBankAccount": { + "message": "ബാങ്ക് അക്കൗണ്ട് സ്ഥിരീകരിച്ചു." + }, + "bankAccount": { + "message": "ബാങ്ക് അക്കൗണ്ട്" + }, + "amountX": { + "message": "തുക $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "അക്കൗണ്ട് നമ്പർ" + }, + "accountHolderName": { + "message": "അക്കൗണ്ട് ഉടമയുടെ പേര്" + }, + "bankAccountType": { + "message": "അക്കൗണ്ട് തരം" + }, + "bankAccountTypeCompany": { + "message": "കമ്പനി (ബിസിനസ്)" + }, + "bankAccountTypeIndividual": { + "message": "വ്യക്തിഗത (വ്യക്തിഗത)" + }, + "enterInstallationId": { + "message": "നിങ്ങളുടെ ഇൻസ്റ്റാളേഷൻ ഐഡി നൽകുക" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "സീറ്റുകൾ ചേർക്കുക ", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "സീറ്റുകൾ നീക്കംചെയ്യുക", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "നിങ്ങളുടെ സബ്സ്ക്രിപ്ഷൻ മൊത്തം $COUNT$ ഉപയോക്താക്കളെ അനുവദിക്കുന്നു.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seats To Add" + }, + "seatsToRemove": { + "message": "നീക്കംചെയ്യാനുള്ള സീറ്റുകൾ" + }, + "seatsAddNote": { + "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "seatsRemoveNote": { + "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedSeats": { + "message": "Adjusted $AMOUNT$ user seats.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "കീ അപ്‌ഡേറ്റുചെയ്‌തു" + }, + "updateKeyTitle": { + "message": "കീ അപ്‌ഡേറ്റുചെയ്യുക" + }, + "updateEncryptionKey": { + "message": "എൻക്രിപ്ഷൻ കീ അപ്‌ഡേറ്റുചെയ്യുക" + }, + "updateEncryptionKeyShortDesc": { + "message": "You are currently using an outdated encryption scheme." + }, + "updateEncryptionKeyDesc": { + "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, however, it may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "സബ്സ്ക്രിപ്ഷൻ" + }, + "loading": { + "message": "ലഭ്യമാക്കുന്നു" + }, + "upgrade": { + "message": "അപ്ഗ്രേഡ് ചെയ്യുക" + }, + "upgradeOrganization": { + "message": "സംഘടന അപ്ഗ്രേഡ് ചെയ്യുക" + }, + "upgradeOrganizationDesc": { + "message": "സൗജന്യ സംഘടനകൾക്കു ഈ സവിശേഷത ലഭ്യമല്ല. കൂടുതൽ സവിശേഷതകൾ അൺലോക്കുചെയ്യുന്നതിന് പ്രീമിയം പ്ലാനിലേക്ക് മാറുക." + }, + "createOrganizationStep1": { + "message": "സംഘടനാ സൃഷ്‌ടിക്കുക: ഘട്ടം 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "നിങ്ങളുടെ സംഘടനാ സൃഷ്‌ടിക്കുന്നതിന് മുമ്പ്, നിങ്ങൾ ആദ്യം ഒരു വ്യതസ്തമായ അക്കൗണ്ട് സൃഷ്ടിക്കണം." + }, + "refunded": { + "message": "റീഫണ്ട് ചെയ്തു" + }, + "nothingSelected": { + "message": "നിങ്ങൾ ഒന്നും തിരഞ്ഞെടുത്തിട്ടില്ല." + }, + "acceptPolicies": { + "message": "ഈ ബോക്സ് ചെക്കുചെയ്യുന്നതിലൂടെ നിങ്ങൾ ഇനിപ്പറയുന്നവ അംഗീകരിക്കുന്നു:" + }, + "acceptPoliciesError": { + "message": "സേവന നിബന്ധനകളും സ്വകാര്യതാ നയവും അംഗീകരിച്ചിട്ടില്ല." + }, + "termsOfService": { + "message": "സേവന വ്യവസ്ഥകൾ" + }, + "privacyPolicy": { + "message": "സ്വകാര്യതാനയം" + }, + "filters": { + "message": "ഫിൽറ്ററുകൾ" + }, + "vaultTimeout": { + "message": "വാൾട് ടൈംഔട്ട്" + }, + "vaultTimeoutDesc": { + "message": "തങ്ങളുടെ വാൾട് എപ്പോൾ ടൈംഔട്ട് ആകും എന്ന് നിശ്ചയിക്കുക. തിരഞ്ഞെടുത്ത പ്രവർത്തനം നടത്തുക." + }, + "oneMinute": { + "message": "1 മിനിറ്റ്" + }, + "fiveMinutes": { + "message": "5 മിനിറ്റ്" + }, + "fifteenMinutes": { + "message": "15 മിനിറ്റ്" + }, + "thirtyMinutes": { + "message": "30 മിനിറ്റ്" + }, + "oneHour": { + "message": "1 മണിക്കൂർ" + }, + "fourHours": { + "message": "4 മണിക്കൂർ" + }, + "onRefresh": { + "message": "ബ്രൗസർ റിഫ്രഷ് ചെയ്യുമ്പോൾ" + }, + "dateUpdated": { + "message": "പുതുക്കിയത്", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "പാസ്‍വേഡ് പുതുക്കി", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "സംഘടന അപ്രാപ്‌തമാക്കി." + }, + "licenseIsExpired": { + "message": "ലൈസൻസ് കാലഹരണപ്പെട്ടു." + }, + "updatedUsers": { + "message": "അപ്‌ഡേറ്റുചെയ്‌ത ഉപയോക്താക്കൾ" + }, + "selected": { + "message": "തിരഞ്ഞെടുത്തത്" + }, + "ownership": { + "message": "ഉടമസ്ഥാവകാശം" + }, + "whoOwnsThisItem": { + "message": "ഈ ഇനം ആരുടേതാണ്?" + }, + "strong": { + "message": "ശക്തമായ", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "നല്ലത്", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "ദുർബലമാണ്", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "വളരെ ദുർബലമാണ്", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "ദുര്ബലമായ പ്രാഥമിക പാസ്‌വേഡ്" + }, + "weakMasterPasswordDesc": { + "message": "നിങ്ങൾ തിരഞ്ഞെടുത്ത പ്രാഥമിക പാസ്‌വേഡ് ദുർബലമാണ്. നിങ്ങളുടെ Bitwarden അക്കൗണ്ട് ശരിയായി സുരക്ഷിതമാക്കാൻ നിങ്ങൾ ഒരു ശക്തമായ മാസ്റ്റർ പാസ്‌വേഡ് (അല്ലെങ്കിൽ ഒരു പാസ്‌ഫ്രേസ്) ഉപയോഗിക്കണം. ഈ മാസ്റ്റർ പാസ്‌വേഡ് ഉപയോഗിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?" + }, + "rotateAccountEncKey": { + "message": "എന്റെ അക്കൗണ്ടിന്റെ എൻക്രിപ്ഷൻ കീയും rotate ചെയ്യുക" + }, + "rotateEncKeyTitle": { + "message": "എൻക്രിപ്ഷൻ കീ തിരിക്കുക" + }, + "rotateEncKeyConfirmation": { + "message": "Are you sure you want to rotate your account's encryption key?" + }, + "attachmentsNeedFix": { + "message": "പരിഹരിക്കേണ്ട അറ്റാച്മെന്റുകൾ ഈ ഇനത്തിൽ ഉണ്ട്." + }, + "attachmentFixDesc": { + "message": "പരിഹരിക്കേണ്ട അറ്റാച്മെന്റുകൾ ഈ ഇനത്തിൽ ഉണ്ട്. കൂടുതലറിയാൻ ക്ലിക്കുചെയ്യുക." + }, + "fix": { + "message": "പരിഹരിക്കുക", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "നിങ്ങളുടെ അക്കൗണ്ടിന്റെ എൻ‌ക്രിപ്ഷൻ കീ തിരിക്കുന്നതിന് മുമ്പ് ശരിയാക്കേണ്ട പഴയ ഫയൽ അറ്റാച്ചുമെന്റുകൾ നിങ്ങളുടെ നിലവറയിൽ ഉണ്ട്." + }, + "yourAccountsFingerprint": { + "message": "നിങ്ങളുടെ അക്കൗണ്ടിൻ്റെ ഫിംഗർപ്രിന്റ് ഫ്രേസ്‌", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "നിങ്ങളുടെ എൻ‌ക്രിപ്ഷൻ കീകളുടെ സമഗ്രത ഉറപ്പാക്കുന്നതിന്, തുടരുന്നതിന് മുമ്പ് ഉപയോക്താവിന്റെ വിരലടയാളം പരിശോധിക്കുക.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "ഫിംഗർപ്രിന്റ് വാചകം പരിശോധിക്കാൻ ആവശ്യപ്പെടരുത്", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "സൗജന്യം ", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API കീ" + }, + "apiKeyDesc": { + "message": "Bitwarden പബ്ലിക് API-ലേക്ക് പ്രാമാണീകരിക്കാൻ നിങ്ങളുടെ API കീ ഉപയോഗിക്കാം." + }, + "apiKeyRotateDesc": { + "message": "API കീ തിരിക്കുന്നത് മുമ്പത്തെ കീ അസാധുവാക്കും. നിലവിലെ കീ ഉപയോഗിക്കാൻ സുരക്ഷിതമല്ലെന്ന് നിങ്ങൾ വിശ്വസിക്കുന്നുവെങ്കിൽ നിങ്ങളുടെ API കീ തിരിക്കാൻ കഴിയും." + }, + "apiKeyWarning": { + "message": "നിങ്ങളുടെ API കീയ്ക്ക് സംഘടനയിലേക്ക് പൂർണ്ണ ആക്‌സസ് ഉണ്ട്. അതുകൊണ്ടു ഇത് രഹസ്യമായി സൂക്ഷിക്കണം." + }, + "userApiKeyDesc": { + "message": "ബിറ്റ്വാർഡൻ CLI- യിൽ പ്രാമാണീകരിക്കാൻ നിങ്ങളുടെ API കീ ഉപയോഗിക്കാം." + }, + "userApiKeyWarning": { + "message": "നിങ്ങളുടെ API കീ ഒരു ഇതര പ്രാമാണീകരണ സംവിധാനമാണ്. അത് രഹസ്യമായി സൂക്ഷിക്കണം." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 ക്ലയൻറ് ക്രെഡൻഷ്യലുകൾ", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "API കീ കാണുക " + }, + "rotateApiKey": { + "message": "API കീ തിരിക്കുക" + }, + "selectOneCollection": { + "message": "നിങ്ങൾ ഒരു കളക്ഷനെങ്കിലും തിരഞ്ഞെടുക്കണം." + }, + "couldNotChargeCardPayInvoice": { + "message": "ഞങ്ങൾക്ക് നിങ്ങളുടെ കാർഡ് ഈടാക്കാൻ കഴിഞ്ഞില്ല. ചുവടെ ലിസ്റ്റുചെയ്തിട്ടുള്ള പണമടയ്ക്കാത്ത ഇൻവോയ്സ് കാണുകയും അടയ്ക്കുകയും ചെയ്യുക." + }, + "inAppPurchase": { + "message": "In-app Purchase" + }, + "cannotPerformInAppPurchase": { + "message": "You cannot perform this action while using an in-app purchase payment method." + }, + "manageSubscriptionFromStore": { + "message": "You must manage your subscription from the store where your in-app purchase was made." + }, + "minLength": { + "message": "കുറഞ്ഞ നീളം" + }, + "clone": { + "message": "ക്ലോൺ" + }, + "masterPassPolicyDesc": { + "message": "Set minimum requirements for master password strength." + }, + "twoStepLoginPolicyDesc": { + "message": "ഉപയോക്താക്കൾക്ക് അവരുടെ സ്വകാര്യ അക്കൗണ്ടുകളിൽ രണ്ട്-ഘട്ട പ്രവേശനം സജ്ജമാക്കാൻ ആവശ്യപ്പെടുക." + }, + "twoStepLoginPolicyWarning": { + "message": "വ്യക്തിഗത അക്ക for ണ്ടിനായി രണ്ട്-ഘട്ട ലോഗിൻ പ്രാപ്തമാക്കിയിട്ടില്ലാത്ത ഓർഗനൈസേഷൻ അംഗങ്ങളെ ഓർഗനൈസേഷനിൽ നിന്ന് നീക്കംചെയ്യുകയും മാറ്റത്തെക്കുറിച്ച് അറിയിക്കുന്ന ഒരു ഇമെയിൽ ലഭിക്കുകയും ചെയ്യും." + }, + "twoStepLoginPolicyUserWarning": { + "message": "നിങ്ങളുടെ ഉപയോക്തൃ അക്കൗണ്ടിൽ രണ്ട്-ഘട്ട പ്രവേശനം പ്രവർത്തനക്ഷമമാക്കേണ്ട ഒരു സംഘടനയിലെ അംഗമാണ് നിങ്ങൾ. രണ്ട്-ഘട്ട പ്രവേശന ദാതാക്കളെ നിങ്ങൾ അപ്രാപ്തമാക്കിയാൽ, ഈ സംഘടനകളിൽ നിന്ന് നിങ്ങളെ സ്വപ്രേരിതമായി നീക്കംചെയ്യും." + }, + "passwordGeneratorPolicyDesc": { + "message": "പാസ്‌വേഡ് ജനറേറ്റർ കോൺഫിഗറേഷനായി മിനിമം ആവശ്യകതകൾ സജ്ജമാക്കുക." + }, + "passwordGeneratorPolicyInEffect": { + "message": "ഒന്നോ അതിലധികമോ സംഘടന നയങ്ങൾ നിങ്ങളുടെ പാസ്സ്‌വേഡ് സൃഷ്ടാവിൻ്റെ ക്രമീകരണങ്ങളെ ബാധിക്കുന്നു." + }, + "masterPasswordPolicyInEffect": { + "message": "ഒന്നോ അതിലധികമോ ഓർഗനൈസേഷൻ നയങ്ങൾക്ക് ഇനിപ്പറയുന്ന ആവശ്യകതകൾ നിറവേറ്റുന്നതിന് നിങ്ങളുടെ മാസ്റ്റർ പാസ്‌വേഡ് ആവശ്യമാണ്:" + }, + "policyInEffectMinComplexity": { + "message": "സങ്കീർണ്ണതയുടെ കുറഞ്ഞ സ്കോർ$SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "കുറഞ്ഞ ദൈർഘ്യം $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "ഒന്നോ അതിലധികമോ വലിയക്ഷരങ്ങൾ അടങ്ങിയിരിക്കുന്ന" + }, + "policyInEffectLowercase": { + "message": "ഒന്നോ അതിലധികമോ ചെറിയക്ഷരങ്ങൾ അടങ്ങിയിരിക്കുന്ന" + }, + "policyInEffectNumbers": { + "message": "ഒന്നോ അതിലധികമോ അക്കങ്ങൾ അടങ്ങിയിരിക്കുന്ന" + }, + "policyInEffectSpecial": { + "message": "ഇനിപ്പറയുന്ന ഒന്നോ അതിലധികമോ പ്രത്യേക പ്രതീകങ്ങൾ അടങ്ങിയിരിക്കണം:$CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "നിങ്ങളുടെ പുതിയ മാസ്റ്റർ പാസ്‌വേഡ് നയ ആവശ്യകതകൾ നിറവേറ്റുന്നില്ല." + }, + "minimumNumberOfWords": { + "message": "വാക്കുകളുടെ ഏറ്റവും കുറഞ്ഞ എണ്ണം" + }, + "defaultType": { + "message": "സ്ഥിരസ്ഥിതി തരം" + }, + "userPreference": { + "message": "ഉപയോക്തൃ മുൻഗണന" + }, + "vaultTimeoutAction": { + "message": "വാൾട് ടൈം ഔട്ട് പ്രവർത്തനം" + }, + "vaultTimeoutActionLockDesc": { + "message": "ലോക്കുചെയ്‌ത വാൾട് വീണ്ടും ആക്‌സസ് ചെയ്യുന്നതിന് തങ്ങളുടെ പ്രാഥമിക പാസ്‌വേഡ് വീണ്ടും നൽകേണ്ടതാണ്." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "ലോഗ് ഔട്ട് ചെയ്ത വാൾട് വീണ്ടും അക്സസ്സ് ചെയ്യാൻ ഓതെന്റിക്കേഷൻ ആവശ്യം വേരും." + }, + "lock": { + "message": "പൂട്ടുക", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "ട്രാഷ്", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "ട്രാഷ് തിരയുക" + }, + "permanentlyDelete": { + "message": "എന്നെന്നേക്കുമായി നീക്കം ചെയ്യുക" + }, + "permanentlyDeleteSelected": { + "message": "തിരഞ്ഞെടുത്തത് എന്നെന്നേക്കുമായി നീക്കം ചെയ്യുക" + }, + "permanentlyDeleteItem": { + "message": "ഇനം എന്നെന്നേക്കുമായി നീക്കം ചെയ്യുക" + }, + "permanentlyDeleteItemConfirmation": { + "message": "ഈ എന്നെന്നേക്കുമായി നീക്കം ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?" + }, + "permanentlyDeletedItem": { + "message": "എന്നെന്നേക്കുമായി നീക്കം ചെയ്ത ഇനം" + }, + "permanentlyDeletedItems": { + "message": "എന്നെന്നേക്കുമായി നീക്കം ചെയ്ത ഇനങ്ങൾ" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "ശാശ്വതമായി ഇല്ലാതാക്കാൻ നിങ്ങൾ $COUNT$ ഇനം (കൾ) തിരഞ്ഞെടുത്തു. ഈ ഇനങ്ങളെല്ലാം ശാശ്വതമായി ഇല്ലാതാക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "$ID$ എന്നെന്നേക്കുമായി നീക്കം ചെയ്തു.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "വീണ്ടെടുക്കുക " + }, + "restoreSelected": { + "message": "തിരഞ്ഞെടുത്തത് വീണ്ടെടുക്കുക " + }, + "restoreItem": { + "message": "ഇനം വീണ്ടെടുക്കുക " + }, + "restoredItem": { + "message": "വീണ്ടെടുത്ത ഇനങ്ങൾ" + }, + "restoredItems": { + "message": "വീണ്ടെടുത്ത ഇനങ്ങൾ" + }, + "restoreItemConfirmation": { + "message": "ഈ ഇനം വീണ്ടെടുക്കണമെന്ന് ഉറപ്പാണോ?" + }, + "restoreItems": { + "message": "ഇനങ്ങൾ വീണ്ടെടുക്കുക" + }, + "restoreSelectedItemsDesc": { + "message": "വീണ്ടെടുക്കാൻ നിങ്ങൾ $COUNT$ ഇനം(ങ്ങൾ) തിരഞ്ഞെടുത്തു. ഈ ഇനങ്ങളെല്ലാം വീണ്ടെടുക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "$ID$ എന്ന ഇനം വീണ്ടെടുത്തു.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "ലോഗ് ഔട്ട് ചെയ്യുന്നത് തങ്ങളുടെ വാൾട്ടിലേക്കുള്ള എല്ലാ ആക്സസും നീക്കംചെയ്യുകയും. കാലയളവിനുശേഷം ഓൺലൈൻ ഓതന്റിക്കേറ്റർ ആവശ്യമാണ്. ഈ ക്രമീകരണം ഉപയോഗിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "ടൈംഔട് ആക്ഷൻ സ്ഥിരീകരണം" + }, + "hidePasswords": { + "message": "പാസ്‌വേഡുകൾ മറയ്‌ക്കുക" + }, + "countryPostalCodeRequiredDesc": { + "message": "വിൽപ്പന നികുതിയും സാമ്പത്തിക റിപ്പോർട്ടിംഗും മാത്രം കണക്കാക്കാൻ ഞങ്ങൾക്ക് ഈ വിവരങ്ങൾ ആവശ്യമാണ്." + }, + "includeVAT": { + "message": "VAT/GST വിവരങ്ങൾ ഉൾപ്പെടുത്തുക (ഓപ്ഷണൽ)" + }, + "taxIdNumber": { + "message": "VAT/GST ടാക്സ് ഐഡി" + }, + "taxInfoUpdated": { + "message": "നികുതി വിവരങ്ങൾ പുതുക്കിയിരിക്കുന്നു." + }, + "setMasterPassword": { + "message": "പ്രാഥമിക പാസ്‌വേഡ് സജ്ജമാക്കു" + }, + "ssoCompleteRegistration": { + "message": "SSO ഉപയോഗിച്ച് പ്രവേശനം പൂർത്തിയാക്കാനും, നിങ്ങളുടെ വാൾട് ആക്സസ് ചെയ്യാനും സുരക്ഷിതമാക്കാനും ഒരു പ്രാഥമിക പാസ്‌വേഡ് സജ്ജമാക്കുക." + }, + "identifier": { + "message": "ഐഡന്റിഫയർ" + }, + "organizationIdentifier": { + "message": "സംഘടനയുടെ ഐഡന്റിഫയർ" + }, + "ssoLogInWithOrgIdentifier": { + "message": "നിങ്ങളുടെ സംഘടനയുടെ സിംഗിൾ സൈൻ-ഓൺ പോർട്ടൽ ഉപയോഗിച്ച് വേഗത്തിൽ ലോഗിൻ ചെയ്യുക. ആരംഭിക്കുന്നതിന് ദയവായി നിങ്ങളുടെ സംഘടനയുടെ ഐഡന്റിഫയർ നൽകുക." + }, + "enterpriseSingleSignOn": { + "message": "എന്റർപ്രൈസ് SSO" + }, + "ssoHandOff": { + "message": "നിങ്ങൾക്ക് ഇപ്പോൾ ഈ ടാബ് അടച്ച് വിപുലീകരണത്തിൽ തുടരാം." + }, + "includeAllTeamsFeatures": { + "message": "എല്ലാ ടീമുകളുടെ സവിശേഷതകളും, കൂടാതെ:" + }, + "includeSsoAuthentication": { + "message": "SSO Authentication via SAML2.0 and OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "എന്റർപ്രൈസ് പോളിസികൾ" + }, + "ssoValidationFailed": { + "message": "SSO മൂല്യനിർണ്ണയം പരാജയപ്പെട്ടു" + }, + "ssoIdentifierRequired": { + "message": "സംഘടനയുടെ ഐഡന്റിഫയർ ആവശ്യമാണ്." + }, + "unlinkSso": { + "message": "Unlink SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "SSO ബന്ധിപ്പിക്കുക" + }, + "singleOrg": { + "message": "ഒറ്റ ഓർഗനൈസേഷൻ" + }, + "singleOrgDesc": { + "message": "മറ്റേതെങ്കിലും ഓർഗനൈസേഷനിൽ ചേരുന്നതിൽ നിന്ന് ഉപയോക്താക്കളെ നിയന്ത്രിക്കുക." + }, + "singleOrgBlockCreateMessage": { + "message": "ഒന്നിൽ കൂടുതൽ ഓർഗനൈസേഷനിൽ ചേരാൻ നിങ്ങളെ അനുവദിക്കാത്ത ഒരു നയമാണ് നിങ്ങളുടെ നിലവിലെ ഓർഗനൈസേഷന് ഉള്ളത്. നിങ്ങളുടെ ഓർഗനൈസേഷൻ അഡ്‌മിനുകളുമായി ബന്ധപ്പെടുക അല്ലെങ്കിൽ മറ്റൊരു ബിറ്റ്‌വാർഡൻ അക്കൗണ്ടിൽ നിന്ന് സൈൻ അപ്പ് ചെയ്യുക." + }, + "singleOrgPolicyWarning": { + "message": "ഉടമകളോ അഡ്മിനിസ്ട്രേറ്റർമാരോ അല്ലാത്തവരും ഇതിനകം മറ്റൊരു ഓർഗനൈസേഷനിൽ അംഗവുമായ ഓർഗനൈസേഷൻ അംഗങ്ങളെ നിങ്ങളുടെ ഓർഗനൈസേഷനിൽ നിന്ന് നീക്കംചെയ്യും." + }, + "requireSso": { + "message": "സിംഗിൾ സൈൻ-ഓൺ പ്രാമാണീകരണം" + }, + "requireSsoPolicyDesc": { + "message": "എന്റർപ്രൈസ് സിംഗിൾ സൈൻ-ഓൺ രീതി ഉപയോഗിച്ച് ഉപയോക്താക്കൾ ലോഗിൻ ചെയ്യാൻ ആവശ്യപ്പെടുന്നു." + }, + "prerequisite": { + "message": "മുൻവ്യവസ്ഥ" + }, + "requireSsoPolicyReq": { + "message": "ഈ നയം സജീവമാക്കുന്നതിന് മുമ്പ് സിംഗിൾ ഓർഗനൈസേഷൻ എന്റർപ്രൈസ് നയം പ്രവർത്തനക്ഷമമാക്കിയിരിക്കണം." + }, + "requireSsoPolicyReqError": { + "message": "സിംഗിൾ ഓർഗനൈസേഷൻ നയം പ്രവർത്തനക്ഷമമാക്കിയിട്ടില്ല." + }, + "requireSsoExemption": { + "message": "ഓർ‌ഗനൈസേഷൻ‌ ഉടമകളെയും രക്ഷാധികാരികളെയും ഈ നയം നടപ്പിലാക്കുന്നതിൽ‌ നിന്നും ഒഴിവാക്കിയിരിക്കുന്നു." + }, + "sendTypeFile": { + "message": "ഫയൽ" + }, + "sendTypeText": { + "message": "വാചകം" + }, + "createSend": { + "message": "പുതിയ Send സൃഷ്‌ടിക്കുക", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Send തിരുത്തുക", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send സൃഷ്‌ടിച്ചു", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Send തിരുത്തി", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send ഇല്ലാതാക്കി", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Send ഇല്ലാതാക്കുക", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "ഈ Send ഇല്ലാതാക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "ഇത് ഏത് തരം അയയ്ക്കലാണ്?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "ഇല്ലാതാക്കൽ തീയതി" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "കാലഹരണപ്പെടുന്ന തീയതി" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "പരമാവധി ആക്സസ് എണ്ണം" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "നിലവിലെ ആക്‌സസ്സ് എണ്ണം" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "അപ്രാപ്‌തമാക്കി" + }, + "sendLink": { + "message": "ലിങ്ക് അയയ്‌ക്കുക", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Send ലിങ്ക് പകർത്തുക", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "പാസ്‌വേഡ് നീക്കംചെയ്യുക" + }, + "removedPassword": { + "message": "പാസ്‌വേഡ് നീക്കംചെയ്‌തു" + }, + "removePasswordConfirmation": { + "message": "പാസ്‌വേഡ് നീക്കംചെയ്യണമെന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "എല്ലാം Send-കൾ" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "expired": { + "message": "Expired" + }, + "searchSends": { + "message": "Send-കൾ തിരയുക", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "ഈ Send പാസ്‌വേഡ് ഉപയോഗിച്ച് സുരക്ഷിതമാക്കിയിരിക്കുന്നു. തുടരുന്നതിന് ദയവായി ചുവടെ പാസ്‌വേഡ് ടൈപ്പുചെയ്യുക.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "പാസ്‌വേഡ് അറിയില്ലേ? ഈ അയയ്‌ക്കൽ ആക്‌സസ് ചെയ്യുന്നതിന് ആവശ്യമായ പാസ്‌വേഡിനായി അയച്ചയാളോട് ചോദിക്കുക.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "ഈ Send സ്ഥിരസ്ഥിതിയായി മറച്ചിരിക്കുന്നു. ചുവടെയുള്ള ബട്ടൺ ഉപയോഗിച്ചാൽ നിങ്ങൾക്ക് അതിന്റെ ദൃശ്യപരത ടോഗിൾ ചെയ്യാൻ കഴിയും.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "ഫയൽ ഡൗൺലോഡുചെയ്യുക" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "പ്രദർശിപ്പിക്കാൻ Send-കളൊന്നുമില്ല.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Emergency Access" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "അക്സസ്സ് അഭ്യർത്ഥിക്കുക" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approve" + }, + "reject": { + "message": "നിരസിക്കുക" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "വ്യക്തിഗത ഉടമസ്ഥാവകാശം" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Disable Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "കണക്കാക്കിയ നികുതി" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "അനുമതികൾ" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "റിപ്പോർട്ടുകൾ അക്സസ്സ് ചെയ്യുക" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "എല്ലാ കളക്ഷനുകളും നിയത്രിക്കുക" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "ഗ്രൂപ്പുകൾ നിയന്ത്രിക്കുക" + }, + "managePolicies": { + "message": "നയങ്ങൾ നിയന്ത്രിക്കുക" + }, + "manageSso": { + "message": "SSO നിയന്ത്രിക്കുക" + }, + "manageUsers": { + "message": "ഉപയോക്താക്കളെ നിയന്ത്രിക്കുക" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organization users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Learn more about", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Learn more", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "try it now", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "sign up", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "to try it today.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organization policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organization administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/nb/messages.json b/apps/web/src/locales/nb/messages.json new file mode 100644 index 0000000000..cd1319d2be --- /dev/null +++ b/apps/web/src/locales/nb/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ netthvelv", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Hvilken type gjenstand er dette?" + }, + "name": { + "message": "Navn" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Ny URI" + }, + "username": { + "message": "Brukernavn" + }, + "password": { + "message": "Passord" + }, + "newPassword": { + "message": "Nytt passord" + }, + "passphrase": { + "message": "Passfrase" + }, + "notes": { + "message": "Notater" + }, + "customFields": { + "message": "Tilpassede felter" + }, + "cardholderName": { + "message": "Kortholderens navn" + }, + "number": { + "message": "Nummer" + }, + "brand": { + "message": "Merke" + }, + "expiration": { + "message": "Utløp" + }, + "securityCode": { + "message": "Sikkerhetskode (CVV)" + }, + "identityName": { + "message": "Identitetsnavn" + }, + "company": { + "message": "Firma" + }, + "ssn": { + "message": "Nummer for sosial stønad" + }, + "passportNumber": { + "message": "Pass-nummer" + }, + "licenseNumber": { + "message": "Lisens-/førerkort-nummer" + }, + "email": { + "message": "E-post" + }, + "phone": { + "message": "Telefon" + }, + "january": { + "message": "Januar" + }, + "february": { + "message": "Februar" + }, + "march": { + "message": "Mars" + }, + "april": { + "message": "April" + }, + "may": { + "message": "Mai" + }, + "june": { + "message": "Juni" + }, + "july": { + "message": "Juli" + }, + "august": { + "message": "August" + }, + "september": { + "message": "September" + }, + "october": { + "message": "Oktober" + }, + "november": { + "message": "November" + }, + "december": { + "message": "Desember" + }, + "title": { + "message": "Tittel" + }, + "mr": { + "message": "Herr" + }, + "mrs": { + "message": "Fru" + }, + "ms": { + "message": "Frøken" + }, + "dr": { + "message": "Dr․" + }, + "expirationMonth": { + "message": "Utløpsmåned" + }, + "expirationYear": { + "message": "Utløpsår" + }, + "authenticatorKeyTotp": { + "message": "Autentiseringsnøkkel (TOTP)" + }, + "folder": { + "message": "Mappe" + }, + "newCustomField": { + "message": "Nytt egendefinert felt" + }, + "value": { + "message": "Verdi" + }, + "dragToSort": { + "message": "Dra for å sortere" + }, + "cfTypeText": { + "message": "Tekst" + }, + "cfTypeHidden": { + "message": "Skjult" + }, + "cfTypeBoolean": { + "message": "Boolsk verdi" + }, + "cfTypeLinked": { + "message": "Tilknyttet", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Fjern" + }, + "unassigned": { + "message": "Utilegnet" + }, + "noneFolder": { + "message": "Ingen mappe", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Legg til en mappe" + }, + "editFolder": { + "message": "Rediger mappen" + }, + "baseDomain": { + "message": "Grunndomene", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domene", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Vert", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Nøyaktig" + }, + "startsWith": { + "message": "Starter med" + }, + "regEx": { + "message": "Regulært uttrykk", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Samsvar-gjenkjenning", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Standard match-gjenkjenning", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Aldri" + }, + "toggleVisibility": { + "message": "Juster synlighet" + }, + "toggleCollapse": { + "message": "Bytt mellom skjul/utvid", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generer et passord" + }, + "checkPassword": { + "message": "Sjekk om passordet har blitt utsatt." + }, + "passwordExposed": { + "message": "Dette passordet har blitt utsatt $VALUE$ gang(er) i et databrudd. Du burde endre det.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Dette passordet ble ikke funnet i noen kjente databrudd. Det burde være trygt å bruke." + }, + "save": { + "message": "Lagre" + }, + "cancel": { + "message": "Avbryt" + }, + "canceled": { + "message": "Avbrutt" + }, + "close": { + "message": "Lukk" + }, + "delete": { + "message": "Slett" + }, + "favorite": { + "message": "Gi favorittstempel" + }, + "unfavorite": { + "message": "Fjern favorittstempel" + }, + "edit": { + "message": "Rediger" + }, + "searchCollection": { + "message": "Søk i samling" + }, + "searchFolder": { + "message": "Søk i mappe" + }, + "searchFavorites": { + "message": "Søk i favoritter" + }, + "searchType": { + "message": "Søk i type", + "description": "Search item type" + }, + "searchVault": { + "message": "Søk i hvelvet" + }, + "allItems": { + "message": "Alle gjenstander" + }, + "favorites": { + "message": "Favoritter" + }, + "types": { + "message": "Typer" + }, + "typeLogin": { + "message": "Innlogging" + }, + "typeCard": { + "message": "Kort" + }, + "typeIdentity": { + "message": "Identitet" + }, + "typeSecureNote": { + "message": "Sikker notis" + }, + "typeLoginPlural": { + "message": "Innlogginger" + }, + "typeCardPlural": { + "message": "Kort" + }, + "typeIdentityPlural": { + "message": "Identiteter" + }, + "typeSecureNotePlural": { + "message": "Sikre notater" + }, + "folders": { + "message": "Mapper" + }, + "collections": { + "message": "Samlinger" + }, + "firstName": { + "message": "Fornavn" + }, + "middleName": { + "message": "Mellomnavn" + }, + "lastName": { + "message": "Etternavn" + }, + "fullName": { + "message": "Fullt navn" + }, + "address1": { + "message": "Adresse 1" + }, + "address2": { + "message": "Adresse 2" + }, + "address3": { + "message": "Adresse 3" + }, + "cityTown": { + "message": "By / Tettsted" + }, + "stateProvince": { + "message": "Fylke / Region" + }, + "zipPostalCode": { + "message": "Postnummer" + }, + "country": { + "message": "Land" + }, + "shared": { + "message": "Delt" + }, + "attachments": { + "message": "Vedlegg" + }, + "select": { + "message": "Velg" + }, + "addItem": { + "message": "Legg til en gjenstand" + }, + "editItem": { + "message": "Rediger gjenstanden" + }, + "viewItem": { + "message": "Vis objektet" + }, + "ex": { + "message": "f.eks.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Annet" + }, + "share": { + "message": "Del" + }, + "moveToOrganization": { + "message": "Flytt til organisasjon" + }, + "valueCopied": { + "message": "$VALUE$ har blitt kopiert", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Kopier verdien", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Kopier passordet", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Kopier brukernavnet", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Kopier nummeret", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Kopier sikkerhetskoden", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Kopier URIen", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Mitt hvelv" + }, + "vault": { + "message": "Hvelv" + }, + "moveSelectedToOrg": { + "message": "Flytt valgte til organisasjon" + }, + "deleteSelected": { + "message": "Slett de valgte" + }, + "moveSelected": { + "message": "Flytt de valgte" + }, + "selectAll": { + "message": "Velg alt" + }, + "unselectAll": { + "message": "Avvelg alt" + }, + "launch": { + "message": "Åpne" + }, + "newAttachment": { + "message": "Legg til et nytt vedlegg" + }, + "deletedAttachment": { + "message": "Slettet vedlegget" + }, + "deleteAttachmentConfirmation": { + "message": "Er du sikker på at du vil slette dette vedlegget?" + }, + "attachmentSaved": { + "message": "Vedlegget har blitt lagret." + }, + "file": { + "message": "Fil" + }, + "selectFile": { + "message": "Velg en fil." + }, + "maxFileSize": { + "message": "Den maksimale filstørrelsen er 500 MB." + }, + "updateKey": { + "message": "Du kan ikke bruke denne funksjonen før du oppdaterer krypteringsnøkkelen din." + }, + "addedItem": { + "message": "La til gjenstanden" + }, + "editedItem": { + "message": "Redigerte gjenstanden" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ flyttet til $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Valgte elementer flyttet til $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Slett objektet" + }, + "deleteFolder": { + "message": "Slett mappen" + }, + "deleteAttachment": { + "message": "Slett vedlegget" + }, + "deleteItemConfirmation": { + "message": "Er du sikker på at du vil slette denne gjenstanden?" + }, + "deletedItem": { + "message": "Slettet objektet" + }, + "deletedItems": { + "message": "Slettet objektene" + }, + "movedItems": { + "message": "Flyttede gjenstander" + }, + "overwritePasswordConfirmation": { + "message": "Er du sikker på at du vil overskrive det nåværende passordet?" + }, + "editedFolder": { + "message": "Redigerte mappen" + }, + "addedFolder": { + "message": "La til en mappe" + }, + "deleteFolderConfirmation": { + "message": "Er du sikker på at du vil slette denne mappen?" + }, + "deletedFolder": { + "message": "Slettet mappen" + }, + "loggedOut": { + "message": "Logget av" + }, + "loginExpired": { + "message": "Din innloggingsøkt har utløpt." + }, + "logOutConfirmation": { + "message": "Er du sikker på at du vil logge av?" + }, + "logOut": { + "message": "Logg av" + }, + "ok": { + "message": "OK" + }, + "yes": { + "message": "Ja" + }, + "no": { + "message": "Nei" + }, + "loginOrCreateNewAccount": { + "message": "Logg på eller opprett en ny konto for å få tilgang til ditt sikre hvelv." + }, + "createAccount": { + "message": "Opprett en konto" + }, + "logIn": { + "message": "Logg på" + }, + "submit": { + "message": "Send inn" + }, + "emailAddressDesc": { + "message": "Du skal bruke E-postadressen din til å logge på." + }, + "yourName": { + "message": "Ditt navn" + }, + "yourNameDesc": { + "message": "Hva burde vi kalle deg?" + }, + "masterPass": { + "message": "Hovedpassord" + }, + "masterPassDesc": { + "message": "Superpassordet er passordet du bruker for å få tilgang til hvelvet ditt. Det er veldig viktig at du aldri glemmer ditt superpassord. Det er ingen måter å få tilbake passordet på dersom du noensinne skulle klare å glemme det." + }, + "masterPassHintDesc": { + "message": "Et hint for superpassordet kan hjelpe deg med å huske på passordet dersom du skulle glemme det." + }, + "reTypeMasterPass": { + "message": "Skriv inn hovedpassordet på nytt" + }, + "masterPassHint": { + "message": "Et hint for hovedpassordet (valgfritt)" + }, + "masterPassHintLabel": { + "message": "Hint til hovedpassordet" + }, + "settings": { + "message": "Innstillinger" + }, + "passwordHint": { + "message": "Passordhint" + }, + "enterEmailToGetHint": { + "message": "Skriv inn din kontos E-postadresse for å motta hintet til ditt superpassord." + }, + "getMasterPasswordHint": { + "message": "Få et hint om superpassordet" + }, + "emailRequired": { + "message": "E-postadressen er påkrevd." + }, + "invalidEmail": { + "message": "Ugyldig E-postadresse." + }, + "masterPassRequired": { + "message": "Superpassordet er påkrevd." + }, + "masterPassLength": { + "message": "Superpassordet må være ≥8 tegn langt." + }, + "masterPassDoesntMatch": { + "message": "Superpassord-bekreftelsen er ikke samsvarende." + }, + "newAccountCreated": { + "message": "Din nye konto har blitt opprettet! Du kan nå logge på." + }, + "masterPassSent": { + "message": "Vi har sendt deg en E-post med hintet til superpassordet." + }, + "unexpectedError": { + "message": "En uventet feil har oppstått." + }, + "emailAddress": { + "message": "E-postadresse" + }, + "yourVaultIsLocked": { + "message": "Hvelvet ditt er låst. Kontroller superpassordet ditt for å fortsette." + }, + "unlock": { + "message": "Lås opp" + }, + "loggedInAsEmailOn": { + "message": "Logget inn som $EMAIL$ på $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Ugyldig superpassord" + }, + "lockNow": { + "message": "Lås nå" + }, + "noItemsInList": { + "message": "Det er ingen gjenstander å liste opp." + }, + "noCollectionsInList": { + "message": "Det er ingen samlinger å liste opp." + }, + "noGroupsInList": { + "message": "Det er ingen grupper å liste opp." + }, + "noUsersInList": { + "message": "Det er ingen brukere å liste opp." + }, + "noEventsInList": { + "message": "Det er ingen hendelser å liste opp." + }, + "newOrganization": { + "message": "Ny organisasjon" + }, + "noOrganizationsList": { + "message": "Du tilhører ikke noen organisasjoner. Organisasjoner gjør det mulig for deg å trygt dele objekter med andre brukere." + }, + "versionNumber": { + "message": "Versjon $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Skriv inn den 6-sifrede verifiseringskoden som står på din autentiseringsapp." + }, + "enterVerificationCodeEmail": { + "message": "Skriv inn den 6-sifrede verifiseringskoden som ble sendt til $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "En verifiserings-E-post har blitt sendt til $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Husk på meg" + }, + "sendVerificationCodeEmailAgain": { + "message": "Send E-posten med verifiseringskoden på nytt" + }, + "useAnotherTwoStepMethod": { + "message": "Bruk en annen 2-trinnsinnloggingsmetode" + }, + "insertYubiKey": { + "message": "Sett inn din YubiKey i din datamaskins USB-uttak, og så trykk på dens knapp." + }, + "insertU2f": { + "message": "Sett din sikkerhetsnøkkel inn i din datamaskins USB-uttak. Dersom den har en knapp, trykk på den." + }, + "loginUnavailable": { + "message": "Innloggingen er utilgjengelig" + }, + "noTwoStepProviders": { + "message": "Denne kontoen har 2-trinnsinnlogging aktivert, men ingen av de oppsatte 2-trinnsleverandørene er støttet av denne nettleseren." + }, + "noTwoStepProviders2": { + "message": "Vennligst bruk en støttet nettleser (f.eks. Chrome) og/eller legg til flere leverandører som er bedre støttet mellom flere nettlesere (slik som en autentiseringsapp)." + }, + "twoStepOptions": { + "message": "2-trinnsinnloggingsalternativer" + }, + "recoveryCodeDesc": { + "message": "Har du mistet tilgang til alle dine 2-trinnsleverandører? Bruk din gjenopprettingskode til å fjerne alle 2-trinnsleverandører fra din konto." + }, + "recoveryCodeTitle": { + "message": "Gjenopprettingskode" + }, + "authenticatorAppTitle": { + "message": "Autentiseringsapp" + }, + "authenticatorAppDesc": { + "message": "Bruk en autentiseringsapp (f․eks․ Authy eller Google Authenticator) for å generere tidsbegrensede verifiseringskoder.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP-sikkerhetsnøkkel" + }, + "yubiKeyDesc": { + "message": "Bruk en YubiKey for å få tilgang til kontoen din. Virker med enheter av typene YubiKey 4, 4 Nano, 4C, og NEO." + }, + "duoDesc": { + "message": "Verifiser med Duo Security gjennom Duo Mobile-appen, SMS, telefonsamtale, eller en U2F-sikkerhetsnøkkel.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verifiser med Duo Security for din organisasjon gjennom Duo Mobile-appen, SMS, telefonsamtale, eller en U2F-sikkerhetsnøkkel.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Bruk enhver FIDO U2F-aktivert sikkerhetsnøkkel til å få tilgang til kontoen din." + }, + "u2fTitle": { + "message": "FIDO U2F-sikkerhetsnøkkel" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Bruk en hvilken som helst WebAuthn aktivert sikkerhetsnøkkel til å få tilgang til kontoen din." + }, + "webAuthnMigrated": { + "message": "(Migrert fra FIDO)" + }, + "emailTitle": { + "message": "E-post" + }, + "emailDesc": { + "message": "Verifiseringskoder vil bli sendt til deg med E-post." + }, + "continue": { + "message": "Fortsett" + }, + "organization": { + "message": "Organisasjon" + }, + "organizations": { + "message": "Organisasjoner" + }, + "moveToOrgDesc": { + "message": "Velg en organisasjon som du ønsker å flytte denne gjenstanden til. Flytting til en organisasjon overfører eierskap til den aktuelle organisasjonen. Du vil ikke lenger være den direkte eieren av denne varen når den er flyttet." + }, + "moveManyToOrgDesc": { + "message": "Velg en organisasjon som du ønsker å flytte denne gjenstanden til. Flytting til en organisasjon overfører eierskap til den aktuelle organisasjonen. Du vil ikke lenger være den direkte eieren av denne varen når den er flyttet." + }, + "collectionsDesc": { + "message": "Rediger samlingene som dette objektet blir delt med. Kun organisasjonsbrukere med tilgang til disse samlingene vil kunne se dette objektet." + }, + "deleteSelectedItemsDesc": { + "message": "Du har valgt $COUNT$ gjenstand(er) som skal slettes. Er du sikker på du vil slette alle disse gjenstandene?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Velg en mappe som du ønsker å flytte $COUNT$ valgt(e) gjenstand(er) til.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Du har valgt $COUNT$ gjenstand(er). $MOVEABLE_COUNT$ gjenstand(er) kan flyttes til en organisasjon, $NONMOVEABLE_COUNT$ kan ikke.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Verifiseringskode (TOTP)" + }, + "copyVerificationCode": { + "message": "Kopier verifiseringskoden" + }, + "warning": { + "message": "Advarsel" + }, + "confirmVaultExport": { + "message": "Bekreft eksport av hvelvet" + }, + "exportWarningDesc": { + "message": "Eksporten inneholder dine hvelvdata i ukryptert format. Du bør ikke lagre eller sende den eksporterte filen over usikre tjenester (som e-post). Slett filen umiddelbart etter at du er ferdig med å bruke den." + }, + "encExportKeyWarningDesc": { + "message": "Denne eksporteringen krypterer dataene dine ved hjelp av din kontos krypteringsnøkkel. Hvis du noen gang endrer krypteringsnøkkelen til kontoen din, bør du eksportere dataene igjen, ettersom du da ikke vil kunne dekryptere denne eksportfilen." + }, + "encExportAccountWarningDesc": { + "message": "Kontokrypteringsnøkler er unike for hver Bitwarden sin brukerkonto, og du kan ikke importere en kryptert eksport til en annen konto." + }, + "export": { + "message": "Eksporter" + }, + "exportVault": { + "message": "Eksporter hvelvet" + }, + "fileFormat": { + "message": "Filformat" + }, + "exportSuccess": { + "message": "Ditt hvelvs data har blitt eksportert." + }, + "passwordGenerator": { + "message": "Passordgenerator" + }, + "minComplexityScore": { + "message": "Minimum kompleksitetscore" + }, + "minNumbers": { + "message": "Minste antall sifre" + }, + "minSpecial": { + "message": "Minste antall spesialtegn", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Unngå tvetydige tegn" + }, + "regeneratePassword": { + "message": "Regenerer passord" + }, + "length": { + "message": "Lengde" + }, + "numWords": { + "message": "Antall ord" + }, + "wordSeparator": { + "message": "Orddeler" + }, + "capitalize": { + "message": "Stor forbokstav", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Inkluder siffer" + }, + "passwordHistory": { + "message": "Passordhistorikk" + }, + "noPasswordsInList": { + "message": "Det er ingen passord å liste opp." + }, + "clear": { + "message": "Tøm", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Konto oppdatert" + }, + "changeEmail": { + "message": "Endre e-postadresse" + }, + "changeEmailTwoFactorWarning": { + "message": "Om du fortsetter vil du endre e-postadressen til kontoen din. Det vil ikke endre e-postadressen som brukes ved to-faktorinnlogging. Du kan endre denne e-postadressen i to-trinns innloggingsinnstillinger." + }, + "newEmail": { + "message": "Ny e-postadresse" + }, + "code": { + "message": "Kode" + }, + "changeEmailDesc": { + "message": "Vi har sendt en E-post med en verifiseringskode til $EMAIL$. Vennligst se etter koden i E-postinnboksen din, og skriv den inn nedenfor for å endeliggjøre din E-postadresseendring.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Å fortsette vil logge deg ut av din nåværende økt, og krever at du logger deg på igjen. Aktive økter på andre enheter kan forbli aktive i opptil en time." + }, + "emailChanged": { + "message": "E-postadressen endret" + }, + "logBackIn": { + "message": "Vennligst logg på igjen." + }, + "logBackInOthersToo": { + "message": "Vennligst logg inn på nytt. Dersom du bruker andre Bitwarden-applikasjoner logg av og på på dem også." + }, + "changeMasterPassword": { + "message": "Endre hovedpassordet" + }, + "masterPasswordChanged": { + "message": "Hovedpassordet er endret" + }, + "currentMasterPass": { + "message": "Det nåværende hovedpassordet" + }, + "newMasterPass": { + "message": "Nytt hovedpassord" + }, + "confirmNewMasterPass": { + "message": "Bekreft det nye hovedpassordet" + }, + "encKeySettings": { + "message": "Innstillinger for krypteringsnøkkel" + }, + "kdfAlgorithm": { + "message": "KDF-algoritme" + }, + "kdfIterations": { + "message": "KDF-iterasjoner" + }, + "kdfIterationsDesc": { + "message": "Flere KDF-gjentakelser kan hjelpe til med å beskytte superpassordet fra å bli tvunget inn i av en angriper. Vi anbefaler en verdi på $VALUE$ eller mer.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Å velge for mange KDF-gjentakelser kan føre til dårlig ytelse når du logger inn på (og låser opp) Bitwarden på enheter med tregere CPUer. Vi anbefaler at du øker verdien trinnvis, $INCREMENT$ om gangen, og å så teste det på alle dine enheter.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Endre KDF" + }, + "encKeySettingsChanged": { + "message": "Krypteringsnøkkelinnstillingene endret" + }, + "dangerZone": { + "message": "Faresone" + }, + "dangerZoneDesc": { + "message": "Vær forsiktig, disse handlingene kan ikke reverseres!" + }, + "deauthorizeSessions": { + "message": "Fjern autorisering av økter" + }, + "deauthorizeSessionsDesc": { + "message": "Er du bekymret for at kontoen din er pålogget på en annen enhet? Fortsett nedenfor for å fjerne autoriseringen til alle datamaskiner eller enheter som du tidligere har brukt. Dette sikkerhetstrinnet er anbefalt dersom du tidligere har brukt en offentlig datamaskin eller lagret passordet ditt ved et uhell på en enhet som ikke er din. Dette vil også fjerne alle tidligere huskede 2-trinnsinnloggingsøkter." + }, + "deauthorizeSessionsWarning": { + "message": "Å fortsette vil også logge deg av din nåværende økt, og gjør at du vil måtte logge på igjen. Du vil også bli bedt om 2-trinnsinnlogging igjen, dersom det er aktivert. Aktive økter på andre enheter kan kanskje forbli aktive i opptil en time." + }, + "sessionsDeauthorized": { + "message": "Fjernet autoriseringen fra alle økter" + }, + "purgeVault": { + "message": "Tøm hvelvet" + }, + "purgedOrganizationVault": { + "message": "Organisasjonens hvelv tømt." + }, + "vaultAccessedByProvider": { + "message": "Hvelv tilgjengelig av leverandør." + }, + "purgeVaultDesc": { + "message": "Fortsett nedenfor for å slette alle objektet og mapper i ditt hvelv. Objekter som tilhører en organisasjon som du deler med, vil ikke bli slettet." + }, + "purgeOrgVaultDesc": { + "message": "Fortsett nedenfor for å slette alle objektene i organisasjonens hvelv." + }, + "purgeVaultWarning": { + "message": "Å tømme hvelvet ditt er permanent. Det kan ikke bli angret på." + }, + "vaultPurged": { + "message": "Hvelvet ditt har blitt tømt." + }, + "deleteAccount": { + "message": "Slett kontoen din" + }, + "deleteAccountDesc": { + "message": "Fortsett nedenfor for å slette din konto og alle dens tilknyttede data." + }, + "deleteAccountWarning": { + "message": "Å slette kontoen din er permanent. Det kan ikke bli angret på." + }, + "accountDeleted": { + "message": "Kontoen er slettet" + }, + "accountDeletedDesc": { + "message": "Kontoen din har blitt avsluttet, og alle dens tilkoblede data har blitt slettet." + }, + "myAccount": { + "message": "Min konto" + }, + "tools": { + "message": "Verktøy" + }, + "importData": { + "message": "Importer data" + }, + "importError": { + "message": "Importer feil" + }, + "importErrorDesc": { + "message": "Det oppstod et problem med dataene du prøvde å importere. Vennligst løs feilene listet nedenfor i kildefilen og prøv på nytt." + }, + "importSuccess": { + "message": "Dataene har blitt vellykket importert inn i hvelvet ditt." + }, + "importWarning": { + "message": "Du importerer data til $ORGANIZATION$. Dataene kan deles med medlemmer av denne organisasjonen. Vil du fortsette?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Dataene er ikke formattert riktig. Vennligst sjekk importfilen din og prøv igjen." + }, + "importNothingError": { + "message": "Ingenting ble importert." + }, + "importEncKeyError": { + "message": "Feil under dekryptering av den eksporterte filen. Krypteringsnøkkelen samsvarte ikke med krypteringsnøkkelen som ble brukt eksport av data." + }, + "selectFormat": { + "message": "Velg formatet til importfilen" + }, + "selectImportFile": { + "message": "Velg importfilen" + }, + "orCopyPasteFileContents": { + "message": "eller kopier og lim inn importfilens innhold" + }, + "instructionsFor": { + "message": "$NAME$-instrukser", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Alternativer" + }, + "optionsDesc": { + "message": "Tilpass din netthvelvopplevelse." + }, + "optionsUpdated": { + "message": "Innstillingene er oppdatert" + }, + "language": { + "message": "Språk" + }, + "languageDesc": { + "message": "Endre språket som brukes av netthvelvet." + }, + "disableIcons": { + "message": "Skru av nettstedsikoner" + }, + "disableIconsDesc": { + "message": "Nettstedsikoner sørger for et gjenkjennelig bilde ved siden av hvert innloggingsobjekt i hvelvet ditt." + }, + "enableGravatars": { + "message": "Skru på Gravatarer", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Bruk avatarbilder som har blitt lastet inn fra gravatar.com." + }, + "enableFullWidth": { + "message": "Aktiver fullbreddeoppsett", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Tillat netthvelvet å utvide til hele bredden i nettleservinduet." + }, + "default": { + "message": "Standard" + }, + "domainRules": { + "message": "Domeneregler" + }, + "domainRulesDesc": { + "message": "Hvis du har den samme innloggingen på flere forskjellige nettstedsdomene, kan du merke nettstedet som \"tilsvarende\". \"Forvalgte\" domener er de som har blitt forhåndsvalgt for deg av Bitwarden." + }, + "globalEqDomains": { + "message": "Standard samsvaringsdomener" + }, + "customEqDomains": { + "message": "Selvvalgte samsvaringsdomener" + }, + "exclude": { + "message": "Ekskluder" + }, + "include": { + "message": "Inkluder" + }, + "customize": { + "message": "Tilpass" + }, + "newCustomDomain": { + "message": "Nytt tilpasset domene" + }, + "newCustomDomainDesc": { + "message": "Skriv inn en liste over domener som er adskilt med kommaer. Bare grunndomener er tillatt. Ikke skriv inn underdomener. For eksempel, skriv inn \"google.no\" i stedet for \"www.google.no\". Du kan også skrive inn \"androidapp://pakkens.navn\" for å knytte en Android-app sammen med andre nettstedsdomener." + }, + "customDomainX": { + "message": "Tilpasset domene nr. $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domenene er oppdatert" + }, + "twoStepLogin": { + "message": "2-trinnsinnlogging" + }, + "twoStepLoginDesc": { + "message": "Sikre kontoen din ved å kreve et ekstra trinn når du logger på." + }, + "twoStepLoginOrganizationDesc": { + "message": "Krev 2-trinnsinnlogging for din organisasjons brukere, ved å sette opp leverandører på organisasjonsnivået." + }, + "twoStepLoginRecoveryWarning": { + "message": "Å skru på 2-trinnsinnlogging kan låse deg permanent ut av din Bitwarden-konto. En gjenopprettingskode gir deg tilgang til kontoen din i det tilfellet at du ikke lenger kan bruke din vanlige 2-trinnsinnloggingsleverandør (f.eks. at du mister enheten din). Bitwarden-kundestøtten vil ikke kunne hjelpe deg dersom du mister tilgang til kontoen din. Vi anbefaler at du skriver ned eller skriver ut gjenopprettingskoden og legger den på en trygg plass." + }, + "viewRecoveryCode": { + "message": "Vis gjenopprettingskode" + }, + "providers": { + "message": "Leverandører", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Aktiver" + }, + "enabled": { + "message": "Aktivert" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium-medlemskap" + }, + "premiumRequired": { + "message": "Premium er påkrevd" + }, + "premiumRequiredDesc": { + "message": "Et Premium-medlemskap er påkrevd for å bruke denne funksjonen." + }, + "youHavePremiumAccess": { + "message": "Du har Premium-tilgang" + }, + "alreadyPremiumFromOrg": { + "message": "Du har allerede tilgang til Premium-funksjoner takket være en organisasjon som du er medlem av." + }, + "manage": { + "message": "Behandle" + }, + "disable": { + "message": "Deaktiver" + }, + "twoStepLoginProviderEnabled": { + "message": "Denne 2-trinnsleverandøren er aktivert på din konto." + }, + "twoStepLoginAuthDesc": { + "message": "Skriv inn ditt superpassord for å endre på 2-trinnsinnloggingsinnstillingene." + }, + "twoStepAuthenticatorDesc": { + "message": "Følg disse trinnene for å sette opp 2-trinnsinnlogging med en autentiseringsapp:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Last ned en 2-trinnsinnloggingsapp" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Trenger du en 2-trinnsinnloggingsapp? Last ned en av de følgende" + }, + "iosDevices": { + "message": "iOS-enheter" + }, + "androidDevices": { + "message": "Android-enheter" + }, + "windowsDevices": { + "message": "Windows-enheter" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Disse appene er anbefalt, men andre autentiseringsapper vil også fungere." + }, + "twoStepAuthenticatorScanCode": { + "message": "Skann denne QR-koden med din autentiseringsapp" + }, + "key": { + "message": "Nøkkel" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Skriv inn den påfølgende 6-sifrede verifiseringskoden fra appen" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Dersom du trenger å legge den til til en annen enhet, er QR-koden (eller -nøkkelen) som kreves av din autentiseringsapp nedenfor." + }, + "twoStepDisableDesc": { + "message": "Er du sikker på at du vil skru av denne 2-trinnsinnloggingsleverandøren?" + }, + "twoStepDisabled": { + "message": "2-trinnsinnloggingsleverandøren har blitt skrudd av." + }, + "twoFactorYubikeyAdd": { + "message": "Legg til en ny YubiKey til din konto" + }, + "twoFactorYubikeyPlugIn": { + "message": "Sett YubiKey-en (fra NEO- eller 4-seriene) inn i din datamaskins USB-port." + }, + "twoFactorYubikeySelectKey": { + "message": "Velg det første tomme YubiKey-inndatafeltet nedenfor." + }, + "twoFactorYubikeyTouchButton": { + "message": "Trykk på YubiKey-ens knapp." + }, + "twoFactorYubikeySaveForm": { + "message": "Lagre skjemaet." + }, + "twoFactorYubikeyWarning": { + "message": "På grunn av plattformbegrensninger, kan YubiKey-er ikke bli brukt på alle Bitwarden-apper. Du burde skru på en annen 2-trinnsinnloggingsleverandør, sånn at du kan få tilgang til din konto når YubiKeys ikke kan bli brukt. Støttede plattformer:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Netthvelvet, datamaskinprogrammet, CLI, og alle nettleserutvidelser, på en enhet med en USB-port som støtter din YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobilapper på en enhet med NFC-funksjoner, eller som har en USB-port som støtter din YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F-nøkkel $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC-støtte" + }, + "twoFactorYubikeySupportsNfc": { + "message": "En av mine YubiKey-er støtter NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Dersom en av dine YubiKey-er støtter NFC (f.eks. en YubiKey NEO), vil du på mobilenheter bli bedt om det når enn NFC-støtte blir oppdaget." + }, + "yubikeysUpdated": { + "message": "YubiKey-ene har blitt oppdatert" + }, + "disableAllKeys": { + "message": "Deaktiver alle YubiKey-ene" + }, + "twoFactorDuoDesc": { + "message": "Skriv inn Bitwarden-appinformasjonen i ditt Duo Admin-panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integreringsnøkkel" + }, + "twoFactorDuoSecretKey": { + "message": "Hemmelig nøkkel" + }, + "twoFactorDuoApiHostname": { + "message": "API-vertsnavn" + }, + "twoFactorEmailDesc": { + "message": "Følg disse trinnene for å sette opp 2-trinnsinnlogging med E-post:" + }, + "twoFactorEmailEnterEmail": { + "message": "Skriv inn E-posten som du vil bruke til å motta verifiseringskoder" + }, + "twoFactorEmailEnterCode": { + "message": "Skriv inn den påfølgende 6-sifrede verifiseringskoden fra E-posten" + }, + "sendEmail": { + "message": "Send en E-post" + }, + "twoFactorU2fAdd": { + "message": "Legg til en FIDO U2F-sikkerhetsnøkkel til din konto" + }, + "removeU2fConfirmation": { + "message": "Er du sikker på at du vil fjerne denne sikkerhetsnøkkelen?" + }, + "twoFactorWebAuthnAdd": { + "message": "Legg til en WebAuthn sikkerhetsnøkkel til kontoen din" + }, + "readKey": { + "message": "Les nøkkel" + }, + "keyCompromised": { + "message": "Nøkkelen er kompromittert." + }, + "twoFactorU2fGiveName": { + "message": "Gi sikkerhetsnøkkelen et vennlig navn for å identifisere den." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Sett sikkerhetsnøkkelen inn i din datamaskins USB-port, og klikk på «Les nøkkel»-knappen." + }, + "twoFactorU2fTouchButton": { + "message": "Dersom sikkerhetsnøkkelen har en knapp, trykk på den." + }, + "twoFactorU2fSaveForm": { + "message": "Lagre skjemaet." + }, + "twoFactorU2fWarning": { + "message": "På grunn av plattformbegrensninger, kan FIDO U2F ikke bli brukt på alle Bitwarden-apper. Du burde skru på en annen 2-trinnsinnloggingsleverandør, sånn at du kan få tilgang til din konto når FIDO U2F ikke kan bli brukt. Støttede plattformer:" + }, + "twoFactorU2fSupportWeb": { + "message": "Netthvelv og nettleserutvidelser, på en datamaskin med en U2F-støttende nettleser (Chrome, Opera, Vivaldi, eller Firefox med FIDO U2F aktivert)." + }, + "twoFactorU2fWaiting": { + "message": "Venter på at du skal trykke på knappen på din sikkerhetsnøkkel" + }, + "twoFactorU2fClickSave": { + "message": "Klikk på «Lagre»-knappen nedenfor for å aktivere denne sikkerhetsnøkkelen for 2-trinnsinnlogging." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Det oppsto et problem med å lese sikkerhetsnøkkelen. Prøv igjen." + }, + "twoFactorWebAuthnWarning": { + "message": "På grunn av plattformbegrensninger, kan ikke WebAuthn brukes på alle Bitwarden-apper. Du bør aktivere en annen 2-trinnsinnloggingsleverandør, slik at du kan få tilgang til kontoen din når WebAuthn ikke kan brukes. Støttede plattformer:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Netthvelv og nettleserutvidelser, på en datamaskin med en WebAuthn støttende nettleser (Chrome, Opera, Vivaldi, eller Firefox med FIDO U2F aktivert)." + }, + "twoFactorRecoveryYourCode": { + "message": "Din 2-trinnsinnloggingsgjenopprettingskode for Bitwarden" + }, + "twoFactorRecoveryNoCode": { + "message": "Du har ikke aktivert noen 2-trinnsinnloggingsleverandører ennå. Etter at du har aktivert en 2-trinnsinnloggingsleverandør, kan du komme tilbake hit for å se din gjenopprettingskode." + }, + "printCode": { + "message": "Skriv ut koden", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Rapporter" + }, + "reportsDesc": { + "message": "Identifiser og løs sikkerhetsavvik i kontoene dine på nettet ved å klikke på rapportene nedenfor." + }, + "unsecuredWebsitesReport": { + "message": "Rapport om usikrede nettsteder" + }, + "unsecuredWebsitesReportDesc": { + "message": "Å bruke usikrede nettsteder som benytter http://, kan være farlig. Dersom nettstedet tillater det, burde du alltid besøke det gjennom https://, slik at tilkoblingen din er kryptert." + }, + "unsecuredWebsitesFound": { + "message": "Usikrede nettsteder ble funnet" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Vi fant $COUNT$ elementer i hvelvet ditt som benytter usikrede URIer. Du burde endre deres URI til å benytte https://, dersom det nettstedet tillater det.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Ingen gjenstander i hvelvet ditt har usikrede URI-er." + }, + "inactive2faReport": { + "message": "Rapport om 2FA-nettsteder" + }, + "inactive2faReportDesc": { + "message": "2-trinnsinnlogging (2FA) er en viktig sikkerhetsinnstilling som hjelper til med å sikre kontoene dine. Dersom det nettstedet tillater det, burde du alltid skru på 2-trinnsinnlogging." + }, + "inactive2faFound": { + "message": "Pålogginger som støtter 2FA ble funnet" + }, + "inactive2faFoundDesc": { + "message": "Vi fant $COUNT$ nettsted(er) i hvelvet ditt som kanskje eller kanskje ikke er satt opp for 2-trinnsinnlogging (i følge twofactorauth.org). For å beskytte disse kontoene ytterligere, burde du skru på 2-trinnsinnlogging.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Ingen nettsteder som støtter 2-trinnsinnlogging i følge twofactorauth.org ble funnet i hvelvet ditt." + }, + "instructions": { + "message": "Instruksjoner" + }, + "exposedPasswordsReport": { + "message": "Rapport om eksponerte passord" + }, + "exposedPasswordsReportDesc": { + "message": "Eksponerte passord er passord som har blitt oppdaget i kjente databrudd som har blitt offentliggjort eller solgt på det mørke nettet av hackere." + }, + "exposedPasswordsFound": { + "message": "Eksponerte passord ble funnet" + }, + "exposedPasswordsFoundDesc": { + "message": "Vi fant $COUNT$ gjenstander i hvelvet ditt som har passord som er eksponert i kjente databrudd. Du burde endre passordene deres til noe nytt.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Ingen elementer i hvelvet ditt har passord som har vært eksponert i kjente databrudd." + }, + "checkExposedPasswords": { + "message": "Sjekk eksponerte passord" + }, + "exposedXTimes": { + "message": "Eksponert $COUNT$ gang(er)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Rapport om svake passord" + }, + "weakPasswordsReportDesc": { + "message": "Svake passord kan lett bli gjettet på av hackere og automatiserte verktøy som brukes til å knekke passord. Bitwarden sin passordgenerator kan hjelpe deg med å opprette sterke passord." + }, + "weakPasswordsFound": { + "message": "Svake passord ble funnet" + }, + "weakPasswordsFoundDesc": { + "message": "Vi fant $COUNT$ elementer i hvelvet ditt som har passord som ikke er sterke. Du burde endre dem slik at de har sterkere passord.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Ingen elementer i hvelvet ditt har svake passord." + }, + "reusedPasswordsReport": { + "message": "Rapport om gjenbrukte passord" + }, + "reusedPasswordsReportDesc": { + "message": "Dersom en tjeneste du bruker er kompromittert, kan det å benytte samme passord flere steder gjøre at hackere lett får tilgang til flere av nettkontoene dine. Du burde bruke et unikt passord for hver konto eller tjeneste." + }, + "reusedPasswordsFound": { + "message": "Gjenbrukte passord ble funnet" + }, + "reusedPasswordsFoundDesc": { + "message": "Vi fant $COUNT$ passord som blir gjenbrukt i hvelvet ditt. Du burde endre dem slik at de er unike.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Ingen innlogginger i hvelvet ditt har passord som blir gjenbrukt." + }, + "reusedXTimes": { + "message": "Gjenbrukt $COUNT$ ganger", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Databruddrapporter" + }, + "breachDesc": { + "message": "Kontoer som har blitt avslørt kan lekke personlig informasjon. Gjør kontoene tryggere ved å aktivere 2FA eller ved å lage et sterkere passord." + }, + "breachCheckUsernameEmail": { + "message": "Sjekk noen av brukernavnene eller E-postadressene som du bruker." + }, + "checkBreaches": { + "message": "Sjekk databrudd" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ ble ikke funnet i noen kjente databrudd.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Gode nyheter", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ ble funnet i $COUNT$ forskjellige databrudd på nettet.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Inntrengte kontoer ble funnet" + }, + "compromisedData": { + "message": "Kompromitterte data" + }, + "website": { + "message": "Nettsted" + }, + "affectedUsers": { + "message": "Påvirkede brukere" + }, + "breachOccurred": { + "message": "Databruddet hendte den" + }, + "breachReported": { + "message": "Databruddet ble meldt ifra om den" + }, + "reportError": { + "message": "En feil oppstod under forsøk på å laste inn rapporten. Prøv igjen." + }, + "billing": { + "message": "Fakturering" + }, + "accountCredit": { + "message": "Kontokreditt", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Saldo", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Legg til kreditt", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Beløp", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Lagt til kreditt vil vises på kontoen din etter at betalingen er fullstendig behandlet. Noen betalingsmetoder er forsinket og kan ta lengre tid å behandle enn andre." + }, + "makeSureEnoughCredit": { + "message": "Vær sikker på at kontoen din har nok kreditt tilgjengelig for dette kjøpet. Hvis kontoen din ikke har nok kreditt tilgjengelig, vil standard betalingsmåten din bli brukt til forskjellen. Du kan legge til kreditt på kontoen din på Faktureringssiden." + }, + "creditAppliedDesc": { + "message": "Kontoens kreditt kan brukes til kjøp. Eventuell tilgjengelig kreditt vil automatisk bli brukt mot fakturaer generert for denne kontoen." + }, + "goPremium": { + "message": "Oppgrader til Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Du har oppgradert til Premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Oppgrader kontoen din til et Premium-medlemsskap og lås opp noen strålende ekstra egenskaper." + }, + "premiumSignUpStorage": { + "message": "1 GB med kryptert fillagring." + }, + "premiumSignUpTwoStep": { + "message": "Ytterligere 2-trinnsinnloggingsmuligheter, slik som YubiKey, FIDO U2F, og Duo." + }, + "premiumSignUpEmergency": { + "message": "Nødtilgang" + }, + "premiumSignUpReports": { + "message": "Passordhygiene, kontohelse, og databruddsrapporter som holder hvelvet ditt trygt." + }, + "premiumSignUpTotp": { + "message": "TOTP-verifiseringskodegenerator (2FA) for innlogginger i ditt hvelv." + }, + "premiumSignUpSupport": { + "message": "Prioritert kundestøtte." + }, + "premiumSignUpFuture": { + "message": "Alle fremtidige Premium-egenskaper. Mere er planlagt snart!" + }, + "premiumPrice": { + "message": "Alt dette for bare $PRICE$/år!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Utvidelser" + }, + "premiumAccess": { + "message": "Premium-tilgang" + }, + "premiumAccessDesc": { + "message": "Du kan gi Premium-tilgang til alle brukere i din organisasjon for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Ytterligere lagringsplass (GB)" + }, + "additionalStorageGbDesc": { + "message": "Antall ekstra GB" + }, + "additionalStorageIntervalDesc": { + "message": "Din funksjonsplan kommer med $SIZE$ kryptert fillagring. Du kan legge til ytterligere lagring for $PRICE$ per GB per $INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Sammendrag" + }, + "total": { + "message": "Totalt" + }, + "year": { + "message": "år" + }, + "month": { + "message": "måned" + }, + "monthAbbr": { + "message": "må.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Din betalingsmetode vil bli trekt umiddelbart og deretter på en gjentakende basis hvert år. Du kan avbryte det til enhver tid." + }, + "paymentCharged": { + "message": "Betalingsmåten din belastes umiddelbart og deretter hver gang $INTERVAL$. Du kan kansellere når som helst.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Funksjonsplanen din kommer med en gratis 7-dagersprøveperiode. Din betalingsmetode vil ikke bli trekt før prøveperiode har utløpt. Regningstrekk vil skje på en gjentakende basis hver(t) $INTERVAL$. Du kan avbryte når som helst." + }, + "paymentInformation": { + "message": "Betalingsinformasjon" + }, + "billingInformation": { + "message": "Faktureringsdetaljer" + }, + "creditCard": { + "message": "Bankkort" + }, + "paypalClickSubmit": { + "message": "Klikk på PayPal-knappen for å logge på din PayPal-konto, og så klikk på «Send inn»-knappen nedenfor for å fortsette." + }, + "cancelSubscription": { + "message": "Avbryt abonnementet" + }, + "subscriptionCanceled": { + "message": "Abonnementet har blitt avbrutt." + }, + "pendingCancellation": { + "message": "Avventer planlagt avbrytelse" + }, + "subscriptionPendingCanceled": { + "message": "Abonnementet har blitt øremerket for avbrytelse etter den nåværende regningsperioden." + }, + "reinstateSubscription": { + "message": "Gjeninnfør abonnementet" + }, + "reinstateConfirmation": { + "message": "Er du sikker på at du vil fjerne den avventende avbrytelsesforespørselen og i stedet gjeninnføre abonnementet ditt?" + }, + "reinstated": { + "message": "Abonnementet har blitt gjeninnført." + }, + "cancelConfirmation": { + "message": "Er du sikker på at du vil avbryte? Du vil miste tilgang til alle funksjonene til dette abonnementet etter den inneværende regningsperioden." + }, + "canceledSubscription": { + "message": "Abonnementet har blitt avbrutt." + }, + "neverExpires": { + "message": "Utløper aldri" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Neste trekk" + }, + "details": { + "message": "Detaljer" + }, + "downloadLicense": { + "message": "Last ned lisens" + }, + "updateLicense": { + "message": "Oppdater lisens" + }, + "updatedLicense": { + "message": "Oppdaterte lisensen" + }, + "manageSubscription": { + "message": "Behandle abonnementet" + }, + "storage": { + "message": "Lagring" + }, + "addStorage": { + "message": "Legg til lagring" + }, + "removeStorage": { + "message": "Fjern lagring" + }, + "subscriptionStorage": { + "message": "Ditt abonnement har totalt $MAX_STORAGE$GB med kryptert fillagring til rådighet. Du bruker for øyeblikket $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Betalingsmetode" + }, + "noPaymentMethod": { + "message": "Ingen lagrede betalingsmetoder." + }, + "addPaymentMethod": { + "message": "Legg til betalingsmetode" + }, + "changePaymentMethod": { + "message": "Endre betalingsmetoden" + }, + "invoices": { + "message": "Fakturaer" + }, + "noInvoices": { + "message": "Ingen fakturaer." + }, + "paid": { + "message": "Betalt", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Ikke betalt", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transaksjoner", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Ingen transaksjoner." + }, + "chargeNoun": { + "message": "Trekk", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Refusjon", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Ethvert trekk vil dukke opp i bankkontooppsummeringen din som $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "Antall GB lagring som skal legges til" + }, + "gbStorageRemove": { + "message": "Antall GB lagring som skal fjernes" + }, + "storageAddNote": { + "message": "Å legge til lagring vil føre til justeringer i dine regningssummer og vil umiddelbart trekke fra den lagrede betalingsmetoden din. Det første trekket vil bli fordelt utover resten av den nåværende regningsperioden." + }, + "storageRemoveNote": { + "message": "Å fjerne lagring vil føre til justeringer i dine regningssummer som vil bli fordelt som kreditt opp mot ditt neste regningstrekk." + }, + "adjustedStorage": { + "message": "Justerte $AMOUNT$GB med lagring.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Ta kontakt med kundestøtte" + }, + "updatedPaymentMethod": { + "message": "Oppdaterte betalingsmetoden." + }, + "purchasePremium": { + "message": "Kjøp Premium" + }, + "licenseFile": { + "message": "Lisensfil" + }, + "licenseFileDesc": { + "message": "Lisensfilen din vil være navngitt noe i retning $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "For å oppgradere kontoen din til et Premium-medlemsskap, vil du måtte laste opp en gyldig lisensfil." + }, + "uploadLicenseFileOrg": { + "message": "For å opprette en lokalt betjent organisasjon, vil måtte laste opp en gyldig lisensfil." + }, + "accountEmailMustBeVerified": { + "message": "Din kontos E-postadresse må bli verifisert." + }, + "newOrganizationDesc": { + "message": "Organisasjoner gjør at du kan dele deler av hvelvet ditt med andre, i tillegg til å behandle relaterte brukere for en spesifikk enhet, f.eks. en familie, et lite lag, eller et stort firma." + }, + "generalInformation": { + "message": "Generell informasjon" + }, + "organizationName": { + "message": "Organisasjonens navn" + }, + "accountOwnedBusiness": { + "message": "Denne kontoen er eid av et firma." + }, + "billingEmail": { + "message": "E-post for fakturering" + }, + "businessName": { + "message": "Firmaets navn" + }, + "chooseYourPlan": { + "message": "Velg din funksjonsplan" + }, + "users": { + "message": "Brukere" + }, + "userSeats": { + "message": "Brukerseter" + }, + "additionalUserSeats": { + "message": "Ekstra brukerseter" + }, + "userSeatsDesc": { + "message": "Antall brukerseter" + }, + "userSeatsAdditionalDesc": { + "message": "Planen din kommer $BASE_SEATS$ brukerseter. Du kan legge til ekstra brukere for $SEAT_PRICE$ per bruker per måned.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Hvor mange brukerseter behøver du? Du kan også legge til ekstra seter senere dersom det skulle bli nødvendig." + }, + "planNameFree": { + "message": "Gratis", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing eller personlige brukere til å dele med $COUNT$ annen bruker(e).", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Familier" + }, + "planDescFamilies": { + "message": "For personlig bruk, til å dele med familie og venner." + }, + "planNameTeams": { + "message": "Lag (Teams)" + }, + "planDescTeams": { + "message": "For firmaer og andre lagorganisasjoner." + }, + "planNameEnterprise": { + "message": "Bedrift" + }, + "planDescEnterprise": { + "message": "For firmaer og andre store organisjoner." + }, + "freeForever": { + "message": "Gratis for alltid" + }, + "includesXUsers": { + "message": "inkluderer $COUNT$ brukere", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Ekstra brukere" + }, + "costPerUser": { + "message": "$COST$ per bruker", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Begrenset til $COUNT$ brukere (inkludert deg)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Begrenset til $COUNT$ samlinger", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Legg til og del med opptil $COUNT$ brukere", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Legg til og del med et ubegrenset antall brukere" + }, + "createUnlimitedCollections": { + "message": "Lag ubegrenset med samlinger" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ kryptert fillagring", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Lokal betjening (valgfritt)" + }, + "usersGetPremium": { + "message": "Brukerne får tilgang til Premium-medlemskapsfunksjoner" + }, + "controlAccessWithGroups": { + "message": "Kontroller brukertilgang med grupper" + }, + "syncUsersFromDirectory": { + "message": "Synkroniser dine brukere og grupper fra en mappe" + }, + "trackAuditLogs": { + "message": "Spor brukerhandlinger med undersøkingslogger" + }, + "enforce2faDuo": { + "message": "Krev 2FA med Duo" + }, + "priorityCustomerSupport": { + "message": "Prioritert kundestøtte" + }, + "xDayFreeTrial": { + "message": "$COUNT$-dagers gratis prøveperiode, avbryt når som helst", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Månedlig" + }, + "annually": { + "message": "Årlig" + }, + "basePrice": { + "message": "Grunnpris" + }, + "organizationCreated": { + "message": "Organisasjonen ble opprettet" + }, + "organizationReadyToGo": { + "message": "Din nye organisasjon er klar til å begynne!" + }, + "organizationUpgraded": { + "message": "Din organisasjon har blitt oppgradert." + }, + "leave": { + "message": "Forlat" + }, + "leaveOrganizationConfirmation": { + "message": "Er du sikker på at du vil forlate denne organisasjonen?" + }, + "leftOrganization": { + "message": "Du har forlatt organisasjonen." + }, + "defaultCollection": { + "message": "Standardsamling" + }, + "getHelp": { + "message": "Få hjelp" + }, + "getApps": { + "message": "Hent appene" + }, + "loggedInAs": { + "message": "Pålogget som" + }, + "eventLogs": { + "message": "Hendelsesloggbøker" + }, + "people": { + "message": "Personer" + }, + "policies": { + "message": "Vilkår" + }, + "singleSignOn": { + "message": "Enkelt pålogging" + }, + "editPolicy": { + "message": "Endre vilkår" + }, + "groups": { + "message": "Grupper" + }, + "newGroup": { + "message": "Ny gruppe" + }, + "addGroup": { + "message": "Legg til gruppe" + }, + "editGroup": { + "message": "Rediger gruppe" + }, + "deleteGroupConfirmation": { + "message": "Er du sikker på at du vil slette denne gruppen?" + }, + "removeUserConfirmation": { + "message": "Er du sikker på at du vil slette denne brukeren?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Advarsel! Denne brukeren krever nøkkelkobling for å administrere krypteringen. Fjerner du denne brukeren fra organisasjonen din vil deaktivere kontoen sin. Denne handlingen kan ikke angres. Vil du fortsette?" + }, + "externalId": { + "message": "Ekstern ID" + }, + "externalIdDesc": { + "message": "Den eksterne Id-en kan brukes som referanse eller for å koble denne ressursen til et eksternt system, for eksempel en brukerkatalog." + }, + "accessControl": { + "message": "Tilgangsstyring" + }, + "groupAccessAllItems": { + "message": "Denne gruppen kan få tilgang til og modifisere alle gjenstander." + }, + "groupAccessSelectedCollections": { + "message": "Denne gruppen har bare tilgang til de valgte samlingene." + }, + "readOnly": { + "message": "Skrivebeskyttet" + }, + "newCollection": { + "message": "Ny samling" + }, + "addCollection": { + "message": "Legg til samling" + }, + "editCollection": { + "message": "Rediger samling" + }, + "deleteCollectionConfirmation": { + "message": "Er du sikker på at du vil slette denne samlingen?" + }, + "editUser": { + "message": "Rediger bruker" + }, + "inviteUser": { + "message": "Inviter bruker" + }, + "inviteUserDesc": { + "message": "Inviter en ny bruker til din organisasjon ved å skrive inn E-postadressen til Bitwarden-kontoen deres nedenfor. Hvis de ikke allerede har en Bitwarden-konto, vil de bli forespurt om å lage en ny konto." + }, + "inviteMultipleEmailDesc": { + "message": "Du kan invitere opptil $COUNT$ brukere om gangen ved å komma-adskille en liste over E-postadresser.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Denne brukeren bruker 2-trinnsinnlogging til å beskytte kontoen sin." + }, + "userAccessAllItems": { + "message": "Denne brukeren kan få tilgang til og modifisere alle gjenstander." + }, + "userAccessSelectedCollections": { + "message": "Denne brukeren har bare tilgang til de valgte samlingene." + }, + "search": { + "message": "Søk" + }, + "invited": { + "message": "Invitert" + }, + "accepted": { + "message": "Godtatt" + }, + "confirmed": { + "message": "Bekreftet" + }, + "clientOwnerEmail": { + "message": "Klienteier e-post" + }, + "owner": { + "message": "Eier" + }, + "ownerDesc": { + "message": "Høyestetilgangsbrukeren som kan behandle alle aspekter av din organisasjon." + }, + "clientOwnerDesc": { + "message": "Denne brukeren bør være uavhengig av leverandøren. Hvis leverandøren er uavhengig av organisasjonen, vil denne brukeren opprettholde eierskap til organisasjonen." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Administratorer kan få tilgang til og behandle alle objekter, samlinger og brukere i din organisasjon." + }, + "user": { + "message": "Bruker" + }, + "userDesc": { + "message": "En vanlig bruker med tilgang til tilegnede samlinger i din organisasjon." + }, + "manager": { + "message": "Behandler" + }, + "managerDesc": { + "message": "Behandlere har tilgang til og kan behandle tilegnede samlinger i din organisasjon." + }, + "all": { + "message": "Alle" + }, + "refresh": { + "message": "Oppfrisk" + }, + "timestamp": { + "message": "Tidsstempel" + }, + "event": { + "message": "Hendelse" + }, + "unknown": { + "message": "Ukjent" + }, + "loadMore": { + "message": "Last inn mer" + }, + "mobile": { + "message": "Mobil", + "description": "Mobile app" + }, + "extension": { + "message": "Utvidelse", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Skrivebord", + "description": "Desktop app" + }, + "webVault": { + "message": "Netthvelv" + }, + "loggedIn": { + "message": "Pålogget." + }, + "changedPassword": { + "message": "Endret kontopassordet." + }, + "enabledUpdated2fa": { + "message": "Aktiverte/oppdaterte 2-trinnsinnloggingen." + }, + "disabled2fa": { + "message": "Skrudde av 2-trinnsinnlogging." + }, + "recovered2fa": { + "message": "Fikk tilgang til kontoen igjen med 2-trinnsinnlogging." + }, + "failedLogin": { + "message": "Innloggingsforsøket mislyktes grunnet feil passord." + }, + "failedLogin2fa": { + "message": "Innloggingsforsøket mislyktes grunnet feil 2-trinnsinnlogging." + }, + "exportedVault": { + "message": "Eksportert hvelv." + }, + "exportedOrganizationVault": { + "message": "Eksportert organisasjonshvelv." + }, + "editedOrgSettings": { + "message": "Redigerte organisasjonens innstillinger." + }, + "createdItemId": { + "message": "Lagde $ID$-gjenstanden.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Redigerte $ID$-gjenstanden.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Slettet $ID$-objektet.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Flyttet elementet $ID$ til en organisasjon.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Vist $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Vist passordet for objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Vist skjult felt for objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Vist sikkerhetskoden for objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Kopiert passordet for objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Kopiert skjult felt for objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Kopiert sikkerhetskoden for objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Automatisk utfylt objekt $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Lagde $ID$-samlingen.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Redigerte $ID$-samlingen.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Slettet $ID$-samlingen.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Endret vilkår $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Lagde $ID$-gruppen.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Redigerte $ID$-gruppen.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Slettet $ID$-gruppen.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Fjernet brukeren $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Lagde et vedlegg for $ID$-gjenstanden.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Slettet et vedlegg for $ID$-gjenstanden.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Redigerte samlingene til $ID$-gjenstanden.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Inviterte brukeren $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Bekreftet brukeren $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Redigerte brukeren $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Redigerte gruppene til brukeren $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Koblet fra SSO for brukeren $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Opprettet organisasjon $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "La til organisasjon $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Fjernet organisasjonen $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Benyttet $ID$ organisasjonshvelv.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Enhet" + }, + "view": { + "message": "Vis" + }, + "invalidDateRange": { + "message": "Ugyldig datoområde." + }, + "errorOccurred": { + "message": "En feil har oppstått." + }, + "userAccess": { + "message": "Brukertilgang" + }, + "userType": { + "message": "Brukertype" + }, + "groupAccess": { + "message": "Gruppetilgang" + }, + "groupAccessUserDesc": { + "message": "Rediger gruppene som denne brukeren tilhører." + }, + "invitedUsers": { + "message": "Inviterte bruker(e)." + }, + "resendInvitation": { + "message": "Send invitasjonen på nytt" + }, + "resendEmail": { + "message": "Send e-post på nytt" + }, + "hasBeenReinvited": { + "message": "$USER$ har blitt invitert på nytt.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Bekreft" + }, + "confirmUser": { + "message": "Bekreft bruker" + }, + "hasBeenConfirmed": { + "message": "$USER$ har blitt bekreftet.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Bekreft brukere" + }, + "usersNeedConfirmed": { + "message": "Du har brukere som har akseptert sin invitasjon, men som fortsatt må bekreftes. Brukere vil ikke ha tilgang til organisasjonen før de er bekreftet." + }, + "startDate": { + "message": "Startdato" + }, + "endDate": { + "message": "Sluttdato" + }, + "verifyEmail": { + "message": "Bekreft E-postadresse" + }, + "verifyEmailDesc": { + "message": "Bekreft din kontos E-postadresse for å få tilgang til alle egenskapene." + }, + "verifyEmailFirst": { + "message": "E-postadressen til kontoen din må verifiseres først." + }, + "checkInboxForVerification": { + "message": "Se etter i din E-postkontos innboks for en verifiseringslenke." + }, + "emailVerified": { + "message": "Din E-postadresse har blitt bekreftet." + }, + "emailVerifiedFailed": { + "message": "Klarte ikke å bekrefte E-postadressen din. Prøv å sende en ny bekreftelses-E-post." + }, + "emailVerificationRequired": { + "message": "Bekreftelse av e-post nødvendig" + }, + "emailVerificationRequiredDesc": { + "message": "Du må bekrefte e-postadressen din for å bruke denne funksjonen." + }, + "updateBrowser": { + "message": "Oppdater nettleseren" + }, + "updateBrowserDesc": { + "message": "Du bruker en ustøttet nettleser. Netthvelvet vil kanskje ikke fungere ordentlig." + }, + "joinOrganization": { + "message": "Bli med i organisasjon" + }, + "joinOrganizationDesc": { + "message": "Du har blitt invitert til å bli med i organisasjonen som er listet opp ovenfor. For å godkjenne invitasjonen, må du enten logge på eller lage en ny Bitwarden-konto." + }, + "inviteAccepted": { + "message": "Invitasjonen ble godkjent" + }, + "inviteAcceptedDesc": { + "message": "Du kan få tilgang til denne organisasjonen så fort en administrator godkjenner ditt medlemskap. Vi vil sende deg E-post når det skjer." + }, + "inviteAcceptFailed": { + "message": "Klarte ikke å godkjenne invitasjonen. Spør en organisasjonsadmin om å sende en ny invitasjon." + }, + "inviteAcceptFailedShort": { + "message": "Ikke i stand til å godta invitasjon. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Husk på E-postadressen" + }, + "recoverAccountTwoStepDesc": { + "message": "Hvis du ikke klarer å få tilgang til kontoen din gjennom dine vanlige 2-trinnsinnloggingsmetoder, kan du bruke din 2-trinnsinnloggingsgjenopprettingskode til å deaktivere alle 2-trinnsinnloggingsleverandører på din konto." + }, + "recoverAccountTwoStep": { + "message": "Få tilbake tilgangen til din kontos 2-trinnsinnlogging" + }, + "twoStepRecoverDisabled": { + "message": "2-trinnsinnlogging har blitt skrudd av på din konto." + }, + "learnMore": { + "message": "Lær mer" + }, + "deleteRecoverDesc": { + "message": "Skriv inn din E-postadresse nedenfor for å få tilbake tilgangen til og å slette din konto." + }, + "deleteRecoverEmailSent": { + "message": "Dersom kontoen din eksisterer, har vi sendt deg en E-post med ytterligere instrukser." + }, + "deleteRecoverConfirmDesc": { + "message": "Du har bedt om å slette Bitwarden-kontoen din. Klikk knappen nedenfor for å bekrefte." + }, + "myOrganization": { + "message": "Min organisasjon" + }, + "deleteOrganization": { + "message": "Slett organisasjonen" + }, + "deletingOrganizationContentWarning": { + "message": "Skriv inn hovedpassordet for å bekrefte sletting av $ORGANIZATION$ og alle tilknyttede data. Data i hvelvet i $ORGANIZATION$ inkluderer:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Brukerkontoer vil forbli aktive etter sletting, men vil ikke lenger knyttes til denne organisasjonen." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Sletting av $ORGANIZATION$ er permanent og kan ikke angres.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organisasjonen ble slettet" + }, + "organizationDeletedDesc": { + "message": "Organisasjonen og alle dens tilknyttede data ble slettet." + }, + "organizationUpdated": { + "message": "Organisasjonen ble oppdatert" + }, + "taxInformation": { + "message": "Skatteinformasjon" + }, + "taxInformationDesc": { + "message": "Vennligst kontakt kundestøtte for å sende inn (eller oppdatere) skatteinformasjonen til dine fakturaer." + }, + "billingPlan": { + "message": "Funksjonsplan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Endre abonnement", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Oppgrader kontoen din til et annet abonnement ved å fylle inn informasjonen nedenfor. Sørg for at du har en aktiv betalingsmetode lagt til kontoen.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Faktura #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Se faktura" + }, + "downloadInvoice": { + "message": "Last ned faktura" + }, + "verifyBankAccount": { + "message": "Bekreft bankkontoen din" + }, + "verifyBankAccountDesc": { + "message": "Vi har gjort 2 mikroinnskudd i bankkontoen din (Det kan 1-2 virkedager før de dukker opp). Skriv inn disse summene for å bekrefte bankkontoen." + }, + "verifyBankAccountInitialDesc": { + "message": "Betaling med en bankkonto er selvfølgelig bare tilgjengelig til kunder i USA. Du vi bli påkrevd å bekrefte din bankkonto. Vi vil sende deg 2 mikroinnskudd innen 1-2 virkedager. Skriv inn disse summene på din organisasjons regningsside for å bekrefte bankkontoen." + }, + "verifyBankAccountFailureWarning": { + "message": "Å mislykkes i å bekrefte bankkontoen vil føre til en uteblivende betaling og at abonnementet ditt blir skrudd av." + }, + "verifiedBankAccount": { + "message": "Bankkontoen har blitt bekreftet." + }, + "bankAccount": { + "message": "Bankkonto" + }, + "amountX": { + "message": "Sum $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Rutingsnummer", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Kontonummer" + }, + "accountHolderName": { + "message": "Kontoholderens navn" + }, + "bankAccountType": { + "message": "Kontotype" + }, + "bankAccountTypeCompany": { + "message": "Firma" + }, + "bankAccountTypeIndividual": { + "message": "Individuelt (Personlig)" + }, + "enterInstallationId": { + "message": "Skriv inn din installasjons-ID" + }, + "limitSubscriptionDesc": { + "message": "Angi en seteramme for ditt abonnement. Når denne grensen er nådd, vil du ikke kunne invitere nye brukere." + }, + "maxSeatLimit": { + "message": "Maksimal setegrense (valgfritt)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Maks. potensielle setekostnader" + }, + "addSeats": { + "message": "Legg til seter", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Fjern seter", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Justeringer av ditt abonnement vil resultere i utsatt endring av dine faktureringsbeløp. Hvis nyinviterte brukere overstiger ditt abonnementssete, vil du umiddelbart få et betalt for ekstra brukere." + }, + "subscriptionUserSeats": { + "message": "Ditt abonnement tillater opptil $COUNT$ brukere.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Begrens abonnement (valgfritt)" + }, + "subscriptionSeats": { + "message": "Abonnements seter" + }, + "subscriptionUpdated": { + "message": "Abonnement er oppdatert" + }, + "additionalOptions": { + "message": "Tilleggsvalg" + }, + "additionalOptionsDesc": { + "message": "For ytterligere hjelp til å administrere ditt abonnement, ta kontakt med kundestøtte." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Justeringer av ditt abonnement vil resultere i utsatt endring av dine faktureringsbeløp. Hvis nyinviterte brukere overstiger ditt abonnementssete, vil du umiddelbart få et betalt for ekstra brukere." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Justeringer av ditt abonnement vil resultere i utsatt endring av dine faktureringsbeløp. Om nyinviterte brukere overskrider ditt abonnementssete, umiddelbart vil du få en skattekostnad for tilleggsbrukerne inntil din plass på $MAX$ er nådd.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Du kan ikke invitere flere enn $COUNT$ brukere uten å oppgradere abonnementet ditt.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Du kan ikke invitere flere enn $COUNT$ brukere uten å oppgradere planen. Kontakt kundestøtte for å oppgradere.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Ditt abonnement tillater totalt $COUNT$ brukere. Din plan er sponset og fakturert til en ekstern organisasjon.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Justeringer av ditt abonnement vil resultere i autorerte endringer av dine regningssummer beløp. Du kan ikke invitere flere enn $COUNT$ brukere uten å øke abonnementssetene.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seter som skal legges til" + }, + "seatsToRemove": { + "message": "Seter som skal fjernes" + }, + "seatsAddNote": { + "message": "Å legge til brukerseter vil føre til justeringer i dine regningssummer og vil umiddelbart trekke på den lagrede betalingsmetoden din. Det første trekket vil bli fordelt utover resten av den nåværende regningsperioden." + }, + "seatsRemoveNote": { + "message": "Å fjerne brukerseter vil føre til justeringer i dine regningssummer som vil bli fordelt som kreditt opp mot ditt neste regningstrekk." + }, + "adjustedSeats": { + "message": "Justerte $AMOUNT$ brukerseter.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Nøkkelen ble oppdatert" + }, + "updateKeyTitle": { + "message": "Oppdater nøkkelen" + }, + "updateEncryptionKey": { + "message": "Oppdater krypteringsnøkkelen" + }, + "updateEncryptionKeyShortDesc": { + "message": "Du bruker for øyeblikket et utdatert krypteringsoppsett." + }, + "updateEncryptionKeyDesc": { + "message": "Vi har byttet over til lengre krypteringsnøkler som sørger for bedre sikkerhet og tilgang til nyere funksjoner. Å oppdatere krypteringsnøkkelen din er raskt og enkelt. Bare skriv inn superpassordet ditt nedenfor. Denne oppdateringen vil etter hvert bli påbudt." + }, + "updateEncryptionKeyWarning": { + "message": "Etter å ha oppdatert krypteringsnøkkelen din, er du påkrevd å logge av og på på alle Bitwarden-appene og -programmene som du bruker for øyeblikket (deriblant mobilappen og nettleserutvidelsene). Å ikke logge av og på igjen (noe som vil laste ned din nye krypteringsnøkkel) kan føre til datakorrumpering. Vi vil forsøke å logge deg av automatisk, men det kan kanskje bli forsinket." + }, + "updateEncryptionKeyExportWarning": { + "message": "Eventuelle krypterte eksporter som du har lagret blir også ugyldig." + }, + "subscription": { + "message": "Abonnement" + }, + "loading": { + "message": "Laster inn" + }, + "upgrade": { + "message": "Oppgrader" + }, + "upgradeOrganization": { + "message": "Oppgrader organisasjonen" + }, + "upgradeOrganizationDesc": { + "message": "Denne egenskapen er ikke tilgjengelig for gratisorganisasjoner. Bytt over til en betalt funksjonsplan for å låse opp flere egenskaper." + }, + "createOrganizationStep1": { + "message": "Lag en organisasjon: Trinn 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Før du lager organisasjonen din, må du først lage en gratis personlig konto." + }, + "refunded": { + "message": "Tilbakebetalt" + }, + "nothingSelected": { + "message": "Du har ikke valgt noe." + }, + "acceptPolicies": { + "message": "Ved å huke av denne boksen sier du deg enig i følgende:" + }, + "acceptPoliciesError": { + "message": "Bruksvilkårene og personvernerklæring er ikke godkjent." + }, + "termsOfService": { + "message": "Tjenestevilkår" + }, + "privacyPolicy": { + "message": "Personvern" + }, + "filters": { + "message": "Filtre" + }, + "vaultTimeout": { + "message": "Pause for hvelvet" + }, + "vaultTimeoutDesc": { + "message": "Velg når hvelvet ditt skal ta pause og utføre den valgte handlingen." + }, + "oneMinute": { + "message": "1 minutt" + }, + "fiveMinutes": { + "message": "5 minutter" + }, + "fifteenMinutes": { + "message": "15 minutter" + }, + "thirtyMinutes": { + "message": "30 minutter" + }, + "oneHour": { + "message": "1 time" + }, + "fourHours": { + "message": "4 timer" + }, + "onRefresh": { + "message": "Ved nettlesergjeninnlasting" + }, + "dateUpdated": { + "message": "Oppdatert den", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Passordet ble oppdatert den", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organisasjonen er skrudd av." + }, + "licenseIsExpired": { + "message": "Lisensen har utløpt." + }, + "updatedUsers": { + "message": "Oppdaterte brukere" + }, + "selected": { + "message": "Valgt" + }, + "ownership": { + "message": "Eierskap" + }, + "whoOwnsThisItem": { + "message": "Hvem eier dette elementet?" + }, + "strong": { + "message": "Sterkt", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Bra", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Svakt", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Veldig svakt", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Svakt hovedpassord" + }, + "weakMasterPasswordDesc": { + "message": "Superpassordet du har valgt er svakt. Du bør bruke et sterkt superpassord (eller en passordfrase) for å sikre Bitwarden-kontoen din på en forsvarlig måte. Er du sikker på at du vil bruke dette superpassordet?" + }, + "rotateAccountEncKey": { + "message": "Oppdater også krypteringsnøkkelen til kontoen min" + }, + "rotateEncKeyTitle": { + "message": "Oppdater krypteringsnøkkelen" + }, + "rotateEncKeyConfirmation": { + "message": "Er du sikker på at du vil oppdatere krypteringsnøkkelen til kontoen din?" + }, + "attachmentsNeedFix": { + "message": "Denne oppføringen har gamle fil-vedlegg som må repareres." + }, + "attachmentFixDesc": { + "message": "Dette er et gammelt fil-vedlegg som må repareres. Klikk for å se mer." + }, + "fix": { + "message": "Reparer", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Hvelvet ditt har gamle fil-vedlegg som må repareres før du kan oppdatere krypteringsnøkkelen til kontoen din." + }, + "yourAccountsFingerprint": { + "message": "Din kontos fingeravtrykksfrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "For å sikre integriteten til krypteringsnøkene dine, vær vennlig å bekrefte brukerens fingeravtrykksfrase før du fortsetter.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Ikke be om bekreftelse av fingeravtrykksfrase flere ganger", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Gratis", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API-nøkkel" + }, + "apiKeyDesc": { + "message": "API-nøkkelen din kan brukes til å godkjenne til den offentlige API-en for Bitwarden." + }, + "apiKeyRotateDesc": { + "message": "Hvis du roterer API-nøkkel, blir den forrige nøkkelen ugyldig. Du kan rotere API-nøkkelen din hvis du mener at den nåværende nøkkelen ikke lenger er trygt å bruke." + }, + "apiKeyWarning": { + "message": "Din API-nøkkel har full tilgang til organisasjonen. Det bør holdes hemmelig." + }, + "userApiKeyDesc": { + "message": "API-nøkkelen din kan brukes til å godkjenne i Bitwarden sin CLI." + }, + "userApiKeyWarning": { + "message": "Din API-nøkkel er en alternativ autentiseringsmekanisme. Det bør holdes hemmelig." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0-klientinformasjon", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Se API-nøkkel" + }, + "rotateApiKey": { + "message": "Roter API-nøkkel" + }, + "selectOneCollection": { + "message": "Du må velge minst én samling." + }, + "couldNotChargeCardPayInvoice": { + "message": "Vi kunne ikke belaste kortet ditt. Vennligst se og betal den ubetalte fakturaen nedenfor." + }, + "inAppPurchase": { + "message": "Kjøp i appen" + }, + "cannotPerformInAppPurchase": { + "message": "Du kan ikke utføre denne handlingen mens du bruker en betalingsmetode for kjøp i appen." + }, + "manageSubscriptionFromStore": { + "message": "Du kan bare styre abonnementet ditt fra nettbutikken du kjøpte i appen." + }, + "minLength": { + "message": "Minimumslengde" + }, + "clone": { + "message": "Klon" + }, + "masterPassPolicyDesc": { + "message": "Sett minimumskrav til hovedpassordets styrke." + }, + "twoStepLoginPolicyDesc": { + "message": "Krev at brukere konfigurere totrinns pålogging på sine personlige kontoer." + }, + "twoStepLoginPolicyWarning": { + "message": "Organisasjonsmedlemmer som ikke har to-trinns pålogging aktivert for sin personlige konto, vil bli fjernet fra organisasjonen og vil motta en e-post som melder dem om endringen." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Du er medlem av minst én organisasjon, som krever to-trinns pålogging for å være aktivert på kontoen din. Hvis du deaktiverer alle leverandører av totrinns pålogging, blir du automatisk fjernet fra disse organisasjonene." + }, + "passwordGeneratorPolicyDesc": { + "message": "Sett minimumskrav for konfigurasjon av passordgenerator." + }, + "passwordGeneratorPolicyInEffect": { + "message": "En eller flere av organisasjonens vilkår påvirker generatorinnstillingene dine." + }, + "masterPasswordPolicyInEffect": { + "message": "En eller flere av organisasjonens vilkår krever hovedpassordet ditt for å oppfylle følgende krav:" + }, + "policyInEffectMinComplexity": { + "message": "Minimumspoengsum for kompleksistet er $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimumslengde er $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Inneholder ett eller flere store tegn" + }, + "policyInEffectLowercase": { + "message": "Inneholder ett eller flere små tegn" + }, + "policyInEffectNumbers": { + "message": "Inneholde ett eller flere tall" + }, + "policyInEffectSpecial": { + "message": "Inneholder ett eller flere av følgende spesialtegn $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Det nye hovedpassordet ditt oppfyller ikke vilkårene." + }, + "minimumNumberOfWords": { + "message": "Minimum antall ord" + }, + "defaultType": { + "message": "Standardtype" + }, + "userPreference": { + "message": "Brukerinnstillinger" + }, + "vaultTimeoutAction": { + "message": "Handling ved pause i hvelvet" + }, + "vaultTimeoutActionLockDesc": { + "message": "Et låst hvelv krever at du skriver inn hovedpassordet ditt på nytt for å få tilgang til hvelvet igjen." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Et utlogget hvelv krever at du autentiserer deg selv på nytt for å få tilgang til det igjen." + }, + "lock": { + "message": "Lås", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Papirkurv", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Søk i papirkurven" + }, + "permanentlyDelete": { + "message": "Slett permanent" + }, + "permanentlyDeleteSelected": { + "message": "Slett valgte permanent" + }, + "permanentlyDeleteItem": { + "message": "Slett objektet permanent" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Er du sikker på at du vil slette dette objektet permanent?" + }, + "permanentlyDeletedItem": { + "message": "Slett objektet permanent" + }, + "permanentlyDeletedItems": { + "message": "Slettet objektene permanent" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Du har valgt $COUNT$ objekt(er) som skal slettes permanent. Er du sikker på du vil slette alle disse objektene?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Permanent slettet objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Gjenopprett" + }, + "restoreSelected": { + "message": "Gjenopprett valgte" + }, + "restoreItem": { + "message": "Gjenopprett objekt" + }, + "restoredItem": { + "message": "Gjenopprettet objekt" + }, + "restoredItems": { + "message": "Gjenopprettete objekter" + }, + "restoreItemConfirmation": { + "message": "Er du sikker på at du vil gjenopprette dette objektet?" + }, + "restoreItems": { + "message": "Gjenopprett objekter" + }, + "restoreSelectedItemsDesc": { + "message": "Du har valgt $COUNT$ objekt(er) som skal gjenopprettes. Er du sikker på at du vil gjenopprette alle disse objektene?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Gjenopprettet objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Hvis du logger ut, fjerner du all tilgang til hvelvet ditt og krever online godkjenning etter tidsavbrudd. Er du sikker på at du vil bruke denne innstillingen?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Bekreftelse av handling ved pause" + }, + "hidePasswords": { + "message": "Skjul passord" + }, + "countryPostalCodeRequiredDesc": { + "message": "Vi krever denne informasjonen for beregning av merverdiavgift og finansiell rapportering." + }, + "includeVAT": { + "message": "Inkluder MVA-informasjon (valgfritt)" + }, + "taxIdNumber": { + "message": "VAT/GST Tax ID" + }, + "taxInfoUpdated": { + "message": "Skatteinformasjonen er oppdatert." + }, + "setMasterPassword": { + "message": "Angi hovedpassord" + }, + "ssoCompleteRegistration": { + "message": "For å fullføre innloggingen med SSO, angi et superpassord for å få tilgang til og beskytte hvelvet ditt." + }, + "identifier": { + "message": "Identifikator" + }, + "organizationIdentifier": { + "message": "Organisasjons identifikator" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Logg inn ved hjelp av din organisasjons eneste signalportal. Angi din organisasjons identifikator for å begynne." + }, + "enterpriseSingleSignOn": { + "message": "Bedriftsinnlogging (SSO)" + }, + "ssoHandOff": { + "message": "Du kan nå lukke denne fanen og fortsette i utvidelsen." + }, + "includeAllTeamsFeatures": { + "message": "Alle Lag funksjoner, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO autentisering via SAML2.0 og OpenID Koble til" + }, + "includeEnterprisePolicies": { + "message": "Bedriftens retningslinjer" + }, + "ssoValidationFailed": { + "message": "SSO validering feilet" + }, + "ssoIdentifierRequired": { + "message": "Organisasjonsidentifikator er påkrevd." + }, + "unlinkSso": { + "message": "Koble fra SSO" + }, + "unlinkSsoConfirmation": { + "message": "Er du sikker på at du vil oppheve koblingen til SSO for denne organisasjonen?" + }, + "linkSso": { + "message": "Lenke SSO" + }, + "singleOrg": { + "message": "Enkel organisasjon" + }, + "singleOrgDesc": { + "message": "Begrense brukere fra å kunne bli med i andre organisasjoner." + }, + "singleOrgBlockCreateMessage": { + "message": "Din nåværende organisasjon har en policy som ikke lar deg bli med i mer enn én organisasjon. Kontakt din organisasjons admins eller registrer deg fra en annen Bitwarden-konto." + }, + "singleOrgPolicyWarning": { + "message": "Organisasjonsmedlemmer som ikke er eiere eller administratorer, og som allerede er medlem av en annen organisasjon, blir fjernet fra din organisasjon." + }, + "requireSso": { + "message": "Single på-på-autentisering" + }, + "requireSsoPolicyDesc": { + "message": "Krev brukere å logge inn med Enterprise Single Sign-On metoden." + }, + "prerequisite": { + "message": "Forutsetninger" + }, + "requireSsoPolicyReq": { + "message": "Virksomhetspolitikken for enkeltorganisasjoner må være i stand til å aktivere denne politikken." + }, + "requireSsoPolicyReqError": { + "message": "Retningslinjer for én organisasjon ikke aktivert." + }, + "requireSsoExemption": { + "message": "Organisasjonens eiere og administratorer er unntatt fra denne policyens håndheving." + }, + "sendTypeFile": { + "message": "Fil" + }, + "sendTypeText": { + "message": "Tekst" + }, + "createSend": { + "message": "Opprett ny Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Rediger Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Opprettet Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Redigerte Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Slettet Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Slett Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Er du sikker på at du vil slette denne Send-en?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Hvilken type Send er dette?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Dato for sletting" + }, + "deletionDateDesc": { + "message": "Send-en vil bli slettet permanent på den angitte dato og klokkeslett.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Utløpsdato" + }, + "expirationDateDesc": { + "message": "Hvis satt, vil tilgang til denne Send gå ut på angitt dato og klokkeslett.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maksimal antall tilganger" + }, + "maxAccessCountDesc": { + "message": "Hvis satt, vil ikke brukere lenger ha tilgang til dette Send når maksimal antall tilgang er nådd.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Antall nåværende tilganger" + }, + "sendPasswordDesc": { + "message": "Eventuelt krever et passord for brukere å få tilgang til denne Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notater om denne Send-en.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Deaktivert" + }, + "sendLink": { + "message": "Send lenke", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Kopier Send-lenke", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Fjern passord" + }, + "removedPassword": { + "message": "Fjernet passord" + }, + "removePasswordConfirmation": { + "message": "Er du sikker på at du vil fjerne passordet?" + }, + "hideEmail": { + "message": "Skjul min e-postadresse fra mottakere." + }, + "disableThisSend": { + "message": "Deaktiver denne Send-en, slik at ingen får tilgang til den.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Alle Send-er" + }, + "maxAccessCountReached": { + "message": "Maksimalt antall tilganger nådd", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Venter på sletting" + }, + "expired": { + "message": "Utløpt" + }, + "searchSends": { + "message": "Søk i Send-ene", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Send er beskyttet med et passord. Skriv inn passordet nedenfor for å fortsette.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Vet du ikke passordet? Be avsender om nødvendig tilgang til denne Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Denne sendingen er skjult som standard. Du kan velge å vise den ved å bruke knappen nedenfor.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Last ned fil" + }, + "sendAccessUnavailable": { + "message": "Sende du prøver å få tilgang eksisterer ikke, eller er ikke lenger tilgjengelig.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Filen knyttet til sendingen ble ikke funnet.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Det er ingen Sends å vise.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Nødtilgang" + }, + "emergencyAccessDesc": { + "message": "Gi og behandle nødstilgang for betrodde kontakter. Pålitelige kontakter kan be om tilgang til enten vis eller overta kontoen din i tilfelle en nødssituasjon. Besøk vår hjelpeside for mer informasjon og detaljer om hvordan null-kunnskapsdeling fungerer." + }, + "emergencyAccessOwnerWarning": { + "message": "Du er en eier av en eller flere organisasjoner. Hvis du gir deg tilgang til en nødkontakt, vil de kunne bruke alle dine rettigheter som eier etter at du har gått over." + }, + "trustedEmergencyContacts": { + "message": "Betrodde nødkontakter" + }, + "noTrustedContacts": { + "message": "Du har ikke lagt til noen nødkontakter ennå. Inviter en betrodd kontakt for å komme i gang." + }, + "addEmergencyContact": { + "message": "Legg til nødkontakt" + }, + "designatedEmergencyContacts": { + "message": "Utpekt som nødkontakt" + }, + "noGrantedAccess": { + "message": "Du har ikke blitt utpekt som nødkontakt for noen enda." + }, + "inviteEmergencyContact": { + "message": "Inviter nødkontakt" + }, + "editEmergencyContact": { + "message": "Rediger nødkontakt" + }, + "inviteEmergencyContactDesc": { + "message": "Inviter en ny nødkontakt ved å skrive inn e-postadressen til deres Bitwarden-konto nedenfor. Dersom de ikke allerede har en Bitwarden-konto, vil de bli bedt om å opprette en ny konto." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Nødtilgang initiert" + }, + "emergencyAccessRecoveryApproved": { + "message": "Nødtilgang godkjent" + }, + "viewDesc": { + "message": "Kan se alle objekter i hvelvet ditt." + }, + "takeover": { + "message": "Overtakelse" + }, + "takeoverDesc": { + "message": "Kan tilbakestille kontoen med et nytt hovedpassord." + }, + "waitTime": { + "message": "Ventetid" + }, + "waitTimeDesc": { + "message": "Tid nødvendig før det gis automatisk tilgang." + }, + "oneDay": { + "message": "1 dag" + }, + "days": { + "message": "$DAYS$ dager", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invitert bruker." + }, + "acceptEmergencyAccess": { + "message": "Du har blitt invitert til å bli en nødkontakt for brukeren som er listet ovenfor. For å godkjenne invitasjonen, må du logge på eller lage en ny Bitwarden-konto." + }, + "emergencyInviteAcceptFailed": { + "message": "Klarte ikke å godkjenne invitasjonen. Be brukeren om å sende en ny invitasjon." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Kunne ikke godkjenne invitasjonen. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Du får tilgang til nødalternativer for denne brukeren etter at identiteten din er bekreftet. Vi vil sende deg en e-post når det skjer." + }, + "requestAccess": { + "message": "Be om tilgang" + }, + "requestAccessConfirmation": { + "message": "Er du sikker på at du vil be om nødtilgang? Du vil få tilgang etter $WAITTIME$ dag(er) eller når brukeren manuelt godkjenner forespørselen.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Nødadgang forespurt for $USER$. Vi varsler deg via e-post når det er mulig å fortsette prosessen.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Godkjenn" + }, + "reject": { + "message": "Avvis" + }, + "approveAccessConfirmation": { + "message": "Er du sikker på at du vil godkjenne nødtilgang? Dette vil tillate $USER$ til $ACTION$ kontoen din.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Nødtilgang er godkjent." + }, + "emergencyRejected": { + "message": "Nødtilgang avvist" + }, + "passwordResetFor": { + "message": "Passord tilbakestille for $USER$. Du kan nå logge inn ved å bruke det nye passordet.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personlig eierskap" + }, + "personalOwnershipPolicyDesc": { + "message": "Krev at brukere lagrer hvelvgjenstander i en organisasjon ved å fjerne den personlige eierskapsmodulen." + }, + "personalOwnershipExemption": { + "message": "Organisasjonens eiere og administratorer er unntatt fra denne policyens håndheving." + }, + "personalOwnershipSubmitError": { + "message": "På grunn av en virksomhetsregel er du begrenset fra å lagre gjenstander til ditt personlige hvelv. Endre eierskapet til en organisasjon og velg blant tilgjengelige samlinger." + }, + "disableSend": { + "message": "Deaktiver Send" + }, + "disableSendPolicyDesc": { + "message": "Ikke tillat brukere å opprette eller redigere en Bitwarden Send. Å slette en eksisterende Send er fortsatt tillatt.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organisasjonsbrukere som kan håndtere organisasjonens regler, er unntatt fra håndheving av denne reglen." + }, + "sendDisabled": { + "message": "Send deaktivert", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "På grunn av en virksomhetsregel kan du kun slette en eksisterende Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Alternativer for sending", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Angi alternativer for oppretting og redigering av Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organisasjonsbrukere som kan håndtere organisasjonens regler, er unntatt fra håndheving av denne reglen." + }, + "disableHideEmail": { + "message": "Ikke tillat brukere å skjule sin e-postadresse fra mottakere når de oppretter eller redigerer en Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Følgende organisasjonspolicyer er for tiden i virkning:" + }, + "sendDisableHideEmailInEffect": { + "message": "Brukere kan ikke skjule sin e-postadresse fra mottakere når de oppretter eller redigerer en Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modifisert policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Pris på plan" + }, + "estimatedTax": { + "message": "Beregnet avgift" + }, + "custom": { + "message": "Egendefinert" + }, + "customDesc": { + "message": "Tillater mer granatær kontroll med brukertillatelser for avanserte konfigurasjoner." + }, + "permissions": { + "message": "Rettigheter" + }, + "accessEventLogs": { + "message": "Få tilgang til hendelseslogger" + }, + "accessImportExport": { + "message": "Få tilgang til importering/eksportering" + }, + "accessReports": { + "message": "Få tilgang til rapporter" + }, + "missingPermissions": { + "message": "Du mangler de nødvendige tillatelsene for å utføre denne handlingen." + }, + "manageAllCollections": { + "message": "Administrer alle samlinger" + }, + "createNewCollections": { + "message": "Opprett nye samlinger" + }, + "editAnyCollection": { + "message": "Rediger enhver samling" + }, + "deleteAnyCollection": { + "message": "Slett enhver samling" + }, + "manageAssignedCollections": { + "message": "Administrer alle tildelte samlinger" + }, + "editAssignedCollections": { + "message": "Rediger tildelte samlinger" + }, + "deleteAssignedCollections": { + "message": "Slett tildelte samlinger" + }, + "manageGroups": { + "message": "Administrer grupper" + }, + "managePolicies": { + "message": "Administrer vilkår" + }, + "manageSso": { + "message": "Administrer SSO" + }, + "manageUsers": { + "message": "Administrer brukere" + }, + "manageResetPassword": { + "message": "Behandle tilbakestilling av passord" + }, + "disableRequiredError": { + "message": "Du må manuelt deaktivere $POLICYNAME$ policyen før denne policyen kan deaktiveres.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "En bedriftsretningslinje påvirker dine eierskapsinnstillinger." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "En organisasjonspolicy har deaktivert import av gjenstander til ditt personlige hvelv." + }, + "personalOwnershipCheckboxDesc": { + "message": "Deaktiver personlig eierskap for organisasjonsbrukere" + }, + "textHiddenByDefault": { + "message": "Når du åpner Send-en, er teksten skjult som standard", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Et vennlig navn for å beskrive dette Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Teksten du ønsker å send." + }, + "sendFileDesc": { + "message": "Filen du vil send." + }, + "copySendLinkOnSave": { + "message": "Kopier lenken for å dele denne Send-en til utklippstavlen min ved lagring." + }, + "sendLinkLabel": { + "message": "Send lenke", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send sender sensitiv, midlertidig informasjon til andre enkelt og sikkert.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Lær mer om", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Del tekst eller filer direkte med hvem som helst." + }, + "sendVaultCardLearnMore": { + "message": "Lær mer", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "se", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "hvordan det fungerer", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "eller", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "prøv det nå", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "eller", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "registrer deg", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "for å prøve det i dag.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden-bruker $USER_IDENTIFIER$ delte følgende med deg", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Bitwarden-brukeren som opprettet denne sendingen, har valgt å skjule deres e-postadresse. Du bør forsikre deg om at du stoler på kilden til denne lenken før du bruker eller laster ned innholdet.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Utløpsdatoen angitt er ikke gyldig." + }, + "deletionDateIsInvalid": { + "message": "Slettingsdatoen som er gitt er ikke gyldig." + }, + "expirationDateAndTimeRequired": { + "message": "Utløps dato og tid er påkrevd." + }, + "deletionDateAndTimeRequired": { + "message": "Det kreves en slettingsdato og -tid." + }, + "dateParsingError": { + "message": "Det oppstod en feil ved lagring av slettingen og utløpsdatoene." + }, + "webAuthnFallbackMsg": { + "message": "For å verifisere din 2FA vennligst klikk knappen nedenfor." + }, + "webAuthnAuthenticate": { + "message": "Autentiser WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn støttes ikke i denne nettleseren." + }, + "webAuthnSuccess": { + "message": "WebAuthn bekreftet vellykket! Du kan lukke denne fanen." + }, + "hintEqualsPassword": { + "message": "Passordhintet ditt kan ikke være det samme som passordet ditt." + }, + "enrollPasswordReset": { + "message": "Registrer i tilbakestilling av passord" + }, + "enrolledPasswordReset": { + "message": "Registrert i tilbakestilling av passord" + }, + "withdrawPasswordReset": { + "message": "Trekk tilbake fra tilbakestilling av passord" + }, + "enrollPasswordResetSuccess": { + "message": "Innrulleringssuksess!" + }, + "withdrawPasswordResetSuccess": { + "message": "Tilbaketrekking vellykket!" + }, + "eventEnrollPasswordReset": { + "message": "Bruker $ID$ ble valgt for hjelp til å tilbakestille passordet.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Brukeren $ID$ trakk seg ved hjelp av hjelp for tilbakestilling av passord.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Superpassordtilbakestilling for brukeren $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Tilbakestill kobling for brukeren $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logget inn med Sso for første gang", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Tilbakestill passord" + }, + "resetPasswordLoggedOutWarning": { + "message": "Å fortsette vil logge $NAME$ av deres nåværende økt, og krever at de logger på igjen. Aktive økter på andre enheter kan forbli aktive i opptil en time.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "denne brukeren" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "En eller flere av organisasjonens vilkår krever hovedpassordet ditt for å oppfylle følgende krav:" + }, + "resetPasswordSuccess": { + "message": "Tilbakestilling av passord vellykket!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Ikrafttredelse vil tillate organisasjonsadministratorer å endre hovedpassordet ditt. Er du sikker på at du vil inkludere?" + }, + "resetPasswordPolicy": { + "message": "Tilbakestill hovedpassord" + }, + "resetPasswordPolicyDescription": { + "message": "Tillat administratorer i organisasjonen å tilbakestille organisasjonens hovedpassord." + }, + "resetPasswordPolicyWarning": { + "message": "Brukere i organisasjonen må bytte selv eller bli automatisk registrert før administratorer kan tilbakestille sitt hovedpassord." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatisk registrering" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Alle brukere vil automatisk bli registrert i tilbakestilling av passord når deres invitasjon er akseptert og vil ikke kunne trekke tilbake." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Brukere som allerede er i organisasjonen, vil ikke komme tilbake med tilbakestilling av passord. De må kjøre selv før administratorer kan tilbakestille passordet sitt." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Krever at nye brukere inkluderes automatisk" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Denne organisasjonen har en virksomhet som automatisk registrerer deg innen tilbakestilling av passord. Innsending vil gjøre det mulig for organisasjonsadministratorer å endre passordet ditt." + }, + "resetPasswordOrgKeysError": { + "message": "Organisasjonsnøkler respons er null" + }, + "resetPasswordDetailsError": { + "message": "Tilbakestilling av passorddetaljer er null" + }, + "trashCleanupWarning": { + "message": "Elementer som har vært i papirkurv mer enn 30 dager vil automatisk bli slettet." + }, + "trashCleanupWarningSelfHosted": { + "message": "Elementer som har vært i papirkurven for en stund vil bli slettet automatisk." + }, + "passwordPrompt": { + "message": "Forespørsel om hovedpassord på nytt" + }, + "passwordConfirmation": { + "message": "Superpassord bekreftelse" + }, + "passwordConfirmationDesc": { + "message": "Denne handlingen er beskyttet. For å fortsette, skriv inn superpassordet på nytt for å bekrefte identiteten din." + }, + "reinviteSelected": { + "message": "Send invitasjoner på nytt" + }, + "noSelectedUsersApplicable": { + "message": "Denne handlingen er ikke relevant for noen av de valgte brukerne." + }, + "removeUsersWarning": { + "message": "Er du sikker på at du vil fjerne følgende brukere? Prosessen kan ta noen sekunder å fullføre og ikke kan avbrytes eller avbrytes." + }, + "theme": { + "message": "Tema" + }, + "themeDesc": { + "message": "Velg et tema for netthvelvet ditt." + }, + "themeSystem": { + "message": "Bruk systemtema" + }, + "themeDark": { + "message": "Mørkt" + }, + "themeLight": { + "message": "Lyst" + }, + "confirmSelected": { + "message": "Bekreft valgte" + }, + "bulkConfirmStatus": { + "message": "Massehandling status" + }, + "bulkConfirmMessage": { + "message": "Bekreftet vellykket." + }, + "bulkReinviteMessage": { + "message": "Reinvitasjon vellykket." + }, + "bulkRemovedMessage": { + "message": "Fjernet" + }, + "bulkFilteredMessage": { + "message": "Unntatt dette, gjelder ikke for dette tiltaket." + }, + "fingerprint": { + "message": "Fingeravtrykk" + }, + "removeUsers": { + "message": "Fjern brukere" + }, + "error": { + "message": "Feil" + }, + "resetPasswordManageUsers": { + "message": "Behandle brukere må også være aktivert med tilgang for 'Administrere passord'-tilbakestilling" + }, + "setupProvider": { + "message": "Oppsett av søkeleverandør" + }, + "setupProviderLoginDesc": { + "message": "Du har blitt invitert til å sette opp en ny leverandør. For å fortsette, må du logge på eller lage en ny Bitwarden-konto." + }, + "setupProviderDesc": { + "message": "Skriv inn opplysningene nedenfor for å fullføre leverandøroppsettet. Kontakt kundestøtte hvis du har spørsmål." + }, + "providerName": { + "message": "Navn på søkeleverandør" + }, + "providerSetup": { + "message": "Leverandøren har blitt satt opp." + }, + "clients": { + "message": "Klienter" + }, + "providerAdmin": { + "message": "Administrator for søkeleverandør" + }, + "providerAdminDesc": { + "message": "Høyestetilgangsbrukeren som kan behandle alle aspekter av leverandøren i tillegg til tilgang og styring av klientorganisasjoner." + }, + "serviceUser": { + "message": "Tjeneste bruker" + }, + "serviceUserDesc": { + "message": "Tjenestebrukere kan få tilgang til og administrere alle kundeorganisasjoner." + }, + "providerInviteUserDesc": { + "message": "Inviter en ny bruker til leverandøren din ved å skrive inn E-postadressen til Bitwarden-kontoen deres nedenfor. Dersom de ikke allerede har en Bitwarden-konto, vil de bli bedt om å opprette en ny konto." + }, + "joinProvider": { + "message": "Koble til leverandør" + }, + "joinProviderDesc": { + "message": "Du har blitt invitert til å bli med i leverandøren som er listet opp ovenfor. For å godkjenne invitasjonen, må du enten logge på eller lage en ny Bitwarden-konto." + }, + "providerInviteAcceptFailed": { + "message": "Klarte ikke å godkjenne invitasjonen. Spør en leverandøradministrator om å sende en ny invitasjon." + }, + "providerInviteAcceptedDesc": { + "message": "Du kan få tilgang til denne leverandøren så fort en administrator godkjenner ditt medlemskap. Vi vil sende deg E-post når det skjer." + }, + "providerUsersNeedConfirmed": { + "message": "Du har brukere som har akseptert sin invitasjon, men som fortsatt må bekreftes. Brukere vil ikke ha tilgang til leverandøren før de er bekreftet." + }, + "provider": { + "message": "Leverandør" + }, + "newClientOrganization": { + "message": "Ny klientorganisasjon" + }, + "newClientOrganizationDesc": { + "message": "Opprett en ny bestillerorganisasjon som vil være tilknyttet deg som leverandør. Du vil kunne få tilgang til og styre denne organisasjonen." + }, + "addExistingOrganization": { + "message": "Legg til eksisterende organisasjon" + }, + "myProvider": { + "message": "Min leverandør" + }, + "addOrganizationConfirmation": { + "message": "Er du sikker på at du vil legge til $ORGANIZATION$ som klient til $PROVIDER$-?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organisasjonen ble lagt til i leverandøren" + }, + "accessingUsingProvider": { + "message": "Tilgang til organisasjon med leverandør $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Leverandør er deaktivert." + }, + "providerUpdated": { + "message": "Leverandøren er oppdatert" + }, + "yourProviderIs": { + "message": "Din leverandør er $PROVIDER$. De har administrative og faktureringsrettigheter for din organisasjon.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "Organisasjonen $ORGANIZATION$ har blitt koblet fra leverandøren din.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Er du sikker på at du vil fjerne denne organisasjonen? Organisasjonen vil fortsette å eksistere, men vil ikke lenger bli administrert av leverandøren." + }, + "add": { + "message": "Legg til" + }, + "updatedMasterPassword": { + "message": "Oppdaterte hovedpassordet" + }, + "updateMasterPassword": { + "message": "Oppdater hovedpassord" + }, + "updateMasterPasswordWarning": { + "message": "Hovedpassordet ditt ble nylig endret av en administrator i organisasjonen din. For å få tilgang til hvelvet, må du oppdatere hovedpassordet ditt nå. Hvis du fortsetter, logges du ut av den nåværende økten, og du må logge på igjen. Aktive økter på andre enheter kan fortsette å være aktive i opptil én time." + }, + "masterPasswordInvalidWarning": { + "message": "Hovedpassordet ditt oppfyller ikke kravene i denne organisasjonen. For å bli med i organisasjonen, må du oppdatere hovedpassordet ditt nå. Å fortsette vil logge deg ut av din nåværende økt, og krever at du logger deg på igjen. Aktive økter på andre enheter kan forbli aktive i opptil en time." + }, + "maximumVaultTimeout": { + "message": "Tidsavbrudd i hvelvet" + }, + "maximumVaultTimeoutDesc": { + "message": "Konfigurere en maks tidsavbrudd for hvelvet for alle brukere." + }, + "maximumVaultTimeoutLabel": { + "message": "Maksimal hvelv tidsavbrudd" + }, + "invalidMaximumVaultTimeout": { + "message": "Ugyldig maksimal hvelv tidsavbrudd." + }, + "hours": { + "message": "Åpningstider" + }, + "minutes": { + "message": "Minutter" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Organisasjonens retningslinjer påvirker tidsavbruddet for hvelvet ditt. Maksimalt tillatt tidsavbrudd for hvelv er $HOURS$ time(r) og $MINUTES$ minutt(er)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Egendefinert hvelv tidsavbrudd" + }, + "vaultTimeoutToLarge": { + "message": "Tidsavbrudd i hvelvet ditt overskrider begrensningen fastsatt av organisasjonen din." + }, + "disablePersonalVaultExport": { + "message": "Deaktivere personlig hvelv eksport" + }, + "disablePersonalVaultExportDesc": { + "message": "Forbud brukere fra å eksportere sine private hvelvdataer." + }, + "vaultExportDisabled": { + "message": "Hvelveksportering er skrudd av" + }, + "personalVaultExportPolicyInEffect": { + "message": "En eller flere regler i organisasjonsoppsettet forhindrer deg i å eksportere ditt personlige hvelv." + }, + "selectType": { + "message": "Velg SSO-type" + }, + "type": { + "message": "Skriv" + }, + "openIdConnectConfig": { + "message": "OpenID tilkobling konfigurasjon" + }, + "samlSpConfig": { + "message": "SAML tjenesteleverandør konfigurasjon" + }, + "samlIdpConfig": { + "message": "SAML ID-leverandør konfigurasjon" + }, + "callbackPath": { + "message": "Sti for tilbakeringing" + }, + "signedOutCallbackPath": { + "message": "Logget av tilbakeringingsbanen" + }, + "authority": { + "message": "Autoritet" + }, + "clientId": { + "message": "Klient-ID" + }, + "clientSecret": { + "message": "Klienthemmelighet" + }, + "metadataAddress": { + "message": "Metadataadresse" + }, + "oidcRedirectBehavior": { + "message": "OIDC omdirigerer oppførsel" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Hent claims fra endpoint for brukeropplysninger" + }, + "additionalScopes": { + "message": "Egendefinerte Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Egendefinerte bruker-ID Claim-typer" + }, + "additionalEmailClaimTypes": { + "message": "E-post Claim-typer" + }, + "additionalNameClaimTypes": { + "message": "Egendefinerte navne claim-typer" + }, + "acrValues": { + "message": "Bedt om verdier for Authentication Context Class Reference" + }, + "expectedReturnAcrValue": { + "message": "Forventet \"acr\"-claimverdi i svar" + }, + "spEntityId": { + "message": "SP Enhets-ID" + }, + "spMetadataUrl": { + "message": "'SAML 2.0'-metadata-URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Navne-ID-format" + }, + "spOutboundSigningAlgorithm": { + "message": "Utgående signeringsalgoritme" + }, + "spSigningBehavior": { + "message": "Signeringsatferd" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum innkommende signeringsalgoritme" + }, + "spWantAssertionsSigned": { + "message": "Forvent signerte assertions" + }, + "spValidateCertificates": { + "message": "Valider sertifikater" + }, + "idpEntityId": { + "message": "Enhets-ID" + }, + "idpBindingType": { + "message": "Bindingstype" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign-On tjeneste URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out-tjeneste URL" + }, + "idpX509PublicCert": { + "message": "X509 offentlig sertifikat" + }, + "idpOutboundSigningAlgorithm": { + "message": "Utgående signeringsalgoritme" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Tillat uoppfordret godkjennelsessvar" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Tillat utgående utloggingsforespørsler" + }, + "idpSignAuthenticationRequests": { + "message": "Signér autentiseringsforespørseler" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On konfigurasjon ble lagret." + }, + "sponsoredFamilies": { + "message": "Gratis Bitwarden Familier" + }, + "sponsoredFamiliesEligible": { + "message": "Du og din familie er kvalifisert for Free Bitwarden Familier. Løs inn med din personlige e-post for å holde dataene dine sikre, selv om du ikke er på jobb." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Løs inn din Free Bitwarden for Familier-abonnement i dag for å holde dataene sikre, selv om du ikke er på jobb." + }, + "sponsoredFamiliesInclude": { + "message": "Bitwarden for familier-abonnementet inkluderer" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premiumtilgang for opptil 6 brukere" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Delte samlinger til familie-hemmeligheter" + }, + "badToken": { + "message": "Lenken er ikke lenger gyldig. Vennligst ha sponsor på nytt tilbudet." + }, + "reclaimedFreePlan": { + "message": "Ny gratis plan" + }, + "redeem": { + "message": "Løs inn" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Velg den organisasjonen du ønsker å ha sponset" + }, + "familiesSponsoringOrgSelect": { + "message": "Hvilket gratis familier tilbyr deg å innløse?" + }, + "sponsoredFamiliesEmail": { + "message": "Skriv inn din personlige e-post til Bitwarden sin familier" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Hvis du forlater eller fjernes fra sponsor organisasjonen, vil din familieplan utløpe etter utløpet av faktureringsperioden." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Godta tilbudet til en eksisterende organisasjon eller opprett en ny Familie-organisasjon." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Du har blitt tilbudt en gratis Bitwarden Familier Planlegg-organisasjon. For å fortsette må du logge inn på kontoen som mottok tilbudet." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Tilbudet kan ikke godtas. Vennligst send tilbuds-e-posten fra din virksomhetskonto, og forsøk igen." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Kan ikke godta tilbudet. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Aksepter gratis Bitwarden Familier" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Gratis Bitwarden Familier-tilbud er innløst" + }, + "redeemed": { + "message": "Innløst" + }, + "redeemedAccount": { + "message": "Konto innløst" + }, + "revokeAccount": { + "message": "Opphev konto $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Send sponsorat-e-post til $NAME$ sponsorat på nytt", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Gratis Familier-abonnement" + }, + "redeemNow": { + "message": "Løs inn nå" + }, + "recipient": { + "message": "Mottaker" + }, + "removeSponsorship": { + "message": "Fjern sponsorat" + }, + "removeSponsorshipConfirmation": { + "message": "Etter å ha fjernet en sponsor, vil du være ansvarlig for dette abonnementet og relaterte fakturaer. Er du sikker på at du vil fortsette?" + }, + "sponsorshipCreated": { + "message": "Sponsor fjernet" + }, + "revoke": { + "message": "Tilbakekall" + }, + "emailSent": { + "message": "E-post sendt" + }, + "revokeSponsorshipConfirmation": { + "message": "Etter at kontoen er fjernet, vil Familier-organisasjonens eier bli ansvarlig for dette abonnementet og relaterede fakturaer. Er du sikker på at du vil fortsette?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsor fjernet" + }, + "ssoKeyConnectorUnavailable": { + "message": "Kan ikke nå nøkkelkontakt. Prøv igjen senere." + }, + "keyConnectorUrl": { + "message": "Tast Connector URL" + }, + "sendVerificationCode": { + "message": "Send en bekreftelseskode til E-postadressen din" + }, + "sendCode": { + "message": "Send kode" + }, + "codeSent": { + "message": "Kode sendt" + }, + "verificationCode": { + "message": "Verifiseringskode" + }, + "confirmIdentity": { + "message": "Bekreft identiteten din for å fortsette." + }, + "verificationCodeRequired": { + "message": "En verifiseringskode er påkrevd." + }, + "invalidVerificationCode": { + "message": "Ugyldig bekreftelseskode" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ bruker SSO med en selvdrevet nøkkelserver. Et hovedpassord er ikke lenger nødvendig for å logge inn for medlemmer av denne organisasjonen.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Forlat organisasjonen" + }, + "removeMasterPassword": { + "message": "Fjern hovedpassord" + }, + "removedMasterPassword": { + "message": "Hovedpassordet er fjernet." + }, + "allowSso": { + "message": "Tillat SSO-autentisering" + }, + "allowSsoDesc": { + "message": "Når du er konfigurert, vil konfigurasjonen din bli lagret, og medlemmer vil kunne godkjenne med deres legitimasjon fra leverandøren." + }, + "ssoPolicyHelpStart": { + "message": "Skru på", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO godkjenningspolicy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "for å få alle medlemmer til å logge inn med SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO-autentisering og Enslig organisasjons politikk er nødvendig for å sette opp nøkkel Connector dekryptering." + }, + "memberDecryptionOption": { + "message": "Medlem dekrypteringsalternativer" + }, + "memberDecryptionPassDesc": { + "message": "Når de er autentisert, vil medlemmer dekryptere hvelvdataene sine ved å bruke hovedpassordene sine." + }, + "keyConnector": { + "message": "Nøkkel Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Koble innlogging med SSO til din selvbetjente dekrypteringsnøkkelserver. Bruk av dette valget vil ikke medlemmer trenge å bruke Master Passwords for å dekryptere hvelvdataene. Kontakt Bitwarden Support for å lage hjelp." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Logg inn med SSO og Key Connector Decryption\" er aktivert. Denne policyen gjelder bare for eiere og administratorer." + }, + "enabledSso": { + "message": "Skrudde på SSO" + }, + "disabledSso": { + "message": "Skrudde av SSO" + }, + "enabledKeyConnector": { + "message": "Key Connector aktivert" + }, + "disabledKeyConnector": { + "message": "Key Connector deaktivert" + }, + "keyConnectorWarning": { + "message": "Når medlemmer begynner å bruke Key Connector, kan ikke organisasjonen din gå tilbake til hovedpassord-dekryptering. Fortsett kun dersom du er fortrolig med å implementere og administrere en nøkkelserver." + }, + "migratedKeyConnector": { + "message": "Migrert til Key Connector" + }, + "paymentSponsored": { + "message": "Angi en betalingsmetode som skal knyttes til organisationen. Ta det med ro, vi vil ikke belaste deg med mindre du velger ytterligere funksjoner, eller at ditt sponsorat går ut. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "Sponsortilbuddet er utgått. Du kan slette organisasjonen du har opprettet for at unngå belastning ved utgangen av din 7-dagers prøveperiode. Ellers kan du lukke denne meldingen for å beholde organisasjonen og påta deg faktureringsansvaret." + }, + "newFamiliesOrganization": { + "message": "Ny Familier-organisation" + }, + "acceptOffer": { + "message": "Aksepter tilbudet" + }, + "sponsoringOrg": { + "message": "Sponsende organisasjon" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Suksess! Key Connector nådd." + }, + "keyConnectorTestFail": { + "message": "Kan ikke nå Key Connector. Sjekk URL." + }, + "sponsorshipTokenHasExpired": { + "message": "Sponsoratet er utgått." + }, + "freeWithSponsorship": { + "message": "GRATIS med sponsorat" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ felt trenger din oppmerksomhet.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 felt ovenfor trenger din oppmerksomhet." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ er obligatorisk.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "obligatorisk" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Kreves hvis enhets-ID ikke er en URL." + }, + "openIdOptionalCustomizations": { + "message": "Valgfrie tilpasninger" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Avskill flere med komma." + }, + "sessionTimeout": { + "message": "Økten ble tidsavbrutt. Vennligst gå tilbake og prøv å logge inn på nytt." + }, + "exportingPersonalVaultTitle": { + "message": "Eksporterer personlig hvelv" + }, + "exportingOrganizationVaultTitle": { + "message": "Eksporterer organisasjonshvelv" + }, + "exportingPersonalVaultDescription": { + "message": "Bare de personlige hvelvets gjenstandene som er knyttet til $EMAIL$ vil bli eksportert. Organisasjonshvelvets gjenstander vil ikke bli inkludert.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Bare organisasjonens hvelv knyttet til $ORGANIZATION$ vil bli eksportert. Personlige hvelvelementer og gjenstander fra andre organisasjoner vil ikke bli inkludert.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Tilbake til rapporter" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "Hva vil du generere?" + }, + "passwordType": { + "message": "Passordtype" + }, + "regenerateUsername": { + "message": "Regenerer Brukernavn" + }, + "generateUsername": { + "message": "Generer brukernavn" + }, + "usernameType": { + "message": "Brukernavntype" + }, + "plusAddressedEmail": { + "message": "Pluss-adressert e-post", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Bruk e-posttilbyderens sub-adresseringsmuligheter." + }, + "catchallEmail": { + "message": "Catch-all e-post" + }, + "catchallEmailDesc": { + "message": "Bruk domenets konfigurerte catch-all innboks." + }, + "random": { + "message": "Vilkårlig" + }, + "randomWord": { + "message": "Vilkårlig ord" + }, + "service": { + "message": "Tjeneste" + } +} diff --git a/apps/web/src/locales/nl/messages.json b/apps/web/src/locales/nl/messages.json new file mode 100644 index 0000000000..5a01345ba3 --- /dev/null +++ b/apps/web/src/locales/nl/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Webkluis", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Van welke categorie is dit item?" + }, + "name": { + "message": "Naam" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Nieuwe URI" + }, + "username": { + "message": "Gebruikersnaam" + }, + "password": { + "message": "Wachtwoord" + }, + "newPassword": { + "message": "Nieuw wachtwoord" + }, + "passphrase": { + "message": "Wachtwoordzin" + }, + "notes": { + "message": "Notities" + }, + "customFields": { + "message": "Aangepaste velden" + }, + "cardholderName": { + "message": "Naam kaarthouder" + }, + "number": { + "message": "Kaartnummer" + }, + "brand": { + "message": "Merk" + }, + "expiration": { + "message": "Vervaldatum" + }, + "securityCode": { + "message": "Beveiligingscode (CVV)" + }, + "identityName": { + "message": "Identiteitsnaam" + }, + "company": { + "message": "Bedrijf" + }, + "ssn": { + "message": "Burgerservicenummer" + }, + "passportNumber": { + "message": "Paspoortnummer" + }, + "licenseNumber": { + "message": "Rijbewijsnummer" + }, + "email": { + "message": "E-mailadres" + }, + "phone": { + "message": "Telefoonnummer" + }, + "january": { + "message": "januari" + }, + "february": { + "message": "februari" + }, + "march": { + "message": "maart" + }, + "april": { + "message": "april" + }, + "may": { + "message": "mei" + }, + "june": { + "message": "juni" + }, + "july": { + "message": "juli" + }, + "august": { + "message": "augustus" + }, + "september": { + "message": "september" + }, + "october": { + "message": "oktober" + }, + "november": { + "message": "november" + }, + "december": { + "message": "december" + }, + "title": { + "message": "Aanhef" + }, + "mr": { + "message": "Dhr." + }, + "mrs": { + "message": "Mevr." + }, + "ms": { + "message": "Mej." + }, + "dr": { + "message": "Dr." + }, + "expirationMonth": { + "message": "Vervalmaand" + }, + "expirationYear": { + "message": "Vervaljaar" + }, + "authenticatorKeyTotp": { + "message": "Authenticatiecode (TOTP)" + }, + "folder": { + "message": "Map" + }, + "newCustomField": { + "message": "Nieuw aangepast veld" + }, + "value": { + "message": "Waarde" + }, + "dragToSort": { + "message": "Slepen om te sorteren" + }, + "cfTypeText": { + "message": "Tekst" + }, + "cfTypeHidden": { + "message": "Verborgen" + }, + "cfTypeBoolean": { + "message": "Boolean" + }, + "cfTypeLinked": { + "message": "Gekoppeld", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Verwijderen" + }, + "unassigned": { + "message": "Niet toegewezen" + }, + "noneFolder": { + "message": "Geen map", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Map toevoegen" + }, + "editFolder": { + "message": "Map bewerken" + }, + "baseDomain": { + "message": "Basisdomein", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domeinnaam", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Hostnaam", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exact" + }, + "startsWith": { + "message": "Begint met" + }, + "regEx": { + "message": "Reguliere expressie", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Overeenkomstdetectie", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Standaard overeenkomstdetectie", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Nooit" + }, + "toggleVisibility": { + "message": "Zichtbaarheid wisselen" + }, + "toggleCollapse": { + "message": "Inklappen/uitklappen", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Wachtwoord genereren" + }, + "checkPassword": { + "message": "Controleer of wachtwoord is gelekt." + }, + "passwordExposed": { + "message": "Dit wachtwoord is $VALUE$ keer gelekt. Je zou het moeten veranderen.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Dit wachtwoord is niet gevonden in de bekende datalekken. Het kan veilig gebruikt worden." + }, + "save": { + "message": "Opslaan" + }, + "cancel": { + "message": "Annuleren" + }, + "canceled": { + "message": "Geannuleerd" + }, + "close": { + "message": "Sluiten" + }, + "delete": { + "message": "Verwijderen" + }, + "favorite": { + "message": "Favoriet" + }, + "unfavorite": { + "message": "Verwijderen uit favorieten" + }, + "edit": { + "message": "Bewerken" + }, + "searchCollection": { + "message": "Verzameling doorzoeken" + }, + "searchFolder": { + "message": "Map doorzoeken" + }, + "searchFavorites": { + "message": "Favorieten doorzoeken" + }, + "searchType": { + "message": "Categorie doorzoeken", + "description": "Search item type" + }, + "searchVault": { + "message": "Kluis doorzoeken" + }, + "allItems": { + "message": "Alle Items" + }, + "favorites": { + "message": "Favorieten" + }, + "types": { + "message": "Categorieën" + }, + "typeLogin": { + "message": "Login" + }, + "typeCard": { + "message": "Kaart" + }, + "typeIdentity": { + "message": "Identiteit" + }, + "typeSecureNote": { + "message": "Veilige notitie" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Kaarten" + }, + "typeIdentityPlural": { + "message": "Identiteiten" + }, + "typeSecureNotePlural": { + "message": "Beveiligde notities" + }, + "folders": { + "message": "Mappen" + }, + "collections": { + "message": "Verzamelingen" + }, + "firstName": { + "message": "Voornaam" + }, + "middleName": { + "message": "Tweede naam" + }, + "lastName": { + "message": "Achternaam" + }, + "fullName": { + "message": "Volledige naam" + }, + "address1": { + "message": "Adres 1" + }, + "address2": { + "message": "Adres 2" + }, + "address3": { + "message": "Adres 3" + }, + "cityTown": { + "message": "Stad / gemeente" + }, + "stateProvince": { + "message": "Staat / provincie" + }, + "zipPostalCode": { + "message": "Postcode" + }, + "country": { + "message": "Land" + }, + "shared": { + "message": "Gedeeld" + }, + "attachments": { + "message": "Bijlagen" + }, + "select": { + "message": "Selecteren" + }, + "addItem": { + "message": "Item toevoegen" + }, + "editItem": { + "message": "Item bewerken" + }, + "viewItem": { + "message": "Item weergeven" + }, + "ex": { + "message": "bijv.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Overig" + }, + "share": { + "message": "Delen" + }, + "moveToOrganization": { + "message": "Naar organisatie verplaatsen" + }, + "valueCopied": { + "message": "$VALUE$ gekopieerd", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Waarde kopiëren", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Wachtwoord kopiëren", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Gebruikersnaam kopiëren", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Nummer Kopiëren", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Beveiligingscode kopiëren", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "URI kopiëren", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Mijn kluis" + }, + "vault": { + "message": "Kluis" + }, + "moveSelectedToOrg": { + "message": "Selectie naar organisatie verplaatsen" + }, + "deleteSelected": { + "message": "Selectie verwijderen" + }, + "moveSelected": { + "message": "Selectie verplaatsen" + }, + "selectAll": { + "message": "Alles selecteren" + }, + "unselectAll": { + "message": "Alles deselecteren" + }, + "launch": { + "message": "Starten" + }, + "newAttachment": { + "message": "Nieuwe bijlage toevoegen" + }, + "deletedAttachment": { + "message": "Bijlage is verwijderd" + }, + "deleteAttachmentConfirmation": { + "message": "Weet je zeker dat je deze bijlage wilt verwijderen?" + }, + "attachmentSaved": { + "message": "De bijlage is opgeslagen." + }, + "file": { + "message": "Bestand" + }, + "selectFile": { + "message": "Selecteer een bestand." + }, + "maxFileSize": { + "message": "Maximale bestandsgrootte is 500 MB." + }, + "updateKey": { + "message": "Je kunt deze functie pas gebruiken als je je encryptiesleutel bijwerkt." + }, + "addedItem": { + "message": "Item is toegevoegd" + }, + "editedItem": { + "message": "Item is bewerkt" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ verplaatst naar $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Geselecteerde items verplaatst naar $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Item verwijderen" + }, + "deleteFolder": { + "message": "Map verwijderen" + }, + "deleteAttachment": { + "message": "Bijlage verwijderen" + }, + "deleteItemConfirmation": { + "message": "Weet je zeker dat je dit item wilt verwijderen?" + }, + "deletedItem": { + "message": "Item is verwijderd" + }, + "deletedItems": { + "message": "Items zijn verwijderd" + }, + "movedItems": { + "message": "Item is verplaatst" + }, + "overwritePasswordConfirmation": { + "message": "Weet je zeker dat je het huidige wachtwoord wilt overschrijven?" + }, + "editedFolder": { + "message": "Map is bewerkt" + }, + "addedFolder": { + "message": "Map is toegevoegd" + }, + "deleteFolderConfirmation": { + "message": "Weet je zeker dat je deze map wilt verwijderen?" + }, + "deletedFolder": { + "message": "Map is verwijderd" + }, + "loggedOut": { + "message": "Uitgelogd" + }, + "loginExpired": { + "message": "Je inlogsessie is verlopen." + }, + "logOutConfirmation": { + "message": "Weet je zeker dat je wilt uitloggen?" + }, + "logOut": { + "message": "Uitloggen" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Ja" + }, + "no": { + "message": "Nee" + }, + "loginOrCreateNewAccount": { + "message": "Log in of maak een nieuw account aan om toegang te krijgen tot je beveiligde kluis." + }, + "createAccount": { + "message": "Account aanmaken" + }, + "logIn": { + "message": "Inloggen" + }, + "submit": { + "message": "Versturen" + }, + "emailAddressDesc": { + "message": "Je gebruikt je e-mailadres om in te loggen." + }, + "yourName": { + "message": "Jouw naam" + }, + "yourNameDesc": { + "message": "Hoe moeten we je noemen?" + }, + "masterPass": { + "message": "Hoofdwachtwoord" + }, + "masterPassDesc": { + "message": "Het hoofdwachtwoord is het wachtwoord waarmee je toegang krijgt tot je beveiligde kluis. Het is belangrijk dat je het hoofdwachtwoord niet vergeet, want er is geen manier om het te herstellen." + }, + "masterPassHintDesc": { + "message": "Een hoofdwachtwoordhint kan je helpen je wachtwoord te herinneren als je het vergeten bent." + }, + "reTypeMasterPass": { + "message": "Hoofdwachtwoord opnieuw invoeren" + }, + "masterPassHint": { + "message": "Hoofdwachtwoordhint (optioneel)" + }, + "masterPassHintLabel": { + "message": "Hoofdwachtwoordhint" + }, + "settings": { + "message": "Instellingen" + }, + "passwordHint": { + "message": "Wachtwoordhint" + }, + "enterEmailToGetHint": { + "message": "Voer het e-mailadres van je account in om je hoofdwachtwoordhint te ontvangen." + }, + "getMasterPasswordHint": { + "message": "Hoofdwachtwoordhint opvragen" + }, + "emailRequired": { + "message": "E-mailadres is vereist." + }, + "invalidEmail": { + "message": "Ongeldig e-mailadres." + }, + "masterPassRequired": { + "message": "Hoofdwachtwoord is vereist." + }, + "masterPassLength": { + "message": "Het hoofdwachtwoord moet minimaal 8 tekens lang zijn." + }, + "masterPassDoesntMatch": { + "message": "De hoofdwachtwoorden komen niet overeen." + }, + "newAccountCreated": { + "message": "Je nieuwe account is aangemaakt! Je kunt nu inloggen." + }, + "masterPassSent": { + "message": "We hebben je een e-mail gestuurd met je hoofdwachtwoordhint." + }, + "unexpectedError": { + "message": "Er is een onverwachte fout opgetreden." + }, + "emailAddress": { + "message": "E-mailadres" + }, + "yourVaultIsLocked": { + "message": "Je kluis is vergrendeld. Voer je hoofdwachtwoord in om door te gaan." + }, + "unlock": { + "message": "Ontgrendelen" + }, + "loggedInAsEmailOn": { + "message": "Aangemeld als $EMAIL$ op $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Ongeldig hoofdwachtwoord" + }, + "lockNow": { + "message": "Nu vergrendelen" + }, + "noItemsInList": { + "message": "Er zijn geen items om weer te geven." + }, + "noCollectionsInList": { + "message": "Er zijn geen verzamelingen om weer te geven." + }, + "noGroupsInList": { + "message": "Er zijn geen groepen om weer te geven." + }, + "noUsersInList": { + "message": "Er zijn geen gebruikers om weer te geven." + }, + "noEventsInList": { + "message": "Er zijn geen gebeurtenissen om weer te geven." + }, + "newOrganization": { + "message": "Nieuwe organisatie" + }, + "noOrganizationsList": { + "message": "Je behoort niet tot een organisatie. Via organisaties deel je je items veilig met andere gebruikers." + }, + "versionNumber": { + "message": "Versie $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Voer de 6-cijferige verificatiecode uit je authenticatie-app in." + }, + "enterVerificationCodeEmail": { + "message": "Voer de 6-cijferige verificatiecode in die via e-mail is verstuurd naar $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "E-mail met verificatiecode verzonden naar $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Mijn gegevens onthouden" + }, + "sendVerificationCodeEmailAgain": { + "message": "E-mail met verificatiecode opnieuw versturen" + }, + "useAnotherTwoStepMethod": { + "message": "Gebruik een andere methode voor tweestapsaanmelding" + }, + "insertYubiKey": { + "message": "Plaats je YubiKey in de USB-poort van je computer en druk op de knop." + }, + "insertU2f": { + "message": "Steek je beveilingssleutel in de USB-poort van je computer. Als het een knop heeft, druk deze dan in." + }, + "loginUnavailable": { + "message": "Login niet beschikbaar" + }, + "noTwoStepProviders": { + "message": "Dit account heeft tweestapsaanmelding ingeschakeld, maar deze webbrowser ondersteunt geen van de geconfigureerde aanbieders." + }, + "noTwoStepProviders2": { + "message": "Gebruik een ondersteunde webbrowser (zoals Chrome) en/of voeg extra aanbieders toe die beter worden ondersteund in webbrowsers (zoals een authenticator-app)." + }, + "twoStepOptions": { + "message": "Opties voor tweestapsaanmelding" + }, + "recoveryCodeDesc": { + "message": "Ben je de toegang tot al je tweestapsaanbieders verloren? Gebruik dan je herstelcode om alle tweestapsaanbieders op je account uit te schakelen." + }, + "recoveryCodeTitle": { + "message": "Herstelcode" + }, + "authenticatorAppTitle": { + "message": "Authenticatie-app" + }, + "authenticatorAppDesc": { + "message": "Gebruik een authenticatie-app (zoals Authy of Google Authenticator) om tijdgebaseerde authenticatiecodes te genereren.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP-beveiligingssleutel" + }, + "yubiKeyDesc": { + "message": "Gebruik een YubiKey om toegang te krijgen tot je account. Werkt met YubiKey 4, 4 Nano, 4C en Neo-apparaten." + }, + "duoDesc": { + "message": "Verifieer met Duo Security middels de Duo Mobile-app, sms, spraakoproep of een U2F-beveiligingssleutel.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verifieer met Duo Security voor jouw organisatie middels de Duo Mobile-app, sms, spraakoproep of een U2F-beveiligingssleutel.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Gebruik een FIDO U2F-beveiligingssleutel om toegang te krijgen tot je account." + }, + "u2fTitle": { + "message": "FIDO U2F-beveiligingssleutel" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Gebruik een WebAuthn-beveilingssleutel om toegang te krijgen tot je account." + }, + "webAuthnMigrated": { + "message": "(Gemigreerd van FIDO)" + }, + "emailTitle": { + "message": "E-mailadres" + }, + "emailDesc": { + "message": "Je ontvangt verificatiecodes via e-mail." + }, + "continue": { + "message": "Doorgaan" + }, + "organization": { + "message": "Organisatie" + }, + "organizations": { + "message": "Organisaties" + }, + "moveToOrgDesc": { + "message": "Kies een organisatie waarnaar je dit item wilt verplaatsen. Door het verplaatsen krijgt de organisatie de eigendomsrechten van het item. Je bent niet langer de directe eigenaar meer van het item als het is verplaatst." + }, + "moveManyToOrgDesc": { + "message": "Kies een organisatie waarnaar je deze items wilt verplaatsen. Door het verplaatsen krijgt de organisatie de eigendomsrechten van deze items. Je bent niet langer de directe eigenaar meer van deze items als ze zijn verplaatst." + }, + "collectionsDesc": { + "message": "Wijzig de verzamelingen waarmee dit item gedeeld is. Alleen organisatiegebruikers met toegang tot deze verzamelingen kunnen dit item inzien." + }, + "deleteSelectedItemsDesc": { + "message": "Je hebt $COUNT$ item(s) geselecteerd om te verwijderen. Weet je zeker dat je al deze items wilt verwijderen?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Kies een map waar je de $COUNT$ geselecteerde item(s) heen wilt verplaatsen.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Je hebt $COUNT$ item(s) geselecteerd. Je kunt $MOVEABLE_COUNT$ verplaatsen naar een organisatie, $NONMOVEABLE_COUNT$ niet.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Verificatiecode (TOTP)" + }, + "copyVerificationCode": { + "message": "Verificatiecode kopiëren" + }, + "warning": { + "message": "Waarschuwing" + }, + "confirmVaultExport": { + "message": "Kluisexport bevestigen" + }, + "exportWarningDesc": { + "message": "Deze export bevat jouw kluisgegevens in een niet-versleutelde opmaak. Je moet het geëxporteerde bestand niet opslaan of verzenden over onbeveiligde kanalen (zoals e-mail). Verwijder het exportbestand direct na gebruik." + }, + "encExportKeyWarningDesc": { + "message": "Deze export versleutelt je gegevens met de encryptiesleutel van je account. Als je je encryptiesleutel verandert moet je opnieuw exporteren, omdat je deze export dan niet meer kunt ontcijferen." + }, + "encExportAccountWarningDesc": { + "message": "Encryptiesleutels zijn uniek voor elk Bitwarden-gebruikersaccount, je kun kunt een versleutelde niet in een ander account importeren." + }, + "export": { + "message": "Exporteren" + }, + "exportVault": { + "message": "Kluis exporteren" + }, + "fileFormat": { + "message": "Bestandsindeling" + }, + "exportSuccess": { + "message": "Je kluisgegevens zijn geëxporteerd." + }, + "passwordGenerator": { + "message": "Wachtwoordgenerator" + }, + "minComplexityScore": { + "message": "Minimale complexiteitsscore" + }, + "minNumbers": { + "message": "Minimum aantal cijfers" + }, + "minSpecial": { + "message": "Minimum aantal speciale tekens", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Dubbelzinnige tekens vermijden" + }, + "regeneratePassword": { + "message": "Opnieuw genereren" + }, + "length": { + "message": "Lengte" + }, + "numWords": { + "message": "Aantal woorden" + }, + "wordSeparator": { + "message": "Scheidingsteken" + }, + "capitalize": { + "message": "Beginhoofdletters", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Cijfer toevoegen" + }, + "passwordHistory": { + "message": "Geschiedenis" + }, + "noPasswordsInList": { + "message": "Er zijn geen wachtwoorden om weer te geven." + }, + "clear": { + "message": "Wissen", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Account is bijgewerkt" + }, + "changeEmail": { + "message": "E-mailadres wijzigen" + }, + "changeEmailTwoFactorWarning": { + "message": "Doorgaan zal het e-mailadres van je account wijzigen. Het verander het e-mailadres dat wordt gebruikt voor tweestapsaanmelding niet. Je kunt dit e-mailadres wijzigen in de tweestapsaanmeldingsinstellingen." + }, + "newEmail": { + "message": "Nieuw e-mailadres" + }, + "code": { + "message": "Code" + }, + "changeEmailDesc": { + "message": "We hebben een verificatiecode naar $EMAIL$ gestuurd. Controleer je mail voor de code en vul deze hieronder in om je e-mailadres daadwerkelijk te wijzigen.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Doorgaan zal je huidige sessie uitloggen, waarna je opnieuw moet inloggen. Actieve sessies op andere apparaten blijven mogelijk nog een uur actief." + }, + "emailChanged": { + "message": "E-mailadres gewijzigd" + }, + "logBackIn": { + "message": "Log opnieuw in." + }, + "logBackInOthersToo": { + "message": "Svp opnieuw inloggen. Als je andere Bitwarden-applicaties gebruikt, dan moet je daar ook uit- en inloggen." + }, + "changeMasterPassword": { + "message": "Hoofdwachtwoord wijzigen" + }, + "masterPasswordChanged": { + "message": "Hoofdwachtwoord gewijzigd" + }, + "currentMasterPass": { + "message": "Huidig hoofdwachtwoord" + }, + "newMasterPass": { + "message": "Nieuw hoofdwachtwoord" + }, + "confirmNewMasterPass": { + "message": "Nieuw hoofdwachtwoord bevestigen" + }, + "encKeySettings": { + "message": "Instellingen encryptiesleutel" + }, + "kdfAlgorithm": { + "message": "KDF-algortime" + }, + "kdfIterations": { + "message": "KDF-iteraties" + }, + "kdfIterationsDesc": { + "message": "Hogere KDF-iteraties beschermen je hoofdwachtwoord tegen brute-force aanvallen. Kies minimaal voor $VALUE$.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Je KDF-iteraties te hoog instellen leidt tot een vertraging bij het inloggen (en ontgrendelen) van Bitwarden op apparaten met langzamere processoren. We raden aan de waarde in stappen van $INCREMENT$ te verhogen en steeds al je apparaten te testen.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "KDF wijzigen" + }, + "encKeySettingsChanged": { + "message": "Instellingen encryptiesleutel zijn gewijzigd" + }, + "dangerZone": { + "message": "Gevarenzone" + }, + "dangerZoneDesc": { + "message": "Waarschuwing - deze acties zijn niet terug te draaien!" + }, + "deauthorizeSessions": { + "message": "Sessie-autorisaties intrekken" + }, + "deauthorizeSessionsDesc": { + "message": "Bezorgd dat je account op een ander apparaat is ingelogd? Hieronder kun je de autorisatie van alle computers of apparaten die je eerder hebt gebruikt verwijderen. Deze beveiligingsstap is aanbevolen als een openbare computer hebt gebruikt of je wachtwoord per ongeluk hebt opgeslagen op een apparaat dat niet van jou is. Deze stap wist ook alle eerder onthouden tweestapsaanmeldsessies." + }, + "deauthorizeSessionsWarning": { + "message": "Doorgaan zal je huidige sessie uitloggen, waarna je opnieuw moet inloggen. Je moet ook je tweestapsaanmelding opnieuw doorlopen, als die is ingeschakeld. Actieve sessies op andere apparaten blijven mogelijk nog een uur actief." + }, + "sessionsDeauthorized": { + "message": "Autorisatie van alle sessies ingetrokken" + }, + "purgeVault": { + "message": "Kluis verwijderen" + }, + "purgedOrganizationVault": { + "message": "Organisatiekluis verwijderd." + }, + "vaultAccessedByProvider": { + "message": "Kluis benaderd door provider." + }, + "purgeVaultDesc": { + "message": "Ga hieronder verder om alle items en mappen in je kluis te verwijderen. Items die behoren tot een organisatie waarmee je deelt, worden niet verwijderd." + }, + "purgeOrgVaultDesc": { + "message": "Ga hieronder verder om alle items in de organisatiekluis te verwijderen." + }, + "purgeVaultWarning": { + "message": "Het verwijderen van je webkluis is definitief. Je kunt het niet ongedaan maken." + }, + "vaultPurged": { + "message": "Je kluisgegevens zijn verwijderd." + }, + "deleteAccount": { + "message": "Account verwijderen" + }, + "deleteAccountDesc": { + "message": "Ga hieronder verder om je account en alle bijbehorende gegevens te verwijderen." + }, + "deleteAccountWarning": { + "message": "Het verwijderen van je account is definitief. Je kunt dit niet ongedaan maken." + }, + "accountDeleted": { + "message": "Account verwijderd" + }, + "accountDeletedDesc": { + "message": "Je account is afgesloten en alle bijbehorende gegevens zijn verwijderd." + }, + "myAccount": { + "message": "Mijn account" + }, + "tools": { + "message": "Hulpmiddelen" + }, + "importData": { + "message": "Gegevens importeren" + }, + "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." + }, + "importSuccess": { + "message": "De gegevens zijn in je kluis geïmporteerd." + }, + "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." + }, + "selectFormat": { + "message": "Selecteer het formaat van het importbestand" + }, + "selectImportFile": { + "message": "Kies het importbestand" + }, + "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)" + } + } + }, + "options": { + "message": "Opties" + }, + "optionsDesc": { + "message": "Pas je ervaring met de webkluis aan." + }, + "optionsUpdated": { + "message": "Opties bijgewerkt" + }, + "language": { + "message": "Taal" + }, + "languageDesc": { + "message": "De taal van de webkluis aanpassen." + }, + "disableIcons": { + "message": "Websitepictogrammen uitschakelen" + }, + "disableIconsDesc": { + "message": "Websitepictogrammen geven een herkenbare afbeelding naast elk item in je kluis." + }, + "enableGravatars": { + "message": "Gravatars activeren", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Gebruik avatar-afbeeldingen van gravatar.com." + }, + "enableFullWidth": { + "message": "Weergave op volle breedte inschakelen", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Laat de webkluis de volledige breedte van het browservenster gebruiken." + }, + "default": { + "message": "Standaard" + }, + "domainRules": { + "message": "Domeinregels" + }, + "domainRulesDesc": { + "message": "Als je dezelfde inloggegevens over verschillende websitedomeinen gebruikt, kun je de website als \"equivalent\" kenmerken. \"Globale\" domeinen zijn al voor je aangemaakt door Bitwarden." + }, + "globalEqDomains": { + "message": "Globale equivalente domeinen" + }, + "customEqDomains": { + "message": "Persoonlijke equivalente domeinen" + }, + "exclude": { + "message": "Uitsluiten" + }, + "include": { + "message": "Insluiten" + }, + "customize": { + "message": "Personaliseren" + }, + "newCustomDomain": { + "message": "Nieuw gepersonaliseerd domein" + }, + "newCustomDomainDesc": { + "message": "Voer een lijst in met domeinen door komma's. Alleen basisdomeinen zijn toegestaan. Voer geen subdomeinen in. Gebruik bijvoorbeeld \"google.com\" in plaats van \"www.google.com\". Je kunt ook \"androidapp://package.name\" invoeren om een Android-app aan andere websitedomeinen te koppelen." + }, + "customDomainX": { + "message": "Gepersonaliseerd domein $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domeinen bijgewerkt" + }, + "twoStepLogin": { + "message": "Tweestapsaanmelding" + }, + "twoStepLoginDesc": { + "message": "Beveilig je account door een extra stap te vereisen bij het inloggen." + }, + "twoStepLoginOrganizationDesc": { + "message": "Vereis tweestapsaanmelding voor de gebruikers van je organisatie door aanbieders op organisatieniveau in te stellen." + }, + "twoStepLoginRecoveryWarning": { + "message": "Door aanmelden in twee stappen in te schakelen, kun je jezelf definitief buitensluiten van je Bitwarden-account. Een herstelcode geeft je toegang tot je account in het geval dat je je normale tweestapsaanmelding niet meer kunt gebruiken (bijv. als je je apparaat verliest). De Bitwarden-klantondersteuning kan je niet helpen als je de toegang tot je account verliest. We raden je met klem aan de herstelcode op te schrijven of af te drukken en op een veilige plaats te bewaren." + }, + "viewRecoveryCode": { + "message": "Herstelcode weergeven" + }, + "providers": { + "message": "Aanbieders", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Inschakelen" + }, + "enabled": { + "message": "Ingeschakeld" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium-abonnement" + }, + "premiumRequired": { + "message": "Premium is vereist" + }, + "premiumRequiredDesc": { + "message": "Je hebt een Premium-abonnement nodig om deze functie te gebruiken." + }, + "youHavePremiumAccess": { + "message": "Je hebt Premium-toegang" + }, + "alreadyPremiumFromOrg": { + "message": "Je hebt al toegang tot Premium-functionaliteit, via een organisatie waar je lid van bent." + }, + "manage": { + "message": "Beheren" + }, + "disable": { + "message": "Uitschakelen" + }, + "twoStepLoginProviderEnabled": { + "message": "Deze tweestapsaanmeldingsaanbieder is geactiveerd voor je account." + }, + "twoStepLoginAuthDesc": { + "message": "Vul je hoofdwachtwoord in om je tweestapsaanmeldingsinstellingen te wijzigen." + }, + "twoStepAuthenticatorDesc": { + "message": "Volg deze stappen om tweestapsaanmelding in te stellen met een authenticatie-app:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Download een tweestapsauthenticatie-app" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Een tweestapsauthenticatie app nodig? Download een van de volgende" + }, + "iosDevices": { + "message": "iOS-apparaten" + }, + "androidDevices": { + "message": "Android-apparaten" + }, + "windowsDevices": { + "message": "Windows-apparaten" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Deze apps zijn aanbevolen, maar andere authenticatie-apps werken ook." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scan deze QR-code met je authenticatie-app" + }, + "key": { + "message": "Sleutel" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Voer de 6-cijferige verificatiecode uit je authenticatie-app in" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "In het geval dat je het aan een ander apparaat moet toevoegen, is hieronder de QR-code (of sleutel) die je authenticatie-app nodig heeft." + }, + "twoStepDisableDesc": { + "message": "Weet je zeker dat je deze aanbieder van tweestapsaanmeldig wilt uitschakelen?" + }, + "twoStepDisabled": { + "message": "Tweestapsaanmeldingsaanbieder is uitgeschakeld." + }, + "twoFactorYubikeyAdd": { + "message": "Nieuwe YubiKey aan je account toevoegen" + }, + "twoFactorYubikeyPlugIn": { + "message": "Plaats de YubiKey in de USB-poort van je computer." + }, + "twoFactorYubikeySelectKey": { + "message": "Selecteer hieronder het eerste lege YubiKey-invoerveld." + }, + "twoFactorYubikeyTouchButton": { + "message": "Druk op de knop van de YubiKey." + }, + "twoFactorYubikeySaveForm": { + "message": "Formulier opslaan." + }, + "twoFactorYubikeyWarning": { + "message": "Vanwege platformbeperkingen kun je YubiKeys niet in alle Bitwarden-applicaties gebruiken. Stel een andere tweestapsaanmeldingsaanbieder in voor situaties waar YubiKeys niet gebruikt kunnen worden. De volgende platformen worden ondersteund:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Webkluis, desktop-applicatie, CLI en alle browser-extensies op een apparaat met een USB-poort welke YubiKey accepteert." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobiele apps op een apparaat met NFC of een USB-poort welke YubiKey accepteert." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F-sleutel $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn-sleutel $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC-ondersteuning" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Een van mijn sleutels ondersteunt NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Als een van je YubiKeys NFC ondersteunt (zoals een YubiKey NEO) dan word je op een mobiel apparaat met NFC gevraagd om deze te gebruiken." + }, + "yubikeysUpdated": { + "message": "YubiKeys bijgewerkt" + }, + "disableAllKeys": { + "message": "Alle sleutels uitschakelen" + }, + "twoFactorDuoDesc": { + "message": "Vul de informatie van de Bitwarden-applicatie van uw Duo Admin-scherm in." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integratiesleutel" + }, + "twoFactorDuoSecretKey": { + "message": "Geheime sleutel" + }, + "twoFactorDuoApiHostname": { + "message": "API-hostnaam" + }, + "twoFactorEmailDesc": { + "message": "Volg deze stappen voor het instellen van tweestapsaanmelding met e-mail:" + }, + "twoFactorEmailEnterEmail": { + "message": "Voer het e-mailadres in waar je de verificatiecodes op wilt ontvangen" + }, + "twoFactorEmailEnterCode": { + "message": "Voer de 6-cijferige verificatiecode uit de e-mail in" + }, + "sendEmail": { + "message": "E-mail versturen" + }, + "twoFactorU2fAdd": { + "message": "FIDO U2F-beveiligingssleutel aan je account toevoegen" + }, + "removeU2fConfirmation": { + "message": "Weet je zeker dat je deze beveiligingssleutel wilt verwijderen?" + }, + "twoFactorWebAuthnAdd": { + "message": "Voeg een WebAuthn-beveiligingssleutel toe aan je account" + }, + "readKey": { + "message": "Sleutel lezen" + }, + "keyCompromised": { + "message": "Sleutel is uitgelekt." + }, + "twoFactorU2fGiveName": { + "message": "Geef de beveiligingssleutel een beschrijvende naam om deze te identificeren." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Plaats de beveiligingssleutel in een USB-poort van je computer en klik \"Lees sleutel\"." + }, + "twoFactorU2fTouchButton": { + "message": "Als de beveiligingssleutel een knop heeft, druk deze dan in." + }, + "twoFactorU2fSaveForm": { + "message": "Formulier opslaan." + }, + "twoFactorU2fWarning": { + "message": "Vanwege platformbeperkingen kun je FIDO U2F niet in alle Bitwarden-applicaties gebruiken. Stel een andere tweestapsaanmeldingsaanbieder in voor situaties waar FIDO U2F niet gebruikt kan worden. De volgende platformen worden ondersteund:" + }, + "twoFactorU2fSupportWeb": { + "message": "Webkluis en browser-extensies op een desktop/laptop met browserondersteuning voor U2F (Chrome, Opera, Vivaldi of Firefox met FIDO U2F ingeschakeld)." + }, + "twoFactorU2fWaiting": { + "message": "Wachten tot je op de knop van de beveiligingssleutel hebt gedrukt" + }, + "twoFactorU2fClickSave": { + "message": "Klik hieronder op \"Opslaan\" voor het instellen van deze beveiligingssleutel als tweestapsaanmeldingsmethode." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Er was een probleem met het lezen van de beveiligingssleutel. Probeer het nogmaals." + }, + "twoFactorWebAuthnWarning": { + "message": "Vanwege platformbeperkingen kan WebAuthn niet in alle Bitwarden applicaties gebruikt worden. Stel een andere tweestapsaanmeldingsaanbieder in zodat je je account kunt benaderen wanneer WebAuthn niet beschikbaar is. De volgende platformen worden ondersteund:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Webkluis en browser-extensies op een desktop/laptop met een browser met ondersteuning voor WebAuthn (Chrome, Opera, Vivaldi of Firefox met FIDO U2F ingeschakeld)." + }, + "twoFactorRecoveryYourCode": { + "message": "Je herstelcode voor Bitwarden-tweestapsaanmelding" + }, + "twoFactorRecoveryNoCode": { + "message": "Je hebt nog geen tweestapsaanmeldingsaanbieders ingeschakeld. Nadat je een tweestapsaanmeldingsaanbieder hebt ingeschakeld kun je hier je herstelcode vinden." + }, + "printCode": { + "message": "Code afdrukken", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Rapportages" + }, + "reportsDesc": { + "message": "Identificeer en sluit beveiligingsgaten in je online accounts door op onderstaande rapporten te klikken." + }, + "unsecuredWebsitesReport": { + "message": "Niet-beveiligde websites" + }, + "unsecuredWebsitesReportDesc": { + "message": "Onbeveiligde websites met http:// gebruiken kan gevaarlijk zijn. Als de website het ondersteunt, moet je deze altijd benaderen met behulp van https:// zodat je verbinding versleuteld is." + }, + "unsecuredWebsitesFound": { + "message": "Onveilige websites gevonden" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We hebben $COUNT$ items met onbeveiligde URIs in je kluis gevonden. Als de website het ondersteunt, moet je de URI naar https:// wijzigen.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Geen items in je kluis met onbeveiligde URIs." + }, + "inactive2faReport": { + "message": "Tweestapsaanmelding" + }, + "inactive2faReportDesc": { + "message": "Tweestapsaanmelding (2FA) is een belangrijke instelling die bijdraagt aan de beveiliging van je accounts. Als de website het ondersteunt, zou je altijd tweestapsaanmelding moeten gebruiken." + }, + "inactive2faFound": { + "message": "Logins zonder 2FA gevonden" + }, + "inactive2faFoundDesc": { + "message": "We hebben $COUNT$ website(s) in je kluis gevonden waar je (volgens 2fa.directory) nog tweestapsaanmelding kunt instellen. Om deze accounts beter te beschermen, zou je tweestapsaanmelding moeten inschakelen.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Er zijn geen websites in je kluis gevonden waarin tweestapsaanmelding ontbreekt." + }, + "instructions": { + "message": "Instructies" + }, + "exposedPasswordsReport": { + "message": "Gelekte wachtwoorden" + }, + "exposedPasswordsReportDesc": { + "message": "Gelekte wachtwoorden zijn wachtwoorden die zijn ontdekt in bekende datalekken die publiekelijk zijn vrijgegeven of door hackers op het dark web worden verkocht." + }, + "exposedPasswordsFound": { + "message": "Gelekte wachtwoorden gevonden" + }, + "exposedPasswordsFoundDesc": { + "message": "We hebben in je kluis $COUNT$ wachtwoorden gevonden die zijn gelekt. Je zou voor deze accounts een nieuw wachtwoord moeten instellen.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Er zijn geen items in je kluis die gelekte wachtwoorden gebruiken." + }, + "checkExposedPasswords": { + "message": "Controleer gelekte wachtwoorden" + }, + "exposedXTimes": { + "message": "$COUNT$ keer gelekt", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Zwakke wachtwoorden" + }, + "weakPasswordsReportDesc": { + "message": "Hackers en geautomatiseerde gereedschappen die wachtwoorden kraken kunnen zwakke wachtwoorden eenvoudig raden. De wachtwoordgenerator van Bitwarden helpt je bij het maken van sterke wachtwoorden." + }, + "weakPasswordsFound": { + "message": "Zwakke wachtwoorden gevonden" + }, + "weakPasswordsFoundDesc": { + "message": "We hebben $COUNT$ zwakke wachtwoorden in je kluis gevonden. Je zou ze moeten veranderen in sterke wachtwoorden.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Er zijn geen items met zwakke wachtwoorden in je kluis gevonden." + }, + "reusedPasswordsReport": { + "message": "Dubbele wachtwoorden" + }, + "reusedPasswordsReportDesc": { + "message": "Als hackers wachtwoorden stelen bij een dienst die je gebruikt, kunnen zij met hetzelfde wachtwoord eenvoudig toegang krijgen tot meer van je online accounts. Je zou voor iedere dienst een uniek wachtwoord moeten gebruiken." + }, + "reusedPasswordsFound": { + "message": "Dubbele wachtwoorden gevonden" + }, + "reusedPasswordsFoundDesc": { + "message": "We hebben $COUNT$ dubbele wachtwoorden in je kluis gevonden. Je zou deze moeten veranderen in unieke wachtwoorden.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Er zijn in je kluis geen dubbele wachtwoorden gevonden." + }, + "reusedXTimes": { + "message": "$COUNT$ keer dubbel gebruikt", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Datalekken" + }, + "breachDesc": { + "message": "Een \"datalek\" is een incident waarbij de gegevens van een website zijn gestolen door hackers en vervolgens openbaar zijn gemaakt. Controleer de soorten gegevens die zijn gelekt (e-mailadressen, wachtwoorden, creditcards, enz.) en neem passende maatregelen, zoals het wijzigen van wachtwoorden." + }, + "breachCheckUsernameEmail": { + "message": "Controleer elke gebruikersnaam of e-mailadres die je gebruikt." + }, + "checkBreaches": { + "message": "Controleer datalekken" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ is niet gevonden in bekende datalekken.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Goed nieuws", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ is in $COUNT$ verschillende datalekken gevonden.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Gelekte accounts gevonden" + }, + "compromisedData": { + "message": "Gelekte gegevens" + }, + "website": { + "message": "Website" + }, + "affectedUsers": { + "message": "Betrokken gebruikers" + }, + "breachOccurred": { + "message": "Gelekt op" + }, + "breachReported": { + "message": "Gerapporteerd op" + }, + "reportError": { + "message": "Er is een fout opgetreden bij het laden van het overzicht. Probeer het nog eens" + }, + "billing": { + "message": "Facturering" + }, + "accountCredit": { + "message": "Rekeningtegoed", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Rekeningbalans", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Krediet toevoegen", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Bedrag", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Toegevoegd krediet verschijnt in je account nadat de betaling volledig is verwerkt. Sommige betaalmethoden zijn vertraagd en kunnen langer duren om te verwerken dan andere." + }, + "makeSureEnoughCredit": { + "message": "Verzeker jezelf ervan dat je account voldoende krediet voor deze aankoop beschikbaar heeft. Als je account niet genoeg krediet heeft, zal je standaard betaalmethode worden gebruikt voor het verschil. Je kunt krediet aan je account toevoegen vanaf de factuurpagina." + }, + "creditAppliedDesc": { + "message": "Je kunt het krediet van je account voor aankopen gebruiken. Elk beschikbaar krediet zal automatisch worden toegepast op facturen die gegenereerd zijn voor dit account." + }, + "goPremium": { + "message": "Neem Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Je bent opgewaardeerd naar Premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Upgrade je account naar een Premium-abonnement en ontgrendel enkele geweldige extra functionaliteiten." + }, + "premiumSignUpStorage": { + "message": "1 GB versleutelde opslag voor bijlagen." + }, + "premiumSignUpTwoStep": { + "message": "Extra tweestapsaanmeldingsopties zoals YubiKey, FIDO U2F en Duo." + }, + "premiumSignUpEmergency": { + "message": "Noodtoegang" + }, + "premiumSignUpReports": { + "message": "Rapportages op wachtwoordhygiëne, gezondheid van je account en datalekken om je kluis veilig te houden." + }, + "premiumSignUpTotp": { + "message": "TOTP-verificatiecodegenerator (tweestapsaanmelding) voor aanmeldingsgegevens in je kluis." + }, + "premiumSignUpSupport": { + "message": "Klantondersteuning met hoge prioriteit." + }, + "premiumSignUpFuture": { + "message": "Alle toekomstige Premium-functionaliteiten. Binnenkort meer!" + }, + "premiumPrice": { + "message": "Dit alles voor slechts $PRICE$ per jaar!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Add-ons" + }, + "premiumAccess": { + "message": "Premium-toegang" + }, + "premiumAccessDesc": { + "message": "Je kunt alle leden van je organisatie Premium-toegang verlenen voor $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Extra opslagruimte (GB)" + }, + "additionalStorageGbDesc": { + "message": "# extra GB" + }, + "additionalStorageIntervalDesc": { + "message": "Je lidmaatschap omvat $SIZE$ beveiligde bestandsopslag. Je kunt extra opslagruimte toevoegen voor $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Samenvatting" + }, + "total": { + "message": "Totaal" + }, + "year": { + "message": "jaar" + }, + "month": { + "message": "maand" + }, + "monthAbbr": { + "message": "mnd", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Het bedrag wordt direct in rekening gebracht en vervolgens jaarlijks op terugkerende basis. Je kunt op ieder moment opzeggen." + }, + "paymentCharged": { + "message": "Het bedrag wordt direct op je betaalmethode in rekening gebracht en vervolgens iedere $INTERVAL$ op terugkerende basis. Je kunt op ieder moment opzeggen.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Je lidmaatschap omvat een gratis proefperiode van 7 dagen. Kosten worden pas in rekening gebracht als de proefperiode voorbij is. De betaling vindt ieder(e) $INTERVAL$ op terugkerende basis plaats. Je kunt op ieder moment opzeggen." + }, + "paymentInformation": { + "message": "Betaalgegevens" + }, + "billingInformation": { + "message": "Factureringsgegevens" + }, + "creditCard": { + "message": "Creditcard" + }, + "paypalClickSubmit": { + "message": "Klik op de PayPal-knop om je aan te melden op je PayPal-account. Klik vervolgens hieronder op de knop Verzenden om verder te gaan." + }, + "cancelSubscription": { + "message": "Abonnement opzeggen" + }, + "subscriptionCanceled": { + "message": "Het abonnement is opgezegd." + }, + "pendingCancellation": { + "message": "In afwachting van opzegging" + }, + "subscriptionPendingCanceled": { + "message": "Het abonnement is gemarkeerd voor opzegging aan het einde van de huidige betalingsperiode." + }, + "reinstateSubscription": { + "message": "Abonnement opnieuw activeren" + }, + "reinstateConfirmation": { + "message": "Weet je zeker dat je de lopende opzegging wilt verwijderen en je abonnement opnieuw wilt activeren?" + }, + "reinstated": { + "message": "Het abonnement is opnieuw geactiveerd." + }, + "cancelConfirmation": { + "message": "Weet je zeker dat je wilt opzeggen? Je verliest toegang tot alle functionaliteiten van dit abonnement aan het einde van deze betalingscyclus." + }, + "canceledSubscription": { + "message": "Het abonnement is opgezegd." + }, + "neverExpires": { + "message": "Vervalt nooit" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Volgende betaling" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "Licentie downloaden" + }, + "updateLicense": { + "message": "Licentie bijwerken" + }, + "updatedLicense": { + "message": "Licentie bijgewerkt" + }, + "manageSubscription": { + "message": "Abonnement beheren" + }, + "storage": { + "message": "Opslagruimte" + }, + "addStorage": { + "message": "Opslagruimte toevoegen" + }, + "removeStorage": { + "message": "Opslagruimte verwijderen" + }, + "subscriptionStorage": { + "message": "Je abonnement biedt in totaal $MAX_STORAGE$ GB versleutelde bestandsopslag. Je gebruikt momenteel $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Betaalwijze" + }, + "noPaymentMethod": { + "message": "Geen betaalwijze gekozen." + }, + "addPaymentMethod": { + "message": "Betaalwijze toevoegen" + }, + "changePaymentMethod": { + "message": "Betaalwijze aanpassen" + }, + "invoices": { + "message": "Facturen" + }, + "noInvoices": { + "message": "Geen facturen." + }, + "paid": { + "message": "Betaald", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Openstaand", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transacties", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Geen transacties." + }, + "chargeNoun": { + "message": "Kosten", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Terugbetaling", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Kosten verschijnen op je afschrift als $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB aan opslagruimte toevoegen" + }, + "gbStorageRemove": { + "message": "GB aan opslagruimte verwijderen" + }, + "storageAddNote": { + "message": "Opslag toevoegen heeft gevolgen voor je factuurbedrag en wordt onmiddellijk in rekening gebracht op je geregistreerde betaalmethode. De eerste rekening wordt pro-rata berekend voor de resterende factureringscyclus." + }, + "storageRemoveNote": { + "message": "Opslag verwijderen heeft gevolgen voor je factuurbedrag en wordt pro-rata gecrediteerd op je volgende betaling." + }, + "adjustedStorage": { + "message": "Opslagruimte aangepast naar $AMOUNT$ GB.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Neem contact op met de klantondersteuning" + }, + "updatedPaymentMethod": { + "message": "Betaalmethode bijgewerkt." + }, + "purchasePremium": { + "message": "Premium aanschaffen" + }, + "licenseFile": { + "message": "Licentiebestand" + }, + "licenseFileDesc": { + "message": "Je licentiebestand heeft een naam als $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Om je account te upgraden naar een Premium-abonnement, moet je een geldig licentiebestand uploaden." + }, + "uploadLicenseFileOrg": { + "message": "Voor het aanmaken van een zelfgehoste organisatie moet je een geldig licentiebestand uploaden." + }, + "accountEmailMustBeVerified": { + "message": "Het e-mailadres van je account moet geverifieerd zijn." + }, + "newOrganizationDesc": { + "message": "Met organisaties kun je delen van je kluis met anderen delen en gebruikers in een bepaalde samenstelling beheren, zoals een familie, klein team of groot bedrijf." + }, + "generalInformation": { + "message": "Algemene informatie" + }, + "organizationName": { + "message": "Organisatienaam" + }, + "accountOwnedBusiness": { + "message": "Dit account is eigendom van een bedrijf." + }, + "billingEmail": { + "message": "E-mailadres voor facturering" + }, + "businessName": { + "message": "Bedrijfsnaam" + }, + "chooseYourPlan": { + "message": "Kies je abonnement" + }, + "users": { + "message": "Gebruikers" + }, + "userSeats": { + "message": "Gebruikersplaatsen" + }, + "additionalUserSeats": { + "message": "Extra gebruikersplaatsen" + }, + "userSeatsDesc": { + "message": "# gebruikersplaatsen" + }, + "userSeatsAdditionalDesc": { + "message": "Bij je abonnement horen $BASE_SEATS$ gebruikersplaatsen. Je kunt extra gebruikersplaatsen aankopen voor $SEAT_PRICE$ per gebruiker/maand.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Hoeveel gebruikersplaatsen heb je nodig? Je kunt later altijd nog extra plaatsen toevoegen." + }, + "planNameFree": { + "message": "Gratis", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Voor het testen of een persoonlijk gebruiker die deelt met $COUNT$ andere gebruiker(s).", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Families" + }, + "planDescFamilies": { + "message": "Voor persoonlijke gebruik, om met familie en vrienden te delen." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "Voor bedrijven en andere team-organisaties." + }, + "planNameEnterprise": { + "message": "Enterprise" + }, + "planDescEnterprise": { + "message": "Voor bedrijven en andere grote organisaties." + }, + "freeForever": { + "message": "Altijd gratis" + }, + "includesXUsers": { + "message": "inclusief $COUNT$ gebruikers", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Extra gebruikers" + }, + "costPerUser": { + "message": "$COST$ per gebruiker", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Beperkt tot $COUNT$ gebruikers (inclusief jijzelf)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Beperkt tot $COUNT$ verzamelingen", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Toevoegen en delen met maximaal $COUNT$ gebruikers", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Toevoegen en delen met een onbeperkt aantal gebruikers" + }, + "createUnlimitedCollections": { + "message": "Oneindig veel verzamelingen aanmaken" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ versleutelde bestandsopslag", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Zelfhosting (optioneel)" + }, + "usersGetPremium": { + "message": "Gebruikers krijgen toegang tot Premium-functies" + }, + "controlAccessWithGroups": { + "message": "Gebruikerstoegang beheren met groepen" + }, + "syncUsersFromDirectory": { + "message": "Gebruikers en groepen vanuit een directory synchroniseren" + }, + "trackAuditLogs": { + "message": "Gebruikersacties vastleggen in auditlogboeken" + }, + "enforce2faDuo": { + "message": "Tweestapsaanmelding afdwingen met Duo" + }, + "priorityCustomerSupport": { + "message": "Klantondersteuning met hoge prioriteit" + }, + "xDayFreeTrial": { + "message": "$COUNT$ dagen gratis proefperiode, op ieder moment opzegbaar", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Maandelijks" + }, + "annually": { + "message": "Jaarlijks" + }, + "basePrice": { + "message": "Basisprijs" + }, + "organizationCreated": { + "message": "Organisatie aangemaakt" + }, + "organizationReadyToGo": { + "message": "Je nieuwe organisatie is klaar voor gebruik!" + }, + "organizationUpgraded": { + "message": "Je organisatie is bijgewerkt." + }, + "leave": { + "message": "Verlaten" + }, + "leaveOrganizationConfirmation": { + "message": "Weet je zeker dat je deze organisatie wilt verlaten?" + }, + "leftOrganization": { + "message": "Je hebt de organisatie verlaten." + }, + "defaultCollection": { + "message": "Standaardverzameling" + }, + "getHelp": { + "message": "Hulp vragen" + }, + "getApps": { + "message": "De apps downloaden" + }, + "loggedInAs": { + "message": "Ingelogd als" + }, + "eventLogs": { + "message": "Gebeurtenislog" + }, + "people": { + "message": "Personen" + }, + "policies": { + "message": "Beleidseisen" + }, + "singleSignOn": { + "message": "Single sign-on" + }, + "editPolicy": { + "message": "Beleid bewerken" + }, + "groups": { + "message": "Groepen" + }, + "newGroup": { + "message": "Nieuwe groep" + }, + "addGroup": { + "message": "Groep toevoegen" + }, + "editGroup": { + "message": "Groep bewerken" + }, + "deleteGroupConfirmation": { + "message": "Weet je zeker dat je deze groep wilt verwijderen?" + }, + "removeUserConfirmation": { + "message": "Weet je zeker dat je deze gebruiker wilt verwijderen?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Waarschuwing! Deze gebruiker vereist de Key Connector om de versleuteling te beheren. Als je deze gebruiker uit je organisatie verwijdert, wordt zijn account permanent uitgeschakeld. Deze actie kan niet ongedaan worden gemaakt. Wil je doorgaan?" + }, + "externalId": { + "message": "Externe ID" + }, + "externalIdDesc": { + "message": "Je kunt het externe ID gebruiken als referentie of om een koppeling te leggen tussen deze bron en een extern systeem zoals een directory met gebruikers." + }, + "accessControl": { + "message": "Toegangsbeheer" + }, + "groupAccessAllItems": { + "message": "Deze groep kan alle items inzien en bewerken." + }, + "groupAccessSelectedCollections": { + "message": "Deze groep heeft alleen toegang tot de geselecteerde verzamelingen." + }, + "readOnly": { + "message": "Alleen-lezen" + }, + "newCollection": { + "message": "Nieuwe verzameling" + }, + "addCollection": { + "message": "Verzameling toevoegen" + }, + "editCollection": { + "message": "Verzameling bewerken" + }, + "deleteCollectionConfirmation": { + "message": "Weet je zeker dat je deze verzameling wilt verwijderen?" + }, + "editUser": { + "message": "Gebruiker bewerken" + }, + "inviteUser": { + "message": "Gebruiker uitnodigen" + }, + "inviteUserDesc": { + "message": "Nodig een nieuwe gebruiker uit voor je organisatie door het e-mailadres van hun Bitwarden-account hieronder in te vullen. Als ze nog geen Bitwarden-account hebben, kunnen ze een nieuw account aanmaken." + }, + "inviteMultipleEmailDesc": { + "message": "Je kunt tot $COUNT$ gebruikers per keer uitnodigen door middel van een lijst met komma's gescheiden e-mailadressen.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Het account van deze gebruiker is beschermd met tweestapsaanmelding." + }, + "userAccessAllItems": { + "message": "Deze gebruiker kan alle items inzien en bewerken." + }, + "userAccessSelectedCollections": { + "message": "Deze gebruiker heeft alleen toegang tot de geselecteerde verzamelingen." + }, + "search": { + "message": "Zoeken" + }, + "invited": { + "message": "Uitgenodigd" + }, + "accepted": { + "message": "Geaccepteerd" + }, + "confirmed": { + "message": "Bevestigd" + }, + "clientOwnerEmail": { + "message": "E-mailadres apparaateigenaar" + }, + "owner": { + "message": "Eigenaar" + }, + "ownerDesc": { + "message": "De gebruiker met de hoogste toegangsrechten. Deze gebruiker kan alle aspecten van je organisatie beheren." + }, + "clientOwnerDesc": { + "message": "Deze gebruiker moet onafhankelijk zijn van de provider. Als de provider is losgekoppeld van de organisatie, blijft deze gebruiker eigenaar van de organisatie." + }, + "admin": { + "message": "Beheerder" + }, + "adminDesc": { + "message": "Beheerders hebben toegang tot alle items, verzamelingen en gebruikers binnen je organisatie en kunnen deze ook beheren." + }, + "user": { + "message": "Gebruiker" + }, + "userDesc": { + "message": "Een standaardgebruiker met toegang tot de verzamelingen van je organisatie." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managers hebben toegang tot toegewezen verzamelingen binnen je organisatie en kunnen deze ook beheren." + }, + "all": { + "message": "Alle" + }, + "refresh": { + "message": "Verversen" + }, + "timestamp": { + "message": "Tijdstempel" + }, + "event": { + "message": "Gebeurtenis" + }, + "unknown": { + "message": "Onbekend" + }, + "loadMore": { + "message": "Meer ophalen" + }, + "mobile": { + "message": "Mobiel", + "description": "Mobile app" + }, + "extension": { + "message": "Extensie", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Webkluis" + }, + "loggedIn": { + "message": "Ingelogd." + }, + "changedPassword": { + "message": "Accountwachtwoord veranderd." + }, + "enabledUpdated2fa": { + "message": "Tweestapsaanmelding geactiveerd/bijgewerkt." + }, + "disabled2fa": { + "message": "Tweestapsaanmelding uitgeschakeld." + }, + "recovered2fa": { + "message": "Account hersteld van tweestapsaanmelding." + }, + "failedLogin": { + "message": "Inlogpoging met onjuist wachtwoord mislukt." + }, + "failedLogin2fa": { + "message": "Inlogpoging met onjuiste tweestapsaanmelding mislukt." + }, + "exportedVault": { + "message": "Kluis geëxporteerd." + }, + "exportedOrganizationVault": { + "message": "Organisatiekluis geëxporteerd." + }, + "editedOrgSettings": { + "message": "Organisatie-instellingen gewijzigd." + }, + "createdItemId": { + "message": "Aangemaakt item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Gewijzigd item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Verwijderd item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Item $ID$ naar een organisatie verplaatst.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Bekeken item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Wachtwoord bekeken voor item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Verborgen veld bekeken voor item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Beveiligingscode bekeken voor item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Wachtwoord gekopieerd voor item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Verborgen veld gekopieerd voor item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Beveiligingscode gekopieerd voor item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Automatisch-invullen voor item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Verzameling aangemaakt $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Verzameling gewijzigd $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Verzameling verwijderd $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Bewerkt beleid $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Groep aangemaakt $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Groep gewijzigd $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Groep verwijderd $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Gebruiker verwijderd $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Bijlage aangemaakt voor item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Bijlage verwijderd voor item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Verzamelingen gewijzigd voor item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Gebruiker uitgenodigd $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Gebruiker bevestigd $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Gebruiker gewijzigd $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Groepen gewijzigd van gebruiker $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "SSO ontkoppeld voor gebruiker $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Organisatie $ID$ aangemaakt.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Organisatie $ID$ toegevoegd.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Organisatie $ID$ verwijderd.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "$ID$ organisatiekluis geopend.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Apparaat" + }, + "view": { + "message": "Weergeven" + }, + "invalidDateRange": { + "message": "Ongeldig datumbereik." + }, + "errorOccurred": { + "message": "Er is een fout opgetreden." + }, + "userAccess": { + "message": "Gebruikerstoegang" + }, + "userType": { + "message": "Soort gebruiker" + }, + "groupAccess": { + "message": "Groepstoegang" + }, + "groupAccessUserDesc": { + "message": "Wijzig de groep waar deze gebruiker bij hoort." + }, + "invitedUsers": { + "message": "Gebruiker(s) uitgenodigd." + }, + "resendInvitation": { + "message": "Uitnodiging opnieuw versturen" + }, + "resendEmail": { + "message": "E-mail opnieuw versturen" + }, + "hasBeenReinvited": { + "message": "$USER$ is opnieuw uitgenodigd.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Bevestigen" + }, + "confirmUser": { + "message": "Gebruiker bevestigen" + }, + "hasBeenConfirmed": { + "message": "$USER$ is bevestigd.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Gebruikers bevestigen" + }, + "usersNeedConfirmed": { + "message": "Je hebt gebruikers die hun uitnodiging hebben geaccepteerd, maar nog moeten worden bevestigd. Gebruikers hebben pas toegang tot de organisatie nadat ze zijn bevestigd." + }, + "startDate": { + "message": "Begindatum" + }, + "endDate": { + "message": "Einddatum" + }, + "verifyEmail": { + "message": "E-mailadres verifiëren" + }, + "verifyEmailDesc": { + "message": "Verifieer het e-mailadres van je account om toegang te krijgen tot alle functionaliteiten." + }, + "verifyEmailFirst": { + "message": "Je moet eerst het e-mailadres van je account verifiëren." + }, + "checkInboxForVerification": { + "message": "Kijk in het postvak IN van je e-mail voor een verificatielink." + }, + "emailVerified": { + "message": "Je e-mailadres is geverifieerd." + }, + "emailVerifiedFailed": { + "message": "Je e-mailadres kon niet worden geverifieerd. Probeer een nieuwe e-mail met verificatielink te versturen." + }, + "emailVerificationRequired": { + "message": "E-mailverificatie vereist" + }, + "emailVerificationRequiredDesc": { + "message": "Je moet je e-mailadres verifiëren om deze functionaliteit te gebruiken." + }, + "updateBrowser": { + "message": "Webbrowser bijwerken" + }, + "updateBrowserDesc": { + "message": "Je maakt gebruik van webbrowser die we niet ondersteunen. De webkluis werkt mogelijk niet goed." + }, + "joinOrganization": { + "message": "Lid worden van organisatie" + }, + "joinOrganizationDesc": { + "message": "Je bent uitgenodigd om lid te worden van bovenstaande organisatie. Om de uitnodiging te accepteren, moet je inloggen of een nieuw Bitwarden-account aanmaken." + }, + "inviteAccepted": { + "message": "Uitnodiging geaccepteerd" + }, + "inviteAcceptedDesc": { + "message": "Je krijgt toegang tot deze organisatie zodra een beheerder je lidmaatschap bevestigt. We sturen je een e-mail zodra dat gebeurt." + }, + "inviteAcceptFailed": { + "message": "De uitnodiging is niet geaccepteerd. Vraag een beheerder van de organisatie om een nieuwe uitnodiging te versturen." + }, + "inviteAcceptFailedShort": { + "message": "Uitnodiging kan niet worden geaccepteerd. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Mijn e-mailadres onthouden" + }, + "recoverAccountTwoStepDesc": { + "message": "Als je geen toegang tot je account kunt krijgen via je normale tweestapsaanmeldingsmethodes, kun je met je herstelcode alle aanbieders van tweestapsaanmelding in je account uitschakelen." + }, + "recoverAccountTwoStep": { + "message": "Tweestapsaanmelding herstellen" + }, + "twoStepRecoverDisabled": { + "message": "Tweestapsaanmeldig is uitgeschakeld voor je account." + }, + "learnMore": { + "message": "Meer informatie" + }, + "deleteRecoverDesc": { + "message": "Voer hieronder je e-mailadres in om je account te herstellen en te verwijderen." + }, + "deleteRecoverEmailSent": { + "message": "Als je account bestaat, hebben we je een e-mailbericht met nadere instructies gestuurd." + }, + "deleteRecoverConfirmDesc": { + "message": "Je hebt een aanvraag gedaan om je Bitwarden-account te verwijderen. Klik op onderstaande knop om dit te bevestigen." + }, + "myOrganization": { + "message": "Mijn organisatie" + }, + "deleteOrganization": { + "message": "Organisatie verwijderen" + }, + "deletingOrganizationContentWarning": { + "message": "Voer het hoofdwachtwoord in om de verwijdering van $ORGANIZATION$ en alle bijbehorende gegevens te bevestigen. De kluisgegevens in $ORGANIZATION$ bevatten:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Gebruikersaccounts blijven actief na het verwijderen maar worden niet langer gekoppeld aan deze organisatie." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Het verwijderen van $ORGANIZATION$ is permanent en onomkeerbaar.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organisatie verwijderd" + }, + "organizationDeletedDesc": { + "message": "De organisatie en alle bijhorende gegevens zijn verwijderd." + }, + "organizationUpdated": { + "message": "Organisatie bijgewerkt" + }, + "taxInformation": { + "message": "Belastinginformatie" + }, + "taxInformationDesc": { + "message": "Voor klanten in de VS is een postcode nodig om te voldoen aan belastingvoorschriften. Klanten uit andere landen kunnen desgewenst een belastingnummer (BTW/VAT/GST) en/of adres opgeven voor vermelding op de facturen." + }, + "billingPlan": { + "message": "Abonnement", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Abonnement wijzigen", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade je account naar een ander abonnement door onderstaande informatie door te geven. Verzeker jezelf ervan dat er een actieve betaalmethode aan het account is gekoppeld.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Factuur #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Factuur bekijken" + }, + "downloadInvoice": { + "message": "Factuur downloaden" + }, + "verifyBankAccount": { + "message": "Bankrekening verifiëren" + }, + "verifyBankAccountDesc": { + "message": "We hebben twee microbetalingen naar je bankrekening uitgevoerd (het kan 1-2 werkdagen duren voordat deze zichtbaar zijn). Voer deze bedragen in om de bankrekening te verifiëren." + }, + "verifyBankAccountInitialDesc": { + "message": "Betaling met een bankrekening is alleen beschikbaar voor klanten in de Verenigde Staten. Je moet eerst je bankrekening verifiëren. We zullen de komende 1-2 werkdagen twee microbetalingen uitvoeren. Voer deze bedragen in op de factureringspagina van de organisatie om de bankrekening te verifiëren." + }, + "verifyBankAccountFailureWarning": { + "message": "Als je de bankrekening niet verifieert mis je een betaling waardoor je abonnement wordt uitgeschakeld." + }, + "verifiedBankAccount": { + "message": "Bankrekening geverifieerd." + }, + "bankAccount": { + "message": "Bankrekening" + }, + "amountX": { + "message": "Bedrag $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routeringsnummer", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Rekeningnummer" + }, + "accountHolderName": { + "message": "Naam rekeninghouder" + }, + "bankAccountType": { + "message": "Soort rekening" + }, + "bankAccountTypeCompany": { + "message": "Bedrijf (zakelijk)" + }, + "bankAccountTypeIndividual": { + "message": "Individu (persoonlijk)" + }, + "enterInstallationId": { + "message": "Installatie-id invoeren" + }, + "limitSubscriptionDesc": { + "message": "Stel een limiet voor gebruikersplaatsen in voor je abonnement. Zodra deze limiet is bereikt, kun je geen nieuwe gebruikers uitnodigen." + }, + "maxSeatLimit": { + "message": "Maximale gebruikersplaatsen (optioneel)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max. potentiële kosten gebruikersplaatsen" + }, + "addSeats": { + "message": "Plaatsen toevoegen", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Plaatsen verwijderen", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Aanpassingen aan je abonnement leiden tot evenredige wijzigingen in je factuurtotaal. Als nieuwe gebruikers je gebruikersplaatsen overschrijden, ontvang je onmiddellijk een afschrijving voor de extra gebruikers." + }, + "subscriptionUserSeats": { + "message": "Je abonnement omvat $COUNT$ gebruikers.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limiteer abonnement (optioneel)" + }, + "subscriptionSeats": { + "message": "Gebruikersplaatsen abonnement" + }, + "subscriptionUpdated": { + "message": "Abonnement bijgewerkt" + }, + "additionalOptions": { + "message": "Extra opties" + }, + "additionalOptionsDesc": { + "message": "Neem contact op met de klantenservice voor extra hulp bij het beheren van je abonnement." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Aanpassingen aan je abonnement leiden tot evenredige wijzigingen in je factuurtotaal. Als nieuwe gebruikers je gebruikersplaatsen overschrijden, ontvang je onmiddellijk een afschrijving voor de extra gebruikers." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Aanpassingen aan je abonnement leiden tot evenredige wijzigingen in je factuurtotaal. Als nieuwe gebruikers je gebruikersplaatsen overschrijden, ontvang je onmiddellijk een afschrijving voor de extra gebruikers tot het aantal van $MAX$ gebruikersplaatsen is bereikt.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Je kunt niet meer dan $COUNT$ gebruikers uitnodigen zonder je abonnement te upgraden.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Je kunt niet meer dan $COUNT$ gebruikers uitnodigen zonder je abonnement te upgraden. Neem contact op met Customer Support om te upgraden.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Je abonnement staat $COUNT$ gebruikers toe. Je abonnement wordt gesponsord en gefactureerd aan een externe organisatie.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Aanpassingen aan je abonnement leiden tot evenredige wijzigingen in uw factuurtotaal. Je kunt niet meer dan $COUNT$ gebruikers uitnodigen zonder je abonnementsplaatsen te verhogen.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Toe te voegen plaatsen" + }, + "seatsToRemove": { + "message": "Te verwijderen plaatsen" + }, + "seatsAddNote": { + "message": "Gebruikersplaatsen toevoegen heeft gevolgen voor je factuurbedrag en wordt onmiddellijk in rekening gebracht op je geregistreerde betaalmethode. De eerste aanrekening wordt pro-rata berekend voor de resterende factureringscyclus." + }, + "seatsRemoveNote": { + "message": "Gebruikersplaatsen verwijderen heeft gevolgen voor je factuurbedrag en wordt pro-rata gecrediteerd op je volgende betaling." + }, + "adjustedSeats": { + "message": "Aantal plaatsen aangepast naar $AMOUNT$.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Sleutel bijgewerkt" + }, + "updateKeyTitle": { + "message": "Sleutel bijwerken" + }, + "updateEncryptionKey": { + "message": "Encryptiesleutel bijwerken" + }, + "updateEncryptionKeyShortDesc": { + "message": "Je gebruikt een oud versleutelingsschema." + }, + "updateEncryptionKeyDesc": { + "message": "We zijn overgeschakeld naar langere encryptiesleutels die beter beveiligen en nieuwe functionaliteiten mogelijk maken. Het bijwerken van je encryptiesleutel gaat snel en eenvoudig. Typ gewoon je hoofdwachtwoord hieronder in. Deze wijziging zal uiteindelijk verplicht worden." + }, + "updateEncryptionKeyWarning": { + "message": "Na het bijwerken van je encryptiesleutel moet je je afmelden en weer aanmelden bij alle Bitwarden-applicaties die je gebruikt (zoals de mobiele app of browserextensies). Als je niet opnieuw inlogt (wat je nieuwe encryptiesleutel downloadt), kan dit gegevensbeschadiging tot gevolg hebben. We proberen je automatisch uit te loggen, maar het kan zijn dat dit met enige vertraging gebeurt." + }, + "updateEncryptionKeyExportWarning": { + "message": "Elke versleutelde export die je hebt bewaard wordt onbruikbaar." + }, + "subscription": { + "message": "Abonnement" + }, + "loading": { + "message": "Laden" + }, + "upgrade": { + "message": "Upgrade" + }, + "upgradeOrganization": { + "message": "Organisatie upgraden" + }, + "upgradeOrganizationDesc": { + "message": "Deze mogelijkheid is niet beschikbaar voor gratis organisaties. Schakel over naar een betaald abonnement om meer mogelijkheden te ontgrendelen." + }, + "createOrganizationStep1": { + "message": "Organisatie aanmaken: Stap 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Voordat je een organisatie kunt aanmaken moet je eerst een gratis persoonlijk account aanmaken." + }, + "refunded": { + "message": "Terugbetaald" + }, + "nothingSelected": { + "message": "Je hebt niets geselecteerd." + }, + "acceptPolicies": { + "message": "Door dit vakje aan te vinken ga je akkoord met het volgende:" + }, + "acceptPoliciesError": { + "message": "Algemene voorwaarden en privacybeleid zijn nog niet erkend." + }, + "termsOfService": { + "message": "Algemene gebruiksvoorwaarden" + }, + "privacyPolicy": { + "message": "Privacybeleid" + }, + "filters": { + "message": "Filters" + }, + "vaultTimeout": { + "message": "Time-out van de kluis" + }, + "vaultTimeoutDesc": { + "message": "Stel de time-out van de kluis en de bijbehorende actie in." + }, + "oneMinute": { + "message": "1 minuut" + }, + "fiveMinutes": { + "message": "5 minuten" + }, + "fifteenMinutes": { + "message": "15 minuten" + }, + "thirtyMinutes": { + "message": "30 minuten" + }, + "oneHour": { + "message": "1 uur" + }, + "fourHours": { + "message": "4 uur" + }, + "onRefresh": { + "message": "Bij het verversen van de webbrowser" + }, + "dateUpdated": { + "message": "Bijgewerkt", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Wachtwoord bijgewerkt", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organisatie uitgeschakeld." + }, + "licenseIsExpired": { + "message": "Licentie verlopen." + }, + "updatedUsers": { + "message": "Gebruikers bijgewerkt" + }, + "selected": { + "message": "Geselecteerd" + }, + "ownership": { + "message": "Eigendom" + }, + "whoOwnsThisItem": { + "message": "Wie is eigenaar van dit object?" + }, + "strong": { + "message": "Sterk", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Goed", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Zwak", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Zeer zwak", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Zwak hoofdwachtwoord" + }, + "weakMasterPasswordDesc": { + "message": "Je hebt een zwak hoofdwachtwoord gekozen. Gebruik een sterk hoofdwachtwoord (of wachtwoordzin) om jouw Bitwarden-account goed te beschermen. Weet je zeker dat je dit hoofdwachtwoord wilt gebruiken?" + }, + "rotateAccountEncKey": { + "message": "De encryptiesleutel van mijn account ook roteren" + }, + "rotateEncKeyTitle": { + "message": "Encryptiesleutel roteren" + }, + "rotateEncKeyConfirmation": { + "message": "Weet je zeker dat je de encryptiesleutel van je account wilt roteren?" + }, + "attachmentsNeedFix": { + "message": "Dit item heeft oude bestandsbijlagen die aangepast moeten worden." + }, + "attachmentFixDesc": { + "message": "Dit is een oude bestandsbijlage die moet worden aangepast. Klik voor meer informatie." + }, + "fix": { + "message": "Oplossen", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Er zijn oude bestandsbijlagen in je kluis die aangepast moeten worden voordat je je encryptiesleutels kunt roteren." + }, + "yourAccountsFingerprint": { + "message": "Vingerafdrukzin van je account", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Verzeker jezelf van de integriteit van je encryptiesleutels, controleer de vingerafdrukzin van de gebruiker voor je verder gaat.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Niet meer vragen om de vingerafdrukzin te controleren", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Gratis", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API-sleutel" + }, + "apiKeyDesc": { + "message": "Je kunt je API-sleutel gebruiken om in te loggen op de openbare API van Bitwarden." + }, + "apiKeyRotateDesc": { + "message": "Het roteren van de API-sleutel maakt de vorige sleutel ongeldig. Je kunt je API-sleutel roteren als je denkt dat de huidige sleutel niet langer veilig is om te gebruiken." + }, + "apiKeyWarning": { + "message": "Je API-sleutel heeft volledige toegang tot de organisatie. Houd het geheim." + }, + "userApiKeyDesc": { + "message": "Met je API-sleutel kun je inloggen in de Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Je API-sleutel is een alternatieve manier van inloggen. Het moet geheim blijven." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 clientreferenties", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "API-sleutel bekijken" + }, + "rotateApiKey": { + "message": "API-sleutel roteren" + }, + "selectOneCollection": { + "message": "Je moet ten minste één collectie selecteren." + }, + "couldNotChargeCardPayInvoice": { + "message": "We konden geen kosten op je kaart in rekening brengen. Bekijk en betaal onderstaande openstaande factuur." + }, + "inAppPurchase": { + "message": "In-app aankoop" + }, + "cannotPerformInAppPurchase": { + "message": "Je kunt deze actie niet uitvoeren tijdens de uitvoering van een in-app aankoop." + }, + "manageSubscriptionFromStore": { + "message": "Je moet je abonnement beheren vanuit de winkel waar je in-app aankoop is gemaakt." + }, + "minLength": { + "message": "Minimale lengte" + }, + "clone": { + "message": "Dupliceren" + }, + "masterPassPolicyDesc": { + "message": "Minimale eisen voor de sterkte van het hoofdwachtwoord instellen." + }, + "twoStepLoginPolicyDesc": { + "message": "Vereis tweestapsaanmelding op het persoonlijke account van gebruikers." + }, + "twoStepLoginPolicyWarning": { + "message": "Organisatieleden die geen eigenaren of beheerders zijn en geen tweestapsaanmelding hebben ingeschakeld voor hun persoonlijke account worden verwijderd uit de organisatie en ontvangen een e-mail waarin ze worden geïnformeerd over de wijziging." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Je bent lid van een organisatie die tweestapsaanmelding vereist op je persoonlijke account. Als je tweestapsaanmelding uitschakelt wordt je automatisch uit deze organisaties verwijderd." + }, + "passwordGeneratorPolicyDesc": { + "message": "Stel minimale vereisten in voor de configuratie van de wachtwoordgenerator." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Een of meer organisatiebeleidseisen heeft invloed op de instellingen van je generator." + }, + "masterPasswordPolicyInEffect": { + "message": "Een of meer organisatiebeleidseisen stelt de volgende eisen aan je hoofdwachtwoord:" + }, + "policyInEffectMinComplexity": { + "message": "Minimale complexiteitsscore van $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimale lengte van $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Bevat een of meer hoofdletters" + }, + "policyInEffectLowercase": { + "message": "Bevat een of meer kleine letters" + }, + "policyInEffectNumbers": { + "message": "Bevat een of meer cijfers" + }, + "policyInEffectSpecial": { + "message": "Bevat een of meer van de volgende speciale tekens $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Je nieuwe hoofdwachtwoord voldoet niet aan de beleidseisen." + }, + "minimumNumberOfWords": { + "message": "Minimum aantal woorden" + }, + "defaultType": { + "message": "Standaardtype" + }, + "userPreference": { + "message": "Persoonlijke voorkeur" + }, + "vaultTimeoutAction": { + "message": "Actie bij time-out" + }, + "vaultTimeoutActionLockDesc": { + "message": "Om toegang te krijgen tot een vergrendelde kluis moet het hoofdwachtwoord opnieuw worden ingevoerd." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Om toegang te krijgen tot een uitgelogde kluis te krijgen moet je opnieuw inloggen." + }, + "lock": { + "message": "Vergrendelen", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Prullenbak", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Prullenbak doorzoeken" + }, + "permanentlyDelete": { + "message": "Definitief verwijderen" + }, + "permanentlyDeleteSelected": { + "message": "Selectie definitief verwijderen" + }, + "permanentlyDeleteItem": { + "message": "Item definitief verwijderen" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Weet je zeker dat je dit item definitief wilt verwijderen?" + }, + "permanentlyDeletedItem": { + "message": "Definitief verwijderd item" + }, + "permanentlyDeletedItems": { + "message": "Definitief verwijderde items" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Je hebt $COUNT$ item(s) geselecteerd voor verwijdering. Weet je zeker dat je al deze items definitief wilt verwijderen?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Definitief verwijderd item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Herstellen" + }, + "restoreSelected": { + "message": "Selectie herstellen" + }, + "restoreItem": { + "message": "Item herstellen" + }, + "restoredItem": { + "message": "Hersteld item" + }, + "restoredItems": { + "message": "Herstelde items" + }, + "restoreItemConfirmation": { + "message": "Weet je zeker dat je dit item wilt herstellen?" + }, + "restoreItems": { + "message": "Items herstellen" + }, + "restoreSelectedItemsDesc": { + "message": "Je hebt $COUNT$ item(s) geselecteerd voor herstel. Weet je zeker dat je al deze items wilt herstellen?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Hersteld item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Uitloggen ontneemt je de toegang tot je kluis en vereist online authenticatie na een periode van time-out. Weet je zeker dat je deze instelling wilt gebruiken?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Bevestiging actie bij time-out" + }, + "hidePasswords": { + "message": "Wachtwoorden verbergen" + }, + "countryPostalCodeRequiredDesc": { + "message": "We gebruiken deze informatie alleen voor het berekenen van belasting en financiële rapportages." + }, + "includeVAT": { + "message": "Inclusief btw-informatie (optioneel)" + }, + "taxIdNumber": { + "message": "Btw-nummer" + }, + "taxInfoUpdated": { + "message": "Belastinginformatie bijgewerkt." + }, + "setMasterPassword": { + "message": "Hoofdwachtwoord instellen" + }, + "ssoCompleteRegistration": { + "message": "Voor het inloggen met SSO moet je een hoofdwachtwoord instellen voor toegang tot en bescherming van je kluis." + }, + "identifier": { + "message": "Identificatie" + }, + "organizationIdentifier": { + "message": "Organisatie-identificatie" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Inloggen met het single sign-on portaal van je organisatie. Voer de identificatie van je organisatie in om te beginnen." + }, + "enterpriseSingleSignOn": { + "message": "Enterprise Single Sign-On" + }, + "ssoHandOff": { + "message": "Je kunt dit tabblad nu sluiten en doorgaan in de extensie." + }, + "includeAllTeamsFeatures": { + "message": "Alle functionaliteit van Teams plus:" + }, + "includeSsoAuthentication": { + "message": "SSO-authenticatie via SAML2.0 en OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Enterprisebeleid" + }, + "ssoValidationFailed": { + "message": "SSO-validatie mislukt" + }, + "ssoIdentifierRequired": { + "message": "Organisatie-identificatie vereist." + }, + "unlinkSso": { + "message": "SSO ontkoppelen" + }, + "unlinkSsoConfirmation": { + "message": "Weet je zeker dat je SSO voor deze organisatie wilt ontkoppelen?" + }, + "linkSso": { + "message": "SSO koppelen" + }, + "singleOrg": { + "message": "Enkele organisatie" + }, + "singleOrgDesc": { + "message": "Beperk de mogelijkheid voor gebruikers om deel te nemen aan andere organisaties." + }, + "singleOrgBlockCreateMessage": { + "message": "Jouw huidige organisatie heeft een beleid dat je niet toestaat om deel te nemen aan meer dan één organisatie. Neem contact op met de beheerders van jouw organisatie of meld je aan met een ander Bitwarden-account." + }, + "singleOrgPolicyWarning": { + "message": "Leden van de organisatie die geen eigenaar of beheerder zijn en die al lid zijn van een andere organisatie, worden verwijderd uit jouw organisatie." + }, + "requireSso": { + "message": "Single Sign-On Authenticatie" + }, + "requireSsoPolicyDesc": { + "message": "Verplicht gebruikers om in te loggen met de Enterprise Single Sign-On methode." + }, + "prerequisite": { + "message": "Vereisten" + }, + "requireSsoPolicyReq": { + "message": "Voordat je dit beleid kunt activeren moet je eerst het Enkele organisatie-bedrijfsbeleid inschakelen." + }, + "requireSsoPolicyReqError": { + "message": "Enkele Organisatie-beleid is niet ingeschakeld." + }, + "requireSsoExemption": { + "message": "Eigenaren en beheerders van de organisatie zijn vrijgesteld van de handhaving van dit beleid." + }, + "sendTypeFile": { + "message": "Bestand" + }, + "sendTypeText": { + "message": "Tekst" + }, + "createSend": { + "message": "Nieuwe Send aanmaken", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Send bewerken", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send aangemaakt", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Send bewerkt", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send verwijderd", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Send verwijderen", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Weet je zeker dat je deze Send wilt verwijderen?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Wat voor soort Send is dit?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Verwijderingsdatum" + }, + "deletionDateDesc": { + "message": "Deze Send wordt definitief verwijderd op de aangegeven datum en tijd.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Vervaldatum" + }, + "expirationDateDesc": { + "message": "Als dit is ingesteld verloopt deze Send op een specifieke datum en tijd.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximum toegangsaantal" + }, + "maxAccessCountDesc": { + "message": "Als dit is ingesteld kunnen gebruikers deze Send niet meer benaderen zodra het maximale aantal toegang is bereikt.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Huidige toegangsaantal" + }, + "sendPasswordDesc": { + "message": "Vereis optioneel een wachtwoord voor gebruikers om toegang te krijgen tot deze Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Privénotities over deze Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Uitgeschakeld" + }, + "sendLink": { + "message": "Send-koppeling", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Send-koppeling kopiëren", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Wachtwoord verwijderen" + }, + "removedPassword": { + "message": "Wachtwoord verwijderd" + }, + "removePasswordConfirmation": { + "message": "Weet je zeker dat je dit wachtwoord wilt verwijderen?" + }, + "hideEmail": { + "message": "Verberg mijn e-mailadres voor ontvangers." + }, + "disableThisSend": { + "message": "Schakel deze Send uit zodat niemand hem kan benaderen.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Alle Sends" + }, + "maxAccessCountReached": { + "message": "Maximum aantal keren benaderd", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Wordt verwijderd" + }, + "expired": { + "message": "Verlopen" + }, + "searchSends": { + "message": "Sends zoeken", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Deze Send is beveiligd met een wachtwoord. Voer het wachtwoord hieronder in om door te gaan.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Weet je het wachtwoord niet? Vraag de afzender om het wachtwoord om toegang te krijgen tot deze Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Deze Send is standaard verborgen. Je kunt de zichtbaarheid ervan in- en uitschakelen met de knop hieronder.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Bestand downloaden" + }, + "sendAccessUnavailable": { + "message": "De Send die je probeert te benaderen is niet (langer) beschikbaar.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Het aan deze Send gekoppelde bestand kon niet gevonden worden.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Er zijn geen Sends beschikbaar.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Noodtoegang" + }, + "emergencyAccessDesc": { + "message": "Verleen en beheer noodtoegang voor vertrouwde contacten. Vertrouwde contacten kunnen in noodgevallen toegang vragen om je account te bekijken of overnemen. Bezoek onze helppagina voor meer informatie en details over de werking van \"zero knowledge sharing\"." + }, + "emergencyAccessOwnerWarning": { + "message": "Je bent eigenaar van een of meer organisaties. Als je toegang tot overname geeft aan een noodcontact, kan deze na een overname jouw toegangsrechten als eigenaar gebruiken." + }, + "trustedEmergencyContacts": { + "message": "Vertrouwde noodcontacten" + }, + "noTrustedContacts": { + "message": "Je hebt nog geen noodcontacten, nodig een vertrouwde contactpersoon uit om te beginnen." + }, + "addEmergencyContact": { + "message": "Noodcontact toevoegen" + }, + "designatedEmergencyContacts": { + "message": "Aangewezen als noodcontact" + }, + "noGrantedAccess": { + "message": "Je bent nog door niemand aangewezen als noodcontact." + }, + "inviteEmergencyContact": { + "message": "Noodcontact uitnodigen" + }, + "editEmergencyContact": { + "message": "Noodcontact bewerken" + }, + "inviteEmergencyContactDesc": { + "message": "Nodig een nieuw noodcontact uit door hieronder het e-mailadres van hun Bitwarden-account in te vullen. Als ze nog geen Bitwarden-account hebben, krijgen ze de mogelijkheid direct een account aan te maken." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Noodtoegang geïnitieerd" + }, + "emergencyAccessRecoveryApproved": { + "message": "Noodtoegang goedgekeurd" + }, + "viewDesc": { + "message": "Kan alle items in je eigen kluis bekijken." + }, + "takeover": { + "message": "Overnemen" + }, + "takeoverDesc": { + "message": "Kan op jouw account een nieuw hoofdwachtwoord instellen." + }, + "waitTime": { + "message": "Wachttijd" + }, + "waitTimeDesc": { + "message": "Wachttijd tot het automatisch verlenen van toegang." + }, + "oneDay": { + "message": "1 dag" + }, + "days": { + "message": "$DAYS$ dagen", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Uitgenodigde gebruiker." + }, + "acceptEmergencyAccess": { + "message": "Je bent uitgenodigd als noodcontact voor bovenstaande gebruiker. Om de uitnodiging te accepteren, moet je inloggen of een nieuw Bitwarden-account aanmaken." + }, + "emergencyInviteAcceptFailed": { + "message": "Kon de uitnodiging niet accepteren. Vraag de gebruiker om een nieuwe uitnodiging te versturen." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Kon de uitnodiging niet accepteren. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Je kunt de instellingen voor noodtoegang van deze gebruiker benaderen zodra je identiteit is bevestigd. We sturen je een e-mail wanneer dat is gerealiseerd." + }, + "requestAccess": { + "message": "Toegang aanvragen" + }, + "requestAccessConfirmation": { + "message": "Weet je zeker dat je noodtoegang wilt aanvragen? Je krijgt toegang na $WAITTIME$ dag(en) of zodra de gebruiker de aanvraag handmatig goedkeurt.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Noodtoegang aangevraagd voor $USER$. We brengen je per e-mail op de hoogte wanneer je verder kunt.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Goedkeuren" + }, + "reject": { + "message": "Afwijzen" + }, + "approveAccessConfirmation": { + "message": "Weet je zeker dat je noodtoegang wilt goedkeuren? Hiermee verleen je $USER$ toegang tot je account $ACTION$.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Noodtoegang goedgekeurd." + }, + "emergencyRejected": { + "message": "Noodtoegang afgewezen" + }, + "passwordResetFor": { + "message": "Wachtwoord opnieuw ingesteld voor $USER$. Je kunt nu inloggen met het nieuwe wachtwoord.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Persoonlijk eigendom" + }, + "personalOwnershipPolicyDesc": { + "message": "Verplicht gebruikers kluisitems op te slaan in een organisatie door de persoonlijke eigendomsoptie te verwijderen." + }, + "personalOwnershipExemption": { + "message": "Eigenaren en beheerders van de organisatie zijn vrijgesteld van de handhaving van dit beleid." + }, + "personalOwnershipSubmitError": { + "message": "Wegens bedrijfsbeleid mag je geen wachtwoorden opslaan in je persoonlijke kluis. Verander het eigenaarschap naar een organisatie en kies uit een van de beschikbare collecties." + }, + "disableSend": { + "message": "Send uitschakelen" + }, + "disableSendPolicyDesc": { + "message": "Gebruikers mogen geen Bitwarden Send maken of bewerken. Het verwijderen van een bestaande Send is nog steeds toegestaan.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Gebruikers in de organisatie die het beleid van de organisatie kunnen beheren, zijn vrijgesteld van de handhaving van dit beleid." + }, + "sendDisabled": { + "message": "Send uitgeschakeld", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Als gevolg van een ondernemingsbeleid kun je alleen een bestaande Send verwijderen.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send-opties", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Stel opties in voor het maken en bewerken van Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Gebruikers die het beleid van de organisatie kunnen beheren, zijn vrijgesteld van de handhaving van dit beleid." + }, + "disableHideEmail": { + "message": "Gebruikers mogen hun e-mailadres niet verbergen voor ontvangers bij het aanmaken of bewerken van een Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Het volgende organisatiebeleid is momenteel van toepassing:" + }, + "sendDisableHideEmailInEffect": { + "message": "Gebruikers mogen hun e-mailadres niet verbergen voor ontvangers bij het aanmaken of bewerken van een Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Bewerkt beleid $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Prijs" + }, + "estimatedTax": { + "message": "Geschatte belasting" + }, + "custom": { + "message": "Aangepast" + }, + "customDesc": { + "message": "Maakt een fijnmazige controle van gebruikersrechten voor geavanceerde configuraties mogelijk." + }, + "permissions": { + "message": "Rechten" + }, + "accessEventLogs": { + "message": "Eventlogs" + }, + "accessImportExport": { + "message": "Importeren/exporteren" + }, + "accessReports": { + "message": "Rapporten" + }, + "missingPermissions": { + "message": "Je hebt geen rechten om deze actie uit te voeren." + }, + "manageAllCollections": { + "message": "Alle verbindingen beheren" + }, + "createNewCollections": { + "message": "Nieuwe verzamelingen aanmaken" + }, + "editAnyCollection": { + "message": "Iedere verzameling bewerken" + }, + "deleteAnyCollection": { + "message": "Iedere verzameling verwijderen" + }, + "manageAssignedCollections": { + "message": "Toegewezen collecties beheren" + }, + "editAssignedCollections": { + "message": "Toegewezen verzamelingen bewerken" + }, + "deleteAssignedCollections": { + "message": "Toegewezen verzamelingen verwijderen" + }, + "manageGroups": { + "message": "Groepen beheren" + }, + "managePolicies": { + "message": "Beleid beheren" + }, + "manageSso": { + "message": "SSO beheren" + }, + "manageUsers": { + "message": "Gebruikers beheren" + }, + "manageResetPassword": { + "message": "Wachtwoordherstel beheren" + }, + "disableRequiredError": { + "message": "Je moet handmatig het $POLICYNAME$-beleid uitschakelen voordat je dit beleid kunt uitschakelen.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Een organisatiebeleid heeft invloed op je eigendomsopties." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "Een organisatiebeleid heeft het importeren van items in je persoonlijke kluis uitgeschakeld." + }, + "personalOwnershipCheckboxDesc": { + "message": "Schakel persoonlijke eigendom uit voor organisatiegebruikers" + }, + "textHiddenByDefault": { + "message": "Verberg de tekst standaard bij het gebruiken van de Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Een vriendelijke naam om deze Send te beschrijven.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "De tekst die je wilt versturen." + }, + "sendFileDesc": { + "message": "Het bestand dat je wilt versturen." + }, + "copySendLinkOnSave": { + "message": "Kopieer de link om deze Send te delen bij opslaan naar mijn klembord." + }, + "sendLinkLabel": { + "message": "Send-link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send verstuurt gevoelige, tijdelijke informatie naar anderen op een gemakkelijke en veilige manier.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Leer meer over", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Deel tekst of bestanden met wie je maar wilt." + }, + "sendVaultCardLearnMore": { + "message": "Meer informatie", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "zien", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "hoe het werkt", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "of", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "probeer het nu", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "of", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "meld je aan", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "om het vandaag te proberen.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden-gebruiker $USER_IDENTIFIER$ heeft het volgende met je gedeeld", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "De Bitwarden-gebruiker die deze Send heeft gemaakt heeft ervoor gekozen het e-mailadres te verbergen. Je moet je ervan verzekeren dat je de bron van deze link vertrouwt voordat je de inhoud gebruikt of downloadt.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "De opgegeven vervaldatum is niet geldig." + }, + "deletionDateIsInvalid": { + "message": "De opgegeven verwijderdatum is niet geldig." + }, + "expirationDateAndTimeRequired": { + "message": "Een vervaldatum en -tijd zijn vereist." + }, + "deletionDateAndTimeRequired": { + "message": "Een verwijderingsdatum en -tijd zijn vereist." + }, + "dateParsingError": { + "message": "Er is een fout opgetreden bij het opslaan van je verwijder- en vervaldatum." + }, + "webAuthnFallbackMsg": { + "message": "Klik op onderstaande knop om je 2FA te verifiëren." + }, + "webAuthnAuthenticate": { + "message": "Authenticeer WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn wordt niet ondersteund in deze browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn met succes geverifieerd! Je kunt dit tabblad sluiten." + }, + "hintEqualsPassword": { + "message": "Je wachtwoordhint moet anders zijn dan je wachtwoord." + }, + "enrollPasswordReset": { + "message": "Aanmelden voor wachtwoordherstel" + }, + "enrolledPasswordReset": { + "message": "Aangemeld voor wachtwoordherstel" + }, + "withdrawPasswordReset": { + "message": "Teruggetrokken van wachtwoordherstel" + }, + "enrollPasswordResetSuccess": { + "message": "Succesvol aangemeld!" + }, + "withdrawPasswordResetSuccess": { + "message": "Succesvol ingetrokken!" + }, + "eventEnrollPasswordReset": { + "message": "Gebruiker $ID$ heeft zich aangemeld voor assistentie bij wachtwoordherstel.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Gebruiker $ID$ heeft zich teruggetrokken van assistentie bij wachtwoordherstel.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Hoofdwachtwoord opnieuw instellen voor gebruiker $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Sso-link voor gebruiker $ID$ opnieuw instellen", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ heeft voor de eerste keer ingelogd met Sso", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Wachtwoord opnieuw instellen" + }, + "resetPasswordLoggedOutWarning": { + "message": "Doorgaan logt de huidige sessie van $NAME$ uit, waarna deze opnieuw moet aanmelden. Actieve sessies op andere apparaten kunnen mogelijk nog één uur actief blijven.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "deze gebruiker" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Een of meer organisatiebeleidseisen stelt de volgende eisen aan je hoofdwachtwoord:" + }, + "resetPasswordSuccess": { + "message": "Wachtwoord opnieuw ingesteld!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Inschrijving stelt organisatiebeheerders in staat om je hoofdwachtwoord te wijzigen. Weet je zeker dat je wilt inschrijven?" + }, + "resetPasswordPolicy": { + "message": "Hoofdwachtwoord opnieuw instellen" + }, + "resetPasswordPolicyDescription": { + "message": "Beheerders in de organisatie toestaan het hoofdwachtwoord van gebruikers van de organisatie opnieuw in te stellen." + }, + "resetPasswordPolicyWarning": { + "message": "Gebruikers in de organisatie moeten zichzelf inschrijven of automatisch worden ingeschreven voordat beheerders hun hoofdwachtwoord opnieuw kunnen instellen." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatische inschrijving" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Alle gebruikers worden automatisch ingeschreven voor wachtwoordherstel zodra hun uitnodiging wordt geaccepteerd." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Gebruikers die al deel uitmaken van de organisatie worden niet met terugwerkende kracht aangemeld voor wachtwoordherstel. Zij zullen zichzelf moeten inschrijven voordat beheerders hun hoofdwachtwoord kunnen herstellen." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Automatisch nieuwe gebruikers inschrijven" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Deze organisatie heeft een ondernemingsbeleid dat je automatisch inschrijft bij het resetten van je wachtwoord. Inschrijving stelt organisatiebeheerders in staat om je hoofdwachtwoord te wijzigen." + }, + "resetPasswordOrgKeysError": { + "message": "Reactie organisatiesleutels is null" + }, + "resetPasswordDetailsError": { + "message": "Reactie Wachtwoordhersteldetails is null" + }, + "trashCleanupWarning": { + "message": "Codes die meer dan 30 dagen in de prullenbak zitten worden automatisch verwijderd." + }, + "trashCleanupWarningSelfHosted": { + "message": "Codes die een tijdje in de prullenbak zitten worden automatisch verwijderd." + }, + "passwordPrompt": { + "message": "Hoofdwachtwoord opnieuw vragen" + }, + "passwordConfirmation": { + "message": "Hoofdwachtwoord bevestigen" + }, + "passwordConfirmationDesc": { + "message": "Deze actie is beveiligd. Voer je hoofdwachtwoord opnieuw in om je identiteit vast te stellen en door te gaan." + }, + "reinviteSelected": { + "message": "Uitnodigingen opnieuw verzenden" + }, + "noSelectedUsersApplicable": { + "message": "Deze actie is niet van toepassing op de geselecteerde gebruikers." + }, + "removeUsersWarning": { + "message": "Weet je zeker dat je de volgende gebruikers wilt verwijderen? Dit proces duurt enkele seconden en kan niet worden onderbroken of geannuleerd." + }, + "theme": { + "message": "Thema" + }, + "themeDesc": { + "message": "Kies een thema voor je webkluis." + }, + "themeSystem": { + "message": "Systeemthema" + }, + "themeDark": { + "message": "Donker" + }, + "themeLight": { + "message": "Licht" + }, + "confirmSelected": { + "message": "Bevestig selectie" + }, + "bulkConfirmStatus": { + "message": "Bulkactie status" + }, + "bulkConfirmMessage": { + "message": "Succesvol bevestigd." + }, + "bulkReinviteMessage": { + "message": "Succesvol opnieuw uitgenodigd." + }, + "bulkRemovedMessage": { + "message": "Succesvol verwijderd" + }, + "bulkFilteredMessage": { + "message": "Uitgezonderd, niet van toepassing voor deze actie." + }, + "fingerprint": { + "message": "Vingerafdruk" + }, + "removeUsers": { + "message": "Gebruikers verwijderen" + }, + "error": { + "message": "Fout" + }, + "resetPasswordManageUsers": { + "message": "Gebruikers beheren moet ingeschakeld zijn met de optie Wachtwoordherstel beheren" + }, + "setupProvider": { + "message": "Providerinstellingen" + }, + "setupProviderLoginDesc": { + "message": "Je bent uitgenodigd om een nieuwe provider in te stellen. Om door te gaan, moet je inloggen of een nieuw Bitwarden-account aanmaken." + }, + "setupProviderDesc": { + "message": "Vul de gegevens hieronder in om de configuratie van de provider te voltooien. Neem contact op met de klantenservice als je vragen hebt." + }, + "providerName": { + "message": "Providernaam" + }, + "providerSetup": { + "message": "De provider is ingesteld." + }, + "clients": { + "message": "Apparaten" + }, + "providerAdmin": { + "message": "Providerbeheerder" + }, + "providerAdminDesc": { + "message": "De gebruiker met de hoogste toegang, die alle aspecten van je provider kan beheren alsmede toegang en klantorganisaties kan beheren." + }, + "serviceUser": { + "message": "Servicegebruiker" + }, + "serviceUserDesc": { + "message": "Servicegebruikers hebben toegang tot alle clientorganisaties en kunnen deze beheren." + }, + "providerInviteUserDesc": { + "message": "Nodig een nieuw gebruikers uit voor je provider door hun Bitwarden-account e-mailadres hieronder in te vullen. Wanneer ze nog geen Bitwarden-account hebben worden ze gevraagd om een nieuw account aan te maken." + }, + "joinProvider": { + "message": "Aansluiten bij provider" + }, + "joinProviderDesc": { + "message": "Je bent uitgenodigd om je aan te sluiten bij de bovenstaande provider. Om de uitnodiging te accepteren, moet je inloggen of een nieuw Bitwarden-account aanmaken." + }, + "providerInviteAcceptFailed": { + "message": "Kan de uitnodiging niet accepteren. Vraag een providerbeheerder om een nieuwe uitnodiging te versturen." + }, + "providerInviteAcceptedDesc": { + "message": "Je krijgt toegang tot deze provider zodra een beheerder je lidmaatschap bevestigt. We sturen je een e-mail wanneer dat gebeurt." + }, + "providerUsersNeedConfirmed": { + "message": "Je hebt gebruikers die hun uitnodiging hebben geaccepteerd, maar die nog moeten worden bevestigd. Gebruikers hebben geen toegang tot de provider totdat ze zijn bevestigd." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "Nieuwe klant-organisatie" + }, + "newClientOrganizationDesc": { + "message": "Maak een nieuwe klantorganisatie aan die aan jou als provider zal worden gekoppeld. Je kunt toegang krijgen tot en deze organisatie beheren." + }, + "addExistingOrganization": { + "message": "Bestaande organisatie toevoegen" + }, + "myProvider": { + "message": "Mijn provider" + }, + "addOrganizationConfirmation": { + "message": "Weet je zeker dat je $ORGANIZATION$ als client wilt toevoegen aan $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organisatie succesvol toegevoegd aan de provider" + }, + "accessingUsingProvider": { + "message": "Organisatie benaderen via provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is uitgeschakeld." + }, + "providerUpdated": { + "message": "Provider bijgewerkt" + }, + "yourProviderIs": { + "message": "Je provider is $PROVIDER$. Ze hebben administratieve- en factuurrechten voor jouw organisatie.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "De organisatie $ORGANIZATION$ is losgekoppeld van jouw provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Weet je zeker dat je deze organisatie wilt loskoppelen? De organisatie zal blijven bestaan maar zal niet langer worden beheerd door de provider." + }, + "add": { + "message": "Toevoegen" + }, + "updatedMasterPassword": { + "message": "Hoofdwachtwoord bijgewerkt" + }, + "updateMasterPassword": { + "message": "Hoofdwachtwoord bijwerken" + }, + "updateMasterPasswordWarning": { + "message": "Je hoofdwachtwoord is onlangs veranderd door een beheerder in jouw organisatie. Om toegang te krijgen tot de kluis, moet je deze nu bijwerken. Doorgaan zal je huidige sessie uitloggen, waarna je opnieuw moet inloggen. Actieve sessies op andere apparaten blijven mogelijk nog een uur actief." + }, + "masterPasswordInvalidWarning": { + "message": "Je hoofdwachtwoord voldoet niet aan het beleid van deze organisatie. Om lid te worden van deze organisatie, moet je nu je hoofdwachtwoord veranderen. Als je doorgaat moet je opnieuw inloggen. Sessies op andere apparaten blijven mogelijk nog een uur actief." + }, + "maximumVaultTimeout": { + "message": "Time-out van de kluis" + }, + "maximumVaultTimeoutDesc": { + "message": "Stel een maximale time-out van de kluis in voor alle gebruikers." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximale time-out van de kluis" + }, + "invalidMaximumVaultTimeout": { + "message": "Ongeldige maximale time-out van de kluis." + }, + "hours": { + "message": "Uren" + }, + "minutes": { + "message": "Minuten" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Het beleid van je organisatie heeft invloed op de time-out van je kluis. De maximaal toegestane time-out voor je kluis is $HOURS$ uur en $MINUTES$ minuten", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Aangepaste time-out van de kluis" + }, + "vaultTimeoutToLarge": { + "message": "Je kluis time-out is hoger dan het maximum van jouw organisatie." + }, + "disablePersonalVaultExport": { + "message": "Persoonlijke kluis exporteren uitschakelen" + }, + "disablePersonalVaultExportDesc": { + "message": "Verbiedt gebruikers om hun privékluisgegevens te exporteren." + }, + "vaultExportDisabled": { + "message": "Kluis exporteren uitgeschakeld" + }, + "personalVaultExportPolicyInEffect": { + "message": "Organisatiebeleid voorkomt dat je je persoonlijke kluis exporteert." + }, + "selectType": { + "message": "Selecteer Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get Claims From User Info Endpoint" + }, + "additionalScopes": { + "message": "Additional/Custom Scopes (comma delimited)" + }, + "additionalUserIdClaimTypes": { + "message": "Additional/Custom User ID Claim Types (comma delimited)" + }, + "additionalEmailClaimTypes": { + "message": "Additional/Custom Email Claim Types (comma delimited)" + }, + "additionalNameClaimTypes": { + "message": "Additional/Custom Name Claim Types (comma delimited)" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values (acr_values)" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response (acr validation)" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Want Assertions Signed" + }, + "spValidateCertificates": { + "message": "Validate Certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Unsolicited Authentication Response toestaan" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Uitgaande uitlog aanvragen toestaan" + }, + "idpSignAuthenticationRequests": { + "message": "Onderteken authenticatie aanvragen" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuratie is opgeslagen." + }, + "sponsoredFamilies": { + "message": "Gratis Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "Jij en je familie komen in aanmerking voor gratis Bitwarden Families. Verzilver met je persoonlijke e-mail om je gegevens veilig te houden, zelfs als je niet op het werk bent." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Verzilver je gratis Bitwarden Families vandaag om je gegevens veilig te houden, zelfs wanneer je niet aan het werk bent." + }, + "sponsoredFamiliesInclude": { + "message": "Bitwarden Families omvat" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium-toegang voor maximaal 6 gebruikers" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Gedeelde collecties voor familiegeheimen" + }, + "badToken": { + "message": "De link is niet langer geldig. Zorg ervoor dat de sponsors de uitnodiging opnieuw versturen." + }, + "reclaimedFreePlan": { + "message": "Gratis abonnement hergebruikt" + }, + "redeem": { + "message": "Verzilveren" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Selecteer de organisatie die je wilt sponsoren" + }, + "familiesSponsoringOrgSelect": { + "message": "Welke gratis Families wil je inwisselen?" + }, + "sponsoredFamiliesEmail": { + "message": "Voer je persoonlijke e-mailadres in om Bitwarden Families te verzilveren" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Als je vertrekt of verwijderd wordt uit deze organisatie, vervalt je Families-plan aan het einde van de factureringsperiode." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accepteer aanbod voor een bestaande organisatie of maak een nieuwe Families-organisatie aan." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Je hebt een gratis Bitwarden Families Plan-organisatie aangeboden gekregen. Om door te gaan, moet je inloggen op het account dat de aanbieding heeft ontvangen." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Kan aanbieding niet accepteren. Verstuur de aanbieding opnieuw via je bedrijfsaccount en probeer het opnieuw." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Kan aanbieding niet accepteren. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Gratis Bitwarden Families-organisatieaanbod verzilveren" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Gratis Bitwarden Families-aanbod succesvol verzilverd" + }, + "redeemed": { + "message": "Verzilverd" + }, + "redeemedAccount": { + "message": "Account verzilverd" + }, + "revokeAccount": { + "message": "Account $NAME$ intrekken", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Sponsoring e-mail opnieuw verzenden naar $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Gratis Families Plan" + }, + "redeemNow": { + "message": "Nu verzilveren" + }, + "recipient": { + "message": "Ontvanger" + }, + "removeSponsorship": { + "message": "Sponsoring verwijderen" + }, + "removeSponsorshipConfirmation": { + "message": "Na het verwijderen van sponsoring ben je verantwoordelijk voor dit abonnement en de bijbehorende facturen. Weet je zeker dat je wilt doorgaan?" + }, + "sponsorshipCreated": { + "message": "Sponsoring aangemaakt" + }, + "revoke": { + "message": "Intrekken" + }, + "emailSent": { + "message": "E-mail verzonden" + }, + "revokeSponsorshipConfirmation": { + "message": "Als je dit account verwijderd is de eigenaar van de Families-organisatie verantwoordelijk voor dit abonnement en de bijbehorende facturen. Weet je zeker dat je wilt doorgaan?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsoring verwijderd" + }, + "ssoKeyConnectorUnavailable": { + "message": "Kan de Key Connector niet bereiken, probeer het later opnieuw." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Stuur een verificatiecode naar je e-mail" + }, + "sendCode": { + "message": "Code versturen" + }, + "codeSent": { + "message": "Code verstuurd" + }, + "verificationCode": { + "message": "Verificatiecode" + }, + "confirmIdentity": { + "message": "Bevestig je identiteit om door te gaan." + }, + "verificationCodeRequired": { + "message": "Verificatiecode vereist." + }, + "invalidVerificationCode": { + "message": "Ongeldige verificatiecode" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ gebruikt SSO met een zelf gehoste sleutelserver. Leden van deze organisatie kunnen inloggen zonder hoofdwachtwoord.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Organisatie verlaten" + }, + "removeMasterPassword": { + "message": "Hoofdwachtwoord verwijderen" + }, + "removedMasterPassword": { + "message": "Hoofdwachtwoord verwijderd." + }, + "allowSso": { + "message": "SSO-authenticatie toestaan" + }, + "allowSsoDesc": { + "message": "Na het instellen zal uw configuratie worden opgeslagen en kunnen leden zich authenticeren met behulp van hun Identity Provider inloggegevens." + }, + "ssoPolicyHelpStart": { + "message": "Inschakelen", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO-beleid", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "om alle leden inloggen met SSO te verplichten.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO-authenticatie en Enkele Organisatie-beleid zijn vereist voor het instellen van de versleuteling van de Key Connector." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Eenmaal ingelogd, ontsleutelen leden kluisgegevens met hun hoofdwachtwoorden." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Verbind Login met SSO met je zelf gehoste decoderingssleutelserver. Met deze optie kunnen leden kluisgegevens ontsleutelen zonder hoofdwachtwoord." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login met SSO en Key Connector Decryption\" is ingeschakeld. Dit beleid is alleen van toepassing op de eigenaren en beheerders." + }, + "enabledSso": { + "message": "SSO ingeschakeld" + }, + "disabledSso": { + "message": "SSO uitgeschakeld" + }, + "enabledKeyConnector": { + "message": "Key Connector ingeschakeld" + }, + "disabledKeyConnector": { + "message": "Key Connector uigeschakeld" + }, + "keyConnectorWarning": { + "message": "Zodra Key Connector is ingesteld, kunnen Member Decryption Options niet worden gewijzigd." + }, + "migratedKeyConnector": { + "message": "Gemigreerd naar Key Connector" + }, + "paymentSponsored": { + "message": "Geef een betalingsmethode om aan de organisatie te koppelen. Maak je geen zorgen, we brengen niets in rekening tenzij je aanvullende functies kiest of je sponsoring verloopt. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "De sponsoring is verlopen. Je kunt de organisatie die je hebt aangemaakt verwijderen om kosten aan het einde van je proefperiode van 7 dagen te voorkomen. Anders kun je deze pop-up sluiten om de organisatie te behouden en factureringsverantwoordelijkheid te nemen." + }, + "newFamiliesOrganization": { + "message": "Nieuwe Families-oganisatie" + }, + "acceptOffer": { + "message": "Aanbod accepteren" + }, + "sponsoringOrg": { + "message": "Sponsoringorganisatie" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Gelukt! Key Connector bereikt." + }, + "keyConnectorTestFail": { + "message": "Kan Key Connector niet bereiken. Controleer de URL." + }, + "sponsorshipTokenHasExpired": { + "message": "De sponsoring is verlopen." + }, + "freeWithSponsorship": { + "message": "GRATIS met sponsoring" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ velden hierboven vereisen je aandacht.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 veld hierboven vereist je aandacht." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is vereist.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "vereist" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Vereist als Entiteit ID geen URL is." + }, + "openIdOptionalCustomizations": { + "message": "Optionele aanpassingen" + }, + "openIdAuthorityRequired": { + "message": "Vereist als Autoriteit niet geldig is." + }, + "separateMultipleWithComma": { + "message": "Scheid meerdere met kommas." + }, + "sessionTimeout": { + "message": "Je sessie is verlopen. Ga terug en probeer opnieuw in te loggen." + }, + "exportingPersonalVaultTitle": { + "message": "Persoonlijke kluis exporteren" + }, + "exportingOrganizationVaultTitle": { + "message": "Organisatiekluis exporteren" + }, + "exportingPersonalVaultDescription": { + "message": "Exporteert alleen de persoonlijke kluis-items gerelateerd aan $EMAIL$. Geen kluis-items van de organisatie.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Exporteert alleen de organisatiekluis van $ORGANIZATION$. Geen persoonlijke kluis-items of items van andere organisaties.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Terug naar rapporten" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "Wat wil je genereren?" + }, + "passwordType": { + "message": "Type wachtwoord" + }, + "regenerateUsername": { + "message": "Gebruikersnaam opnieuw genereren" + }, + "generateUsername": { + "message": "Gebruikersnaam genereren" + }, + "usernameType": { + "message": "Type gebruikersnaam" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all e-mail" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Willekeurig" + }, + "randomWord": { + "message": "Willekeurig woord" + }, + "service": { + "message": "Dienst" + } +} diff --git a/apps/web/src/locales/nn/messages.json b/apps/web/src/locales/nn/messages.json new file mode 100644 index 0000000000..09e41acffc --- /dev/null +++ b/apps/web/src/locales/nn/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Web Vault", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Kva type oppføring er dette?" + }, + "name": { + "message": "Namn" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "New URI" + }, + "username": { + "message": "Brukarnamn" + }, + "password": { + "message": "Passord" + }, + "newPassword": { + "message": "Nytt passord" + }, + "passphrase": { + "message": "Passordfrase" + }, + "notes": { + "message": "Notat" + }, + "customFields": { + "message": "Eigendefinert felt" + }, + "cardholderName": { + "message": "Namn til korteigar" + }, + "number": { + "message": "Nummer" + }, + "brand": { + "message": "Type" + }, + "expiration": { + "message": "Utløp" + }, + "securityCode": { + "message": "Verifiseringskode (CVC)" + }, + "identityName": { + "message": "Intentitetsnamn" + }, + "company": { + "message": "Firmanamn" + }, + "ssn": { + "message": "Personnummer" + }, + "passportNumber": { + "message": "Passnummer" + }, + "licenseNumber": { + "message": "Førarkortnummer" + }, + "email": { + "message": "E-post" + }, + "phone": { + "message": "Telefon" + }, + "january": { + "message": "Januar" + }, + "february": { + "message": "Februar" + }, + "march": { + "message": "Mars" + }, + "april": { + "message": "April" + }, + "may": { + "message": "Mai" + }, + "june": { + "message": "Juni" + }, + "july": { + "message": "Juli" + }, + "august": { + "message": "August" + }, + "september": { + "message": "September" + }, + "october": { + "message": "Oktober" + }, + "november": { + "message": "November" + }, + "december": { + "message": "Desember" + }, + "title": { + "message": "Tittel" + }, + "mr": { + "message": "Herr" + }, + "mrs": { + "message": "Fru" + }, + "ms": { + "message": "Frøken" + }, + "dr": { + "message": "Dr․" + }, + "expirationMonth": { + "message": "Utløpsmånad" + }, + "expirationYear": { + "message": "Utløpår" + }, + "authenticatorKeyTotp": { + "message": "Autentiseringsnøkkel (TOTP)" + }, + "folder": { + "message": "Mappe" + }, + "newCustomField": { + "message": "Nytt eigendefinert felt" + }, + "value": { + "message": "Verdi" + }, + "dragToSort": { + "message": "Dra for å sortera" + }, + "cfTypeText": { + "message": "Tekst" + }, + "cfTypeHidden": { + "message": "Skjult" + }, + "cfTypeBoolean": { + "message": "Boolsk" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Remove" + }, + "unassigned": { + "message": "Unassigned" + }, + "noneFolder": { + "message": "Ingen mappe", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Legg til mappe" + }, + "editFolder": { + "message": "Rediger mappe" + }, + "baseDomain": { + "message": "Grunndomene", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exact" + }, + "startsWith": { + "message": "Starts with" + }, + "regEx": { + "message": "Regular expression", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Match Detection", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Default match detection", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Never" + }, + "toggleVisibility": { + "message": "Toggle Visibility" + }, + "toggleCollapse": { + "message": "Toggle Collapse", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generate Password" + }, + "checkPassword": { + "message": "Check if password has been exposed." + }, + "passwordExposed": { + "message": "This password has been exposed $VALUE$ time(s) in data breaches. You should change it.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "This password was not found in any known data breaches. It should be safe to use." + }, + "save": { + "message": "Save" + }, + "cancel": { + "message": "Cancel" + }, + "canceled": { + "message": "Canceled" + }, + "close": { + "message": "Close" + }, + "delete": { + "message": "Delete" + }, + "favorite": { + "message": "Favorite" + }, + "unfavorite": { + "message": "Unfavorite" + }, + "edit": { + "message": "Edit" + }, + "searchCollection": { + "message": "Search Collection" + }, + "searchFolder": { + "message": "Search Folder" + }, + "searchFavorites": { + "message": "Search Favorites" + }, + "searchType": { + "message": "Search Type", + "description": "Search item type" + }, + "searchVault": { + "message": "Search Vault" + }, + "allItems": { + "message": "Alle oppføringar" + }, + "favorites": { + "message": "Favorites" + }, + "types": { + "message": "Types" + }, + "typeLogin": { + "message": "Login" + }, + "typeCard": { + "message": "Card" + }, + "typeIdentity": { + "message": "Identity" + }, + "typeSecureNote": { + "message": "Secure Note" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "Folders" + }, + "collections": { + "message": "Collections" + }, + "firstName": { + "message": "First Name" + }, + "middleName": { + "message": "Middle Name" + }, + "lastName": { + "message": "Last Name" + }, + "fullName": { + "message": "Full Name" + }, + "address1": { + "message": "Address 1" + }, + "address2": { + "message": "Adresse 2" + }, + "address3": { + "message": "Adresse 3" + }, + "cityTown": { + "message": "By/tettstad" + }, + "stateProvince": { + "message": "Fylke/område" + }, + "zipPostalCode": { + "message": "Postnummer" + }, + "country": { + "message": "Land" + }, + "shared": { + "message": "Delt" + }, + "attachments": { + "message": "Vedlegg" + }, + "select": { + "message": "Marker" + }, + "addItem": { + "message": "Legg til ei oppføring" + }, + "editItem": { + "message": "Endre oppføring" + }, + "viewItem": { + "message": "Sjå oppføring" + }, + "ex": { + "message": "t.d.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Anna" + }, + "share": { + "message": "Delt" + }, + "moveToOrganization": { + "message": "Move to Organization" + }, + "valueCopied": { + "message": "$VALUE$ er kopiert", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Kopier verdi", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Kopier passordet", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Kopier brukarnamnet", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Copy Number", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copy Security Code", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Copy URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "My Vault" + }, + "vault": { + "message": "Vault" + }, + "moveSelectedToOrg": { + "message": "Flytt markerte til organisasjon" + }, + "deleteSelected": { + "message": "Slett markerte" + }, + "moveSelected": { + "message": "Flytt markerte" + }, + "selectAll": { + "message": "Marker alle" + }, + "unselectAll": { + "message": "Marker ingen" + }, + "launch": { + "message": "Launch" + }, + "newAttachment": { + "message": "Add New Attachment" + }, + "deletedAttachment": { + "message": "Deleted attachment" + }, + "deleteAttachmentConfirmation": { + "message": "Are you sure you want to delete this attachment?" + }, + "attachmentSaved": { + "message": "The attachment has been saved." + }, + "file": { + "message": "File" + }, + "selectFile": { + "message": "Select a file." + }, + "maxFileSize": { + "message": "Maximum file size is 500 MB." + }, + "updateKey": { + "message": "You cannot use this feature until you update your encryption key." + }, + "addedItem": { + "message": "Oppføringar du har lagt til" + }, + "editedItem": { + "message": "Oppføringar du har endra" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ flytta til $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Dei valde oppføringane vart flytta til $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Sletta oppføring" + }, + "deleteFolder": { + "message": "Delete Folder" + }, + "deleteAttachment": { + "message": "Delete Attachment" + }, + "deleteItemConfirmation": { + "message": "Vil du verkeleg flytta denne til boss?" + }, + "deletedItem": { + "message": "Oppføringa vart sendt til boss" + }, + "deletedItems": { + "message": "Oppføringar sendt til boss" + }, + "movedItems": { + "message": "Flytta oppføringar" + }, + "overwritePasswordConfirmation": { + "message": "Are you sure you want to overwrite the current password?" + }, + "editedFolder": { + "message": "Edited folder" + }, + "addedFolder": { + "message": "Added folder" + }, + "deleteFolderConfirmation": { + "message": "Are you sure you want to delete this folder?" + }, + "deletedFolder": { + "message": "Deleted folder" + }, + "loggedOut": { + "message": "Logged out" + }, + "loginExpired": { + "message": "Your login session has expired." + }, + "logOutConfirmation": { + "message": "Are you sure you want to log out?" + }, + "logOut": { + "message": "Log Out" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Yes" + }, + "no": { + "message": "No" + }, + "loginOrCreateNewAccount": { + "message": "Log in or create a new account to access your secure vault." + }, + "createAccount": { + "message": "Create Account" + }, + "logIn": { + "message": "Log In" + }, + "submit": { + "message": "Submit" + }, + "emailAddressDesc": { + "message": "You'll use your email address to log in." + }, + "yourName": { + "message": "Your Name" + }, + "yourNameDesc": { + "message": "What should we call you?" + }, + "masterPass": { + "message": "Master Password" + }, + "masterPassDesc": { + "message": "The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it." + }, + "masterPassHintDesc": { + "message": "A master password hint can help you remember your password if you forget it." + }, + "reTypeMasterPass": { + "message": "Re-type Master Password" + }, + "masterPassHint": { + "message": "Master Password Hint (optional)" + }, + "masterPassHintLabel": { + "message": "Master Password Hint" + }, + "settings": { + "message": "Settings" + }, + "passwordHint": { + "message": "Password Hint" + }, + "enterEmailToGetHint": { + "message": "Enter your account email address to receive your master password hint." + }, + "getMasterPasswordHint": { + "message": "Get master password hint" + }, + "emailRequired": { + "message": "Email address is required." + }, + "invalidEmail": { + "message": "Invalid email address." + }, + "masterPassRequired": { + "message": "Master password is required." + }, + "masterPassLength": { + "message": "Master password must be at least 8 characters long." + }, + "masterPassDoesntMatch": { + "message": "Master password confirmation does not match." + }, + "newAccountCreated": { + "message": "Your new account has been created! You may now log in." + }, + "masterPassSent": { + "message": "We've sent you an email with your master password hint." + }, + "unexpectedError": { + "message": "An unexpected error has occurred." + }, + "emailAddress": { + "message": "Email Address" + }, + "yourVaultIsLocked": { + "message": "Your vault is locked. Verify your master password to continue." + }, + "unlock": { + "message": "Unlock" + }, + "loggedInAsEmailOn": { + "message": "Logged in as $EMAIL$ on $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Invalid master password" + }, + "lockNow": { + "message": "Lock Now" + }, + "noItemsInList": { + "message": "Det er inga oppføringar å lista opp." + }, + "noCollectionsInList": { + "message": "There are no collections to list." + }, + "noGroupsInList": { + "message": "There are no groups to list." + }, + "noUsersInList": { + "message": "Det er inga brukarar å lista opp." + }, + "noEventsInList": { + "message": "There are no events to list." + }, + "newOrganization": { + "message": "New Organization" + }, + "noOrganizationsList": { + "message": "You do not belong to any organizations. Organizations allow you to securely share items with other users." + }, + "versionNumber": { + "message": "Version $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Enter the 6 digit verification code from your authenticator app." + }, + "enterVerificationCodeEmail": { + "message": "Enter the 6 digit verification code that was emailed to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Verification email sent to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Remember me" + }, + "sendVerificationCodeEmailAgain": { + "message": "Send verification code email again" + }, + "useAnotherTwoStepMethod": { + "message": "Bruk ein annan tofaktormetode for pålogging" + }, + "insertYubiKey": { + "message": "Insert your YubiKey into your computer's USB port, then touch its button." + }, + "insertU2f": { + "message": "Insert your security key into your computer's USB port. If it has a button, touch it." + }, + "loginUnavailable": { + "message": "Login Unavailable" + }, + "noTwoStepProviders": { + "message": "This account has two-step login enabled, however, none of the configured two-step providers are supported by this web browser." + }, + "noTwoStepProviders2": { + "message": "Please use a supported web browser (such as Chrome) and/or add additional providers that are better supported across web browsers (such as an authenticator app)." + }, + "twoStepOptions": { + "message": "Two-step Login Options" + }, + "recoveryCodeDesc": { + "message": "Lost access to all of your two-factor providers? Use your recovery code to disable all two-factor providers from your account." + }, + "recoveryCodeTitle": { + "message": "Recovery Code" + }, + "authenticatorAppTitle": { + "message": "Authenticator App" + }, + "authenticatorAppDesc": { + "message": "Bruk ein app for autentisering (til dømes Authy eller Google Authenticator) for å generera tidsavgrensa verifiseringskodar.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP Security Key" + }, + "yubiKeyDesc": { + "message": "Use a YubiKey to access your account. Works with YubiKey 4 series, 5 series, and NEO devices." + }, + "duoDesc": { + "message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verify with Duo Security for your organization using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Use any FIDO U2F enabled security key to access your account." + }, + "u2fTitle": { + "message": "FIDO U2F Security Key" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Verification codes will be emailed to you." + }, + "continue": { + "message": "Continue" + }, + "organization": { + "message": "Organization" + }, + "organizations": { + "message": "Organizations" + }, + "moveToOrgDesc": { + "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organization that you wish to move these items to. Moving to an organization transfers ownership of the items to that organization. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "Edit the collections that this item is being shared with. Only organization users with access to these collections will be able to see this item." + }, + "deleteSelectedItemsDesc": { + "message": "Du har valgt $COUNT$ oppføring(ar) til sletting. Vil du verkeleg sletta dei?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Velg ei mappe som du vil flytta $COUNT$ markert(e) oppføring(ar) til.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organization, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Verification Code (TOTP)" + }, + "copyVerificationCode": { + "message": "Copy Verification Code" + }, + "warning": { + "message": "Warning" + }, + "confirmVaultExport": { + "message": "Confirm Vault Export" + }, + "exportWarningDesc": { + "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "Export Vault" + }, + "fileFormat": { + "message": "File Format" + }, + "exportSuccess": { + "message": "Your vault data has been exported." + }, + "passwordGenerator": { + "message": "Password Generator" + }, + "minComplexityScore": { + "message": "Minimum Complexity Score" + }, + "minNumbers": { + "message": "Minimum Numbers" + }, + "minSpecial": { + "message": "Minimum Special", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Avoid Ambiguous Characters" + }, + "regeneratePassword": { + "message": "Regenerate Password" + }, + "length": { + "message": "Length" + }, + "numWords": { + "message": "Number of Words" + }, + "wordSeparator": { + "message": "Word Separator" + }, + "capitalize": { + "message": "Capitalize", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Include Number" + }, + "passwordHistory": { + "message": "Password History" + }, + "noPasswordsInList": { + "message": "There are no passwords to list." + }, + "clear": { + "message": "Clear", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Account Updated" + }, + "changeEmail": { + "message": "Change Email" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "New Email" + }, + "code": { + "message": "Code" + }, + "changeEmailDesc": { + "message": "We have emailed a verification code to $EMAIL$. Please check your email for this code and enter it below to finalize the email address change.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "emailChanged": { + "message": "Email Changed" + }, + "logBackIn": { + "message": "Please log back in." + }, + "logBackInOthersToo": { + "message": "Please log back in. If you are using other Bitwarden applications log out and back in to those as well." + }, + "changeMasterPassword": { + "message": "Change Master Password" + }, + "masterPasswordChanged": { + "message": "Master Password Changed" + }, + "currentMasterPass": { + "message": "Current Master Password" + }, + "newMasterPass": { + "message": "New Master Password" + }, + "confirmNewMasterPass": { + "message": "Confirm New Master Password" + }, + "encKeySettings": { + "message": "Encryption Key Settings" + }, + "kdfAlgorithm": { + "message": "KDF Algorithm" + }, + "kdfIterations": { + "message": "KDF Iterations" + }, + "kdfIterationsDesc": { + "message": "Higher KDF iterations can help protect your master password from being brute forced by an attacker. We recommend a value of $VALUE$ or more.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Setting your KDF iterations too high could result in poor performance when logging into (and unlocking) Bitwarden on devices with slower CPUs. We recommend that you increase the value in increments of $INCREMENT$ and then test all of your devices.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Change KDF" + }, + "encKeySettingsChanged": { + "message": "Encryption Key Settings Changed" + }, + "dangerZone": { + "message": "Danger Zone" + }, + "dangerZoneDesc": { + "message": "Careful, these actions are not reversible!" + }, + "deauthorizeSessions": { + "message": "Deauthorize Sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Concerned your account is logged in on another device? Proceed below to deauthorize all computers or devices that you have previously used. This security step is recommended if you previously used a public computer or accidentally saved your password on a device that isn't yours. This step will also clear all previously remembered two-step login sessions." + }, + "deauthorizeSessionsWarning": { + "message": "Proceeding will also log you out of your current session, requiring you to log back in. You will also be prompted for two-step login again, if enabled. Active sessions on other devices may continue to remain active for up to one hour." + }, + "sessionsDeauthorized": { + "message": "All Sessions Deauthorized" + }, + "purgeVault": { + "message": "Purge Vault" + }, + "purgedOrganizationVault": { + "message": "Purged organization vault." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Proceed below to delete all items and folders in your vault. Items that belong to an organization that you share with will not be deleted." + }, + "purgeOrgVaultDesc": { + "message": "Proceed below to delete all items in the organization's vault." + }, + "purgeVaultWarning": { + "message": "Purging your vault is permanent. It cannot be undone." + }, + "vaultPurged": { + "message": "Your vault has been purged." + }, + "deleteAccount": { + "message": "Delete Account" + }, + "deleteAccountDesc": { + "message": "Proceed below to delete your account and all associated data." + }, + "deleteAccountWarning": { + "message": "Deleting your account is permanent. It cannot be undone." + }, + "accountDeleted": { + "message": "Account Deleted" + }, + "accountDeletedDesc": { + "message": "Your account has been closed and all associated data has been deleted." + }, + "myAccount": { + "message": "My Account" + }, + "tools": { + "message": "Tools" + }, + "importData": { + "message": "Import Data" + }, + "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." + }, + "importSuccess": { + "message": "Data has been successfully imported into your vault." + }, + "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." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "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)" + } + } + }, + "options": { + "message": "Options" + }, + "optionsDesc": { + "message": "Customize your web vault experience." + }, + "optionsUpdated": { + "message": "Options updated" + }, + "language": { + "message": "Language" + }, + "languageDesc": { + "message": "Change the language used by the web vault." + }, + "disableIcons": { + "message": "Disable Website Icons" + }, + "disableIconsDesc": { + "message": "Website Icons provide a recognizable image next to each login item in your vault." + }, + "enableGravatars": { + "message": "Enable Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use avatar images loaded from gravatar.com." + }, + "enableFullWidth": { + "message": "Enable Full Width Layout", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Allow the web vault to expand the full width of the browser window." + }, + "default": { + "message": "Default" + }, + "domainRules": { + "message": "Domain Rules" + }, + "domainRulesDesc": { + "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + }, + "globalEqDomains": { + "message": "Global Equivalent Domains" + }, + "customEqDomains": { + "message": "Custom Equivalent Domains" + }, + "exclude": { + "message": "Exclude" + }, + "include": { + "message": "Include" + }, + "customize": { + "message": "Customize" + }, + "newCustomDomain": { + "message": "New Custom Domain" + }, + "newCustomDomainDesc": { + "message": "Legg inn ei liste med domener, skilt med komma. Berre \"grunndomener\" vert godteke. Ikkje skriv inn subdomener (underdomener). Skriv til dømes \"google.com\" i staden for \"www.google.com\". Du kan òg skriva \"androidapp://package.name\" for å knyta ein Android-app mot domener til heimesider." + }, + "customDomainX": { + "message": "Custom Domain $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domains updated" + }, + "twoStepLogin": { + "message": "Two-step Login" + }, + "twoStepLoginDesc": { + "message": "Secure your account by requiring an additional step when logging in." + }, + "twoStepLoginOrganizationDesc": { + "message": "Require two-step login for your organization's users by configuring providers at the organization level." + }, + "twoStepLoginRecoveryWarning": { + "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (ex. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + }, + "viewRecoveryCode": { + "message": "View Recovery Code" + }, + "providers": { + "message": "Providers", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Enable" + }, + "enabled": { + "message": "Enabled" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium Membership" + }, + "premiumRequired": { + "message": "Premium Required" + }, + "premiumRequiredDesc": { + "message": "A premium membership is required to use this feature." + }, + "youHavePremiumAccess": { + "message": "You have premium access" + }, + "alreadyPremiumFromOrg": { + "message": "You already have access to premium features because of an organization you are a member of." + }, + "manage": { + "message": "Manage" + }, + "disable": { + "message": "Disable" + }, + "twoStepLoginProviderEnabled": { + "message": "This two-step login provider is enabled on your account." + }, + "twoStepLoginAuthDesc": { + "message": "Enter your master password to modify two-step login settings." + }, + "twoStepAuthenticatorDesc": { + "message": "Follow these steps to set up two-step login with an authenticator app:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Download a two-step authenticator app" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Need a two-step authenticator app? Download one of the following" + }, + "iosDevices": { + "message": "iOS devices" + }, + "androidDevices": { + "message": "Android devices" + }, + "windowsDevices": { + "message": "Windows devices" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "These apps are recommended, however, other authenticator apps will also work." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scan this QR code with your authenticator app" + }, + "key": { + "message": "Key" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Enter the resulting 6 digit verification code from the app" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app." + }, + "twoStepDisableDesc": { + "message": "Are you sure you want to disable this two-step login provider?" + }, + "twoStepDisabled": { + "message": "Two-step login provider disabled." + }, + "twoFactorYubikeyAdd": { + "message": "Add a new YubiKey to your account" + }, + "twoFactorYubikeyPlugIn": { + "message": "Plug the YubiKey into your computer's USB port." + }, + "twoFactorYubikeySelectKey": { + "message": "Select the first empty YubiKey input field below." + }, + "twoFactorYubikeyTouchButton": { + "message": "Touch the YubiKey's button." + }, + "twoFactorYubikeySaveForm": { + "message": "Save the form." + }, + "twoFactorYubikeyWarning": { + "message": "Due to platform limitations, YubiKeys cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when YubiKeys cannot be used. Supported platforms:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile apps on a device with NFC capabilities or a data port that can accept your YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC Support" + }, + "twoFactorYubikeySupportsNfc": { + "message": "One of my keys supports NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "If one of your YubiKeys supports NFC (such as a YubiKey NEO), you will be prompted on mobile devices whenever NFC availability is detected." + }, + "yubikeysUpdated": { + "message": "YubiKeys updated" + }, + "disableAllKeys": { + "message": "Disable All Keys" + }, + "twoFactorDuoDesc": { + "message": "Enter the Bitwarden application information from your Duo Admin panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration Key" + }, + "twoFactorDuoSecretKey": { + "message": "Secret Key" + }, + "twoFactorDuoApiHostname": { + "message": "API Hostname" + }, + "twoFactorEmailDesc": { + "message": "Follow these steps to set up two-step login with email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enter the email that you wish to receive verification codes" + }, + "twoFactorEmailEnterCode": { + "message": "Enter the resulting 6 digit verification code from the email" + }, + "sendEmail": { + "message": "Send Email" + }, + "twoFactorU2fAdd": { + "message": "Add a FIDO U2F security key to your account" + }, + "removeU2fConfirmation": { + "message": "Are you sure you want to remove this security key?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Read Key" + }, + "keyCompromised": { + "message": "Key is compromised." + }, + "twoFactorU2fGiveName": { + "message": "Give the security key a friendly name to identify it." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Plug the security key into your computer's USB port and click the \"Read Key\" button." + }, + "twoFactorU2fTouchButton": { + "message": "If the security key has a button, touch it." + }, + "twoFactorU2fSaveForm": { + "message": "Save the form." + }, + "twoFactorU2fWarning": { + "message": "Due to platform limitations, FIDO U2F cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when FIDO U2F cannot be used. Supported platforms:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorU2fWaiting": { + "message": "Waiting for you to touch the button on your security key" + }, + "twoFactorU2fClickSave": { + "message": "Click the \"Save\" button below to enable this security key for two-step login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Your Bitwarden two-step login recovery code" + }, + "twoFactorRecoveryNoCode": { + "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + }, + "printCode": { + "message": "Print Code", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Reports" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Unsecure Websites" + }, + "unsecuredWebsitesReportDesc": { + "message": "URLs that start with http:// don’t use the best available encryption. Change the Login URIs for these accounts to https:// for safer browsing." + }, + "unsecuredWebsitesFound": { + "message": "Unsecured Websites Found" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Inactive Two-step Login" + }, + "inactive2faReportDesc": { + "message": "Two-step Login adds a layer of protection to your accounts. Turn on Two-Step Login using Bitwarden Authenticator for these accounts or use an alternative method." + }, + "inactive2faFound": { + "message": "Logins Without 2FA Found" + }, + "inactive2faFoundDesc": { + "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to 2fa.directory). To further protect these accounts, you should enable two-factor authentication.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No websites were found in your vault with a missing two-factor authentication configuration." + }, + "instructions": { + "message": "Instructions" + }, + "exposedPasswordsReport": { + "message": "Exposed Passwords" + }, + "exposedPasswordsReportDesc": { + "message": "Passwords exposed in a data breach are easy targets for attackers. Change these passwords to prevent potential break-ins." + }, + "exposedPasswordsFound": { + "message": "Exposed Passwords Found" + }, + "exposedPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No items in your vault have passwords that have been exposed in known data breaches." + }, + "checkExposedPasswords": { + "message": "Check Exposed Passwords" + }, + "exposedXTimes": { + "message": "Exposed $COUNT$ time(s)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Weak Passwords" + }, + "weakPasswordsReportDesc": { + "message": "Weak passwords can be easily guessed by attackers. Change these passwords to strong ones using the Password Generator." + }, + "weakPasswordsFound": { + "message": "Weak Passwords Found" + }, + "weakPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "No items in your vault have weak passwords." + }, + "reusedPasswordsReport": { + "message": "Rapport over passord som er brukt fleire gongar" + }, + "reusedPasswordsReportDesc": { + "message": "Om ei teneste du nyttar vert avslørt eller kompromittert, vil gjenbruk av passord gjer det enkelt for angriparen å få tilgang til dei andre kontoane du har på nettet. Bruk ulike og unike passord på kontoane og tenestene du har." + }, + "reusedPasswordsFound": { + "message": "Gjenbrukte passord blei funne" + }, + "reusedPasswordsFoundDesc": { + "message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "No logins in your vault have passwords that are being reused." + }, + "reusedXTimes": { + "message": "Reused $COUNT$ times", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Data Breach" + }, + "breachDesc": { + "message": "Breached accounts can expose your personal information. Secure breached accounts by enabling 2FA or creating a stronger password." + }, + "breachCheckUsernameEmail": { + "message": "Check any usernames or email addresses that you use." + }, + "checkBreaches": { + "message": "Check Breaches" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ was not found in any known data breaches.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Good News", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Breached Accounts Found" + }, + "compromisedData": { + "message": "Compromised data" + }, + "website": { + "message": "Website" + }, + "affectedUsers": { + "message": "Affected Users" + }, + "breachOccurred": { + "message": "Breach Occurred" + }, + "breachReported": { + "message": "Breach Reported" + }, + "reportError": { + "message": "An error occurred trying to load the report. Try again" + }, + "billing": { + "message": "Billing" + }, + "accountCredit": { + "message": "Account Credit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Account Balance", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Add Credit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Amount", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Added credit will appear on your account after the payment has been fully processed. Some payment methods are delayed and can take longer to process than others." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + }, + "goPremium": { + "message": "Go Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "You've upgraded to premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Upgrade your account to a premium membership and unlock some great additional features." + }, + "premiumSignUpStorage": { + "message": "1 GB encrypted storage for file attachments." + }, + "premiumSignUpTwoStep": { + "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + }, + "premiumSignUpTotp": { + "message": "TOTP verification code (2FA) generator for logins in your vault." + }, + "premiumSignUpSupport": { + "message": "Priority customer support." + }, + "premiumSignUpFuture": { + "message": "All future premium features. More coming soon!" + }, + "premiumPrice": { + "message": "All for just $PRICE$ /year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Addons" + }, + "premiumAccess": { + "message": "Premium Access" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organization for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Additional Storage (GB)" + }, + "additionalStorageGbDesc": { + "message": "# of additional GB" + }, + "additionalStorageIntervalDesc": { + "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Summary" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "year" + }, + "month": { + "message": "month" + }, + "monthAbbr": { + "message": "mo.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Your payment method will be charged immediately and then on a recurring basis each year. You may cancel at any time." + }, + "paymentCharged": { + "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Your plan comes with a free 7 day trial. Your payment method will not be charged until the trial has ended. You may cancel at any time." + }, + "paymentInformation": { + "message": "Payment Information" + }, + "billingInformation": { + "message": "Billing Information" + }, + "creditCard": { + "message": "Credit Card" + }, + "paypalClickSubmit": { + "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + }, + "cancelSubscription": { + "message": "Cancel Subscription" + }, + "subscriptionCanceled": { + "message": "The subscription has been canceled." + }, + "pendingCancellation": { + "message": "Pending Cancellation" + }, + "subscriptionPendingCanceled": { + "message": "The subscription has been marked for cancellation at the end of the current billing period." + }, + "reinstateSubscription": { + "message": "Reinstate Subscription" + }, + "reinstateConfirmation": { + "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + }, + "reinstated": { + "message": "The subscription has been reinstated." + }, + "cancelConfirmation": { + "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + }, + "canceledSubscription": { + "message": "The subscription has been canceled." + }, + "neverExpires": { + "message": "Never Expires" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Next Charge" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "Download License" + }, + "updateLicense": { + "message": "Update License" + }, + "updatedLicense": { + "message": "Updated license" + }, + "manageSubscription": { + "message": "Manage Subscription" + }, + "storage": { + "message": "Storage" + }, + "addStorage": { + "message": "Add Storage" + }, + "removeStorage": { + "message": "Remove Storage" + }, + "subscriptionStorage": { + "message": "Your subscription has a total of $MAX_STORAGE$ GB of encrypted file storage. You are currently using $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Payment Method" + }, + "noPaymentMethod": { + "message": "No payment method on file." + }, + "addPaymentMethod": { + "message": "Add Payment Method" + }, + "changePaymentMethod": { + "message": "Change Payment Method" + }, + "invoices": { + "message": "Invoices" + }, + "noInvoices": { + "message": "No invoices." + }, + "paid": { + "message": "Paid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Unpaid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transactions", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "No transactions." + }, + "chargeNoun": { + "message": "Charge", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Refund", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Any charges will appear on your statement as $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB of Storage To Add" + }, + "gbStorageRemove": { + "message": "GB of Storage To Remove" + }, + "storageAddNote": { + "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "storageRemoveNote": { + "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedStorage": { + "message": "Adjusted $AMOUNT$ GB of storage.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contact Customer Support" + }, + "updatedPaymentMethod": { + "message": "Updated payment method." + }, + "purchasePremium": { + "message": "Purchase Premium" + }, + "licenseFile": { + "message": "License File" + }, + "licenseFileDesc": { + "message": "Your license file will be named something like $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "To upgrade your account to a premium membership you need to upload a valid license file." + }, + "uploadLicenseFileOrg": { + "message": "To create an on-premises hosted organization you need to upload a valid license file." + }, + "accountEmailMustBeVerified": { + "message": "Your account's email address must be verified." + }, + "newOrganizationDesc": { + "message": "Organizations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company." + }, + "generalInformation": { + "message": "General Information" + }, + "organizationName": { + "message": "Organization Name" + }, + "accountOwnedBusiness": { + "message": "This account is owned by a business." + }, + "billingEmail": { + "message": "Billing Email" + }, + "businessName": { + "message": "Business Name" + }, + "chooseYourPlan": { + "message": "Choose Your Plan" + }, + "users": { + "message": "Users" + }, + "userSeats": { + "message": "User Seats" + }, + "additionalUserSeats": { + "message": "Additional User Seats" + }, + "userSeatsDesc": { + "message": "# of user seats" + }, + "userSeatsAdditionalDesc": { + "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "How many user seats do you need? You can also add additional seats later if needed." + }, + "planNameFree": { + "message": "Free", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing or personal users to share with $COUNT$ other user.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Families" + }, + "planDescFamilies": { + "message": "For personal use, to share with family & friends." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "For businesses and other team organizations." + }, + "planNameEnterprise": { + "message": "Enterprise" + }, + "planDescEnterprise": { + "message": "For businesses and other large organizations." + }, + "freeForever": { + "message": "Free Forever" + }, + "includesXUsers": { + "message": "includes $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Additional Users" + }, + "costPerUser": { + "message": "$COST$ per user", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limited to $COUNT$ users (including you)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limited to $COUNT$ collections", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Add and share with up to $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Add and share with unlimited users" + }, + "createUnlimitedCollections": { + "message": "Create unlimited Collections" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ encrypted file storage", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "On-premise hosting (optional)" + }, + "usersGetPremium": { + "message": "Users get access to Premium Features" + }, + "controlAccessWithGroups": { + "message": "Control user access with Groups" + }, + "syncUsersFromDirectory": { + "message": "Sync your users and Groups from a directory" + }, + "trackAuditLogs": { + "message": "Track user actions with audit logs" + }, + "enforce2faDuo": { + "message": "Enforce 2FA with Duo" + }, + "priorityCustomerSupport": { + "message": "Priority customer support" + }, + "xDayFreeTrial": { + "message": "$COUNT$ day free trial, cancel anytime", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Monthly" + }, + "annually": { + "message": "Annually" + }, + "basePrice": { + "message": "Grunnpris" + }, + "organizationCreated": { + "message": "Organization Created" + }, + "organizationReadyToGo": { + "message": "Your new organization is ready to go!" + }, + "organizationUpgraded": { + "message": "Your organization has been upgraded." + }, + "leave": { + "message": "Leave" + }, + "leaveOrganizationConfirmation": { + "message": "Are you sure you want to leave this organization?" + }, + "leftOrganization": { + "message": "You have left the organization." + }, + "defaultCollection": { + "message": "Default Collection" + }, + "getHelp": { + "message": "Get Help" + }, + "getApps": { + "message": "Get the Apps" + }, + "loggedInAs": { + "message": "Logged in as" + }, + "eventLogs": { + "message": "Event Logs" + }, + "people": { + "message": "People" + }, + "policies": { + "message": "Policies" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Edit Policy" + }, + "groups": { + "message": "Groups" + }, + "newGroup": { + "message": "New Group" + }, + "addGroup": { + "message": "Add Group" + }, + "editGroup": { + "message": "Edit Group" + }, + "deleteGroupConfirmation": { + "message": "Are you sure you want to delete this group?" + }, + "removeUserConfirmation": { + "message": "Are you sure you want to remove this user?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "External Id" + }, + "externalIdDesc": { + "message": "The external id can be used as a reference or to link this resource to an external system such as a user directory." + }, + "accessControl": { + "message": "Access Control" + }, + "groupAccessAllItems": { + "message": "This group can access and modify all items." + }, + "groupAccessSelectedCollections": { + "message": "This group can access only the selected collections." + }, + "readOnly": { + "message": "Read Only" + }, + "newCollection": { + "message": "New Collection" + }, + "addCollection": { + "message": "Add Collection" + }, + "editCollection": { + "message": "Edit Collection" + }, + "deleteCollectionConfirmation": { + "message": "Are you sure you want to delete this collection?" + }, + "editUser": { + "message": "Edit User" + }, + "inviteUser": { + "message": "Invite User" + }, + "inviteUserDesc": { + "message": "Invite a new user to your organization by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "inviteMultipleEmailDesc": { + "message": "You can invite up to $COUNT$ users at a time by comma separating a list of email addresses.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "This user is using two-step login to protect their account." + }, + "userAccessAllItems": { + "message": "This user can access and modify all items." + }, + "userAccessSelectedCollections": { + "message": "This user can access only the selected collections." + }, + "search": { + "message": "Search" + }, + "invited": { + "message": "Invited" + }, + "accepted": { + "message": "Accepted" + }, + "confirmed": { + "message": "Confirmed" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Owner" + }, + "ownerDesc": { + "message": "The highest access user that can manage all aspects of your organization." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admins can access and manage all items, collections and users in your organization." + }, + "user": { + "message": "User" + }, + "userDesc": { + "message": "A regular user with access to assigned collections in your organization." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managers can access and manage assigned collections in your organization." + }, + "all": { + "message": "All" + }, + "refresh": { + "message": "Refresh" + }, + "timestamp": { + "message": "Timestamp" + }, + "event": { + "message": "Event" + }, + "unknown": { + "message": "Unknown" + }, + "loadMore": { + "message": "Load More" + }, + "mobile": { + "message": "Mobile", + "description": "Mobile app" + }, + "extension": { + "message": "Extension", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Web Vault" + }, + "loggedIn": { + "message": "Logged in." + }, + "changedPassword": { + "message": "Changed account password." + }, + "enabledUpdated2fa": { + "message": "Enabled/updated two-step login." + }, + "disabled2fa": { + "message": "Disabled two-step login." + }, + "recovered2fa": { + "message": "Recovered account from two-step login." + }, + "failedLogin": { + "message": "Login attempt failed with incorrect password." + }, + "failedLogin2fa": { + "message": "Login attempt failed with incorrect two-step login." + }, + "exportedVault": { + "message": "Exported vault." + }, + "exportedOrganizationVault": { + "message": "Exported organization vault." + }, + "editedOrgSettings": { + "message": "Edited organization settings." + }, + "createdItemId": { + "message": "Created item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Edited item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Send oppføringa $ID$ til boss.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Viewed item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Viewed password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Viewed hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Viewed security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Copied password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Copied hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Copied security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Auto-filled item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Created collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Edited collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Deleted collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Edited policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Created group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Edited group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Deleted group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Removed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Created attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Deleted attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Edited collections for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Invited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Confirmed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Edited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Edited groups for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Device" + }, + "view": { + "message": "View" + }, + "invalidDateRange": { + "message": "Invalid date range." + }, + "errorOccurred": { + "message": "An error has occurred." + }, + "userAccess": { + "message": "User Access" + }, + "userType": { + "message": "User Type" + }, + "groupAccess": { + "message": "Group Access" + }, + "groupAccessUserDesc": { + "message": "Edit the groups that this user belongs to." + }, + "invitedUsers": { + "message": "Invited user(s)." + }, + "resendInvitation": { + "message": "Resend Invitation" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ has been reinvited.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirm" + }, + "confirmUser": { + "message": "Confirm User" + }, + "hasBeenConfirmed": { + "message": "$USER$ has been confirmed.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirm Users" + }, + "usersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organization until they are confirmed." + }, + "startDate": { + "message": "Start Date" + }, + "endDate": { + "message": "End Date" + }, + "verifyEmail": { + "message": "Verify Email" + }, + "verifyEmailDesc": { + "message": "Verify your account's email address to unlock access to all features." + }, + "verifyEmailFirst": { + "message": "Your account's email address first must be verified." + }, + "checkInboxForVerification": { + "message": "Check your email inbox for a verification link." + }, + "emailVerified": { + "message": "Your email has been verified." + }, + "emailVerifiedFailed": { + "message": "Unable to verify your email. Try sending a new verification email." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "Update Browser" + }, + "updateBrowserDesc": { + "message": "You are using an unsupported web browser. The web vault may not function properly." + }, + "joinOrganization": { + "message": "Join Organization" + }, + "joinOrganizationDesc": { + "message": "You've been invited to join the organization listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "inviteAccepted": { + "message": "Invitation Accepted" + }, + "inviteAcceptedDesc": { + "message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens." + }, + "inviteAcceptFailed": { + "message": "Unable to accept invitation. Ask an organization admin to send a new invitation." + }, + "inviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Remember email" + }, + "recoverAccountTwoStepDesc": { + "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + }, + "recoverAccountTwoStep": { + "message": "Recover Account Two-Step Login" + }, + "twoStepRecoverDisabled": { + "message": "Two-step login has been disabled on your account." + }, + "learnMore": { + "message": "Learn more" + }, + "deleteRecoverDesc": { + "message": "Enter your email address below to recover and delete your account." + }, + "deleteRecoverEmailSent": { + "message": "If your account exists, we've sent you an email with further instructions." + }, + "deleteRecoverConfirmDesc": { + "message": "You have requested to delete your Bitwarden account. Click the button below to confirm." + }, + "myOrganization": { + "message": "My Organization" + }, + "deleteOrganization": { + "message": "Delete Organization" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organization Deleted" + }, + "organizationDeletedDesc": { + "message": "The organization and all associated data has been deleted." + }, + "organizationUpdated": { + "message": "Organization updated" + }, + "taxInformation": { + "message": "Tax Information" + }, + "taxInformationDesc": { + "message": "For customers within the US, ZIP code is required to satisfy sales tax requirements, for other countries you may optionally provide a tax identification number (VAT/GST) and/or address to appear on your invoices." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Upgrade Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade your account to another plan by providing the information below. Please ensure that you have an active payment method added to the account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Invoice #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "View Invoice" + }, + "downloadInvoice": { + "message": "Download Invoice" + }, + "verifyBankAccount": { + "message": "Verify Bank Account" + }, + "verifyBankAccountDesc": { + "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." + }, + "verifyBankAccountInitialDesc": { + "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organization's billing page to verify the bank account." + }, + "verifyBankAccountFailureWarning": { + "message": "Failure to verify the bank account will result in a missed payment and your subscription being disabled." + }, + "verifiedBankAccount": { + "message": "Bank account has been verified." + }, + "bankAccount": { + "message": "Bank Account" + }, + "amountX": { + "message": "Amount $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Account Number" + }, + "accountHolderName": { + "message": "Account Holder Name" + }, + "bankAccountType": { + "message": "Account Type" + }, + "bankAccountTypeCompany": { + "message": "Company (Business)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Personal)" + }, + "enterInstallationId": { + "message": "Enter your installation id" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Add Seats", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remove Seats", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Your subscription allows for a total of $COUNT$ users.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seats To Add" + }, + "seatsToRemove": { + "message": "Seats To Remove" + }, + "seatsAddNote": { + "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "seatsRemoveNote": { + "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedSeats": { + "message": "Adjusted $AMOUNT$ user seats.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Key Updated" + }, + "updateKeyTitle": { + "message": "Update Key" + }, + "updateEncryptionKey": { + "message": "Update Encryption Key" + }, + "updateEncryptionKeyShortDesc": { + "message": "You are currently using an outdated encryption scheme." + }, + "updateEncryptionKeyDesc": { + "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, however, it may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "Subscription" + }, + "loading": { + "message": "Loading" + }, + "upgrade": { + "message": "Upgrade" + }, + "upgradeOrganization": { + "message": "Upgrade Organization" + }, + "upgradeOrganizationDesc": { + "message": "This feature is not available for free organizations. Switch to a paid plan to unlock more features." + }, + "createOrganizationStep1": { + "message": "Create Organization: Step 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Before creating your organization, you first need to create a free personal account." + }, + "refunded": { + "message": "Refunded" + }, + "nothingSelected": { + "message": "You have not selected anything." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." + }, + "termsOfService": { + "message": "Terms of Service" + }, + "privacyPolicy": { + "message": "Privacy Policy" + }, + "filters": { + "message": "Filters" + }, + "vaultTimeout": { + "message": "Vault Timeout" + }, + "vaultTimeoutDesc": { + "message": "Choose when your vault will timeout and perform the selected action." + }, + "oneMinute": { + "message": "1 minute" + }, + "fiveMinutes": { + "message": "5 minutes" + }, + "fifteenMinutes": { + "message": "15 minutes" + }, + "thirtyMinutes": { + "message": "30 minutes" + }, + "oneHour": { + "message": "1 hour" + }, + "fourHours": { + "message": "4 hours" + }, + "onRefresh": { + "message": "On Browser Refresh" + }, + "dateUpdated": { + "message": "Updated", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Password Updated", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organization is disabled." + }, + "licenseIsExpired": { + "message": "License is expired." + }, + "updatedUsers": { + "message": "Updated users" + }, + "selected": { + "message": "Selected" + }, + "ownership": { + "message": "Ownership" + }, + "whoOwnsThisItem": { + "message": "Who owns this item?" + }, + "strong": { + "message": "Strong", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Good", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Weak", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Very Weak", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Weak Master Password" + }, + "weakMasterPasswordDesc": { + "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + }, + "rotateAccountEncKey": { + "message": "Also rotate my account's encryption key" + }, + "rotateEncKeyTitle": { + "message": "Rotate Encryption Key" + }, + "rotateEncKeyConfirmation": { + "message": "Are you sure you want to rotate your account's encryption key?" + }, + "attachmentsNeedFix": { + "message": "This item has old file attachments that need to be fixed." + }, + "attachmentFixDesc": { + "message": "This is an old file attachment the needs to be fixed. Click to learn more." + }, + "fix": { + "message": "Fix", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key." + }, + "yourAccountsFingerprint": { + "message": "Your account's fingerprint phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Never prompt to verify fingerprint phrases for invited users (Not recommended)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Free", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API Key" + }, + "apiKeyDesc": { + "message": "Your API key can be used to authenticate to the Bitwarden public API." + }, + "apiKeyRotateDesc": { + "message": "Rotating the API key will invalidate the previous key. You can rotate your API key if you believe that the current key is no longer safe to use." + }, + "apiKeyWarning": { + "message": "Your API key has full access to the organization. It should be kept secret." + }, + "userApiKeyDesc": { + "message": "Your API key can be used to authenticate in the Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 Client Credentials", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "View API Key" + }, + "rotateApiKey": { + "message": "Rotate API Key" + }, + "selectOneCollection": { + "message": "You must select at least one collection." + }, + "couldNotChargeCardPayInvoice": { + "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + }, + "inAppPurchase": { + "message": "In-app Purchase" + }, + "cannotPerformInAppPurchase": { + "message": "You cannot perform this action while using an in-app purchase payment method." + }, + "manageSubscriptionFromStore": { + "message": "You must manage your subscription from the store where your in-app purchase was made." + }, + "minLength": { + "message": "Minimum Length" + }, + "clone": { + "message": "Clone" + }, + "masterPassPolicyDesc": { + "message": "Set minimum requirements for master password strength." + }, + "twoStepLoginPolicyDesc": { + "message": "Require users to set up two-step login on their personal accounts." + }, + "twoStepLoginPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and do not have two-step login enabled for their personal account will be removed from the organization and will receive an email notifying them about the change." + }, + "twoStepLoginPolicyUserWarning": { + "message": "You are a member of an organization that requires two-step login to be enabled on your user account. If you disable all two-step login providers you will be automatically removed from these organizations." + }, + "passwordGeneratorPolicyDesc": { + "message": "Set minimum requirements for password generator configuration." + }, + "passwordGeneratorPolicyInEffect": { + "message": "One or more organization policies are affecting your generator settings." + }, + "masterPasswordPolicyInEffect": { + "message": "One or more organization policies require your master password to meet the following requirements:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum complexity score of $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum length of $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contain one or more uppercase characters" + }, + "policyInEffectLowercase": { + "message": "Contain one or more lowercase characters" + }, + "policyInEffectNumbers": { + "message": "Contain one or more numbers" + }, + "policyInEffectSpecial": { + "message": "Contain one or more of the following special characters $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Your new master password does not meet the policy requirements." + }, + "minimumNumberOfWords": { + "message": "Minimum Number of Words" + }, + "defaultType": { + "message": "Default Type" + }, + "userPreference": { + "message": "User Preference" + }, + "vaultTimeoutAction": { + "message": "Vault Timeout Action" + }, + "vaultTimeoutActionLockDesc": { + "message": "A locked vault requires that you re-enter your master password to access it again." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "A logged out vault requires that you re-authenticate to access it again." + }, + "lock": { + "message": "Lock", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Boss", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Søk i boss" + }, + "permanentlyDelete": { + "message": "Permanently Delete" + }, + "permanentlyDeleteSelected": { + "message": "Permanently Delete Selected" + }, + "permanentlyDeleteItem": { + "message": "Permanently Delete Item" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Are you sure you want to permanently delete this item?" + }, + "permanentlyDeletedItem": { + "message": "Permanently Deleted item" + }, + "permanentlyDeletedItems": { + "message": "Permanently Deleted items" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Permanently Deleted item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restore" + }, + "restoreSelected": { + "message": "Restore Selected" + }, + "restoreItem": { + "message": "Restore Item" + }, + "restoredItem": { + "message": "Restored Item" + }, + "restoredItems": { + "message": "Restored Items" + }, + "restoreItemConfirmation": { + "message": "Are you sure you want to restore this item?" + }, + "restoreItems": { + "message": "Restore items" + }, + "restoreSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Restored item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout Action Confirmation" + }, + "hidePasswords": { + "message": "Hide Passwords" + }, + "countryPostalCodeRequiredDesc": { + "message": "We require this information for calculating sales tax and financial reporting only." + }, + "includeVAT": { + "message": "Include VAT/GST Information (optional)" + }, + "taxIdNumber": { + "message": "VAT/GST Tax ID" + }, + "taxInfoUpdated": { + "message": "Tax information updated." + }, + "setMasterPassword": { + "message": "Set Master Password" + }, + "ssoCompleteRegistration": { + "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + }, + "identifier": { + "message": "Identifier" + }, + "organizationIdentifier": { + "message": "Organization Identifier" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Log in using your organization's single sign-on portal. Please enter your organization's identifier to begin." + }, + "enterpriseSingleSignOn": { + "message": "Enterprise Single Sign-On" + }, + "ssoHandOff": { + "message": "You may now close this tab and continue in the extension." + }, + "includeAllTeamsFeatures": { + "message": "All Teams features, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO Authentication via SAML2.0 and OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Enterprise Policies" + }, + "ssoValidationFailed": { + "message": "SSO Validation Failed" + }, + "ssoIdentifierRequired": { + "message": "Organization Identifier is required." + }, + "unlinkSso": { + "message": "Unlink SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Link SSO" + }, + "singleOrg": { + "message": "Single Organization" + }, + "singleOrgDesc": { + "message": "Restrict users from being able to join any other organizations." + }, + "singleOrgBlockCreateMessage": { + "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + }, + "singleOrgPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + }, + "requireSso": { + "message": "Single Sign-On Authentication" + }, + "requireSsoPolicyDesc": { + "message": "Require users to log in with the Enterprise Single Sign-On method." + }, + "prerequisite": { + "message": "Prerequisite" + }, + "requireSsoPolicyReq": { + "message": "The Single Organization enterprise policy must be enabled before activating this policy." + }, + "requireSsoPolicyReqError": { + "message": "Single Organization policy not enabled." + }, + "requireSsoExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "sendTypeFile": { + "message": "File" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Create New Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edit Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Created Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Edited Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Deleted Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Delete Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Are you sure you want to delete this Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "What type of Send is this?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Deletion Date" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Expiration Date" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximum Access Count" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Current Access Count" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Disabled" + }, + "sendLink": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copy Send Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remove Password" + }, + "removedPassword": { + "message": "Removed Password" + }, + "removePasswordConfirmation": { + "message": "Are you sure you want to remove the password?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "All Sends" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "expired": { + "message": "Expired" + }, + "searchSends": { + "message": "Search Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "This Send is protected with a password. Please type the password below to continue.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Download File" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "There are no Sends to list.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Emergency Access" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Request Access" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approve" + }, + "reject": { + "message": "Reject" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Disable Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "Estimated tax" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Manage All Collections" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Manage Groups" + }, + "managePolicies": { + "message": "Manage Policies" + }, + "manageSso": { + "message": "Manage SSO" + }, + "manageUsers": { + "message": "Manage Users" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organization users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Learn more about", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Learn more", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "try it now", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "sign up", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "to try it today.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organization policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organization administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Oppføringar får liggja 30 dagar i boss, før dei forsvinn for godt." + }, + "trashCleanupWarningSelfHosted": { + "message": "Oppføringar som har lagt i boss ei stund, blir automatisk sletta." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Inviter igjen" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Stadfest markerte" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/pl/messages.json b/apps/web/src/locales/pl/messages.json new file mode 100644 index 0000000000..aab046c284 --- /dev/null +++ b/apps/web/src/locales/pl/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "Sejf internetowy $APP_NAME$", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Jakiego rodzaju jest to element?" + }, + "name": { + "message": "Nazwa" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Nowy URI" + }, + "username": { + "message": "Nazwa użytkownika" + }, + "password": { + "message": "Hasło" + }, + "newPassword": { + "message": "Nowe hasło" + }, + "passphrase": { + "message": "Hasło wyrazowe" + }, + "notes": { + "message": "Notatki" + }, + "customFields": { + "message": "Pola niestandardowe" + }, + "cardholderName": { + "message": "Właściciel karty" + }, + "number": { + "message": "Numer" + }, + "brand": { + "message": "Wydawca" + }, + "expiration": { + "message": "Data wygaśnięcia" + }, + "securityCode": { + "message": "Kod zabezpieczający (CVV)" + }, + "identityName": { + "message": "Nazwa profilu" + }, + "company": { + "message": "Firma" + }, + "ssn": { + "message": "Numer PESEL" + }, + "passportNumber": { + "message": "Numer paszportu" + }, + "licenseNumber": { + "message": "Numer prawa jazdy" + }, + "email": { + "message": "Adres e-mail" + }, + "phone": { + "message": "Telefon" + }, + "january": { + "message": "Styczeń" + }, + "february": { + "message": "Luty" + }, + "march": { + "message": "Marzec" + }, + "april": { + "message": "Kwiecień" + }, + "may": { + "message": "Maj" + }, + "june": { + "message": "Czerwiec" + }, + "july": { + "message": "Lipiec" + }, + "august": { + "message": "Sierpień" + }, + "september": { + "message": "Wrzesień" + }, + "october": { + "message": "Październik" + }, + "november": { + "message": "Listopad" + }, + "december": { + "message": "Grudzień" + }, + "title": { + "message": "Tytuł" + }, + "mr": { + "message": "Pan" + }, + "mrs": { + "message": "Mrs" + }, + "ms": { + "message": "Pani" + }, + "dr": { + "message": "Doktor" + }, + "expirationMonth": { + "message": "Miesiąc wygaśnięcia" + }, + "expirationYear": { + "message": "Rok wygaśnięcia" + }, + "authenticatorKeyTotp": { + "message": "Klucz uwierzytelniający (TOTP)" + }, + "folder": { + "message": "Folder" + }, + "newCustomField": { + "message": "Nowe pole niestandardowe" + }, + "value": { + "message": "Wartość" + }, + "dragToSort": { + "message": "Przeciągnij, aby posortować" + }, + "cfTypeText": { + "message": "Tekst" + }, + "cfTypeHidden": { + "message": "Pole maskowane" + }, + "cfTypeBoolean": { + "message": "Wartość logiczna" + }, + "cfTypeLinked": { + "message": "Powiązane pole", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Usuń" + }, + "unassigned": { + "message": "Nieprzypisany" + }, + "noneFolder": { + "message": "Nieprzypisane", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Dodaj folder" + }, + "editFolder": { + "message": "Edytuj folder" + }, + "baseDomain": { + "message": "Domena podstawowa", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Nazwa domeny", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Dokładnie" + }, + "startsWith": { + "message": "Rozpoczyna się od" + }, + "regEx": { + "message": "Wyrażenie regularne", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Wykrywanie dopasowania", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Domyślne wykrywanie dopasowania", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Nigdy" + }, + "toggleVisibility": { + "message": "Pokaż / Ukryj" + }, + "toggleCollapse": { + "message": "Zwiń/rozwiń", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generuj hasło" + }, + "checkPassword": { + "message": "Sprawdź, czy hasło zostało ujawnione." + }, + "passwordExposed": { + "message": "To hasło znajduje się w $VALUE$ wykradzionej(ych) bazie(ach) danych. Należy je zmienić.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "To hasło nie znajduje się w żadnej znanej wykradzionej bazie danych. Powinno być bezpieczne." + }, + "save": { + "message": "Zapisz" + }, + "cancel": { + "message": "Anuluj" + }, + "canceled": { + "message": "Anulowane" + }, + "close": { + "message": "Zamknij" + }, + "delete": { + "message": "Usuń" + }, + "favorite": { + "message": "Dodaj do ulubionych" + }, + "unfavorite": { + "message": "Usuń z ulubionych" + }, + "edit": { + "message": "Edytuj" + }, + "searchCollection": { + "message": "Szukaj w kolekcji" + }, + "searchFolder": { + "message": "Szukaj w folderze" + }, + "searchFavorites": { + "message": "Szukaj w ulubionych" + }, + "searchType": { + "message": "Szukaj elementu", + "description": "Search item type" + }, + "searchVault": { + "message": "Szukaj w sejfie" + }, + "allItems": { + "message": "Wszystkie elementy" + }, + "favorites": { + "message": "Ulubione" + }, + "types": { + "message": "Rodzaje" + }, + "typeLogin": { + "message": "Dane logowania" + }, + "typeCard": { + "message": "Karta" + }, + "typeIdentity": { + "message": "Tożsamość" + }, + "typeSecureNote": { + "message": "Bezpieczna notatka" + }, + "typeLoginPlural": { + "message": "Dane logowania" + }, + "typeCardPlural": { + "message": "Karty" + }, + "typeIdentityPlural": { + "message": "Tożsamości" + }, + "typeSecureNotePlural": { + "message": "Bezpieczne notatki" + }, + "folders": { + "message": "Foldery" + }, + "collections": { + "message": "Kolekcje" + }, + "firstName": { + "message": "Imię" + }, + "middleName": { + "message": "Drugie imię" + }, + "lastName": { + "message": "Nazwisko" + }, + "fullName": { + "message": "Imię i nazwisko" + }, + "address1": { + "message": "Adres 1" + }, + "address2": { + "message": "Adres 2" + }, + "address3": { + "message": "Adres 3" + }, + "cityTown": { + "message": "Miasto" + }, + "stateProvince": { + "message": "Województwo" + }, + "zipPostalCode": { + "message": "Kod pocztowy" + }, + "country": { + "message": "Kraj" + }, + "shared": { + "message": "Udostępnione" + }, + "attachments": { + "message": "Załączniki" + }, + "select": { + "message": "Wybierz" + }, + "addItem": { + "message": "Dodaj element" + }, + "editItem": { + "message": "Edytuj element" + }, + "viewItem": { + "message": "Zobacz element" + }, + "ex": { + "message": "np.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Inne" + }, + "share": { + "message": "Udostępnij" + }, + "moveToOrganization": { + "message": "Przenieś do organizacji" + }, + "valueCopied": { + "message": "Skopiowano $VALUE$", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Kopiuj wartość", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Kopiuj hasło", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Kopiuj nazwę użytkownika", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Kopiuj numer karty", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Kopiuj kod zabezpieczający", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Kopiuj URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Mój sejf" + }, + "vault": { + "message": "Sejf" + }, + "moveSelectedToOrg": { + "message": "Przenieś zaznaczone do organizacji" + }, + "deleteSelected": { + "message": "Usuń zaznaczone" + }, + "moveSelected": { + "message": "Przenieś zaznaczone" + }, + "selectAll": { + "message": "Zaznacz wszystko" + }, + "unselectAll": { + "message": "Odznacz wszystko" + }, + "launch": { + "message": "Uruchom" + }, + "newAttachment": { + "message": "Dodaj załącznik" + }, + "deletedAttachment": { + "message": "Załącznik został usunięty" + }, + "deleteAttachmentConfirmation": { + "message": "Czy na pewno chcesz usunąć ten załącznik?" + }, + "attachmentSaved": { + "message": "Załącznik został zapisany." + }, + "file": { + "message": "Plik" + }, + "selectFile": { + "message": "Wybierz plik." + }, + "maxFileSize": { + "message": "Maksymalny rozmiar pliku to 500 MB." + }, + "updateKey": { + "message": "Nie możesz używać tej funkcji, dopóki nie zaktualizujesz klucza szyfrowania." + }, + "addedItem": { + "message": "Element został dodany" + }, + "editedItem": { + "message": "Element został zaktualizowany" + }, + "movedItemToOrg": { + "message": "Element $ITEMNAME$ został przeniesiony do organizacji $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Zaznaczone elementy zostały przeniesione do organizacji $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Usuń element" + }, + "deleteFolder": { + "message": "Usuń folder" + }, + "deleteAttachment": { + "message": "Usuń załącznik" + }, + "deleteItemConfirmation": { + "message": "Czy na pewno chcesz to usunąć?" + }, + "deletedItem": { + "message": "Element został przeniesiony do kosza" + }, + "deletedItems": { + "message": "Elementy zostały przeniesione do kosza" + }, + "movedItems": { + "message": "Przeniesione elementy" + }, + "overwritePasswordConfirmation": { + "message": "Czy na pewno chcesz zastąpić obecne hasło?" + }, + "editedFolder": { + "message": "Folder został zaktualizowany" + }, + "addedFolder": { + "message": "Folder został dodany" + }, + "deleteFolderConfirmation": { + "message": "Czy na pewno chcesz usunąć ten folder?" + }, + "deletedFolder": { + "message": "Folder został usunięty" + }, + "loggedOut": { + "message": "Wylogowano" + }, + "loginExpired": { + "message": "Twoja sesja wygasła." + }, + "logOutConfirmation": { + "message": "Czy na pewno chcesz się wylogować?" + }, + "logOut": { + "message": "Wyloguj się" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Tak" + }, + "no": { + "message": "Nie" + }, + "loginOrCreateNewAccount": { + "message": "Zaloguj się lub utwórz nowe konto, aby uzyskać dostęp do Twojego bezpiecznego sejfu." + }, + "createAccount": { + "message": "Utwórz konto" + }, + "logIn": { + "message": "Zaloguj się" + }, + "submit": { + "message": "Wyślij" + }, + "emailAddressDesc": { + "message": "Używaj swojego adresu e-mail do logowania." + }, + "yourName": { + "message": "Twoje imię" + }, + "yourNameDesc": { + "message": "Jak powinniśmy cię nazywać?" + }, + "masterPass": { + "message": "Hasło główne" + }, + "masterPassDesc": { + "message": "Hasło główne zapewnia dostęp do sejfu. To bardzo ważne, aby je pamiętać, ponieważ zapomnianego hasła nie będzie można odzyskać." + }, + "masterPassHintDesc": { + "message": "Podpowiedź do hasła głównego może pomóc Ci przypomnieć hasło, jeśli je zapomnisz." + }, + "reTypeMasterPass": { + "message": "Wpisz ponownie hasło główne" + }, + "masterPassHint": { + "message": "Podpowiedź do hasła głównego (opcjonalnie)" + }, + "masterPassHintLabel": { + "message": "Podpowiedź do hasła głównego" + }, + "settings": { + "message": "Ustawienia" + }, + "passwordHint": { + "message": "Podpowiedź do hasła" + }, + "enterEmailToGetHint": { + "message": "Wpisz adres e-mail powiązany z kontem, aby otrzymać podpowiedź do hasła głównego." + }, + "getMasterPasswordHint": { + "message": "Uzyskaj podpowiedź do hasła głównego" + }, + "emailRequired": { + "message": "Adres e-mail jest wymagany." + }, + "invalidEmail": { + "message": "Adres e-mail jest nieprawidłowy." + }, + "masterPassRequired": { + "message": "Hasło główne jest wymagane." + }, + "masterPassLength": { + "message": "Hasło główne musi zawierać co najmniej 8 znaków." + }, + "masterPassDoesntMatch": { + "message": "Hasła nie pasują do siebie." + }, + "newAccountCreated": { + "message": "Konto zostało utworzone! Teraz możesz się zalogować." + }, + "masterPassSent": { + "message": "Wysłaliśmy Tobie wiadomość e-mail z podpowiedzią do hasła głównego." + }, + "unexpectedError": { + "message": "Wystąpił nieoczekiwany błąd." + }, + "emailAddress": { + "message": "Adres e-mail" + }, + "yourVaultIsLocked": { + "message": "Sejf jest zablokowany. Wpisz hasło główne, aby kontynuować." + }, + "unlock": { + "message": "Odblokuj" + }, + "loggedInAsEmailOn": { + "message": "Zalogowano jako $EMAIL$ do $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Hasło główne jest nieprawidłowe" + }, + "lockNow": { + "message": "Zablokuj" + }, + "noItemsInList": { + "message": "Brak elementów." + }, + "noCollectionsInList": { + "message": "Brak kolekcji do wyświetlenia." + }, + "noGroupsInList": { + "message": "Brak grup do wyświetlenia." + }, + "noUsersInList": { + "message": "Brak użytkowników do wyświetlenia." + }, + "noEventsInList": { + "message": "Brak wydarzeń do wyświetlenia." + }, + "newOrganization": { + "message": "Nowa organizacja" + }, + "noOrganizationsList": { + "message": "Nie należysz do żadnej organizacji. Organizacje pozwalają na bezpieczne udostępnianie elementów innym użytkownikom." + }, + "versionNumber": { + "message": "Wersja $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Wpisz 6-cyfrowy kod weryfikacyjny z aplikacji uwierzytelniającej." + }, + "enterVerificationCodeEmail": { + "message": "Wpisz 6-cyfrowy kod weryfikacyjny, który został przesłany na adres $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Kod weryfikacyjny został wysłany na adres $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Zapamiętaj mnie" + }, + "sendVerificationCodeEmailAgain": { + "message": "Wyślij ponownie wiadomość z kodem weryfikacyjnym" + }, + "useAnotherTwoStepMethod": { + "message": "Użyj innej metody logowania dwustopniowego" + }, + "insertYubiKey": { + "message": "Włóż klucz YubiKey do portu USB komputera, a następnie dotknij jego przycisku." + }, + "insertU2f": { + "message": "Włóż klucz bezpieczeństwa do portu USB komputera. Jeśli klucz posiada przycisk, dotknij go." + }, + "loginUnavailable": { + "message": "Logowanie jest niedostępne" + }, + "noTwoStepProviders": { + "message": "Konto posiada włączoną opcję logowania dwustopniowego, jednak ta przeglądarka nie wspiera żadnego ze skonfigurowanych mechanizmów autoryzacji dwustopniowej." + }, + "noTwoStepProviders2": { + "message": "Skorzystaj z obsługiwanej przeglądarki internetowej (takiej jak Chrome) i/lub dodaj dodatkowych dostawców, którzy są lepiej wspierani przez przeglądarki (np. aplikacja uwierzytelniająca)." + }, + "twoStepOptions": { + "message": "Opcje logowania dwustopniowego" + }, + "recoveryCodeDesc": { + "message": "Utraciłeś dostęp do wszystkich swoich mechanizmów dwustopniowego logowania? Użyj kodów odzyskiwania, aby wyłączyć dwustopniowe logowanie na Twoim koncie." + }, + "recoveryCodeTitle": { + "message": "Kod odzyskiwania" + }, + "authenticatorAppTitle": { + "message": "Aplikacja uwierzytelniająca" + }, + "authenticatorAppDesc": { + "message": "Użyj aplikacji mobilnej (np. Authy lub Google Authenticator) do generowania czasowych kodów weryfikacyjnych.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "Klucz bezpieczeństwa YubiKey OTP" + }, + "yubiKeyDesc": { + "message": "Użyj YubiKey jako metody dostępu do konta. Działa z YubiKey serii 4, serii 5 i urządzeniami NEO." + }, + "duoDesc": { + "message": "Weryfikacja z użyciem Duo Security poprzez aplikację Duo Mobile, SMS, połączenie telefoniczne lub klucz bezpieczeństwa U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Weryfikacja dostępu do Twojej organizacji z użyciem Duo Security poprzez aplikację Duo Mobile, SMS, połączenie telefoniczne lub klucz bezpieczeństwa U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Użyj dowolnego klucza bezpieczeństwa FIDO U2F, aby uzyskać dostęp do Twojego konta." + }, + "u2fTitle": { + "message": "Klucz bezpieczeństwa FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Użyj dowolnego klucza bezpieczeństwa WebAuthn, aby uzyskać dostęp do swojego konta." + }, + "webAuthnMigrated": { + "message": "(przeniesiony z FIDO)" + }, + "emailTitle": { + "message": "Adres e-mail" + }, + "emailDesc": { + "message": "Kody weryfikacyjne zostaną wysłane do Ciebie wiadomością e-mail." + }, + "continue": { + "message": "Kontynuuj" + }, + "organization": { + "message": "Organizacja" + }, + "organizations": { + "message": "Organizacje" + }, + "moveToOrgDesc": { + "message": "Wybierz organizację, do której chcesz przenieść ten element. Ta czynność spowoduje utratę własności elementu i przenosi te uprawnienia do organizacji." + }, + "moveManyToOrgDesc": { + "message": "Wybierz organizację, do której chcesz przenieść te elementy. Ta czynność spowoduje utratę własności elementów i przenosi te uprawnienia do organizacji." + }, + "collectionsDesc": { + "message": "Edytuj kolekcje zawierające ten element. Tylko użytkownicy organizacji posiadający dostęp do tych kolekcji będą mogli zobaczyć ten element." + }, + "deleteSelectedItemsDesc": { + "message": "Wybrałeś elementy do usunięcia. Czy na pewno chcesz je wszystkie usunąć?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Wybierz folder do którego chcesz przenieść zaznaczone elementy.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Zaznaczone elementy: $COUNT$\nElementy możliwe do przeniesienia: $MOVEABLE_COUNT$\nElementy niemożliwe do przeniesienia: $NONMOVEABLE_COUNT$", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Kod weryfikacyjny (TOTP)" + }, + "copyVerificationCode": { + "message": "Kopiuj kod weryfikacyjny" + }, + "warning": { + "message": "Ostrzeżenie" + }, + "confirmVaultExport": { + "message": "Potwierdź eksportowanie sejfu" + }, + "exportWarningDesc": { + "message": "Plik zawiera dane sejfu w niezaszyfrowanym formacie. Nie powinieneś go przechowywać, ani przesyłać poprzez niezabezpieczone kanały (takie jak poczta e-mail). Skasuj go natychmiast po użyciu." + }, + "encExportKeyWarningDesc": { + "message": "Dane eksportu zostaną zaszyfrowane za pomocą klucza szyfrowania konta. Jeśli kiedykolwiek zmienisz ten klucz, wyeksportuj dane ponownie, ponieważ nie będziesz w stanie odszyfrować tego pliku." + }, + "encExportAccountWarningDesc": { + "message": "Klucze szyfrowania konta są unikalne dla każdego użytkownika Bitwarden, więc nie możesz zaimportować zaszyfrowanego pliku eksportu na inne konto." + }, + "export": { + "message": "Eksportuj" + }, + "exportVault": { + "message": "Eksportuj sejf" + }, + "fileFormat": { + "message": "Format pliku" + }, + "exportSuccess": { + "message": "Dane z sejfu zostały wyeksportowane." + }, + "passwordGenerator": { + "message": "Generator hasła" + }, + "minComplexityScore": { + "message": "Minimalny poziom złożoności" + }, + "minNumbers": { + "message": "Minimalna liczba cyfr" + }, + "minSpecial": { + "message": "Minimalna liczba znaków specjalnych", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Unikaj niejednoznacznych znaków" + }, + "regeneratePassword": { + "message": "Wygeneruj hasło ponownie" + }, + "length": { + "message": "Długość" + }, + "numWords": { + "message": "Liczba słów" + }, + "wordSeparator": { + "message": "Separator słów" + }, + "capitalize": { + "message": "Wielkie litery", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Uwzględnij cyfry" + }, + "passwordHistory": { + "message": "Historia haseł" + }, + "noPasswordsInList": { + "message": "Brak haseł." + }, + "clear": { + "message": "Wyczyść", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Konto zostało zaktualizowane" + }, + "changeEmail": { + "message": "Zmień adres e-mail" + }, + "changeEmailTwoFactorWarning": { + "message": "Kontynuowanie spowoduje zmianę adresu e-mail konta. Nie spowoduje to zmiany adresu używanego do logowania dwustopniowego. Możesz zmienić ten adres w ustawieniach logowania dwustopniowego." + }, + "newEmail": { + "message": "Nowy adres e-mail" + }, + "code": { + "message": "Kod" + }, + "changeEmailDesc": { + "message": "Wysłaliśmy kod weryfikacyjny na adres $EMAIL$. Sprawdź pocztę i wpisz kod, aby ukończyć proces zmiany adresu e-mail.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Ta czynność spowoduje wylogowanie z bieżącej sesji, przez co konieczne będzie ponowne zalogowanie się. Aktywne sesje na innych urządzeniach mogą pozostać aktywne przez maksymalnie godzinę." + }, + "emailChanged": { + "message": "Adres e-mail został zmieniony" + }, + "logBackIn": { + "message": "Zaloguj się ponownie." + }, + "logBackInOthersToo": { + "message": "Zaloguj się ponownie. Jeśli używasz innych aplikacji Bitwarden, wyloguj się i zaloguj ponownie również w nich." + }, + "changeMasterPassword": { + "message": "Zmień hasło główne" + }, + "masterPasswordChanged": { + "message": "Hasło główne zostało zmienione" + }, + "currentMasterPass": { + "message": "Obecne hasło główne" + }, + "newMasterPass": { + "message": "Nowe hasło główne" + }, + "confirmNewMasterPass": { + "message": "Potwierdź nowe hasło główne" + }, + "encKeySettings": { + "message": "Ustawienia klucza szyfrowania" + }, + "kdfAlgorithm": { + "message": "Algorytm KDF" + }, + "kdfIterations": { + "message": "Iteracje KDF" + }, + "kdfIterationsDesc": { + "message": "Wyższa liczba iteracji KDF pomaga chronić hasło główne przed atakami siłowymi. Zalecamy ustawienie wartości $VALUE$ lub wyższej.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Ustawienie zbyt wysokiej liczby iteracji KDF może skutkować obniżeniem wydajności podczas logowania do Bitwarden (oraz odblokowywania sejfu) na urządzeniach z wolniejszym procesorem. Zalecamy stopniowe zwiększanie tej wartości o $INCREMENT$ i przetestowanie jej na wszystkich swoich urządzeniach.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Zmień KDF" + }, + "encKeySettingsChanged": { + "message": "Ustawienia klucza szyfrowania zostały zaktualizowane" + }, + "dangerZone": { + "message": "Niebezpieczna strefa" + }, + "dangerZoneDesc": { + "message": "Uwaga - te operacje są nieodwracalne!" + }, + "deauthorizeSessions": { + "message": "Zakończ sesje" + }, + "deauthorizeSessionsDesc": { + "message": "Martwisz się, że jesteś zalogowany na innym urządzeniu? Przejdź poniżej, aby wylogować się ze wszystkich komputerów, których wcześniej używałeś. Ta czynność jest zalecana, jeśli korzystałeś z publicznego komputera lub przypadkowo zapisałeś swoje hasło na cudzym urządzeniu. Ta czynność wyczyści również wszystkie sesje z zapamiętanym logowaniem dwustopniowym." + }, + "deauthorizeSessionsWarning": { + "message": "Ta czynność spowoduje wylogowanie z bieżącej sesji, przez co konieczne będzie ponowne zalogowanie się. Zostaniesz również poproszony o ponowne logowanie dwustopniowe, jeśli masz włączoną tę opcję. Aktywne sesje na innych urządzeniach mogą pozostać aktywne przez maksymalnie godzinę." + }, + "sessionsDeauthorized": { + "message": "Wszystkie sesje zostały zakończone" + }, + "purgeVault": { + "message": "Wyczyść sejf" + }, + "purgedOrganizationVault": { + "message": "Sejf organizacji został wyczyszczony." + }, + "vaultAccessedByProvider": { + "message": "Dostęp do sejfu przez dostawcę." + }, + "purgeVaultDesc": { + "message": "Kontynuuj poniżej, aby usunąć wszystkie elementy i foldery z sejfu. Elementy udostępnione organizacji nie zostaną usunięte." + }, + "purgeOrgVaultDesc": { + "message": "Przejdź poniżej, aby usunąć wszystkie elementy z sejfu organizacji." + }, + "purgeVaultWarning": { + "message": "Wyczyszczenie sejfu jest nieodwracalne. Ta czynność nie może zostać cofnięta." + }, + "vaultPurged": { + "message": "Sejf został wyczyszczony." + }, + "deleteAccount": { + "message": "Usuń konto" + }, + "deleteAccountDesc": { + "message": "Kontynuuj poniżej, aby usunąć konto i wszystkie związane z nim dane." + }, + "deleteAccountWarning": { + "message": "Usunięcie konta jest nieodwracalne. Ta czynność nie może zostać cofnięta." + }, + "accountDeleted": { + "message": "Konto zostało usunięte" + }, + "accountDeletedDesc": { + "message": "Konto zostało zamknięte i wszystkie powiązane z nim dane zostały usunięte." + }, + "myAccount": { + "message": "Moje konto" + }, + "tools": { + "message": "Narzędzia" + }, + "importData": { + "message": "Importuj dane" + }, + "importError": { + "message": "Wystąpił błąd podczas importowania" + }, + "importErrorDesc": { + "message": "Wystąpił problem z danymi, które chcesz zaimportować. Rozwiąż poniższe problemy w Twoim pliku i spróbuj ponownie." + }, + "importSuccess": { + "message": "Dane zostały zaimportowane do sejfu." + }, + "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." + }, + "selectFormat": { + "message": "Wybierz format importowanego pliku" + }, + "selectImportFile": { + "message": "Wybierz plik do zaimportowania" + }, + "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)" + } + } + }, + "options": { + "message": "Opcje" + }, + "optionsDesc": { + "message": "Spersonalizuj swój sejf." + }, + "optionsUpdated": { + "message": "Opcje zostały zaktualizowane" + }, + "language": { + "message": "Język" + }, + "languageDesc": { + "message": "Zmień język używany przez sejf." + }, + "disableIcons": { + "message": "Wyłącz ikony stron" + }, + "disableIconsDesc": { + "message": "Wyświetlaj rozpoznawalną ikonę serwisu obok danych logowania w sejfie." + }, + "enableGravatars": { + "message": "Włącz Gravatary", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Korzystaj ze zdjęć profilowych załadowanych z serwisu gravatar.com." + }, + "enableFullWidth": { + "message": "Włącz układ na całą szerokość", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Rozszerz układ sejfu internetowego na całą szerokość okna przeglądarki." + }, + "default": { + "message": "Domyślny" + }, + "domainRules": { + "message": "Reguły domeny" + }, + "domainRulesDesc": { + "message": "Jeśli używasz tych samych danych logowania na różnych domenach, możesz zaznaczyć tę stronę jako \"ekwiwalent\". \"Globalne\" domeny to domeny utworzone już przez zespół Bitwarden." + }, + "globalEqDomains": { + "message": "Globalne domeny równoważne" + }, + "customEqDomains": { + "message": "Niestandardowe domeny równoważne" + }, + "exclude": { + "message": "Wyklucz" + }, + "include": { + "message": "Dołącz" + }, + "customize": { + "message": "Dostosuj" + }, + "newCustomDomain": { + "message": "Nowa niestandardowa domena" + }, + "newCustomDomainDesc": { + "message": "Wpisz listę domen oddzielonych przecinkami. Dozwolone są tylko \"podstawowe\" domeny. Nie wpisuj subdomen. Przykładowo wpisz \"google.com\", zamiast \"www.google.com\". Możesz również wpisać \"androidapp://nazwa.pakietu\", aby powiązać aplikację Android z innymi domenami." + }, + "customDomainX": { + "message": "Niestandardowa domena $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domeny zostały zaktualizowane" + }, + "twoStepLogin": { + "message": "Logowanie dwustopniowe" + }, + "twoStepLoginDesc": { + "message": "Zabezpiecz swoje konto poprzez wymóg wykonania dodatkowego kroku podczas logowania." + }, + "twoStepLoginOrganizationDesc": { + "message": "Wymagaj logowania dwustopniowego dla użytkowników w Twojej organizacji, poprzez skonfigurowanie dostawców na poziomie organizacji." + }, + "twoStepLoginRecoveryWarning": { + "message": "Włączenie logowania dwustopniowego można trwale zablokować konto Bitwarden. Kod odzyskiwania pozwala na dostęp do konta w przypadku, gdy nie będziesz mógł skorzystać ze standardowego dostawcy logowania dwustopniowego (np. w przypadku utraty urządzenia). Pomoc techniczna Bitwarden nie będzie w stanie Ci pomóc, jeśli stracisz dostęp do swojego konta. Zalecamy zapisanie lub wydrukowanie kodu odzyskiwania i przechowywanie go w bezpiecznym miejscu." + }, + "viewRecoveryCode": { + "message": "Wyświetl kod odzyskiwania" + }, + "providers": { + "message": "Dostawcy", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Włącz" + }, + "enabled": { + "message": "Włączone" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Konto Premium" + }, + "premiumRequired": { + "message": "Konto Premium jest wymagane" + }, + "premiumRequiredDesc": { + "message": "Konto Premium jest wymagane, aby skorzystać z tej funkcji." + }, + "youHavePremiumAccess": { + "message": "Posiadasz dostęp do funkcji konta Premium" + }, + "alreadyPremiumFromOrg": { + "message": "Posiadasz już dostęp do funkcji konta Premium dzięki organizacji, której jesteś członkiem." + }, + "manage": { + "message": "Zarządzaj" + }, + "disable": { + "message": "Wyłącz" + }, + "twoStepLoginProviderEnabled": { + "message": "Ten dostawca logowania dwustopniowego jest już włączony na koncie." + }, + "twoStepLoginAuthDesc": { + "message": "Wpisz hasło główne, aby zmienić ustawienia logowania dwustopniowego." + }, + "twoStepAuthenticatorDesc": { + "message": "Wykonaj poniższe kroki, aby aktywować logowanie dwustopniowe przez aplikację uwierzytelniającą:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Pobierz aplikację uwierzytelniającą" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Potrzebujesz aplikacji uwierzytelniającej? Pobierz jedną z nich" + }, + "iosDevices": { + "message": "Urządzenia z systemem iOS" + }, + "androidDevices": { + "message": "Urządzenia z systemem Android" + }, + "windowsDevices": { + "message": "Urządzenia z systemem Windows" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Te aplikacje uwierzytelniające są zalecane, jednak inne również będą działać." + }, + "twoStepAuthenticatorScanCode": { + "message": "Zeskanuj kod QR w aplikacji uwierzytelniającej" + }, + "key": { + "message": "Klucz" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Wpisz 6-cyfrowy kod weryfikacyjny z aplikacji uwierzytelniającej" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Jeśli chcesz dodać inne urządzenie, poniżej znajdziesz kod QR (lub klucz) wymagany przez aplikację uwierzytelniającą." + }, + "twoStepDisableDesc": { + "message": "Czy na pewno chcesz wyłączyć tego dostawcę logowania dwustopniowego?" + }, + "twoStepDisabled": { + "message": "Dostawca logowania dwustopniowego został wyłączony." + }, + "twoFactorYubikeyAdd": { + "message": "Dodaj nowy klucz YubiKey do swojego konta" + }, + "twoFactorYubikeyPlugIn": { + "message": "Włóż YubiKey do portu USB swojego komputera." + }, + "twoFactorYubikeySelectKey": { + "message": "Wybierz poniżej pierwsze wolne pole YubiKey." + }, + "twoFactorYubikeyTouchButton": { + "message": "Dotknij przycisku YubiKey." + }, + "twoFactorYubikeySaveForm": { + "message": "Zapisz formularz." + }, + "twoFactorYubikeyWarning": { + "message": "Z powodu ograniczeń platformy, klucze YubiKey nie mogą być używane we wszystkich aplikacjach Bitwarden. Musisz włączyć inną metodę logowania dwustopniowego, aby zachować dostęp do konta w pozostałych sytuacjach. Wspierane platformy:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Sejf internetowy, aplikacja desktopowa, wiersz poleceń i rozszerzenia dla wszystkich przeglądarek na urządzeniu posiadającym port USB akceptujący Twój klucz YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Aplikacje mobilne na urządzeniach obsługujących NFC lub posiadające port USB, który akceptuje klucz YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "Klucz U2F $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "Klucz WebAuthn $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "Obsługa NFC" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Jeden z moich kluczy obsługuje technologię NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Jeśli jeden z Twoich kluczy YubiKey obsługuje NFC (np. YubiKey NEO), otrzymasz powiadomienie na urządzeniach mobilnych za każdym razem, gdy zostanie wykryta dostępność NFC." + }, + "yubikeysUpdated": { + "message": "Klucze YubiKey zostały zaktualizowane" + }, + "disableAllKeys": { + "message": "Wyłącz wszystkie klucze" + }, + "twoFactorDuoDesc": { + "message": "Wpisz informacje o aplikacji Bitwarden z panelu administracyjnego Duo." + }, + "twoFactorDuoIntegrationKey": { + "message": "Klucz integracji" + }, + "twoFactorDuoSecretKey": { + "message": "Tajny klucz" + }, + "twoFactorDuoApiHostname": { + "message": "Nazwa domeny interfejsu API" + }, + "twoFactorEmailDesc": { + "message": "Wykonaj poniższe kroki, aby aktywować logowanie dwustopniowe przez adres e-mail:" + }, + "twoFactorEmailEnterEmail": { + "message": "Wpisz adres e-mail, na który chcesz otrzymywać kody weryfikacyjne" + }, + "twoFactorEmailEnterCode": { + "message": "Wpisz 6-cyfrowy kod weryfikacyjny z wiadomości e-mail" + }, + "sendEmail": { + "message": "Wyślij wiadomość" + }, + "twoFactorU2fAdd": { + "message": "Dodaj klucz bezpieczeństwa FIDO U2F do swojego konta" + }, + "removeU2fConfirmation": { + "message": "Czy na pewno chcesz usunąć ten klucz bezpieczeństwa?" + }, + "twoFactorWebAuthnAdd": { + "message": "Dodaj klucz bezpieczeństwa WebAuthn do swojego konta" + }, + "readKey": { + "message": "Odczytaj klucz" + }, + "keyCompromised": { + "message": "Klucz został wykradziony." + }, + "twoFactorU2fGiveName": { + "message": "Nadaj kluczowi bezpieczeństwa przyjazną nazwę, aby go łatwiej zidentyfikować." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Podłącz klucz bezpieczeństwa do portu USB komputera i kliknij przycisk \"Odczytaj klucz\"." + }, + "twoFactorU2fTouchButton": { + "message": "Jeśli klucz bezpieczeństwa posiada przycisk, dotknij go." + }, + "twoFactorU2fSaveForm": { + "message": "Zapisz formularz." + }, + "twoFactorU2fWarning": { + "message": "Z powodu ograniczeń platformy, klucze FIDO U2F nie mogą być używane we wszystkich aplikacjach Bitwarden. Musisz włączyć inną metodę logowania dwustopniowego, aby zachować dostęp do konta w pozostałych sytuacjach. Wspierane platformy:" + }, + "twoFactorU2fSupportWeb": { + "message": "Sejf internetowy i rozszerzenia przeglądarki na komputerze/laptopie z przeglądarką obsługującą U2F (Chrome, Opera, Vivaldi lub Firefox z włączoną obsługą FIDO U2F)." + }, + "twoFactorU2fWaiting": { + "message": "Oczekiwanie na dotknięcie klucza bezpieczeństwa" + }, + "twoFactorU2fClickSave": { + "message": "Kliknij przycisk \"Zapisz\", aby włączyć ten klucz bezpieczeństwa dla logowania dwustopniowego." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Wystąpił problem z odczytem klucza bezpieczeństwa. Spróbuj ponownie." + }, + "twoFactorWebAuthnWarning": { + "message": "Z powodu ograniczeń platformy, klucze WebAuthn nie mogą być używane we wszystkich aplikacjach Bitwarden. Musisz włączyć inną metodę logowania dwustopniowego, aby zachować dostęp do konta w pozostałych sytuacjach. Wspierane platformy:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Sejf internetowy i rozszerzenia przeglądarki na komputerze/laptopie z przeglądarką obsługującą WebAuthn (Chrome, Opera, Vivaldi lub Firefox z włączoną obsługą FIDO U2F)." + }, + "twoFactorRecoveryYourCode": { + "message": "Kod odzyskiwania konta Bitwarden" + }, + "twoFactorRecoveryNoCode": { + "message": "Nie włączyłeś żadnego dostawcy logowania dwustopniowego. Po włączeniu dostawcy wróć tutaj, aby odczytać swój kod odzyskiwania." + }, + "printCode": { + "message": "Wydrukuj kod", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Raporty" + }, + "reportsDesc": { + "message": "Zidentyfikuj i napraw luki bezpieczeństwa na swoich kontach online, klikając raporty poniżej." + }, + "unsecuredWebsitesReport": { + "message": "Niezabezpieczone witryny" + }, + "unsecuredWebsitesReportDesc": { + "message": "Używanie niezabezpieczonych stron (protokół HTTP) może być niebezpieczne. Jeśli strona na to pozwala, zawsze powinieneś używać protokołu HTTPS, aby Twoje połączenie było szyfrowane." + }, + "unsecuredWebsitesFound": { + "message": "Znaleźliśmy niezabezpieczone strony" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Znaleźliśmy elementy w Twoim sejfie zawierające niezabezpieczone adresy URI. Jeśli witryna to umożliwia, zmień schemat adresu na protokół HTTPS.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Brak niezabezpieczonych elementów w Twoim sejfie." + }, + "inactive2faReport": { + "message": "Raport stron z nieaktywnym logowaniem dwustopniowym" + }, + "inactive2faReportDesc": { + "message": "Logowanie dwustopniowe (2FA) jest ważnym ustawieniem bezpieczeństwa, które pomaga chronić Twoje konto. Jeśli witryna to umożliwia, zawsze powinieneś aktywować logowanie dwustopniowe." + }, + "inactive2faFound": { + "message": "Znaleźliśmy elementy bez włączonej opcji logowania dwustopniowego" + }, + "inactive2faFoundDesc": { + "message": "Znaleźliśmy witryny w sejfie, które mogą nie korzystać z opcji logowania dwustopniowego (według 2fa.directory). Włącz logowanie dwustopniowe, aby dodatkowo zabezpieczyć te konta.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Nie znaleźliśmy w sejfie stron z wyłączoną opcją logowania dwustopniowego." + }, + "instructions": { + "message": "Instrukcje" + }, + "exposedPasswordsReport": { + "message": "Ujawnione hasła" + }, + "exposedPasswordsReportDesc": { + "message": "Ujawnione hasła to hasła odkryte w znanych wyciekach danych, które zostały publicznie wydane lub sprzedane w sieci przez hakerów." + }, + "exposedPasswordsFound": { + "message": "Znaleźliśmy ujawnione hasła" + }, + "exposedPasswordsFoundDesc": { + "message": "Znaleźliśmy elementy w sejfie, które zawierają ujawnione hasła w znanych wyciekach danych. Zmień te hasła.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Brak elementów zawierających ujawnione hasła w znanych wyciekach danych." + }, + "checkExposedPasswords": { + "message": "Sprawdź ujawnione hasła" + }, + "exposedXTimes": { + "message": "Ujawnione $COUNT$ raz(y)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Słabe hasła" + }, + "weakPasswordsReportDesc": { + "message": "Słabe hasła mogą być łatwo odgadnięte przez hakerów i zautomatyzowane narzędzia używane do łamania haseł. Generator haseł Bitwarden tworzy silne hasła." + }, + "weakPasswordsFound": { + "message": "Znaleźliśmy słabe hasła" + }, + "weakPasswordsFoundDesc": { + "message": "Znaleźliśmy elementy w sejfie, które zawierają słabe hasła. Zaktualizuj je na silniejsze hasła.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Brak elementów zawierających słabe hasła." + }, + "reusedPasswordsReport": { + "message": "Raport identycznych haseł" + }, + "reusedPasswordsReportDesc": { + "message": "Jeśli używasz tego samego hasła w różnych miejscach, to w przypadku jego ujawnienia w jednej usłudze, hakerzy mogą uzyskać dostęp do wielu Twoich kont. Powinieneś używać unikalnych haseł dla każdego z kont lub usług." + }, + "reusedPasswordsFound": { + "message": "Znaleźliśmy identyczne hasła" + }, + "reusedPasswordsFoundDesc": { + "message": "Znaleźliśmy hasła, które powtarzają się w sejfie. Zmień je, aby były unikalne.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Nie znaleźliśmy identycznych haseł w sejfie." + }, + "reusedXTimes": { + "message": "Wykorzystane $COUNT$ razy", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Raport naruszeń danych" + }, + "breachDesc": { + "message": "\"Wyciek\" jest zdarzeniem, w którym hakerzy uzyskali nielegalny dostęp do danych serwisu, a następnie je upublicznili. Przejrzyj rodzaj danych, które zostały naruszone (adresy e-mail, hasła, karty kredytowe itp.) i podejmij odpowiednie działania, takie jak zmiana hasła." + }, + "breachCheckUsernameEmail": { + "message": "Sprawdź nazwy użytkownika lub adresy e-mail, których używasz." + }, + "checkBreaches": { + "message": "Sprawdź naruszenia" + }, + "breachUsernameNotFound": { + "message": "Nazwa użytkownika $USERNAME$ nie została znaleziona w żadnym znanym wycieku danych.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Dobra wiadomość", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "Nazwa użytkownika $USERNAME$ została znaleziona w wyciekach danych.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Znaleźliśmy naruszone konta" + }, + "compromisedData": { + "message": "Wykradzione dane" + }, + "website": { + "message": "Strona" + }, + "affectedUsers": { + "message": "Liczba poszkodowanych użytkowników" + }, + "breachOccurred": { + "message": "Data wystąpienia naruszenia" + }, + "breachReported": { + "message": "Data zgłoszenia naruszenia" + }, + "reportError": { + "message": "Wystąpił błąd podczas próby załadowania raportu. Spróbuj ponownie" + }, + "billing": { + "message": "Płatności" + }, + "accountCredit": { + "message": "Dostępne środki", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Saldo konta", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Dodaj środki", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Kwota", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Dodane środki pojawią się na twoim koncie po przetworzeniu płatności. Niektóre metody płatności mogą być przetwarzane dłużej niż inne." + }, + "makeSureEnoughCredit": { + "message": "Upewnij się, że na koncie posiadasz wystarczająca ilość środków do dokonania tego zakupu. Jeśli na koncie nie ma wystarczających środków, do opłacenia brakującej różnicy zostanie użyta domyślna metoda płatności. Możesz też dodać środki do swojego konta na stronie Płatności." + }, + "creditAppliedDesc": { + "message": "Środki dodane do konta mogą zostać użyte do dokonywania płatności. Dostępne środki będą automatycznie wykorzystane do opłacenia faktur wygenerowanych dla tego konta." + }, + "goPremium": { + "message": "Przejdź na konto Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Konto Premium zostało zaktualizowane." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Zaktualizuj swoje konto do konta Premium i odblokuj dodatkowe funkcje." + }, + "premiumSignUpStorage": { + "message": "1 GB przestrzeni na zaszyfrowane załączniki." + }, + "premiumSignUpTwoStep": { + "message": "Dodatkowe opcje logowania dwustopniowego, takie jak klucze YubiKey, FIDO U2F oraz Duo." + }, + "premiumSignUpEmergency": { + "message": "Dostęp awaryjny" + }, + "premiumSignUpReports": { + "message": "Raporty bezpieczeństwa haseł, stanu konta i raporty wycieków danych, aby Twoje dane były bezpieczne." + }, + "premiumSignUpTotp": { + "message": "Generator kodów weryfikacyjnych TOTP (2FA) dla danych logowania w sejfie." + }, + "premiumSignUpSupport": { + "message": "Priorytetowe wsparcie klienta." + }, + "premiumSignUpFuture": { + "message": "Wszystkie przyszłe funkcje Premium. Więcej już wkrótce!" + }, + "premiumPrice": { + "message": "Wszystko to jedynie za $PRICE$ /rok!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Dodatki" + }, + "premiumAccess": { + "message": "Konto Premium" + }, + "premiumAccessDesc": { + "message": "Możesz przyznać konta Premium wszystkim użytkownikom w Twojej organizacji za $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Dodatkowa przestrzeń (GB)" + }, + "additionalStorageGbDesc": { + "message": "# dodatkowych GB" + }, + "additionalStorageIntervalDesc": { + "message": "Twój plan zawiera $SIZE$ szyfrowanej przestrzeni. Możesz zwiększyć rozmiar dostępnej przestrzeni za $PRICE$ za GB/$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Podsumowanie" + }, + "total": { + "message": "Łącznie" + }, + "year": { + "message": "rok" + }, + "month": { + "message": "miesiąc" + }, + "monthAbbr": { + "message": "m-c", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Płatność zostanie zrealizowana natychmiast i będzie powtarzana corocznie. Możesz zrezygnować z niej w dowolnej chwili." + }, + "paymentCharged": { + "message": "Płatność zostanie zrealizowana natychmiast i będzie powtarzana co $INTERVAL$. Możesz zrezygnować z niej w dowolnej chwili.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Twój plan zawiera 7-dniowy okres próbny. W tym czasie nie poniesiesz żadnych kosztów. Możesz zrezygnować z niego w każdej chwili." + }, + "paymentInformation": { + "message": "Informacje o płatności" + }, + "billingInformation": { + "message": "Informacje o płatności" + }, + "creditCard": { + "message": "Karta płatnicza" + }, + "paypalClickSubmit": { + "message": "Kliknij przycisk PayPal, aby zalogować się do konta PayPal, a następnie kliknij przycisk Prześlij poniżej, aby kontynuować." + }, + "cancelSubscription": { + "message": "Anuluj subskrypcję" + }, + "subscriptionCanceled": { + "message": "Subskrypcja została anulowana." + }, + "pendingCancellation": { + "message": "Oczekiwanie na anulowanie" + }, + "subscriptionPendingCanceled": { + "message": "Subskrypcja została oznaczona do anulowania na koniec obecnego okresu rozliczeniowego." + }, + "reinstateSubscription": { + "message": "Przywróć subskrypcję" + }, + "reinstateConfirmation": { + "message": "Czy na pewno chcesz cofnąć anulowanie subskrypcji i przywrócić ją?" + }, + "reinstated": { + "message": "Subskrypcja została przywrócona." + }, + "cancelConfirmation": { + "message": "Czy na pewno chcesz anulować? Dostęp do wszystkich funkcji związanych z tą subskrypcją zostanie wyłączony na koniec tego okresu rozliczeniowego." + }, + "canceledSubscription": { + "message": "Subskrypcja została anulowana." + }, + "neverExpires": { + "message": "Nigdy nie wygasa" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Następna opłata" + }, + "details": { + "message": "Szczegóły" + }, + "downloadLicense": { + "message": "Pobierz licencję" + }, + "updateLicense": { + "message": "Zaktualizuj licencję" + }, + "updatedLicense": { + "message": "Licencja została zaktualizowana" + }, + "manageSubscription": { + "message": "Zarządzaj subskrypcją" + }, + "storage": { + "message": "Przestrzeń" + }, + "addStorage": { + "message": "Dodaj przestrzeń" + }, + "removeStorage": { + "message": "Usuń przestrzeń" + }, + "subscriptionStorage": { + "message": "Subskrypcja zawiera łącznie $MAX_STORAGE$ GB na przechowywanie zaszyfrowanych plików. Obecnie używasz $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Metoda płatności" + }, + "noPaymentMethod": { + "message": "Nie zarejestrowano żadnej metody płatności." + }, + "addPaymentMethod": { + "message": "Dodaj metodę płatności" + }, + "changePaymentMethod": { + "message": "Zmień metodę płatności" + }, + "invoices": { + "message": "Faktury" + }, + "noInvoices": { + "message": "Brak faktur." + }, + "paid": { + "message": "Zapłacono", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Niezapłacone", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transakcje", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Brak transakcji." + }, + "chargeNoun": { + "message": "Opłata", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Zwrot", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Wszelkie opłaty będą widoczne na wyciągu jako $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "Wybierz liczbę GB do dodania" + }, + "gbStorageRemove": { + "message": "GB przestrzeni do usunięcia" + }, + "storageAddNote": { + "message": "Dodanie przestrzeni dyskowej będzie skutkować korektą sumy należności i natychmiastowym obciążeniem konta. Pierwsza opłata zostanie naliczona proporcjonalnie do końca obecnego okresu rozliczeniowego." + }, + "storageRemoveNote": { + "message": "Usunięcie przestrzeni dyskowej spowoduje korektę należności, która zostanie wykonana w następnym okresie rozliczeniowym." + }, + "adjustedStorage": { + "message": "Zmieniono $AMOUNT$ GB przestrzeni.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Skontaktuj się z działem obsługi klienta" + }, + "updatedPaymentMethod": { + "message": "Metoda płatności została zaktualizowana." + }, + "purchasePremium": { + "message": "Kup konto Premium" + }, + "licenseFile": { + "message": "Plik licencji" + }, + "licenseFileDesc": { + "message": "Plik licencji zostanie nazwany np. $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Aby aktywować konto Premium, musisz przesłać plik licencyjny." + }, + "uploadLicenseFileOrg": { + "message": "Aby utworzyć organizację na własnym serwerze, musisz przesłać plik licencyjny." + }, + "accountEmailMustBeVerified": { + "message": "Adres e-mail przypisany do Twojego konta musi zostać zweryfikowany." + }, + "newOrganizationDesc": { + "message": "Organizacje pozwalają Ci udostępniać części sejfu, a także zarządzać użytkownikami w jednostkach takich jak rodzina, mały zespół lub duża firma." + }, + "generalInformation": { + "message": "Informacje ogólne" + }, + "organizationName": { + "message": "Nazwa organizacji" + }, + "accountOwnedBusiness": { + "message": "To konto jest własnością firmy." + }, + "billingEmail": { + "message": "Adres rozliczeniowy" + }, + "businessName": { + "message": "Nazwa firmy" + }, + "chooseYourPlan": { + "message": "Wybierz swój plan" + }, + "users": { + "message": "Użytkownicy" + }, + "userSeats": { + "message": "Stanowiska użytkowników" + }, + "additionalUserSeats": { + "message": "Dodatkowe stanowiska użytkowników" + }, + "userSeatsDesc": { + "message": "# stanowisk użytkowników" + }, + "userSeatsAdditionalDesc": { + "message": "Twój plan zawiera $BASE_SEATS$ stanowisk użytkowników. Możesz dodać dodatkowych użytkowników za $SEAT_PRICE$ za użytkownika /miesiąc.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Ilu stanowisk potrzebujesz? W razie potrzeby będziesz mógł także dodać kolejne stanowiska później." + }, + "planNameFree": { + "message": "Darmowy", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Dla celów testowych lub użytku osobistego możesz udostępniać elementy $COUNT$ innym użytkownikom.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Rodzinny" + }, + "planDescFamilies": { + "message": "Dla użytku osobistego, aby udostępniać rodzinie i przyjaciołom." + }, + "planNameTeams": { + "message": "Zespoły" + }, + "planDescTeams": { + "message": "Dla firm i innych zorganizowanych zespołów." + }, + "planNameEnterprise": { + "message": "Przedsiębiorstwo" + }, + "planDescEnterprise": { + "message": "Dla firm i innych dużych organizacji." + }, + "freeForever": { + "message": "Darmowy na zawsze" + }, + "includesXUsers": { + "message": "zawiera $COUNT$ użytkowników", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Dodatkowi użytkownicy" + }, + "costPerUser": { + "message": "$COST$ na użytkownika", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Ograniczony do $COUNT$ użytkowników (łącznie z Tobą)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Ograniczony do $COUNT$ kolekcji", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Dodaj i udostępnij maksymalnie $COUNT$ użytkownikom", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Dodaj i udostępnij nieograniczonej liczbie użytkowników" + }, + "createUnlimitedCollections": { + "message": "Utwórz nieograniczoną liczbę kolekcji" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ szyfrowanej przestrzeni", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Samodzielnie hostowane środowisko (opcjonalnie)" + }, + "usersGetPremium": { + "message": "Użytkownicy uzyskują dostęp do kont Premium" + }, + "controlAccessWithGroups": { + "message": "Kontroluj dostęp z użyciem grup użytkowników" + }, + "syncUsersFromDirectory": { + "message": "Synchronizuj użytkowników i grupy z użyciem katalogu" + }, + "trackAuditLogs": { + "message": "Śledź działania użytkowników dzięki dziennikom audytu" + }, + "enforce2faDuo": { + "message": "Wymagaj logowania dwustopniowego poprzez Duo" + }, + "priorityCustomerSupport": { + "message": "Priorytetowe wsparcie klienta" + }, + "xDayFreeTrial": { + "message": "$COUNT$-dniowy okres próbny z możliwością rezygnacji w każdej chwili", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Miesięcznie" + }, + "annually": { + "message": "Rocznie" + }, + "basePrice": { + "message": "Cena netto" + }, + "organizationCreated": { + "message": "Organizacja została utworzona" + }, + "organizationReadyToGo": { + "message": "Twoja nowa organizacja jest gotowa!" + }, + "organizationUpgraded": { + "message": "Organizacja została zaktualizowana." + }, + "leave": { + "message": "Opuść" + }, + "leaveOrganizationConfirmation": { + "message": "Czy na pewno chcesz opuścić tę organizację?" + }, + "leftOrganization": { + "message": "Nie należysz już do tej organizacji." + }, + "defaultCollection": { + "message": "Domyślna kolekcja" + }, + "getHelp": { + "message": "Uzyskaj pomoc" + }, + "getApps": { + "message": "Pobierz aplikacje" + }, + "loggedInAs": { + "message": "Zalogowany jako" + }, + "eventLogs": { + "message": "Dziennik zdarzeń" + }, + "people": { + "message": "Użytkownicy" + }, + "policies": { + "message": "Zasady" + }, + "singleSignOn": { + "message": "Logowanie jednokrotne" + }, + "editPolicy": { + "message": "Edytuj zasady" + }, + "groups": { + "message": "Grupy" + }, + "newGroup": { + "message": "Nowa grupa" + }, + "addGroup": { + "message": "Dodaj grupę" + }, + "editGroup": { + "message": "Edytuj grupę" + }, + "deleteGroupConfirmation": { + "message": "Czy na pewno chcesz usunąć tę grupę?" + }, + "removeUserConfirmation": { + "message": "Czy na pewno chcesz usunąć tego użytkownika?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Ostrzeżenie! Ten użytkownik wymaga serwera Key Connector do zarządzania szyfrowaniem. Usunięcie tego użytkownika z organizacji spowoduje trwałe wyłączenie jego konta. Nie możesz cofnąć tej akcji. Czy chcesz kontynuować?" + }, + "externalId": { + "message": "Identyfikator zewnętrzny" + }, + "externalIdDesc": { + "message": "Zewnętrzny identyfikator może zostać użyty jako odniesienie lub połączenie tego zasobu z zewnętrznym systemem, takim jak katalog użytkowników." + }, + "accessControl": { + "message": "Kontrola dostępu" + }, + "groupAccessAllItems": { + "message": "Ta grupa może otwierać i modyfikować wszystkie elementy." + }, + "groupAccessSelectedCollections": { + "message": "Ta grupa posiada dostęp wyłącznie do wybranych kolekcji." + }, + "readOnly": { + "message": "Tylko do odczytu" + }, + "newCollection": { + "message": "Nowa kolekcja" + }, + "addCollection": { + "message": "Dodaj kolekcję" + }, + "editCollection": { + "message": "Edytuj kolekcję" + }, + "deleteCollectionConfirmation": { + "message": "Czy na pewno chcesz usunąć tę kolekcję?" + }, + "editUser": { + "message": "Edytuj użytkownika" + }, + "inviteUser": { + "message": "Zaproś użytkownika" + }, + "inviteUserDesc": { + "message": "Zaproś nowego użytkownika do Twojej organizacji poprzez wpisanie poniżej jego adresu e-mail. Jeśli nie posiada on jeszcze konta Bitwarden, zostanie poproszony o jego utworzenie." + }, + "inviteMultipleEmailDesc": { + "message": "Możesz zaprosić do $COUNT$ użytkowników jednocześnie, wpisując ich adresy e-mail oddzielone przecinkiem.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Ten użytkownik korzysta z logowania dwustopniowego, aby chronić swoje konto." + }, + "userAccessAllItems": { + "message": "Ten użytkownik może otwierać i modyfikować wszystkie elementy." + }, + "userAccessSelectedCollections": { + "message": "Ten użytkownik posiada dostęp wyłącznie do wybranych kolekcji." + }, + "search": { + "message": "Szukaj" + }, + "invited": { + "message": "Zaproszony" + }, + "accepted": { + "message": "Zaakceptowany" + }, + "confirmed": { + "message": "Potwierdzone" + }, + "clientOwnerEmail": { + "message": "Adres e-mail właściciela organizacji" + }, + "owner": { + "message": "Właściciel" + }, + "ownerDesc": { + "message": "Użytkownik z najwyższym uprawnieniem, który może zarządzać wszystkimi ustawieniami organizacji." + }, + "clientOwnerDesc": { + "message": "Ten użytkownik powinien być niezależny od dostawcy. Jeśli dostawca zostanie odłączony od organizacji, użytkownik ten zachowa własność organizacji." + }, + "admin": { + "message": "Administrator" + }, + "adminDesc": { + "message": "Administratorzy posiadają dostęp do wszystkich elementów, kolekcji i użytkowników w Twojej organizacji." + }, + "user": { + "message": "Użytkownik" + }, + "userDesc": { + "message": "Standardowy użytkownik, posiadający dostęp do kolekcji w Twojej organizacji." + }, + "manager": { + "message": "Menedżer" + }, + "managerDesc": { + "message": "Menedżerowie mogą uzyskiwać dostęp do przypisanych kolekcji i zarządzać nimi w organizacji." + }, + "all": { + "message": "Wszyscy" + }, + "refresh": { + "message": "Odśwież" + }, + "timestamp": { + "message": "Sygnatura czasowa" + }, + "event": { + "message": "Zdarzenie" + }, + "unknown": { + "message": "Nieznane" + }, + "loadMore": { + "message": "Załaduj więcej" + }, + "mobile": { + "message": "Komórka", + "description": "Mobile app" + }, + "extension": { + "message": "Rozszerzenie", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Komputer", + "description": "Desktop app" + }, + "webVault": { + "message": "Sejf internetowy" + }, + "loggedIn": { + "message": "Zalogowano." + }, + "changedPassword": { + "message": "Hasło do konta zostało zmienione." + }, + "enabledUpdated2fa": { + "message": "Logowanie dwustopniowe zostało zaktualizowane." + }, + "disabled2fa": { + "message": "Logowanie dwustopniowe zostało wyłączone." + }, + "recovered2fa": { + "message": "Logowanie dwustopniowe zostało wyłączone." + }, + "failedLogin": { + "message": "Logowanie nie powiodło się z powodu błędnego hasła." + }, + "failedLogin2fa": { + "message": "Logowanie nie powiodło się z powodu nieprawidłowego logowania dwustopniowego." + }, + "exportedVault": { + "message": "Sejf został wyeksportowany." + }, + "exportedOrganizationVault": { + "message": "Sejf organizacji został wyeksportowany." + }, + "editedOrgSettings": { + "message": "Ustawienia organizacji zostały zaktualizowane." + }, + "createdItemId": { + "message": "Element $ID$ został utworzony.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Element $ID$ został zaktualizowany.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Element $ID$ został przeniesiony do kosza.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Element $ID$ został przeniesiony do organizacji.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Wyświetlono element $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Hasło dla elementu $ID$ zostało wyświetlone.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Wyświetlono ukryte pole dla elementu $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Wyświetlono kod bezpieczeństwa dla elementu $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Hasło dla elementu $ID$ zostało skopiowane.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Skopiowano ukryte pole dla elementu $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Skopiowano kod bezpieczeństwa dla elementu $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Element $ID$ został automatycznie uzupełniony.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Kolekcja $ID$ została utworzona.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Kolekcja $ID$ została zaktualizowana.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Kolekcja $ID$ została usunięta.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Zasada $ID$ została zaktualizowana.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Grupa $ID$ została utworzona.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Grupa $ID$ została zaktualizowana.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Grupa $ID$ została usunięta.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Użytkownik $ID$ został usunięty.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Załącznik elementu $ID$ został utworzony.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Załącznik elementu $ID$ został usunięty.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Kolekcje elementu $ID$ zostały zaktualizowane.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Użytkownik $ID$ został zaproszony.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Użytkownik $ID$ został potwierdzony.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Użytkownik $ID$ został zaktualizowany.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Grupy dla użytkownika $ID$ zostały zaktualizowane.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Odłącz logowanie jednokrotne SSO dla użytkownika %$ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Organizacja $ID$ została utworzona.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Organizacja $ID$ została dodana.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Organizacja $ID$ została usunięta.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Dostęp do sejfu organizacji $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Urządzenie" + }, + "view": { + "message": "Widok" + }, + "invalidDateRange": { + "message": "Zakres dat jest nieprawidłowy." + }, + "errorOccurred": { + "message": "Wystąpił błąd." + }, + "userAccess": { + "message": "Dostęp użytkownika" + }, + "userType": { + "message": "Typ użytkownika" + }, + "groupAccess": { + "message": "Dostęp grupowy" + }, + "groupAccessUserDesc": { + "message": "Zmień grupy, do których należy użytkownik." + }, + "invitedUsers": { + "message": "Użytkownicy zostali zaproszeni." + }, + "resendInvitation": { + "message": "Wyślij ponownie zaproszenie" + }, + "resendEmail": { + "message": "Wyślij ponownie wiadomość" + }, + "hasBeenReinvited": { + "message": "Użytkownik $USER$ został ponownie zaproszony.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Potwierdź" + }, + "confirmUser": { + "message": "Potwierdź użytkownika" + }, + "hasBeenConfirmed": { + "message": "Użytkownik $USER$ został potwierdzony.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Potwierdź użytkowników" + }, + "usersNeedConfirmed": { + "message": "Posiadasz użytkowników, którzy zaakceptowali zaproszenie, ale muszą jeszcze zostać potwierdzeni. Użytkownicy nie będą posiadali dostępu do organizacji, dopóki nie zostaną potwierdzeni." + }, + "startDate": { + "message": "Data rozpoczęcia" + }, + "endDate": { + "message": "Data zakończenia" + }, + "verifyEmail": { + "message": "Zweryfikuj adres e-mail" + }, + "verifyEmailDesc": { + "message": "Zweryfikuj swój adres e-mail, aby odblokować dostęp do wszystkich funkcji." + }, + "verifyEmailFirst": { + "message": "Najpierw musimy zweryfikować Twój adres e-mail." + }, + "checkInboxForVerification": { + "message": "Sprawdź swoją skrzynkę e-mail, aby uzyskać kod weryfikacyjny." + }, + "emailVerified": { + "message": "Twój adres e-mail został zweryfikowany." + }, + "emailVerifiedFailed": { + "message": "Nie możemy zweryfikować Twojego adresu e-mail. Spróbuj ponownie wysłać wiadomość weryfikacyjną." + }, + "emailVerificationRequired": { + "message": "Weryfikacja adresu e-mail jest wymagana" + }, + "emailVerificationRequiredDesc": { + "message": "Musisz zweryfikować adres e-mail, aby używać tej funkcji." + }, + "updateBrowser": { + "message": "Aktualizuj przeglądarkę" + }, + "updateBrowserDesc": { + "message": "Używasz nieobsługiwanej przeglądarki. Sejf internetowy może działać niewłaściwie." + }, + "joinOrganization": { + "message": "Dołącz do organizacji" + }, + "joinOrganizationDesc": { + "message": "Zostałeś zaproszony do dołączenia do poniższej organizacji. Aby zaakceptować zaproszenie, musisz zalogować się lub utworzyć nowe konto Bitwarden." + }, + "inviteAccepted": { + "message": "Zaproszenie zostało zaakceptowane" + }, + "inviteAcceptedDesc": { + "message": "Dostęp do tej organizacji otrzymasz po potwierdzeniu członkostwa przez administratora. Dostaniesz wtedy wiadomość e-mail." + }, + "inviteAcceptFailed": { + "message": "Nie można zaakceptować zaproszenia. Poproś administratora organizacji o wysłanie nowego zaproszenia." + }, + "inviteAcceptFailedShort": { + "message": "Nie można zaakceptować zaproszenia. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Zapamiętaj adres e-mail" + }, + "recoverAccountTwoStepDesc": { + "message": "Jeśli nie możesz uzyskać dostępu do konta poprzez standardowe metody logowania dwustopniowego, skorzystaj z kodu odzyskiwania, aby wyłączyć wszystkich dostawców logowania dwustopniowego na swoim koncie." + }, + "recoverAccountTwoStep": { + "message": "Przywróć logowanie dwustopniowe do konta" + }, + "twoStepRecoverDisabled": { + "message": "Logowanie dwustopniowe zostało wyłączone na koncie." + }, + "learnMore": { + "message": "Dowiedz się więcej" + }, + "deleteRecoverDesc": { + "message": "Wpisz adres e-mail poniżej, aby odzyskać i usunąć konto." + }, + "deleteRecoverEmailSent": { + "message": "Jeśli Twoje konto istnieje, otrzymasz e-mail z dalszymi instrukcjami." + }, + "deleteRecoverConfirmDesc": { + "message": "Poprosiłeś o usunięcie konta Bitwarden. Kliknij poniższy przycisk, aby to potwierdzić." + }, + "myOrganization": { + "message": "Moja organizacja" + }, + "deleteOrganization": { + "message": "Usuń organizację" + }, + "deletingOrganizationContentWarning": { + "message": "Wprowadź hasło główne, aby potwierdzić usunięcie $ORGANIZATION$ i wszystkich powiązanych danych. Dane sejfu w $ORGANIZATION$ obejmują:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Konta użytkowników pozostaną aktywne po usunięciu, ale nie będą już powiązane z tą organizacją." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Usuwanie organizacji $ORGANIZATION$ jest trwałe i nieodwracalne.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organizacja została usunięta" + }, + "organizationDeletedDesc": { + "message": "Organizacja i wszystkie połączone z nią dane zostały usunięte." + }, + "organizationUpdated": { + "message": "Organizacja została zaktualizowana" + }, + "taxInformation": { + "message": "Informacje podatkowe" + }, + "taxInformationDesc": { + "message": "Dla klientów w USA kod pocztowy jest wymagany, aby spełnić wymagania dotyczące podatku od sprzedaży. W pozostałych krajach możesz opcjonalnie podać numer identyfikacji podatkowej (VAT/GST) i/lub adres, który ma pojawić się na fakturach." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Ulepsz plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Zaktualizuj swoje konto do innego planu, podając poniższe informacje. Upewnij się, że do konta została dodana aktywna metoda płatności.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Faktura nr $NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Pokaż fakturę" + }, + "downloadInvoice": { + "message": "Pobierz fakturę" + }, + "verifyBankAccount": { + "message": "Weryfikuj konto bankowe" + }, + "verifyBankAccountDesc": { + "message": "Dokonaliśmy dwóch mikro przelewów na konto bankowe (mogą upłynąć 1-2 dni robocze, zanim je zobaczysz). Wpisz te kwoty, aby zweryfikować konto bankowe." + }, + "verifyBankAccountInitialDesc": { + "message": "Płatność z pomocą konta bankowego jest dostępna wyłącznie dla klientów w Stanach Zjednoczonych. Konieczne będzie zweryfikowanie konta bankowego. Wykonamy dwa mikro przelewy w ciągu następnych 1-2 dni roboczych. Wpisz te kwoty na stronie rozliczeń organizacji, aby zweryfikować konto bankowe." + }, + "verifyBankAccountFailureWarning": { + "message": "Brak weryfikacji konta bankowego spowoduje brak dokonania płatności i Twoja subskrypcja zostanie wyłączona." + }, + "verifiedBankAccount": { + "message": "Konto bankowe zostało zweryfikowane." + }, + "bankAccount": { + "message": "Konto bankowe" + }, + "amountX": { + "message": "Kwota $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Numer rozliczeniowy", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Numer konta" + }, + "accountHolderName": { + "message": "Nazwa posiadacza konta" + }, + "bankAccountType": { + "message": "Typ konta" + }, + "bankAccountTypeCompany": { + "message": "Firmowe" + }, + "bankAccountTypeIndividual": { + "message": "Indywidualne (osobiste)" + }, + "enterInstallationId": { + "message": "Wpisz identyfikator instalacji" + }, + "limitSubscriptionDesc": { + "message": "Ustaw limit liczby stanowisk subskrypcji. Po osiągnięciu tego limitu nie będziesz mógł zapraszać nowych użytkowników." + }, + "maxSeatLimit": { + "message": "Maksymalna liczba stanowisk (opcjonalnie)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Maksymalny potencjalny koszt stanowisk" + }, + "addSeats": { + "message": "Dodaj stanowiska", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Usuń stanowiska", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Zmiany w subskrypcji spowodują proporcjonalne zmiany w rozliczeniach. Jeśli nowo zaproszeni użytkownicy przekroczą liczbę stanowisk w subskrypcji, otrzymasz proporcjonalną opłatę za dodatkowych użytkowników." + }, + "subscriptionUserSeats": { + "message": "Twoja subskrypcja pozwala na łączną liczbę $COUNT$ użytkowników.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit subskrypcji (opcjonalnie)" + }, + "subscriptionSeats": { + "message": "Liczba stanowisk" + }, + "subscriptionUpdated": { + "message": "Subskrypcja została zaktualizowana" + }, + "additionalOptions": { + "message": "Dodatkowe opcje" + }, + "additionalOptionsDesc": { + "message": "Aby uzyskać dodatkową pomoc w zarządzaniu subskrypcją, skontaktuj się z działem obsługi klienta." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Zmiany w subskrypcji spowodują proporcjonalne zmiany w rozliczeniach. Jeśli nowo zaproszeni użytkownicy przekroczą liczbę stanowisk w subskrypcji, otrzymasz proporcjonalną opłatę za dodatkowych użytkowników." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Zmiany w subskrypcji spowodują proporcjonalne zmiany w rozliczeniach. Jeśli nowo zaproszeni użytkownicy przekroczą liczbę stanowisk w subskrypcji, otrzymasz proporcjonalną opłatę za dodatkowych użytkowników, aż do osiągnięcia limitu maksymalnej liczby stanowisk.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "W obecnym planie nie możesz zaprosić więcej niż $COUNT$ użytkowników.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "W obecnym planie nie możesz zaprosić więcej niż $COUNT$ użytkowników. Aby ulepszyć plan, skontaktuj się z działem obsługi klienta.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Twoja subskrypcja pozwala na utworzenie $COUNT$ użytkowników. Twój plan jest sponsorowany i opłacany przez zewnętrzną organizację.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Zmiany w subskrypcji spowodują proporcjonalne zmiany w rozliczeniach. Nie można zaprosić więcej niż $COUNT$ użytkowników bez zwiększenia liczby stanowisk w subskrypcji.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Stanowiska do dodania" + }, + "seatsToRemove": { + "message": "Stanowiska do usunięcia" + }, + "seatsAddNote": { + "message": "Dodanie stanowisk dla użytkowników będzie skutkować korektą sumy należności i natychmiastowym obciążeniem konta. Pierwsza opłata zostanie naliczona proporcjonalnie do końca obecnego okresu rozliczeniowego." + }, + "seatsRemoveNote": { + "message": "Usunięcie stanowisk dla użytkowników spowoduje korektę należności, która zostanie wykonana w następnym okresie rozliczeniowym." + }, + "adjustedSeats": { + "message": "Stanowiska użytkowników zostały zaktualizowane ($AMOUNT$).", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Klucz został zaktualizowany" + }, + "updateKeyTitle": { + "message": "Zaktualizuj klucz" + }, + "updateEncryptionKey": { + "message": "Zaktualizuj klucz szyfrowania" + }, + "updateEncryptionKeyShortDesc": { + "message": "Używasz przestarzałej metody szyfrowania." + }, + "updateEncryptionKeyDesc": { + "message": "Zdecydowaliśmy się na używanie silniejszych kluczy szyfrowania, które zapewniają lepsze bezpieczeństwo i dostęp do nowych funkcji. Zaktualizowanie klucza szyfrowania jest szybkie i łatwe. Wystarczy wpisać poniżej swoje hasło. Aktualizacja klucza stanie się wkrótce obowiązkowa." + }, + "updateEncryptionKeyWarning": { + "message": "Po zaktualizowaniu klucza szyfrowania, musisz ponownie zalogować się do wszystkich aplikacji Bitwarden, z których obecnie korzystasz (na przykład aplikacje mobilne lub rozszerzenia przeglądarki). Niepowodzenie logowania (podczas którego pobierany jest nowy klucz szyfrowania) może spowodować uszkodzenie danych. Postaramy się wylogować Ciebie automatycznie, jednak może to chwilę potrwać." + }, + "updateEncryptionKeyExportWarning": { + "message": "Wszystkie zaszyfrowane pliki eksportu, które wcześniej zapisałeś, staną się nieprawidłowe." + }, + "subscription": { + "message": "Subskrypcja" + }, + "loading": { + "message": "Ładowanie" + }, + "upgrade": { + "message": "Uaktualnienie" + }, + "upgradeOrganization": { + "message": "Uaktualnij organizację" + }, + "upgradeOrganizationDesc": { + "message": "Ta funkcja nie jest dostępna dla darmowych organizacji. Przejdź na płatny plan, aby odblokować więcej funkcji." + }, + "createOrganizationStep1": { + "message": "Utwórz organizację: Krok 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Zanim utworzysz swoją organizację, musisz utworzyć darmowe konto osobiste." + }, + "refunded": { + "message": "Zwrócono" + }, + "nothingSelected": { + "message": "Nie zaznaczyłeś żadnych elementów." + }, + "acceptPolicies": { + "message": "Zaznaczając tę opcję, akceptujesz:" + }, + "acceptPoliciesError": { + "message": "Nie zaakceptowałeś regulaminu i polityki prywatności." + }, + "termsOfService": { + "message": "Regulamin" + }, + "privacyPolicy": { + "message": "Polityka prywatności" + }, + "filters": { + "message": "Filtry" + }, + "vaultTimeout": { + "message": "Blokowanie sejfu" + }, + "vaultTimeoutDesc": { + "message": "Wybierz kiedy sejf zostanie zablokowany i wykonaj następującą akcję." + }, + "oneMinute": { + "message": "1 minuta" + }, + "fiveMinutes": { + "message": "5 minut" + }, + "fifteenMinutes": { + "message": "15 minut" + }, + "thirtyMinutes": { + "message": "30 minut" + }, + "oneHour": { + "message": "1 godzina" + }, + "fourHours": { + "message": "4 godziny" + }, + "onRefresh": { + "message": "Po restarcie przeglądarki" + }, + "dateUpdated": { + "message": "Zaktualizowano", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Aktualizacja hasła", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organizacja jest wyłączona." + }, + "licenseIsExpired": { + "message": "Licencja wygasła." + }, + "updatedUsers": { + "message": "Użytkownicy zostali zaktualizowani" + }, + "selected": { + "message": "Zaznaczono" + }, + "ownership": { + "message": "Właściciel" + }, + "whoOwnsThisItem": { + "message": "Kto jest właścicielem tego elementu?" + }, + "strong": { + "message": "Silne", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Dobre", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Słabe", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Bardzo słabe", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Słabe hasło główne" + }, + "weakMasterPasswordDesc": { + "message": "Wpisane przez Ciebie hasło główne jest słabe. Powinieneś użyć silniejszego hasła (lub frazy), aby właściwie chronić swoje konto Bitwarden. Czy na pewno chcesz użyć tego hasła głównego?" + }, + "rotateAccountEncKey": { + "message": "Zmień także mój klucz szyfrowania" + }, + "rotateEncKeyTitle": { + "message": "Zmień klucz szyfrowania" + }, + "rotateEncKeyConfirmation": { + "message": "Czy na pewno chcesz zmienić swój klucz szyfrowania?" + }, + "attachmentsNeedFix": { + "message": "Ten element posiada stare załączniki, które muszą zostać naprawione." + }, + "attachmentFixDesc": { + "message": "To jest stary załącznik, który musi zostać naprawiony. Kliknij, aby dowiedzieć się więcej." + }, + "fix": { + "message": "Napraw", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "W Twoim sejfie istnieją stare załączniki, które muszą zostać naprawione, zanim będziesz mógł zmienić klucz szyfrowania Twojego konta." + }, + "yourAccountsFingerprint": { + "message": "Unikalny identyfikator Twojego konta", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Aby zapewnić integralność kluczy szyfrowania, zweryfikuj unikalny identyfikator użytkownika, zanim przejdziesz dalej.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Nie pytaj ponownie o weryfikację unikalnego identyfikatora konta dla zaproszonych użytkowników (niezalecane)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Darmowy", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "Klucz interfejsu API" + }, + "apiKeyDesc": { + "message": "Twój klucz interfejsu API może zostać użyty do uwierzytelniania dostępu do publicznego interfejsu API Bitwarden." + }, + "apiKeyRotateDesc": { + "message": "Zmiana klucza interfejsu API spowoduje unieważnienie poprzedniego klucza. Możesz zmienić klucz interfejsu, jeśli uważasz, że obecny klucz przestał być bezpieczny." + }, + "apiKeyWarning": { + "message": "Twój klucz interfejsu API umożliwia pełny dostęp do organizacji, dlatego powinien być dobrze strzeżony." + }, + "userApiKeyDesc": { + "message": "Twój klucz interfejsu API może zostać użyty do uwierzytelniania dostępu do wiersza poleceń Bitwarden." + }, + "userApiKeyWarning": { + "message": "Twój klucz interfejsu API jest alternatywną metodą uwierzytelniania. Powinien być dobrze strzeżony." + }, + "oauth2ClientCredentials": { + "message": "Dane uwierzytelniające OAuth 2.0", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Wyświetl klucz interfejsu API" + }, + "rotateApiKey": { + "message": "Zmień klucz interfejsu API" + }, + "selectOneCollection": { + "message": "Musisz wybrać co najmniej jedną kolekcję." + }, + "couldNotChargeCardPayInvoice": { + "message": "Nie byliśmy w stanie obciążyć karty. Sprawdź i opłać niezapłacone faktury wymienione poniżej." + }, + "inAppPurchase": { + "message": "Zakupy w aplikacji" + }, + "cannotPerformInAppPurchase": { + "message": "Nie możesz tego zrobić, kiedy używasz płatności w aplikacji." + }, + "manageSubscriptionFromStore": { + "message": "Musisz zarządzać swoją subskrypcją ze sklepu, w którym były dokonane zakupy w aplikacji." + }, + "minLength": { + "message": "Minimalna długość" + }, + "clone": { + "message": "Klonuj" + }, + "masterPassPolicyDesc": { + "message": "Ustaw minimalne wymagania dla hasła głównego." + }, + "twoStepLoginPolicyDesc": { + "message": "Wymagaj od użytkowników aktywowania logowania dwustopniowego na swoich kontach osobistych." + }, + "twoStepLoginPolicyWarning": { + "message": "Członkowie organizacji, którzy nie są właścicielami lub administratorami i nie posiadają włączonej opcji logowania dwustopniowego na swoim koncie osobistym, zostaną usunięci z organizacji i otrzymają wiadomość z powiadomieniem o zmianie." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Jesteś członkiem organizacji, która wymaga włączonej opcji logowania dwustopniowego na koncie użytkownika. Jeśli wyłączysz wszystkich dostawców logowania dwustopniowego, zostaniesz automatycznie usunięty z tych organizacji." + }, + "passwordGeneratorPolicyDesc": { + "message": "Ustaw minimalne wymagania dla generatora hasła." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Co najmniej jedna zasada organizacji wpływa na ustawienia generatora." + }, + "masterPasswordPolicyInEffect": { + "message": "Co najmniej jedna zasada organizacji wymaga, aby hasło główne spełniało następujące wymagania:" + }, + "policyInEffectMinComplexity": { + "message": "Minimalny poziom złożoności wynosi $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimalna długość wynosi $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Zawiera co najmniej jedną wielką literę" + }, + "policyInEffectLowercase": { + "message": "Zawiera co najmniej jedną małą literę" + }, + "policyInEffectNumbers": { + "message": "Zawiera co najmniej jedną cyfrę" + }, + "policyInEffectSpecial": { + "message": "Zawiera co najmniej jeden następujący znak specjalny $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Nowe hasło główne nie spełnia wymaganych zasad." + }, + "minimumNumberOfWords": { + "message": "Minimalna liczba słów" + }, + "defaultType": { + "message": "Domyślny rodzaj" + }, + "userPreference": { + "message": "Ustawienie użytkownika" + }, + "vaultTimeoutAction": { + "message": "Sposób blokowania sejfu" + }, + "vaultTimeoutActionLockDesc": { + "message": "Po zablokowaniu sejfu, musisz ponownie wpisać hasło główne, aby uzyskać do niego dostęp." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Po wylogowaniu się z sejfu, musisz ponownie zalogować się, aby uzyskać do niego dostęp." + }, + "lock": { + "message": "Zablokuj", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Kosz", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Szukaj w koszu" + }, + "permanentlyDelete": { + "message": "Usuń trwale" + }, + "permanentlyDeleteSelected": { + "message": "Usuń trwale zaznaczone" + }, + "permanentlyDeleteItem": { + "message": "Usuń trwale element" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Czy na pewno chcesz usunąć trwale ten element?" + }, + "permanentlyDeletedItem": { + "message": "Element został trwale usunięty" + }, + "permanentlyDeletedItems": { + "message": "Elementy zostały trwale usunięte" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Wybrałeś elementy do trwałego usunięcia. Czy na pewno chcesz je wszystkie usunąć trwale?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Element $ID$ został trwale usunięty.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Przywróć" + }, + "restoreSelected": { + "message": "Przywróć zaznaczone" + }, + "restoreItem": { + "message": "Przywróć element" + }, + "restoredItem": { + "message": "Element został przywrócony" + }, + "restoredItems": { + "message": "Elementy zostały przywrócone" + }, + "restoreItemConfirmation": { + "message": "Czy na pewno chcesz przywrócić ten element?" + }, + "restoreItems": { + "message": "Przywróć elementy" + }, + "restoreSelectedItemsDesc": { + "message": "Wybrałeś elementy do przywrócenia. Czy na pewno chcesz je wszystkie przywrócić?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Element $ID$ został przywrócony.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Po wylogowaniu się z sejfu musisz ponownie zalogować się, aby uzyskać do niego dostęp. Czy na pewno chcesz użyć tego ustawienia?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Potwierdź sposób blokowania sejfu" + }, + "hidePasswords": { + "message": "Ukryj hasła" + }, + "countryPostalCodeRequiredDesc": { + "message": "Potrzebujemy tych informacji tylko do obliczenia podatku od sprzedaży i uzupełnienia deklaracji finansowych." + }, + "includeVAT": { + "message": "Dołącz identyfikator podatkowy VAT/GST (opcjonalnie)" + }, + "taxIdNumber": { + "message": "Identyfikator podatkowy VAT/GST" + }, + "taxInfoUpdated": { + "message": "Informacje podatkowe zostały zaktualizowane." + }, + "setMasterPassword": { + "message": "Ustaw hasło główne" + }, + "ssoCompleteRegistration": { + "message": "W celu zakończenia jednokrotnego logowania SSO, ustaw hasło główne, aby uzyskać dostęp do sejfu." + }, + "identifier": { + "message": "Identyfikator" + }, + "organizationIdentifier": { + "message": "Identyfikator organizacji" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Zaloguj się za pomocą logowania jednokrotnego SSO swojej organizacji. Aby rozpocząć, wpisz swój identyfikator organizacji." + }, + "enterpriseSingleSignOn": { + "message": "Logowanie jednokrotne" + }, + "ssoHandOff": { + "message": "Możesz teraz zamknąć tę kartę i kontynuować w rozszerzeniu." + }, + "includeAllTeamsFeatures": { + "message": "Wszystkie funkcje zespołów oraz:" + }, + "includeSsoAuthentication": { + "message": "Logowanie jednokrotne SSO za pomocą protokołu SAML2.0 i OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Zasady przedsiębiorstwa" + }, + "ssoValidationFailed": { + "message": "Weryfikacja logowania jednokrotnego SSO nie powiodła się" + }, + "ssoIdentifierRequired": { + "message": "Identyfikator organizacji jest wymagany." + }, + "unlinkSso": { + "message": "Odłącz logowanie jednokrotne SSO" + }, + "unlinkSsoConfirmation": { + "message": "Czy na pewno chcesz odłączyć logowanie jednokrotne SSO dla tej organizacji?" + }, + "linkSso": { + "message": "Połącz logowanie jednokrotne SSO" + }, + "singleOrg": { + "message": "Pojedyncza organizacja" + }, + "singleOrgDesc": { + "message": "Zablokuj użytkownikom możliwość dołączania do innych organizacji." + }, + "singleOrgBlockCreateMessage": { + "message": "Twoja obecna organizacja posiada zasady, które nie pozwalają na dołączanie do więcej niż jednej organizacji. Skontaktuj się z administratorami swojej organizacji lub zarejestruj się z innego konta Bitwarden." + }, + "singleOrgPolicyWarning": { + "message": "Członkowie organizacji, którzy nie są właścicielami lub administratorami i są już członkami innej organizacji zostaną usunięci z Twojej organizacji." + }, + "requireSso": { + "message": "Uwierzytelnianie logowaniem jednokrotnym" + }, + "requireSsoPolicyDesc": { + "message": "Wymagaj używania przez użytkowników logowania jednokrotnego." + }, + "prerequisite": { + "message": "Wymaganie wstępne" + }, + "requireSsoPolicyReq": { + "message": "Najpierw musisz włączyć zasadę pojedynczej organizacji." + }, + "requireSsoPolicyReqError": { + "message": "Zasady pojedynczej organizacji nie są włączone." + }, + "requireSsoExemption": { + "message": "Właściciele i administratorzy organizacji są zwolnieni z przestrzegania wymagań zasad." + }, + "sendTypeFile": { + "message": "Plik" + }, + "sendTypeText": { + "message": "Tekst" + }, + "createSend": { + "message": "Utwórz nową wysyłkę", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edytuj wysyłkę", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Wysyłka została utworzona", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Wysyłka została zaktualizowana", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Wysyłka została usunięta", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Usuń wysyłkę", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Czy na pewno chcesz usunąć tę wysyłkę?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Jakiego typu jest to wysyłka?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Data usunięcia" + }, + "deletionDateDesc": { + "message": "Wysyłka zostanie trwale usunięta w określonym czasie.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Data wygaśnięcia" + }, + "expirationDateDesc": { + "message": "Jeśli funkcja jest włączona, dostęp do wysyłki wygaśnie po określonym czasie.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maksymalna liczba dostępów" + }, + "maxAccessCountDesc": { + "message": "Jeśli funkcja jest włączona, po osiągnięciu maksymalnej liczby dostępów, użytkownicy nie będą mieli dostępu do tej wysyłki.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Obecna liczba dostępów" + }, + "sendPasswordDesc": { + "message": "Opcjonalne hasło dla użytkownika, aby uzyskać dostęp do wysyłki.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Prywatne notatki o tej wysyłce.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Wyłączone" + }, + "sendLink": { + "message": "Link wysyłki", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Kopiuj link wysyłki", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Usuń hasło" + }, + "removedPassword": { + "message": "Hasło zostało usunięte" + }, + "removePasswordConfirmation": { + "message": "Czy na pewno chcesz usunąć hasło?" + }, + "hideEmail": { + "message": "Ukryj mój adres e-mail przed odbiorcami." + }, + "disableThisSend": { + "message": "Wyłącz wysyłkę, aby nikt nie miał do niej dostępu.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Wszystkie wysyłki" + }, + "maxAccessCountReached": { + "message": "Maksymalna liczba dostępów została osiągnięta", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Oczekiwanie na usunięcie" + }, + "expired": { + "message": "Wygasła" + }, + "searchSends": { + "message": "Szukaj w wysyłkach", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Wysyłka jest chroniona hasłem. Wpisz hasło, aby kontynuować.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Nie znasz hasła? Poproś nadawcę o hasło, aby uzyskać dostęp do wysyłki.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Ta wysyłka jest domyślnie ukryta. Możesz zmienić jej widoczność za pomocą przycisku.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Pobierz plik" + }, + "sendAccessUnavailable": { + "message": "Wysyłka nie istnieje lub nie jest już dostępna.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Plik powiązany z wysyłką nie został znaleziony.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Brak wysyłek do wyświetlenia.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Dostęp awaryjny" + }, + "emergencyAccessDesc": { + "message": "Zarządzaj dostępem awaryjnym dla zaufanych kontaktów. Zaufane kontakty mogą poprosić Cię o przejęcie Twojego konta lub uzyskania dostępu do jego odczytu w awaryjnych przypadkach. Odwiedź naszą stronę pomocy, aby dowiedzieć się jak działa funkcja dostępu awaryjnego." + }, + "emergencyAccessOwnerWarning": { + "message": "Jesteś właścicielem co najmniej jednej organizacji. Jeśli kontaktowi awaryjnemu przyznasz dostęp do swojego konta, będzie mógł użyć wszystkich Twoich uprawnień." + }, + "trustedEmergencyContacts": { + "message": "Zaufane kontakty awaryjne" + }, + "noTrustedContacts": { + "message": "Nie dodałeś nikogo jako kontakt awaryjny. Aby rozpocząć, zaproś zaufany kontakt." + }, + "addEmergencyContact": { + "message": "Dodaj kontakt awaryjny" + }, + "designatedEmergencyContacts": { + "message": "Wyznaczone kontakty awaryjne" + }, + "noGrantedAccess": { + "message": "Nie zostałeś ustawiony jako kontakt awaryjny dla żadnego użytkownika." + }, + "inviteEmergencyContact": { + "message": "Zaproś kontakt awaryjny" + }, + "editEmergencyContact": { + "message": "Edytuj kontakt awaryjny" + }, + "inviteEmergencyContactDesc": { + "message": "Zaproś nowy kontakt awaryjny poprzez wpisanie jego adresu e-mail poniżej. Jeśli nie posiada on jeszcze konta Bitwarden, zostanie poproszony o jego utworzenie." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Dostęp awaryjny został zainicjowany" + }, + "emergencyAccessRecoveryApproved": { + "message": "Dostęp awaryjny został zatwierdzony" + }, + "viewDesc": { + "message": "Może zobaczyć wszystkie elementy w Twoim sejfie." + }, + "takeover": { + "message": "Przejęcie" + }, + "takeoverDesc": { + "message": "Może zresetować Twoje konto za pomocą nowego hasła głównego." + }, + "waitTime": { + "message": "Oczekiwanie" + }, + "waitTimeDesc": { + "message": "Czas wymagany do automatycznego przyznania dostępu." + }, + "oneDay": { + "message": "1 dzień" + }, + "days": { + "message": "$DAYS$ dni", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Użytkownik został zaproszony." + }, + "acceptEmergencyAccess": { + "message": "Zostałeś zaproszony przez powyższego użytkownika do zostania jego kontaktem awaryjnym. Aby zaakceptować zaproszenie, musisz zalogować się lub utworzyć nowe konto Bitwarden." + }, + "emergencyInviteAcceptFailed": { + "message": "Nie można zaakceptować zaproszenia. Poproś użytkownika o wysłanie nowego zaproszenia." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Nie można zaakceptować zaproszenia. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Dostęp do konta tego użytkownika otrzymasz po potwierdzeniu swojej tożsamości. Dostaniesz wtedy wiadomość e-mail." + }, + "requestAccess": { + "message": "Poproś o dostęp" + }, + "requestAccessConfirmation": { + "message": "Czy na pewno chcesz poprosić o dostęp awaryjny? Dostęp otrzymasz po zatwierdzeniu żądania lub po upływie określonego czasu ustawionego przez użytkownika.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Poprosiłeś o dostęp awaryjny dla użytkownika $USER$. Po otrzymaniu dostępu, dostaniesz wiadomość e-mail.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Zatwierdź" + }, + "reject": { + "message": "Odrzuć" + }, + "approveAccessConfirmation": { + "message": "Czy na pewno chcesz zatwierdzić dostęp awaryjny? Użytkownik $USER$ uzyska uprawnienie do Twojego konta ($ACTION$).", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Dostęp awaryjny został zatwierdzony." + }, + "emergencyRejected": { + "message": "Dostęp awaryjny został odrzucony" + }, + "passwordResetFor": { + "message": "Zresetowałeś hasło użytkownika $USER$. Możesz zalogować się za pomocą nowego hasła.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Własność osobista" + }, + "personalOwnershipPolicyDesc": { + "message": "Wymagaj od użytkowników zapisywanie elementów do kolekcji organizacji, usuwając opcję własności elementów." + }, + "personalOwnershipExemption": { + "message": "Właściciele i administratorzy organizacji są zwolnieni z przestrzegania wymagań zasad." + }, + "personalOwnershipSubmitError": { + "message": "Ze względu na zasadę przedsiębiorstwa, nie możesz zapisywać elementów w osobistym sejfie. Zmień właściciela elementu na organizację i wybierz jedną z dostępnych kolekcji." + }, + "disableSend": { + "message": "Wyłącz wysyłkę" + }, + "disableSendPolicyDesc": { + "message": "Nie zezwalaj użytkownikom na tworzenie i edytowanie wysyłek. Usunięcie obecnej wysyłki nadal jest dozwolone.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Użytkownicy organizacji, którzy mogą zarządzać zasadami organizacji są zwolnieni z przestrzegania wymagań zasad." + }, + "sendDisabled": { + "message": "Wysyłka została wyłączona", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Ze względu na zasadę przedsiębiorstwa, tylko Ty możesz usunąć obecną wysyłkę.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Opcje wysyłek", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Zarządzaj ustawieniami tworzenia i edytowania wysyłek.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Użytkownicy organizacji, którzy mogą zarządzać zasadami organizacji są zwolnieni z przestrzegania wymagań zasad." + }, + "disableHideEmail": { + "message": "Nie zezwalaj użytkownikom na ukrywanie ich adresów e-mail przed odbiorcami, podczas tworzenia lub edytowania wysyłek.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Obecnie obowiązujące zasady organizacji:" + }, + "sendDisableHideEmailInEffect": { + "message": "Użytkownicy nie mogą ukrywać swoich adresów e-mail przed odbiorcami, podczas tworzenia lub edytowania wysyłek.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Zasada $ID$ została zaktualizowana.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Cena planu" + }, + "estimatedTax": { + "message": "Podatek" + }, + "custom": { + "message": "Niestandardowe" + }, + "customDesc": { + "message": "Umożliwia zaawansowaną kontrolę uprawnień użytkownika." + }, + "permissions": { + "message": "Uprawnienia" + }, + "accessEventLogs": { + "message": "Dostęp do dziennika zdarzeń" + }, + "accessImportExport": { + "message": "Dostęp do importu i eksportu" + }, + "accessReports": { + "message": "Dostęp do raportów" + }, + "missingPermissions": { + "message": "Nie posiadasz uprawnień do wykonania tej akcji." + }, + "manageAllCollections": { + "message": "Zarządzaj wszystkimi kolekcjami" + }, + "createNewCollections": { + "message": "Utwórz nowe kolekcje" + }, + "editAnyCollection": { + "message": "Edytuj dowolną kolekcję" + }, + "deleteAnyCollection": { + "message": "Usuń dowolną kolekcję" + }, + "manageAssignedCollections": { + "message": "Zarządzaj przypisanymi kolekcjami" + }, + "editAssignedCollections": { + "message": "Edytuj przypisane kolekcje" + }, + "deleteAssignedCollections": { + "message": "Usuń przypisane kolekcje" + }, + "manageGroups": { + "message": "Zarządzaj grupami" + }, + "managePolicies": { + "message": "Zarządzaj zasadami" + }, + "manageSso": { + "message": "Zarządzaj logowaniem jednokrotnym SSO" + }, + "manageUsers": { + "message": "Zarządzaj użytkownikami" + }, + "manageResetPassword": { + "message": "Zarządzaj resetowaniem hasła" + }, + "disableRequiredError": { + "message": "Przed wyłączeniem tej zasady, musisz wyłączyć zasadę $POLICYNAME$.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Zasada organizacji ma wpływ na opcję własności elementów." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "Zasada organizacji uniemożliwia importowanie elementów do Twojego sejfu." + }, + "personalOwnershipCheckboxDesc": { + "message": "Wyłącz opcję własności osobistej dla użytkowników organizacji" + }, + "textHiddenByDefault": { + "message": "Ukryj domyślnie tekst wysyłki", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Nazwa wysyłki.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Tekst, który chcesz wysłać." + }, + "sendFileDesc": { + "message": "Plik, który chcesz wysłać." + }, + "copySendLinkOnSave": { + "message": "Po zapisaniu wysyłki, skopiuj link do schowka." + }, + "sendLinkLabel": { + "message": "Link wysyłki", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Wyślij", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Wysyłaj wrażliwe i krótkotrwałe informacje w łatwy i bezpieczny sposób.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Dowiedz się więcej o funkcji", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Udostępniaj teksty i pliki." + }, + "sendVaultCardLearnMore": { + "message": "Dowiedz się więcej", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "zobacz", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "jak to działa", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "lub", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "wypróbuj teraz", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "lub", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "zarejestruj się", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": ", aby ją wypróbować.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Użytkownik Bitwarden $USER_IDENTIFIER$ udostępnił Tobie", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Użytkownik Bitwarden, który utworzył wysyłkę, zdecydował ukryć swój adres e-mail. Przed użyciem lub pobraniem treści wysyłki upewnij się, że ufasz źródłu tego linku.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Data wygaśnięcia nie jest prawidłowa." + }, + "deletionDateIsInvalid": { + "message": "Data usunięcia nie jest prawidłowa." + }, + "expirationDateAndTimeRequired": { + "message": "Data i czas wygaśnięcia są wymagane." + }, + "deletionDateAndTimeRequired": { + "message": "Data i czas usunięcia są wymagane." + }, + "dateParsingError": { + "message": "Wystąpił błąd podczas zapisywania dat usunięcia i wygaśnięcia." + }, + "webAuthnFallbackMsg": { + "message": "Aby zweryfikować logowanie dwustopniowe, kliknij przycisk poniżej." + }, + "webAuthnAuthenticate": { + "message": "Uwierzytelnianie WebAuthn" + }, + "webAuthnNotSupported": { + "message": "Ta przeglądarka nie obsługuje uwierzytelniania WebAuthn." + }, + "webAuthnSuccess": { + "message": "Uwierzytelnianie WebAuthn zostało zweryfikowane! Możesz zamknąć tę kartę." + }, + "hintEqualsPassword": { + "message": "Podpowiedź do hasła nie może być taka sama jak hasło." + }, + "enrollPasswordReset": { + "message": "Zarejestruj do resetowania hasła" + }, + "enrolledPasswordReset": { + "message": "Użytkownik został zarejestrowany do resetowania hasła" + }, + "withdrawPasswordReset": { + "message": "Wyrejestruj z resetowania hasła" + }, + "enrollPasswordResetSuccess": { + "message": "Użytkownik został zarejestrowany!" + }, + "withdrawPasswordResetSuccess": { + "message": "Użytkownik został wyrejestrowany!" + }, + "eventEnrollPasswordReset": { + "message": "Użytkownik $ID$ został zarejestrowany do resetowania hasła.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Użytkownik $ID$ został wyrejestrowany z resetowania hasła.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Hasło główne dla użytkownika $ID$ zostało zresetowane.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Resetuj link logowania jednokrotnego SSO dla użytkownika $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "Użytkownik $ID$ zalogował się po raz pierwszy przy użyciu logowania jednokrotnego SSO", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Zresetuj hasło" + }, + "resetPasswordLoggedOutWarning": { + "message": "Kontynuowanie spowoduje wylogowanie użytkownika $NAME$ z obecnej sesji i będzie musiał zalogować się ponownie. Aktywne sesje na innych urządzeniach mogą pozostać aktywne przez maksymalnie godzinę.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "ten użytkownik" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Co najmniej jedna zasada organizacji wymaga, aby hasło główne spełniało następujące wymagania:" + }, + "resetPasswordSuccess": { + "message": "Hasło zostało zresetowane!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Rejestracja zezwala administratorom organizacji na zmianę Twojego hasła głównego. Czy na pewno chcesz się zarejestrować?" + }, + "resetPasswordPolicy": { + "message": "Zresetowanie hasła głównego" + }, + "resetPasswordPolicyDescription": { + "message": "Zezwalaj administratorom organizacji na resetowanie hasła głównego użytkowników." + }, + "resetPasswordPolicyWarning": { + "message": "Użytkownicy w organizacji muszą samodzielnie zarejestrować się do resetowania hasła przez administratorów." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatyczne rejestrowanie użytkowników" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Wszyscy użytkownicy, po zaakceptowaniu zaproszenia, zostaną automatycznie zarejestrowani do resetowania hasła." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Użytkownicy w organizacji muszą samodzielnie zarejestrować się do resetowania hasła przez administratorów." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Automatycznie rejestruj nowych użytkowników" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Ta organizacja posługuje się zasadą, która automatycznie rejestruje użytkowników do resetowania hasła. Rejestracja umożliwia administratorom organizacji zmianę Twojego hasła głównego." + }, + "resetPasswordOrgKeysError": { + "message": "Odpowiedź kluczy organizacji jest pusta" + }, + "resetPasswordDetailsError": { + "message": "Odpowiedź szczegółów zresetowania hasła jest pusta" + }, + "trashCleanupWarning": { + "message": "Elementy znajdujące się w koszu ponad 30 dni zostaną automatycznie usunięte." + }, + "trashCleanupWarningSelfHosted": { + "message": "Elementy znajdujące się w koszu od dłuższego czasu zostaną automatycznie usunięte." + }, + "passwordPrompt": { + "message": "Potwierdź hasłem głównym" + }, + "passwordConfirmation": { + "message": "Potwierdź hasło główne" + }, + "passwordConfirmationDesc": { + "message": "Ta operacja jest chroniona. Aby kontynuować, wpisz ponownie hasło główne." + }, + "reinviteSelected": { + "message": "Wyślij ponownie zaproszenia" + }, + "noSelectedUsersApplicable": { + "message": "Ta akcja nie dotyczy żadnych zaznaczonych użytkowników." + }, + "removeUsersWarning": { + "message": "Czy na pewno chcesz usunąć następujących użytkowników? Proces może potrwać kilka sekund i nie może zostać przerwany lub anulowany." + }, + "theme": { + "message": "Motyw" + }, + "themeDesc": { + "message": "Wybierz motyw dla sejfu internetowego." + }, + "themeSystem": { + "message": "Użyj motywu systemowego" + }, + "themeDark": { + "message": "Ciemny" + }, + "themeLight": { + "message": "Jasny" + }, + "confirmSelected": { + "message": "Potwierdź zaznaczone" + }, + "bulkConfirmStatus": { + "message": "Status akcji zbiorczej" + }, + "bulkConfirmMessage": { + "message": "Potwierdzono." + }, + "bulkReinviteMessage": { + "message": "Zaproszony ponownie." + }, + "bulkRemovedMessage": { + "message": "Usunięto" + }, + "bulkFilteredMessage": { + "message": "Wykluczono, nie dotyczy tej akcji." + }, + "fingerprint": { + "message": "Unikalny identyfikator konta" + }, + "removeUsers": { + "message": "Usuń użytkowników" + }, + "error": { + "message": "Błąd" + }, + "resetPasswordManageUsers": { + "message": "Zasada \"Zarządzaj użytkownikami\" musi być włączona wraz z uprawnieniem \"Zarządzaj resetowaniem hasła\"" + }, + "setupProvider": { + "message": "Ustawienia dostawcy" + }, + "setupProviderLoginDesc": { + "message": "Zostałeś zaproszony do konfiguracji nowego dostawcy. Aby kontynuować, zaloguj się lub utwórz nowe konto Bitwarden." + }, + "setupProviderDesc": { + "message": "Wpisz dane, aby zakończyć konfigurację dostawcy. W razie pytań skontaktuj się z działem obsługi klienta." + }, + "providerName": { + "message": "Nazwa dostawcy" + }, + "providerSetup": { + "message": "Dostawca został skonfigurowany." + }, + "clients": { + "message": "Klienci" + }, + "providerAdmin": { + "message": "Administrator dostawcy" + }, + "providerAdminDesc": { + "message": "Użytkownik z najwyższym uprawnieniem, który może zarządzać wszystkimi ustawieniami dostawcy oraz uzyskiwać dostęp do organizacji klientów i zarządzać nimi." + }, + "serviceUser": { + "message": "Serwisant" + }, + "serviceUserDesc": { + "message": "Serwisant może uzyskać dostęp do wszystkich klientów organizacji i nimi zarządzać." + }, + "providerInviteUserDesc": { + "message": "Zaproś nowego użytkownika do Twojego dostawcy poprzez wpisanie poniżej jego adresu e-mail. Jeśli nie posiada on jeszcze konta Bitwarden, zostanie poproszony o jego utworzenie." + }, + "joinProvider": { + "message": "Dołącz do dostawcy" + }, + "joinProviderDesc": { + "message": "Zostałeś zaproszony do dołączenia do poniższego dostawcy. Aby zaakceptować zaproszenie, musisz zalogować się lub utworzyć nowe konto Bitwarden." + }, + "providerInviteAcceptFailed": { + "message": "Nie można zaakceptować zaproszenia. Poproś administratora o wysłanie nowego zaproszenia." + }, + "providerInviteAcceptedDesc": { + "message": "Dostęp do tego dostawcy otrzymasz po potwierdzeniu członkostwa przez administratora. Dostaniesz wtedy wiadomość e-mail." + }, + "providerUsersNeedConfirmed": { + "message": "Posiadasz użytkowników, którzy zaakceptowali zaproszenie, ale muszą jeszcze zostać potwierdzeni. Użytkownicy nie będą posiadali dostępu do dostawcy, dopóki nie zostaną potwierdzeni." + }, + "provider": { + "message": "Dostawca" + }, + "newClientOrganization": { + "message": "Nowa organizacja klienta" + }, + "newClientOrganizationDesc": { + "message": "Utwórz nową organizację klienta, która będzie powiązana z Tobą jako dostawcą. Będziesz miał dostęp do tej organizacji i będziesz mógł nią zarządzać." + }, + "addExistingOrganization": { + "message": "Dodaj obecną organizację" + }, + "myProvider": { + "message": "Mój dostawca" + }, + "addOrganizationConfirmation": { + "message": "Czy na pewno chcesz dodać $ORGANIZATION$ jako organizację klienta do dostawcy $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organizacja została dodana do dostawcy" + }, + "accessingUsingProvider": { + "message": "Dostęp do organizacji za pomocą dostawcy $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Dostawca jest wyłączony." + }, + "providerUpdated": { + "message": "Dostawca został zaktualizowany" + }, + "yourProviderIs": { + "message": "Twój dostawca to $PROVIDER$. Posiada on uprawnienia administracyjne i rozliczeniowe dla Twojej organizacji.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "Organizacja $ORGANIZATION$ została odłączona od Twojego dostawcy.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Czy na pewno chcesz odłączyć tę organizację? Organizacja będzie nadal istnieć, ale nie będzie już zarządzana przez dostawcę." + }, + "add": { + "message": "Dodaj" + }, + "updatedMasterPassword": { + "message": "Hasło główne zostało zaktualizowane" + }, + "updateMasterPassword": { + "message": "Zaktualizuj hasło główne" + }, + "updateMasterPasswordWarning": { + "message": "Hasło główne zostało zmienione przez administratora Twojej organizacji. Musisz je zaktualizować, aby uzyskać dostęp do sejfu. Ta czynność spowoduje wylogowanie z bieżącej sesji, przez co konieczne będzie ponowne zalogowanie się. Aktywne sesje na innych urządzeniach mogą pozostać aktywne przez maksymalnie godzinę." + }, + "masterPasswordInvalidWarning": { + "message": "Hasło główne nie spełnia wymagań zasad organizacji. Aby dołączyć do organizacji, musisz zaktualizować je. Ta czynność spowoduje wylogowanie z bieżącej sesji, przez co konieczne będzie ponowne zalogowanie się. Aktywne sesje na innych urządzeniach mogą pozostać aktywne przez maksymalnie godzinę." + }, + "maximumVaultTimeout": { + "message": "Blokowanie sejfu" + }, + "maximumVaultTimeoutDesc": { + "message": "Ustaw maksymalny czas blokowania sejfu dla wszystkich użytkowników." + }, + "maximumVaultTimeoutLabel": { + "message": "Maksymalny czas blokowania sejfu" + }, + "invalidMaximumVaultTimeout": { + "message": "Maksymalny czas blokowania sejfu jest nieprawidłowy." + }, + "hours": { + "message": "Godziny" + }, + "minutes": { + "message": "Minuty" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Zasady organizacji mają wpływ czas blokowania sejfu. Maksymalny dozwolony czas wynosi $HOURS$ godz. i $MINUTES$ min.", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Niestandardowy czas blokowania sejfu" + }, + "vaultTimeoutToLarge": { + "message": "Czas blokowania sejfu przekracza limit określony przez organizację." + }, + "disablePersonalVaultExport": { + "message": "Wyłącz eksportowanie osobistego sejfu" + }, + "disablePersonalVaultExportDesc": { + "message": "Zabrania użytkownikom eksportowania ich prywatnych danych sejfu." + }, + "vaultExportDisabled": { + "message": "Eksportowanie sejfu zostało wyłączone" + }, + "personalVaultExportPolicyInEffect": { + "message": "Co najmniej jedna zasada organizacji uniemożliwia wyeksportowanie Twojego sejfu." + }, + "selectType": { + "message": "Wybierz rodzaj logowania jednokrotnego SSO" + }, + "type": { + "message": "Rodzaj" + }, + "openIdConnectConfig": { + "message": "Konfiguracja połączenia OpenID" + }, + "samlSpConfig": { + "message": "Konfiguracja dostawcy usługi SAML" + }, + "samlIdpConfig": { + "message": "Konfiguracja dostawcy tożsamości SAML" + }, + "callbackPath": { + "message": "Ścieżka wywołania zwrotnego" + }, + "signedOutCallbackPath": { + "message": "Ścieżka wywołania zwrotnego wylogowania" + }, + "authority": { + "message": "Dostawca tożsamości" + }, + "clientId": { + "message": "Identyfikator klienta" + }, + "clientSecret": { + "message": "Sekret" + }, + "metadataAddress": { + "message": "Adres metadanych" + }, + "oidcRedirectBehavior": { + "message": "Zachowanie przekierowania OIDC" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Uzyskaj elementy Claim od punktu końcowego informacji o użytkowniku" + }, + "additionalScopes": { + "message": "Dodatkowe / niestandardowe zakresy (oddzielone przecinkami)" + }, + "additionalUserIdClaimTypes": { + "message": "Dodatkowe / niestandardowe elementy Claim identyfikatora użytkownika (oddzielone przecinkami)" + }, + "additionalEmailClaimTypes": { + "message": "Dodatkowe / niestandardowe elementy Claim adresu e-mail (oddzielone przecinkami)" + }, + "additionalNameClaimTypes": { + "message": "Dodatkowe / niestandardowe elementy Claim nazwy (oddzielone przecinkami)" + }, + "acrValues": { + "message": "Żądane wartości referencyjne klasy kontekstu uwierzytelniania (acr_values)" + }, + "expectedReturnAcrValue": { + "message": "Oczekiwano wartości \"acr\" elementu Claim w odpowiedzi (weryfikacja acr)" + }, + "spEntityId": { + "message": "Identyfikator jednostki SP" + }, + "spMetadataUrl": { + "message": "Adres URL metadanych SAML 2.0" + }, + "spAcsUrl": { + "message": "Adres URL usługi Assertion Consumer Service (ACS)" + }, + "spNameIdFormat": { + "message": "Format identyfikatora nazwy" + }, + "spOutboundSigningAlgorithm": { + "message": "Algorytm podpisu wychodzącego" + }, + "spSigningBehavior": { + "message": "Zachowanie przy podpisywaniu" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimalny algorytm podpisu przychodzącego" + }, + "spWantAssertionsSigned": { + "message": "Chcę podpisać asercję" + }, + "spValidateCertificates": { + "message": "Zweryfikuj certyfikaty" + }, + "idpEntityId": { + "message": "Identyfikator jednostki" + }, + "idpBindingType": { + "message": "Typ powiązania" + }, + "idpSingleSignOnServiceUrl": { + "message": "Adres URL logowania jednokrotnego" + }, + "idpSingleLogoutServiceUrl": { + "message": "Adres URL wylogowania jednokrotnego" + }, + "idpX509PublicCert": { + "message": "Certyfikat publiczny X509" + }, + "idpOutboundSigningAlgorithm": { + "message": "Algorytm podpisu wychodzącego" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Zezwalaj na niezamówioną odpowiedź uwierzytelniania" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Zezwalaj na wychodzące żądania wylogowania" + }, + "idpSignAuthenticationRequests": { + "message": "Podpisz żądanie autoryzacji" + }, + "ssoSettingsSaved": { + "message": "Konfiguracja logowania jednokrotnego została zapisana." + }, + "sponsoredFamilies": { + "message": "Darmowy plan rodzinny" + }, + "sponsoredFamiliesEligible": { + "message": "Ty i Twoja rodzina kwalifikujecie się do darmowego planu rodzinnego. Wykorzystaj swój osobisty adres e-mail, aby zabezpieczyć swoje dane nawet wtedy, gdy nie jesteś w pracy." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Zrealizuj swój darmowy plan rodzinny, aby zabezpieczyć swoje dane nawet wtedy, gdy nie jesteś w pracy." + }, + "sponsoredFamiliesInclude": { + "message": "Plan rodzinny zawiera" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Konto Premium dla maksymalnie 6 użytkowników" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Udostępnione kolekcje dla sekretów rodziny" + }, + "badToken": { + "message": "Link nie jest już ważny. Poproś sponsora o ponowne wysłanie oferty." + }, + "reclaimedFreePlan": { + "message": "Darmowy plan został odzyskany" + }, + "redeem": { + "message": "Zrealizuj" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Wybierz organizację, którą chcesz sponsorować" + }, + "familiesSponsoringOrgSelect": { + "message": "Jaką darmową ofertę planu rodzinnego chcesz zrealizować?" + }, + "sponsoredFamiliesEmail": { + "message": "Wpisz osobisty adres e-mail, aby uzyskać plan rodzinny" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Jeśli opuścisz lub zostaniesz usunięty z organizacji sponsorującej, Twój plan rodzinny wygaśnie z końcem okresu rozliczeniowego." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Zaakceptuj ofertę dla obecnej organizacji lub utwórz nową organizację rodzinną." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Otrzymałeś ofertę darmowego planu rodzinnego. Aby kontynuować, zaloguj się na konto, które otrzymało ofertę." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Nie można zaakceptować oferty. Wyślij ponownie ofertę z konta i spróbuj ponownie." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Nie można zaakceptować oferty. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Zaakceptuj darmowy plan rodzinny" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Oferta rodzinna została zrealizowana" + }, + "redeemed": { + "message": "Oferta została zrealizowana" + }, + "redeemedAccount": { + "message": "Konto zostało zrealizowane" + }, + "revokeAccount": { + "message": "Unieważnij konto $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Wyślij ponownie wiadomość o sponsoringu do użytkownika $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Darmowy plan rodzinny" + }, + "redeemNow": { + "message": "Zrealizuj teraz" + }, + "recipient": { + "message": "Odbiorca" + }, + "removeSponsorship": { + "message": "Usuń sponsoring" + }, + "removeSponsorshipConfirmation": { + "message": "Po usunięciu sponsoringu, będziesz odpowiedzialny za subskrypcję i powiązane faktury. Czy na pewno chcesz kontynuować?" + }, + "sponsorshipCreated": { + "message": "Sponsoring został utworzony" + }, + "revoke": { + "message": "Unieważnij" + }, + "emailSent": { + "message": "Wiadomość została wysłana" + }, + "revokeSponsorshipConfirmation": { + "message": "Po usunięciu konta, właściciel organizacji rodzinnej będzie odpowiedzialny za subskrypcję i powiązane faktury. Czy na pewno chcesz kontynuować?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsoring został usunięty" + }, + "ssoKeyConnectorUnavailable": { + "message": "Nie można nawiązać połączenia z serwerem Key Connector. Spróbuj ponownie później." + }, + "keyConnectorUrl": { + "message": "Adres URL serwera Key Connector" + }, + "sendVerificationCode": { + "message": "Wyślij kod weryfikacyjny na adres e-mail" + }, + "sendCode": { + "message": "Wyślij kod" + }, + "codeSent": { + "message": "Kod został wysłany" + }, + "verificationCode": { + "message": "Kod weryfikacyjny" + }, + "confirmIdentity": { + "message": "Potwierdź swoją tożsamość, aby kontynuować." + }, + "verificationCodeRequired": { + "message": "Kod weryfikacyjny jest wymagany." + }, + "invalidVerificationCode": { + "message": "Kod weryfikacyjny jest nieprawidłowy" + }, + "convertOrganizationEncryptionDesc": { + "message": "Organizacja $ORGANIZATION$ używa jednokrotnego logowania SSO z własnym serwerem kluczy. Użytkownicy nie muszą logować się za pomocą hasła głównego.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Opuść organizację" + }, + "removeMasterPassword": { + "message": "Usuń hasło główne" + }, + "removedMasterPassword": { + "message": "Hasło główne zostało usunięte." + }, + "allowSso": { + "message": "Zezwalaj na logowanie jednokrotne SSO" + }, + "allowSsoDesc": { + "message": "Użytkownicy będą mogli uwierzytelnić się za pomocą danych logowania dostawcy tożsamości." + }, + "ssoPolicyHelpStart": { + "message": "Włącz", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "zasadę logowania jednokrotnego SSO", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": ", aby wymagać od wszystkich użytkowników logowania jednokrotnego SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "Zasady logowania jednokrotnego SSO i pojedynczej organizacji muszą być włączone, aby skonfigurować serwer Key Connector." + }, + "memberDecryptionOption": { + "message": "Opcje odszyfrowania użytkownika" + }, + "memberDecryptionPassDesc": { + "message": "Po uwierzytelnieniu użytkownicy odszyfrują dane sejfu za pomocą hasła głównego." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Połącz logowanie jednokrotne SSO z odszyfrowaniem za pomocą własnego serwera kluczy. Użytkownicy nie będą musieli używać hasła głównego do odszyfrowania sejfu. Aby uzyskać pomoc, skontaktuj się z działem obsługi klienta Bitwarden." + }, + "keyConnectorPolicyRestriction": { + "message": "Logowanie jednokrotne SSO z odszyfrowaniem za pomocą serwera Key Connector jest włączone. Ta zasada dotyczy tylko właścicieli i administratorów." + }, + "enabledSso": { + "message": "Logowanie jednokrotne SSO zostało włączone" + }, + "disabledSso": { + "message": "Logowanie jednokrotne SSO zostało wyłączone" + }, + "enabledKeyConnector": { + "message": "Serwer Key Connector został włączony" + }, + "disabledKeyConnector": { + "message": "Serwer Key Connector został wyłączony" + }, + "keyConnectorWarning": { + "message": "Jeśli użytkownicy zaczną używać serwera Key Connector, organizacja nie będzie mogła powrócić do odszyfrowywania za pomocą hasła głównego. Kontynuuj tylko wtedy, kiedy pewnie wdrażasz i zarządzasz serwerem kluczy." + }, + "migratedKeyConnector": { + "message": "Przeniesiony do serwera Key Connector" + }, + "paymentSponsored": { + "message": "Dodaj metodę płatności, aby powiązać ją z organizacją. Opłata zostanie pobrana dopiero po wybraniu dodatkowych funkcji lub wygaśnięciu oferty sponsoringu." + }, + "orgCreatedSponsorshipInvalid": { + "message": "Oferta sponsoringu wygasła. Możesz usunąć utworzoną organizację, aby uniknąć opłaty na koniec 7-dniowego okresu próbnego. Jeśli chcesz zachować organizację i przyjąć odpowiedzialność za rozliczenia, zamknij ten monit." + }, + "newFamiliesOrganization": { + "message": "Nowa organizacja rodzinna" + }, + "acceptOffer": { + "message": "Zaakceptuj ofertę" + }, + "sponsoringOrg": { + "message": "Organizacja sponsorująca" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Połączenie z serwerem Key Connector zostało nawiązane." + }, + "keyConnectorTestFail": { + "message": "Nie można nawiązać połączenia z serwerem Key Connector. Sprawdź adres URL." + }, + "sponsorshipTokenHasExpired": { + "message": "Oferta sponsoringu wygasła." + }, + "freeWithSponsorship": { + "message": "DARMOWY ze sponsoringiem" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ pól powyżej wymaga Twojej uwagi.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 pole powyżej wymaga Twojej uwagi." + }, + "fieldRequiredError": { + "message": "Pole $FIELDNAME$ jest wymagane.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "wymagane" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Wymagane, jeśli identyfikator podmiotu nie jest adres URL." + }, + "openIdOptionalCustomizations": { + "message": "Opcjonalne dostosowania" + }, + "openIdAuthorityRequired": { + "message": "Wymagane, jeśli organ jest nieprawidłowy." + }, + "separateMultipleWithComma": { + "message": "Oddziel je przecinkami." + }, + "sessionTimeout": { + "message": "Twoja sesja wygasła. Zaloguj się ponownie." + }, + "exportingPersonalVaultTitle": { + "message": "Eksportowanie osobistego sejfu" + }, + "exportingOrganizationVaultTitle": { + "message": "Eksportowanie sejfu organizacji" + }, + "exportingPersonalVaultDescription": { + "message": "Tylko osobiste elementy sejfu powiązane z adresem $EMAIL$ zostaną wyeksportowane. Elementy sejfu należące do organizacji nie będą uwzględnione.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Tylko sejf organizacji powiązany z organizacją $ORGANIZATION$ zostanie wyeksportowany. Osobiste elementy sejfu i elementy innych organizacji nie będą uwzględnione.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Powrót do raportów" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "Co chcesz wygenerować?" + }, + "passwordType": { + "message": "Rodzaj hasła" + }, + "regenerateUsername": { + "message": "Wygeneruj ponownie nazwę użytkownika" + }, + "generateUsername": { + "message": "Wygeneruj nazwę użytkownika" + }, + "usernameType": { + "message": "Rodzaj nazwy użytkownika" + }, + "plusAddressedEmail": { + "message": "Adres e-mail z plusem", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Użyj możliwości dodawania aliasów u swojego dostawcy poczty e-mail." + }, + "catchallEmail": { + "message": "Adres catch-all" + }, + "catchallEmailDesc": { + "message": "Użyj skonfigurowanej skrzynki catch-all w swojej domenie." + }, + "random": { + "message": "Losowo" + }, + "randomWord": { + "message": "Losowe słowo" + }, + "service": { + "message": "Usługa" + } +} diff --git a/apps/web/src/locales/pt_BR/messages.json b/apps/web/src/locales/pt_BR/messages.json new file mode 100644 index 0000000000..f97367afa2 --- /dev/null +++ b/apps/web/src/locales/pt_BR/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "Cofre Web do(a) $APP_NAME$", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Que tipo de item é este?" + }, + "name": { + "message": "Nome" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Novo URI" + }, + "username": { + "message": "Nome de Usuário" + }, + "password": { + "message": "Senha" + }, + "newPassword": { + "message": "Nova Senha" + }, + "passphrase": { + "message": "Frase Secreta" + }, + "notes": { + "message": "Notas" + }, + "customFields": { + "message": "Campos Personalizados" + }, + "cardholderName": { + "message": "Titular do Cartão" + }, + "number": { + "message": "Número" + }, + "brand": { + "message": "Bandeira" + }, + "expiration": { + "message": "Vencimento" + }, + "securityCode": { + "message": "Código de Segurança (CVV)" + }, + "identityName": { + "message": "Nome de Identidade" + }, + "company": { + "message": "Empresa" + }, + "ssn": { + "message": "Cadastro de Pessoas Físicas (CPF)" + }, + "passportNumber": { + "message": "Número do Passaporte" + }, + "licenseNumber": { + "message": "Número da Licença" + }, + "email": { + "message": "E-mail" + }, + "phone": { + "message": "Telefone" + }, + "january": { + "message": "Janeiro" + }, + "february": { + "message": "Fevereiro" + }, + "march": { + "message": "Março" + }, + "april": { + "message": "Abril" + }, + "may": { + "message": "Maio" + }, + "june": { + "message": "Junho" + }, + "july": { + "message": "Julho" + }, + "august": { + "message": "Agosto" + }, + "september": { + "message": "Setembro" + }, + "october": { + "message": "Outubro" + }, + "november": { + "message": "Novembro" + }, + "december": { + "message": "Dezembro" + }, + "title": { + "message": "Título" + }, + "mr": { + "message": "Sr" + }, + "mrs": { + "message": "Sra" + }, + "ms": { + "message": "Sra" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Mês de Vencimento" + }, + "expirationYear": { + "message": "Ano de Vencimento" + }, + "authenticatorKeyTotp": { + "message": "Chave de Autenticação (TOTP)" + }, + "folder": { + "message": "Pasta" + }, + "newCustomField": { + "message": "Novo Campo Personalizado" + }, + "value": { + "message": "Valor" + }, + "dragToSort": { + "message": "Arrastar para ordenar" + }, + "cfTypeText": { + "message": "Texto" + }, + "cfTypeHidden": { + "message": "Ocultado" + }, + "cfTypeBoolean": { + "message": "Booleano" + }, + "cfTypeLinked": { + "message": "Vinculado", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Remover" + }, + "unassigned": { + "message": "Não atribuído" + }, + "noneFolder": { + "message": "Nenhuma Pasta", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Adicionar Pasta" + }, + "editFolder": { + "message": "Editar Pasta" + }, + "baseDomain": { + "message": "Domínio de base", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Servidor", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exato" + }, + "startsWith": { + "message": "Começa com" + }, + "regEx": { + "message": "Expressão regular", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Detecção de Correspondência", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Detecção de correspondência padrão", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Nunca" + }, + "toggleVisibility": { + "message": "Alternar Visibilidade" + }, + "toggleCollapse": { + "message": "Alternar Colapso", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Gerar Senha" + }, + "checkPassword": { + "message": "Verifique se a senha foi exposta." + }, + "passwordExposed": { + "message": "Esta senha foi exposta $VALUE$ vez(es) em violações de dados. Você deve alterá-la.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Esta senha não foi encontrada em violações de dados conhecidos. Deve ser seguro de usar." + }, + "save": { + "message": "Salvar" + }, + "cancel": { + "message": "Cancelar" + }, + "canceled": { + "message": "Cancelado" + }, + "close": { + "message": "Fechar" + }, + "delete": { + "message": "Excluir" + }, + "favorite": { + "message": "Favorito" + }, + "unfavorite": { + "message": "Desfavoritar" + }, + "edit": { + "message": "Editar" + }, + "searchCollection": { + "message": "Pesquisar Coleção" + }, + "searchFolder": { + "message": "Pesquisar Pasta" + }, + "searchFavorites": { + "message": "Pesquisar Favoritos" + }, + "searchType": { + "message": "Pesquisar Tipo", + "description": "Search item type" + }, + "searchVault": { + "message": "Pesquisar no Cofre" + }, + "allItems": { + "message": "Todos os Itens" + }, + "favorites": { + "message": "Favoritos" + }, + "types": { + "message": "Tipos" + }, + "typeLogin": { + "message": "Credencial" + }, + "typeCard": { + "message": "Cartão" + }, + "typeIdentity": { + "message": "Identidade" + }, + "typeSecureNote": { + "message": "Nota Segura" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cartões" + }, + "typeIdentityPlural": { + "message": "Identidades" + }, + "typeSecureNotePlural": { + "message": "Notas Seguras" + }, + "folders": { + "message": "Pastas" + }, + "collections": { + "message": "Coleções" + }, + "firstName": { + "message": "Primeiro Nome" + }, + "middleName": { + "message": "Nome do Meio" + }, + "lastName": { + "message": "Sobrenome" + }, + "fullName": { + "message": "Nome Completo" + }, + "address1": { + "message": "Endereço 1" + }, + "address2": { + "message": "Endereço 2" + }, + "address3": { + "message": "Endereço 3" + }, + "cityTown": { + "message": "Cidade / Localidade" + }, + "stateProvince": { + "message": "Estado" + }, + "zipPostalCode": { + "message": "CEP / Código Postal" + }, + "country": { + "message": "País" + }, + "shared": { + "message": "Compartilhado" + }, + "attachments": { + "message": "Anexos" + }, + "select": { + "message": "Selecionar" + }, + "addItem": { + "message": "Adicionar Item" + }, + "editItem": { + "message": "Editar Item" + }, + "viewItem": { + "message": "Visualizar Item" + }, + "ex": { + "message": "ex.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Outros" + }, + "share": { + "message": "Compartilhar" + }, + "moveToOrganization": { + "message": "Mover para a Organização" + }, + "valueCopied": { + "message": "$VALUE$ copiado(a)", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Copiar Valor", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Copiar Senha", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Copiar Nome de Usuário", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Copiar Número", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copiar Código de Segurança", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Copiar URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Meu Cofre" + }, + "vault": { + "message": "Cofre" + }, + "moveSelectedToOrg": { + "message": "Mover Selecionados para a organização" + }, + "deleteSelected": { + "message": "Excluir Selecionados" + }, + "moveSelected": { + "message": "Mover Selecionados" + }, + "selectAll": { + "message": "Selecionar Todos" + }, + "unselectAll": { + "message": "Desmarcar Todos" + }, + "launch": { + "message": "Abrir" + }, + "newAttachment": { + "message": "Adicionar Novo Anexo" + }, + "deletedAttachment": { + "message": "Anexo excluído" + }, + "deleteAttachmentConfirmation": { + "message": "Tem certeza que deseja excluir esse anexo?" + }, + "attachmentSaved": { + "message": "O anexo foi salvo." + }, + "file": { + "message": "Arquivo" + }, + "selectFile": { + "message": "Selecione um arquivo." + }, + "maxFileSize": { + "message": "O tamanho máximo do arquivo é de 500 MB." + }, + "updateKey": { + "message": "Você não pode usar este recurso, até você atualizar sua chave de criptografia." + }, + "addedItem": { + "message": "Item adicionado" + }, + "editedItem": { + "message": "Item editado" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ movido para $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Itens selecionados movidos para $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Excluir Item" + }, + "deleteFolder": { + "message": "Excluir Pasta" + }, + "deleteAttachment": { + "message": "Excluir Anexo" + }, + "deleteItemConfirmation": { + "message": "Você tem certeza que deseja enviar este item para a lixeira?" + }, + "deletedItem": { + "message": "Item enviado para a lixeira" + }, + "deletedItems": { + "message": "Itens enviados para a lixeira" + }, + "movedItems": { + "message": "Itens movidos" + }, + "overwritePasswordConfirmation": { + "message": "Você tem certeza que deseja substituir a senha atual?" + }, + "editedFolder": { + "message": "Pasta editada" + }, + "addedFolder": { + "message": "Pasta adicionada" + }, + "deleteFolderConfirmation": { + "message": "Você tem certeza que deseja excluir esta pasta?" + }, + "deletedFolder": { + "message": "Pasta excluída" + }, + "loggedOut": { + "message": "Sessão encerrada" + }, + "loginExpired": { + "message": "A sua sessão expirou." + }, + "logOutConfirmation": { + "message": "Você tem certeza que deseja sair?" + }, + "logOut": { + "message": "Encerrar Sessão" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Sim" + }, + "no": { + "message": "Não" + }, + "loginOrCreateNewAccount": { + "message": "Inicie a sessão ou crie uma nova conta para acessar seu cofre seguro." + }, + "createAccount": { + "message": "Criar Conta" + }, + "logIn": { + "message": "Iniciar Sessão" + }, + "submit": { + "message": "Enviar" + }, + "emailAddressDesc": { + "message": "Você usará o seu endereço de e-mail para a iniciar sessão." + }, + "yourName": { + "message": "Seu Nome" + }, + "yourNameDesc": { + "message": "Como devemos chamá-lo?" + }, + "masterPass": { + "message": "Senha Mestra" + }, + "masterPassDesc": { + "message": "A senha mestra é a senha que você usa para acessar o seu cofre. É muito importante que você não esqueça sua senha mestra. Não há maneira de recuperar a senha caso você se esqueça." + }, + "masterPassHintDesc": { + "message": "Uma dica de senha mestra pode ajudá-lo(a) a lembrar a senha caso você esqueça." + }, + "reTypeMasterPass": { + "message": "Digite Novamente a Senha Mestra" + }, + "masterPassHint": { + "message": "Dica da Senha Mestra (opcional)" + }, + "masterPassHintLabel": { + "message": "Dica da Senha Mestra" + }, + "settings": { + "message": "Configurações" + }, + "passwordHint": { + "message": "Dica da Senha" + }, + "enterEmailToGetHint": { + "message": "Insira o seu endereço de e-mail para receber a dica da sua senha mestra." + }, + "getMasterPasswordHint": { + "message": "Obter dica da senha mestra" + }, + "emailRequired": { + "message": "O endereço de e-mail é obrigatório." + }, + "invalidEmail": { + "message": "Endereço de e-mail inválido." + }, + "masterPassRequired": { + "message": "A senha mestra é obrigatória." + }, + "masterPassLength": { + "message": "A senha mestra deve ter pelo menos 8 caracteres." + }, + "masterPassDoesntMatch": { + "message": "A confirmação da senha mestra não corresponde." + }, + "newAccountCreated": { + "message": "A sua nova conta foi criada! Agora você pode iniciar a sessão." + }, + "masterPassSent": { + "message": "Enviamos um e-mail com a dica da sua senha mestra." + }, + "unexpectedError": { + "message": "Ocorreu um erro inesperado." + }, + "emailAddress": { + "message": "Endereço de E-mail" + }, + "yourVaultIsLocked": { + "message": "O seu cofre está bloqueado. Verifique a sua senha mestra para continuar." + }, + "unlock": { + "message": "Desbloquear" + }, + "loggedInAsEmailOn": { + "message": "Entrou como $EMAIL$ em $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Senha mestra inválida" + }, + "lockNow": { + "message": "Bloquear Agora" + }, + "noItemsInList": { + "message": "Não há itens para listar." + }, + "noCollectionsInList": { + "message": "Não há coleções para listar." + }, + "noGroupsInList": { + "message": "Não há grupos para listar." + }, + "noUsersInList": { + "message": "Não há usuários para listar." + }, + "noEventsInList": { + "message": "Não há eventos para listar." + }, + "newOrganization": { + "message": "Nova Organização" + }, + "noOrganizationsList": { + "message": "Você não pertence a nenhuma organização. Organizações permitem-lhe compartilhar itens em segurança com outros usuários." + }, + "versionNumber": { + "message": "Versão $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Insira o código de verificação de 6 dígitos do seu aplicativo de autenticação." + }, + "enterVerificationCodeEmail": { + "message": "Insira o código de verificação de 6 dígitos que foi enviado por e-mail para $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "E-mail de verificação enviado para $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Lembrar de mim" + }, + "sendVerificationCodeEmailAgain": { + "message": "Enviar código de verificação para o e-mail novamente" + }, + "useAnotherTwoStepMethod": { + "message": "Utilizar outro método de verificação em duas etapas" + }, + "insertYubiKey": { + "message": "Insira a sua YubiKey na porta USB do seu computador, e depois toque no botão da mesma." + }, + "insertU2f": { + "message": "Insira a sua chave de segurança na porta USB do seu computador. Se ele tiver um botão, toque nele." + }, + "loginUnavailable": { + "message": "Sessão Indisponível" + }, + "noTwoStepProviders": { + "message": "Esta conta tem a autenticação em duas etapas ativada. No entanto, nenhum dos provedores de autenticação em duas etapas configurados são suportados por este navegador web." + }, + "noTwoStepProviders2": { + "message": "Por favor utilize um navegador web suportado (tal como o Chrome) e/ou inclua provedores adicionais que são melhor suportados entre navegadores web (tal como um aplicativo de autenticação)." + }, + "twoStepOptions": { + "message": "Opções de Login em Duas Etapas" + }, + "recoveryCodeDesc": { + "message": "Perdeu o acesso a todos os seus provedores de duas etapas? Utilize o seu código de recuperação para desativar todos os provedores de duas etapas da sua conta." + }, + "recoveryCodeTitle": { + "message": "Código de Recuperação" + }, + "authenticatorAppTitle": { + "message": "Aplicativo de Autenticação" + }, + "authenticatorAppDesc": { + "message": "Utilize um aplicativo de autenticação (tal como Authy ou Google Authenticator) para gerar códigos de verificação baseados no tempo.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "Chave de Segurança YubiKey OTP" + }, + "yubiKeyDesc": { + "message": "Utilize uma YubiKey para acessar a sua conta. Funciona com YubiKey 4, 4 Nano, 4C, e dispositivos NEO." + }, + "duoDesc": { + "message": "Verifique com o Duo Security utilizando o aplicativo Duo Mobile, SMS, chamada telefônica, ou chave de segurança U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verifique com o Duo Security utilizando o aplicativo Duo Mobile, SMS, chamada telefônica, ou chave de segurança U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Utilize qualquer chave de segurança ativada por FIDO U2F para acessar a sua conta." + }, + "u2fTitle": { + "message": "Chave de Segurança FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Utilize qualquer chave de segurança ativada por WebAuthn para acessar a sua conta." + }, + "webAuthnMigrated": { + "message": "(Migrado de FIDO)" + }, + "emailTitle": { + "message": "E-mail" + }, + "emailDesc": { + "message": "Os códigos de verificação vão ser enviados por e-mail para você." + }, + "continue": { + "message": "Continuar" + }, + "organization": { + "message": "Organização" + }, + "organizations": { + "message": "Organizações" + }, + "moveToOrgDesc": { + "message": "Escolha uma organização para a qual deseja mover este item. Mudar para uma organização transfere a propriedade do item para essa organização. Você não será mais o proprietário direto deste item depois que ele for movido." + }, + "moveManyToOrgDesc": { + "message": "Escolha uma organização para a qual deseja mover esses itens. Mudar para uma organização transfere a propriedade dos itens para essa organização. Você não será mais o proprietário direto desses itens depois que eles forem movidos." + }, + "collectionsDesc": { + "message": "Edite as coleções com as quais este item está sendo compartilhado. Somente usuários da organização com acesso a estas coleções poderão ver esse item." + }, + "deleteSelectedItemsDesc": { + "message": "Você selecionou $COUNT$ item(ns) para excluir. Tem certeza que deseja excluir todos estes itens?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Escolha uma pasta para a qual você deseja mover os $COUNT$ itens selecionados.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Você selecionou $COUNT$ item(ns). $MOVEABLE_COUNT$ item(ns) podem ser movidos para uma organização, mas, $NONMOVEABLE_COUNT$ não pode.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Código de verificação (TOTP)" + }, + "copyVerificationCode": { + "message": "Copiar código de verificação" + }, + "warning": { + "message": "Aviso" + }, + "confirmVaultExport": { + "message": "Confirmar Exportação de Cofre" + }, + "exportWarningDesc": { + "message": "Esta exportação contém os dados do seu cofre em um formato não criptografado. Você não deve armazenar ou enviar o arquivo exportado por canais inseguros (como e-mail). Exclua o arquivo imediatamente após terminar de usá-lo." + }, + "encExportKeyWarningDesc": { + "message": "Esta exportação criptografa seus dados usando a chave de criptografia da sua conta. Se você rotacionar a chave de criptografia da sua conta, você deve exportar novamente, já que você não será capaz de descriptografar este arquivo de exportação." + }, + "encExportAccountWarningDesc": { + "message": "Chaves de criptografia da conta são únicas para cada conta de usuário do Bitwarden, então você não pode importar uma exportação criptografada para uma conta diferente." + }, + "export": { + "message": "Exportar" + }, + "exportVault": { + "message": "Exportar cofre" + }, + "fileFormat": { + "message": "Formato do arquivo" + }, + "exportSuccess": { + "message": "Os dados do seu cofre foram exportados." + }, + "passwordGenerator": { + "message": "Gerador de senha" + }, + "minComplexityScore": { + "message": "Pontuação Mínima de Complexidade" + }, + "minNumbers": { + "message": "Mínimo de Números" + }, + "minSpecial": { + "message": "Mínimo Especial", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Evitar caracteres ambíguos" + }, + "regeneratePassword": { + "message": "Gerar nova senha" + }, + "length": { + "message": "Comprimento" + }, + "numWords": { + "message": "Número de palavras" + }, + "wordSeparator": { + "message": "Separador de palavra" + }, + "capitalize": { + "message": "Iniciais em Maiúsculas", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Incluir Número" + }, + "passwordHistory": { + "message": "Histórico de senha" + }, + "noPasswordsInList": { + "message": "Não existem senhas para listar." + }, + "clear": { + "message": "Limpar", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Conta atualizada" + }, + "changeEmail": { + "message": "Alterar e-mail" + }, + "changeEmailTwoFactorWarning": { + "message": "Prosseguir irá alterar o endereço de e-mail da sua conta. Isso não mudará o endereço de e-mail usado para autenticação de dois fatores. Você pode alterar esse endereço de e-mail nas configurações de Login em Duas Etapas." + }, + "newEmail": { + "message": "Novo e-mail" + }, + "code": { + "message": "Código" + }, + "changeEmailDesc": { + "message": "Enviamos um código de verificação por e-mail para $EMAIL$. Por favor, procure no seu e-mail por este código e insira-o abaixo para finalizar sua alteração de endereço de e-mail.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "O processo desconectará você da sessão atual, exigindo que você inicie a sessão novamente. As sessões ativas em outros dispositivos podem continuar ativas por até uma hora." + }, + "emailChanged": { + "message": "E-mail alterado" + }, + "logBackIn": { + "message": "Por favor, reinicie a sessão." + }, + "logBackInOthersToo": { + "message": "Por favor, reinicie a sessão. Se estiver usando outros aplicativos do Bitwarden, encerre a sessão e reinicie também." + }, + "changeMasterPassword": { + "message": "Alterar senha mestra" + }, + "masterPasswordChanged": { + "message": "Senha Mestra Alterada" + }, + "currentMasterPass": { + "message": "Senha Mestra Atual" + }, + "newMasterPass": { + "message": "Nova Senha Mestra" + }, + "confirmNewMasterPass": { + "message": "Confirme a Nova Senha Mestra" + }, + "encKeySettings": { + "message": "Configurações da Chave de Criptografia" + }, + "kdfAlgorithm": { + "message": "Algoritmo KDF" + }, + "kdfIterations": { + "message": "Iterações KDF" + }, + "kdfIterationsDesc": { + "message": "As iterações KDF mais altas podem ajudar a proteger a sua senha mestra de ser descoberta pela força bruta de um invasor. Recomendamos um valor de $VALUE$ ou mais.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Configurar as suas iterações KDF muito alta pode resultar em baixo desempenho ao iniciar sessão (e desbloquear) no Bitwarden em dispositivos com CPUs mais lentas. Recomendamos que você aumente o valor em incrementos de $INCREMENT$ e, em seguida, teste em todos os seus dispositivos.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Alterar KDF" + }, + "encKeySettingsChanged": { + "message": "As Configurações da Chave de Criptografia foram Alteradas" + }, + "dangerZone": { + "message": "Zona de Perigo" + }, + "dangerZoneDesc": { + "message": "Cuidado, essas ações não são reversíveis!" + }, + "deauthorizeSessions": { + "message": "Desautorizar Sessões" + }, + "deauthorizeSessionsDesc": { + "message": "Preocupado por ter iniciado a sessão em outro dispositivo? Prossiga abaixo para desautorizar todos os computadores e dispositivos que tenha usado. Esta medida de segurança é recomendada se usou um computador público ou guardou acidentalmente a sua senha num dispositivo que não lhe pertence. Esta ação também apagará todas as sessões anteriores registadas iniciadas com autenticação em duas etapas." + }, + "deauthorizeSessionsWarning": { + "message": "O processo também desconectará você da sua sessão atual, exigindo que você inicie a sessão novamente. Você também será solicitado a efetuar login em duas etapas novamente, se estiver ativado. Sessões ativas em outros dispositivos podem continuar ativas por até uma hora." + }, + "sessionsDeauthorized": { + "message": "Todas as sessões desautorizadas" + }, + "purgeVault": { + "message": "Limpar o cofre" + }, + "purgedOrganizationVault": { + "message": "Cofre da organização limpado." + }, + "vaultAccessedByProvider": { + "message": "Cofre acessado pelo provedor." + }, + "purgeVaultDesc": { + "message": "Continue abaixo para excluir todos os itens e pastas do seu cofre. Itens que pertencem a uma organização com a qual você compartilha não serão excluídos." + }, + "purgeOrgVaultDesc": { + "message": "Continue abaixo para excluir todos os itens no cofre da organização." + }, + "purgeVaultWarning": { + "message": "Limpando o seu cofre permanentemente. Não pode ser desfeito." + }, + "vaultPurged": { + "message": "O seu cofre foi limpo." + }, + "deleteAccount": { + "message": "Excluir a conta" + }, + "deleteAccountDesc": { + "message": "Prossiga abaixo para excluir a sua conta e todos os dados associados." + }, + "deleteAccountWarning": { + "message": "A exclusão de sua conta é permanente. Não pode ser desfeito." + }, + "accountDeleted": { + "message": "Conta excluída" + }, + "accountDeletedDesc": { + "message": "A sua conta foi fechada e todos os dados associados foram excluídos." + }, + "myAccount": { + "message": "Minha conta" + }, + "tools": { + "message": "Ferramentas" + }, + "importData": { + "message": "Importar dados" + }, + "importError": { + "message": "Erro de Importação" + }, + "importErrorDesc": { + "message": "Houve um problema com os dados que você tentou importar. Por favor, resolva os erros listados abaixo em seu arquivo de origem e tente novamente." + }, + "importSuccess": { + "message": "Os dados foram importados com sucesso para o seu cofre." + }, + "importWarning": { + "message": "Você está importando dados para $ORGANIZATION$. Seus dados podem ser compartilhados com membros desta organização. Você deseja continuar?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Os dados não estão formatados corretamente. Por favor, verifique o seu arquivo de importação e tente novamente." + }, + "importNothingError": { + "message": "Nada foi importado." + }, + "importEncKeyError": { + "message": "Erro ao descriptografar o arquivo exportado. Sua chave de criptografia não corresponde à chave de criptografia usada para exportar os dados." + }, + "selectFormat": { + "message": "Selecione o formato do arquivo de importação" + }, + "selectImportFile": { + "message": "Selecione o arquivo de importação" + }, + "orCopyPasteFileContents": { + "message": "ou copie/cole o conteúdo do arquivo de importação" + }, + "instructionsFor": { + "message": "$NAME$ instruções", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Opções" + }, + "optionsDesc": { + "message": "Personalize sua experiência no cofre web." + }, + "optionsUpdated": { + "message": "Opções atualizadas" + }, + "language": { + "message": "Idioma" + }, + "languageDesc": { + "message": "Altere o idioma usado pelo cofre web." + }, + "disableIcons": { + "message": "Desabilitar ícones dos sites" + }, + "disableIconsDesc": { + "message": "O ícone do site fornece um ícone reconhecível ao lado de cada credencial no seu cofre." + }, + "enableGravatars": { + "message": "Habilitar Gravatar", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use imagens de avatar carregadas do gravatar.com." + }, + "enableFullWidth": { + "message": "Habilitar Esquema de Largura Total", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Permitir que o cofre web expanda a largura total da janela do navegador." + }, + "default": { + "message": "Padrão" + }, + "domainRules": { + "message": "Regras de domínio" + }, + "domainRulesDesc": { + "message": "Se você tiver a mesma credencial em vários domínios de sites diferentes, poderá marcar o site como \"equivalente\". Domínios \"globais\" são aqueles já criados para você pelo Bitwarden." + }, + "globalEqDomains": { + "message": "Domínios equivalentes globais" + }, + "customEqDomains": { + "message": "Domínios equivalentes personalizados" + }, + "exclude": { + "message": "Excluir" + }, + "include": { + "message": "Incluir" + }, + "customize": { + "message": "Personalizar" + }, + "newCustomDomain": { + "message": "Novo domínio personalizado" + }, + "newCustomDomainDesc": { + "message": "Digite uma lista de domínios separados por vírgulas. Apenas domínios \"base\" são permitidos. Não insira subdomínios. Por exemplo, digite \"google.com.br\" em vez de \"www.google.com.br\". Você também pode digitar \"androidapp://package.name\" para associar um aplicativo Android a outros domínios de site." + }, + "customDomainX": { + "message": "Domínio Personalizado $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domínios atualizados" + }, + "twoStepLogin": { + "message": "Login em Duas Etapas" + }, + "twoStepLoginDesc": { + "message": "Proteja a sua conta exigindo uma etapa adicional ao iniciar sessão." + }, + "twoStepLoginOrganizationDesc": { + "message": "Exigir login em duas etapas para os usuários da organização, configurando provedores no nível da organização." + }, + "twoStepLoginRecoveryWarning": { + "message": "Ativar o login em duas etapas pode bloquear você permanentemente da sua conta no Bitwarden. Um código de recuperação permite que você acesse sua conta no caso de não poder mais usar seu provedor de login em duas etapas normalmente (por exemplo, você perde seu dispositivo). O suporte do Bitwarden não poderá ajudá-lo se você perder o acesso à sua conta. Recomendamos que você anote ou imprima o código de recuperação e mantenha-o em um local seguro." + }, + "viewRecoveryCode": { + "message": "Ver Código de Recuperação" + }, + "providers": { + "message": "Provedores", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Habilitar" + }, + "enabled": { + "message": "Habilitado" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Assinatura Premium" + }, + "premiumRequired": { + "message": "Requer Assinatura Premium" + }, + "premiumRequiredDesc": { + "message": "Uma conta premium é necessária para usar esse recurso." + }, + "youHavePremiumAccess": { + "message": "Você tem acesso premium" + }, + "alreadyPremiumFromOrg": { + "message": "Você já tem acesso às funcionalidades premium por causa de uma organização da qual é um membro." + }, + "manage": { + "message": "Gerenciar" + }, + "disable": { + "message": "Desabilitar" + }, + "twoStepLoginProviderEnabled": { + "message": "Este provedor de login em duas etapas está ativado em sua conta." + }, + "twoStepLoginAuthDesc": { + "message": "Insira a sua senha mestra para modificar as configurações de login em duas etapas." + }, + "twoStepAuthenticatorDesc": { + "message": "Siga estas etapas para configurar o login em duas etapas com um aplicativo autenticador:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Baixar um app autenticador de duas etapas" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Precisa de um aplicativo autenticador de duas etapas? Baixe um dos seguintes" + }, + "iosDevices": { + "message": "Dispositivos iOS" + }, + "androidDevices": { + "message": "Dispositivos Android" + }, + "windowsDevices": { + "message": "Dispositivos Windows" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Esses aplicativos são os recomendados, no entanto, outros aplicativos de autenticação também irão funcionar." + }, + "twoStepAuthenticatorScanCode": { + "message": "Escaneie este código QR com o seu aplicativo de duas etapas" + }, + "key": { + "message": "Chave" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Insira o código de verificação de 6 dígitos resultante do aplicativo" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Caso você precise adicioná-lo a outro dispositivo, abaixo está o código QR (ou chave) exigido pelo aplicativo autenticador." + }, + "twoStepDisableDesc": { + "message": "Tem certeza que deseja desativar este provedor de login em duas etapas?" + }, + "twoStepDisabled": { + "message": "Provedor de login em duas etapas desativado." + }, + "twoFactorYubikeyAdd": { + "message": "Adicionar um novo Yubikey à sua conta" + }, + "twoFactorYubikeyPlugIn": { + "message": "Conecte o YubiKey na porta USB do seu computador." + }, + "twoFactorYubikeySelectKey": { + "message": "Selecione o YubiKey no primeiro campo vazio abaixo." + }, + "twoFactorYubikeyTouchButton": { + "message": "Toque o botão do Yubikey." + }, + "twoFactorYubikeySaveForm": { + "message": "Salve o formulário." + }, + "twoFactorYubikeyWarning": { + "message": "Devido as limitações da plataforma, YubiKeys não podem ser usados em todos os aplicativos do Bitwarden. Você deve habilitar outro provedor de login em duas etapas, para que você possa acessar a sua conta quando YubiKeys não puderem ser usados. Plataformas suportadas:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Cofre Web, aplicativo de desktop, CLI e todas as extensões do navegador em um dispositivo com uma porta USB que pode aceitar o seu YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Aplicativos móveis em um dispositivo com capacidades de NFC ou uma porta USB que pode aceitar o seu YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "Chave U2F $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "Chave WebAuthn $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "Suporte a NFC" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Uma das minhas chaves suporta NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Se um dos seus YubiKeys oferece suporte a NFC (como um NEO YubiKey), você será solicitado em dispositivos móveis sempre que for detectada disponibilidade de NFC." + }, + "yubikeysUpdated": { + "message": "YubiKeys atualizado" + }, + "disableAllKeys": { + "message": "Desabilitar Todas as Chaves" + }, + "twoFactorDuoDesc": { + "message": "Insira as informações do aplicativo Bitwarden no painel do administrador do Duo." + }, + "twoFactorDuoIntegrationKey": { + "message": "Chave de Integração" + }, + "twoFactorDuoSecretKey": { + "message": "Chave Secreta" + }, + "twoFactorDuoApiHostname": { + "message": "Servidor API" + }, + "twoFactorEmailDesc": { + "message": "Siga estas etapas para configurar o login em duas etapas com e-mail:" + }, + "twoFactorEmailEnterEmail": { + "message": "Insira o e-mail que você deseja receber o códigos de verificação" + }, + "twoFactorEmailEnterCode": { + "message": "Insira o código de verificação de 6 dígitos que foi enviado pro seu e-mail" + }, + "sendEmail": { + "message": "Enviar E-mail" + }, + "twoFactorU2fAdd": { + "message": "Adicione uma chave de segurança FIDO U2F à sua conta" + }, + "removeU2fConfirmation": { + "message": "Tem certeza que deseja remover esta chave de segurança?" + }, + "twoFactorWebAuthnAdd": { + "message": "Adicione uma chave de segurança WebAuthn à sua conta" + }, + "readKey": { + "message": "Chave de Leitura" + }, + "keyCompromised": { + "message": "A chave está comprometida." + }, + "twoFactorU2fGiveName": { + "message": "Dê à chave de segurança um nome amigável para identificá-la." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Conecte a chave de segurança na porta USB do seu computador e clique no botão \"Ler Chave\"." + }, + "twoFactorU2fTouchButton": { + "message": "Se a chave de segurança tiver um botão, toque nele." + }, + "twoFactorU2fSaveForm": { + "message": "Salvar o formulário." + }, + "twoFactorU2fWarning": { + "message": "Devido as limitações da plataforma, o FIDO U2F não pode ser usado em todas os aplicativos do Bitwarden. Você deve habilitar outro provedor de login em duas etapas para poder acessar sua conta quando o FIDO U2F não puder ser usado. Plataformas Suportadas:" + }, + "twoFactorU2fSupportWeb": { + "message": "Cofre web e extensões de navegador em um desktop/laptop com um navegador habilitado para U2F (Chrome, Opera, Vivaldi ou Firefox com o FIDO U2F ativado)." + }, + "twoFactorU2fWaiting": { + "message": "Esperando que você toque no botão da sua chave de segurança" + }, + "twoFactorU2fClickSave": { + "message": "Clique no botão \"Salvar\" abaixo para ativar essa chave de segurança para o login em duas etapas." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Houve um problema ao ler a chave de segurança. Tente novamente." + }, + "twoFactorWebAuthnWarning": { + "message": "Devido às limitações da plataforma, o WebAuthn não pode ser usado em todos os aplicativos do Bitwarden. Você deve habilitar outro provedor de login em duas etapas, para que você possa acessar a sua conta quando o WebAuthn não puder ser usado. Plataformas suportadas:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Cofre web e extensões de navegador em um desktop/laptop com um navegador habilitado para WebAuthn (Chrome, Opera, Vivaldi ou Firefox com o FIDO U2F ativado)." + }, + "twoFactorRecoveryYourCode": { + "message": "Seu código de recuperação de login em duas etapas do Bitwarden" + }, + "twoFactorRecoveryNoCode": { + "message": "Você ainda não habilitou nenhum provedor de login em duas etapas. Depois de ativar um provedor de login em duas etapas, você pode conferir aqui o seu código de recuperação." + }, + "printCode": { + "message": "Imprimir Código", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Relatórios" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Relatório de Sites Inseguros" + }, + "unsecuredWebsitesReportDesc": { + "message": "Usar sites inseguros com o esquema http:// pode ser perigoso. Se o site permitir, você deve sempre acessá-lo utilizando o esquema https:// para que a sua conexão seja criptografada." + }, + "unsecuredWebsitesFound": { + "message": "Sites Inseguros Encontrados" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Nós encontramos $COUNT$ item(ns) no seu cofre com URIs não protegido(s). Você deve alterar o esquema de URI para https:// se o site permitir.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Nenhum item no seu cofre tem URIs inseguros." + }, + "inactive2faReport": { + "message": "Relatório de 2FA Inativo" + }, + "inactive2faReportDesc": { + "message": "A autenticação de duas etapas (2FA) é uma configuração de segurança importante que ajuda a proteger suas contas. Se o site oferecer, você deve sempre ativar a autenticação de duas etapas." + }, + "inactive2faFound": { + "message": "Credenciais Sem 2FA Encontradas" + }, + "inactive2faFoundDesc": { + "message": "Nós encontramos $COUNT$ site(s) no seu cofre que pode não estar configurado com autenticação de duas etapas (de acordo com twofactorauth.org). Para proteger ainda mais essas contas, você deve habilitar a autenticação de duas etapas.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Nenhum site foi encontrado em seu cofre com a configuração de autenticação de duas etapas ausente." + }, + "instructions": { + "message": "Instruções" + }, + "exposedPasswordsReport": { + "message": "Relatório de Senhas Expostas" + }, + "exposedPasswordsReportDesc": { + "message": "Senhas expostas são senhas que foram descobertas em violações de dados conhecidas que foram divulgadas publicamente ou vendidas na \"dark web\" por hackers." + }, + "exposedPasswordsFound": { + "message": "Senhas Expostas Encontradas" + }, + "exposedPasswordsFoundDesc": { + "message": "Encontramos no seu cofre $COUNT$ item(ns) com senha(s) que foi(ram) exposta(s) em violações de dado conhecida. Você deve alterá-las para usar uma nova senha.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Nenhum item no seu cofre tem senhas que foram expostas em violações de dados conhecidas." + }, + "checkExposedPasswords": { + "message": "Verificar Senhas Expostas" + }, + "exposedXTimes": { + "message": "Exposta $COUNT$ vez(es)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Relatório de Senhas Fracas" + }, + "weakPasswordsReportDesc": { + "message": "Senhas fracas podem ser facilmente descobertas por hackers e ferramentas automatizadas que são usadas para quebrar senhas. O gerador de senhas do Bitwarden pode ajudá-lo a criar senhas fortes." + }, + "weakPasswordsFound": { + "message": "Senhas Fracas Encontrada" + }, + "weakPasswordsFoundDesc": { + "message": "Encontramos $COUNT$ item(ns) no seu cofre com senha(s) que não é/são fortes. Você deve atualizá-las para usar senhas mais fortes.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Nenhum item no seu cofre tem senhas fracas." + }, + "reusedPasswordsReport": { + "message": "Relatório de Senhas Reutilizadas" + }, + "reusedPasswordsReportDesc": { + "message": "Se um serviço que você usa for comprometido, a reutilização da mesma senha em outro local pode permitir que hackers acessem facilmente mais de suas contas online. Você deve usar uma senha exclusiva para cada conta ou serviço." + }, + "reusedPasswordsFound": { + "message": "Senhas Reutilizadas Encontradas" + }, + "reusedPasswordsFoundDesc": { + "message": "Nós encontramos $COUNT$ senha(s) que esta(ão) sendo reutilizadas no seu cofre. Você deve alterá-los para um valor único.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Nenhuma credencial no seu cofre tem senhas que estão sendo reutilizadas." + }, + "reusedXTimes": { + "message": "Reutilizada $COUNT$ vez(es)", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Relatório de Violação de Dados" + }, + "breachDesc": { + "message": "Uma \"brecha\" é um incidente em que os dados de um site foram acessados ilegalmente por hackers e liberados publicamente. Revise os tipos de dados que foram comprometidos (endereços de e-mail, senhas, cartões de crédito etc.) e tome as medidas adequadas, como a alteração de senhas." + }, + "breachCheckUsernameEmail": { + "message": "Verifique qualquer nome de usuário ou endereço de e-mail que você usa." + }, + "checkBreaches": { + "message": "Verificar Brechas" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ não foi encontrado em nenhuma violação de dados conhecida.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Boas Notícias", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ foi encontrado em $COUNT$ violações de dados diferentes on-line.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Contas com Brechas Encontradas" + }, + "compromisedData": { + "message": "Dados comprometidos" + }, + "website": { + "message": "Site" + }, + "affectedUsers": { + "message": "Usuários Afetados" + }, + "breachOccurred": { + "message": "Ocorreu uma Brecha" + }, + "breachReported": { + "message": "Brecha Reportada" + }, + "reportError": { + "message": "Ocorreu um erro ao tentar carregar o relatório. Tente novamente" + }, + "billing": { + "message": "Cobrança" + }, + "accountCredit": { + "message": "Crédito da Conta", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Saldo da Conta", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Adicionar Crédito", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Montante", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "O crédito adicionado aparecerá em sua conta após o pagamento ser totalmente processado. Alguns métodos de pagamento são mais lentos e podem levar mais tempo para processar do que outros." + }, + "makeSureEnoughCredit": { + "message": "Por favor, certifique-se de que sua conta tenha crédito suficiente para esta compra. Se sua conta não tiver crédito suficiente disponível, seu método de pagamento padrão será usado para completar a diferença. Você pode adicionar crédito à sua conta na página de Cobrança." + }, + "creditAppliedDesc": { + "message": "O crédito da sua conta pode ser usado para efetuar compras. Qualquer crédito disponível será automaticamente usado em faturas geradas nesta conta." + }, + "goPremium": { + "message": "Torne-se Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Você atualizou para premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Atualize a sua conta para uma conta premium e desbloqueie ótimos recursos adicionais." + }, + "premiumSignUpStorage": { + "message": "1 GB de armazenamento de arquivos encriptados." + }, + "premiumSignUpTwoStep": { + "message": "Opções adicionais de login em duas etapas, como YubiKey, FIDO U2F e Duo." + }, + "premiumSignUpEmergency": { + "message": "Acesso de Emergência" + }, + "premiumSignUpReports": { + "message": "Higiene de senha, saúde da conta, e relatórios sobre violação de dados para manter o seu cofre seguro." + }, + "premiumSignUpTotp": { + "message": "Gerador de código de verificação TOTP (2FA) para logins no seu cofre." + }, + "premiumSignUpSupport": { + "message": "Prioridade no suporte ao cliente." + }, + "premiumSignUpFuture": { + "message": "Todos os recursos premium no futuro. Mais em breve!" + }, + "premiumPrice": { + "message": "Tudo por apenas $PRICE$ /ano!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Complementos" + }, + "premiumAccess": { + "message": "Acesso Premium" + }, + "premiumAccessDesc": { + "message": "Você pode adicionar acesso premium a todos os membros da sua organização por $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Armazenamento Adicional (GB)" + }, + "additionalStorageGbDesc": { + "message": "# de GB adicional" + }, + "additionalStorageIntervalDesc": { + "message": "Seu plano tem $SIZE$ de armazenamento criptografado de arquivos. Você pode adicionar armazenamento adicional por $PRICE$ por GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Resumo" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "ano" + }, + "month": { + "message": "mês" + }, + "monthAbbr": { + "message": "mês.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "O seu método de pagamento será cobrado imediatamente e de forma recorrente a cada ano. Você pode cancelar a qualquer momento." + }, + "paymentCharged": { + "message": "Seu método de pagamento será cobrado imediatamente e, em seguida, de forma recorrente, a cada $INTERVAL$. Você pode cancelar a qualquer momento.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Seu plano vem com um teste gratuito de 7 dias. Seu cartão não será cobrado até que o período de teste termine e de forma recorrente a cada $INTERVAL$. Você pode cancelar a qualquer momento." + }, + "paymentInformation": { + "message": "Informação de Pagamento" + }, + "billingInformation": { + "message": "Informações de Pagamento" + }, + "creditCard": { + "message": "Cartão de Crédito" + }, + "paypalClickSubmit": { + "message": "Clique no botão PayPal para entrar na sua conta do PayPal e, em seguida, clique no botão Enviar abaixo para continuar." + }, + "cancelSubscription": { + "message": "Cancelar Assinatura" + }, + "subscriptionCanceled": { + "message": "A assinatura foi cancelada." + }, + "pendingCancellation": { + "message": "Cancelamento Pendente" + }, + "subscriptionPendingCanceled": { + "message": "A assinatura foi marcada para ser cancelada no final do período de faturamento atual." + }, + "reinstateSubscription": { + "message": "Restabelecer Assinatura" + }, + "reinstateConfirmation": { + "message": "Você tem certeza que deseja remover a solicitação de cancelamento pendente e restabelecer sua assinatura?" + }, + "reinstated": { + "message": "A assinatura foi restabelecida." + }, + "cancelConfirmation": { + "message": "Você tem certeza que deseja cancelar? Você perderá o acesso a todos os recursos dessa assinatura no final deste ciclo de faturamento." + }, + "canceledSubscription": { + "message": "A assinatura foi cancelada." + }, + "neverExpires": { + "message": "Nunca Expirar" + }, + "status": { + "message": "Estado" + }, + "nextCharge": { + "message": "Próxima Cobrança" + }, + "details": { + "message": "Detalhes" + }, + "downloadLicense": { + "message": "Baixar Licença" + }, + "updateLicense": { + "message": "Atualizar Licença" + }, + "updatedLicense": { + "message": "Licença atualizada" + }, + "manageSubscription": { + "message": "Gerenciar Assinatura" + }, + "storage": { + "message": "Armazenamento" + }, + "addStorage": { + "message": "Adicionar Armazenamento" + }, + "removeStorage": { + "message": "Remover Armazenamento" + }, + "subscriptionStorage": { + "message": "A sua assinatura tem um total de $MAX_STORAGE$ GB de armazenamento de arquivos criptografados. Você está usando $USED_STORAGE$ no momento.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Forma de Pagamento" + }, + "noPaymentMethod": { + "message": "Nenhum método de pagamento selecionado." + }, + "addPaymentMethod": { + "message": "Adicionar Forma de Pagamento" + }, + "changePaymentMethod": { + "message": "Alterar Forma de Pagamento" + }, + "invoices": { + "message": "Faturas" + }, + "noInvoices": { + "message": "Sem faturas." + }, + "paid": { + "message": "Pago", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Por pagar", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transações", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Sem transações." + }, + "chargeNoun": { + "message": "Carregar", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Reembolso", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Quaisquer cobranças aparecerão no seu extrato como $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB de Armazenamento Para Adicionar" + }, + "gbStorageRemove": { + "message": "GB de Armazenamento Para Remover" + }, + "storageAddNote": { + "message": "A adição de armazenamento resultará em ajustes no valor total da fatura e será cobrado imediatamente pela forma de pagamento registrada. A primeira cobrança será rateada pelo restante do ciclo de faturamento atual." + }, + "storageRemoveNote": { + "message": "A remoção do armazenamento resultará em ajustes no valor total da fatura que serão divididos em sua próxima cobrança de faturamento." + }, + "adjustedStorage": { + "message": "Ajustado $AMOUNT$ GB de armazenamento.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contato com o Suporte ao Cliente" + }, + "updatedPaymentMethod": { + "message": "Atualizar forma de pagamento." + }, + "purchasePremium": { + "message": "Comprar Premium" + }, + "licenseFile": { + "message": "Arquivo de Licença" + }, + "licenseFileDesc": { + "message": "Seu arquivo de licença terá o nome de algo como $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Para atualizar sua conta para uma assinatura premium, você precisa fazer o upload de um arquivo de licença válido." + }, + "uploadLicenseFileOrg": { + "message": "Para criar uma organização hospedada localmente, você precisa fazer o upload de um arquivo de licença válido." + }, + "accountEmailMustBeVerified": { + "message": "O endereço de e-mail da sua conta deve ser verificado." + }, + "newOrganizationDesc": { + "message": "As organizações permitem que você compartilhe partes do seu cofre com outras pessoas, além de gerenciar usuários relacionados para uma entidade específica, como uma família, uma equipe pequena ou uma empresa grande." + }, + "generalInformation": { + "message": "Informação Geral" + }, + "organizationName": { + "message": "Nome da Organização" + }, + "accountOwnedBusiness": { + "message": "Esta conta pertence a uma empresa." + }, + "billingEmail": { + "message": "E-mail de Cobrança" + }, + "businessName": { + "message": "Nome da Empresa" + }, + "chooseYourPlan": { + "message": "Escolha Seu Plano" + }, + "users": { + "message": "Usuários" + }, + "userSeats": { + "message": "Assentos de Usuário" + }, + "additionalUserSeats": { + "message": "Assentos de Usuário Adicionais" + }, + "userSeatsDesc": { + "message": "# de assentos de usuário" + }, + "userSeatsAdditionalDesc": { + "message": "O seu plano vem com assentos de usuário de $BASE_SEATS$. Você pode adicionar mais usuários por $SEAT_PRICE$ por usuário /mês.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Quanto mais assentos de usuário você precisa? Você também pode adicionar mais assentos depois, se necessário." + }, + "planNameFree": { + "message": "Grátis", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Para usuários de testes ou pessoais para compartilhar com $COUNT$ outro usuário.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Families" + }, + "planDescFamilies": { + "message": "Para uso pessoal, para compartilhar com a família & amigos." + }, + "planNameTeams": { + "message": "Equipes" + }, + "planDescTeams": { + "message": "Para empresas e outras organizações de equipe." + }, + "planNameEnterprise": { + "message": "Empresarial" + }, + "planDescEnterprise": { + "message": "Para empresas e outras organizações de grande porte." + }, + "freeForever": { + "message": "Grátis para Sempre" + }, + "includesXUsers": { + "message": "inclui $COUNT$ usuários", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Usuários Adicionais" + }, + "costPerUser": { + "message": "$COST$ por usuário", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limitado a $COUNT$ usuários (incluindo você)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limitado a $COUNT$ coleções", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Adicione e compartilhe com até $COUNT$ usuários", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Adicione e compartilhe com usuários ilimitados" + }, + "createUnlimitedCollections": { + "message": "Crie Coleções ilimitadas" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ de armazenamento encriptado", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Hospedagem Local (opcional)" + }, + "usersGetPremium": { + "message": "Usuários obtém acesso a Funcionalidades Premium" + }, + "controlAccessWithGroups": { + "message": "Controle o acesso do usuário com Grupos" + }, + "syncUsersFromDirectory": { + "message": "Sincronize seus usuários e Grupos de um diretório" + }, + "trackAuditLogs": { + "message": "Acompanhe as ações do usuário com os registros de auditoria" + }, + "enforce2faDuo": { + "message": "Reforçar o 2FA com o Duo" + }, + "priorityCustomerSupport": { + "message": "Suporte prioritário ao cliente" + }, + "xDayFreeTrial": { + "message": "Avaliação gratuita de $COUNT$ dia(s), cancele a qualquer momento", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Mensal" + }, + "annually": { + "message": "Anual" + }, + "basePrice": { + "message": "Preço Base" + }, + "organizationCreated": { + "message": "Organização Criada" + }, + "organizationReadyToGo": { + "message": "A sua nova organização está pronta!" + }, + "organizationUpgraded": { + "message": "Sua organização foi atualizada." + }, + "leave": { + "message": "Sair" + }, + "leaveOrganizationConfirmation": { + "message": "Você tem certeza que deseja sair desta organização?" + }, + "leftOrganization": { + "message": "Você saiu da organização." + }, + "defaultCollection": { + "message": "Coleção Padrão" + }, + "getHelp": { + "message": "Obter Ajuda" + }, + "getApps": { + "message": "Obtenha os Aplicativos" + }, + "loggedInAs": { + "message": "Sessão iniciada como" + }, + "eventLogs": { + "message": "Registro de Eventos" + }, + "people": { + "message": "Pessoas" + }, + "policies": { + "message": "Políticas" + }, + "singleSignOn": { + "message": "Logon Único" + }, + "editPolicy": { + "message": "Editar Política" + }, + "groups": { + "message": "Grupos" + }, + "newGroup": { + "message": "Novo Grupo" + }, + "addGroup": { + "message": "Adicionar Grupo" + }, + "editGroup": { + "message": "Editar Grupo" + }, + "deleteGroupConfirmation": { + "message": "Você tem certeza que deseja excluir este grupo?" + }, + "removeUserConfirmation": { + "message": "Você tem certeza que deseja remover este(a) usuário(a)?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Aviso! Este usuário precisa do Conector de Chave para gerenciar sua criptografia. Remover este usuário de sua organização desativará permanentemente sua conta. Essa ação não pode ser desfeita. Você quer prosseguir?" + }, + "externalId": { + "message": "ID externa" + }, + "externalIdDesc": { + "message": "O ID externo pode ser usado como referência ou vincular esse recurso a um sistema externo, como um diretório de usuários." + }, + "accessControl": { + "message": "Controle de Acesso" + }, + "groupAccessAllItems": { + "message": "Este grupo pode acessar e modificar todos os itens." + }, + "groupAccessSelectedCollections": { + "message": "Este grupo pode acessar apenas as coleções selecionadas." + }, + "readOnly": { + "message": "Somente Leitura" + }, + "newCollection": { + "message": "Nova Coleção" + }, + "addCollection": { + "message": "Adicionar Coleção" + }, + "editCollection": { + "message": "Editar Coleção" + }, + "deleteCollectionConfirmation": { + "message": "Você tem certeza que deseja excluir esta coleção?" + }, + "editUser": { + "message": "Editar Usuário" + }, + "inviteUser": { + "message": "Convidar Usuário" + }, + "inviteUserDesc": { + "message": "Convide um novo usuário para sua organização digitando o endereço de e-mail da conta Bitwarden dele abaixo. Se ele não tiver uma conta no Bitwarden, ele será solicitado a criar uma nova conta." + }, + "inviteMultipleEmailDesc": { + "message": "Você pode convidar até $COUNT$ usuários por vez. Utilize a vírgula para separar uma lista de endereços de e-mail.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Este usuário está usando o login em duas etapas para proteger a sua conta." + }, + "userAccessAllItems": { + "message": "Este usuário pode acessar e modificar todos os itens." + }, + "userAccessSelectedCollections": { + "message": "Este usuário pode acessar apenas as coleções selecionadas." + }, + "search": { + "message": "Pesquisar" + }, + "invited": { + "message": "Convidado" + }, + "accepted": { + "message": "Aceito" + }, + "confirmed": { + "message": "Confirmado" + }, + "clientOwnerEmail": { + "message": "Email do Proprietário do Cliente" + }, + "owner": { + "message": "Proprietário" + }, + "ownerDesc": { + "message": "O maior usuário de acesso que pode gerenciar todos os aspectos da sua organização." + }, + "clientOwnerDesc": { + "message": "Este usuário deve ser independente do Provedor. Se o Provedor estiver desassociado da organização, este usuário manterá a propriedade da organização." + }, + "admin": { + "message": "Administrador" + }, + "adminDesc": { + "message": " Os administradores podem acessar e gerenciar todos os itens, coleções e usuários em sua organização." + }, + "user": { + "message": "Usuário" + }, + "userDesc": { + "message": "Um usuário comum com acesso às coleções da sua organização." + }, + "manager": { + "message": "Gerente" + }, + "managerDesc": { + "message": "Os gerentes podem acessar e gerenciar coleções atribuídas em sua organização." + }, + "all": { + "message": "Todos" + }, + "refresh": { + "message": "Atualizar" + }, + "timestamp": { + "message": "Timestamp" + }, + "event": { + "message": "Evento" + }, + "unknown": { + "message": "Desconhecido" + }, + "loadMore": { + "message": "Carregar Mais" + }, + "mobile": { + "message": "Celular", + "description": "Mobile app" + }, + "extension": { + "message": "Extensão", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Área de Trabalho", + "description": "Desktop app" + }, + "webVault": { + "message": "Cofre Web" + }, + "loggedIn": { + "message": "Conectado(a)." + }, + "changedPassword": { + "message": "Senha da conta alterada." + }, + "enabledUpdated2fa": { + "message": "Habilitado/atualizado o login em duas etapas." + }, + "disabled2fa": { + "message": "Desabilitar login em duas etapas." + }, + "recovered2fa": { + "message": "Conta recuperada do login em duas etapas." + }, + "failedLogin": { + "message": "Falha na tentativa de login com senha incorreta." + }, + "failedLogin2fa": { + "message": "A tentativa de login falhou com o login incorreto em duas etapas." + }, + "exportedVault": { + "message": "Cofre exportado." + }, + "exportedOrganizationVault": { + "message": "Cofre da organização exportado." + }, + "editedOrgSettings": { + "message": "Configurações de organização editadas." + }, + "createdItemId": { + "message": "Item criado $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Item editado $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Item $ID$ enviado para lixeira.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Item $ID$ movido para uma organização.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Item $ID$ visualizado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Senha visualizada para o item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Campo oculto visualizado para o item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Código de segurança visualizado para o item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Senha copiada para o item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Campo oculto copiado para o item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Código de segurança copiado para o item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Item $ID$ auto-preenchido.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Coleção criada $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Coleção editada $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Coleção excluída $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Política $ID$ editada.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Grupo criado $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Grupo editado $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Grupo excluído $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Usuário removido $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Anexo criado para o item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Anexo excluído para o item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Coleção editada para o item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Usuário(a) convidado(a) $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Usuário(a) confirmado(a) $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Usuário(a) editado(a) $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Grupo editado para usuário(a) $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "SSO desvinculado para o usuário $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "A organização $ID$ foi criada.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "A organização $ID$ foi adicionada.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Organização $ID$ removida.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Cofre da organização $ID$ acessado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Dispositivo" + }, + "view": { + "message": "Ver" + }, + "invalidDateRange": { + "message": "Intervalo de datas inválido." + }, + "errorOccurred": { + "message": "Ocorreu um erro." + }, + "userAccess": { + "message": "Acesso de Usuário" + }, + "userType": { + "message": "Tipo de Usuário" + }, + "groupAccess": { + "message": "Grupo de Acesso" + }, + "groupAccessUserDesc": { + "message": "Edite os grupos aos quais este usuário pertence." + }, + "invitedUsers": { + "message": "Usuário(a)(s) convidado(a)(s)." + }, + "resendInvitation": { + "message": "Reenviar o Convite" + }, + "resendEmail": { + "message": "Reenviar E-mail" + }, + "hasBeenReinvited": { + "message": "$USER$ foi convidado(a).", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirmar" + }, + "confirmUser": { + "message": "Confirmar Usuário" + }, + "hasBeenConfirmed": { + "message": "$USER$ foi confirmado(a).", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirmar Usuários" + }, + "usersNeedConfirmed": { + "message": "Você tem usuários que aceitaram o convite, mas ainda precisam ser confirmados. Os usuários não terão acesso à organização até que sejam confirmados." + }, + "startDate": { + "message": "Data de Início" + }, + "endDate": { + "message": "Data do Término" + }, + "verifyEmail": { + "message": "Verificar E-mail" + }, + "verifyEmailDesc": { + "message": "Confirme o endereço de e-mail da sua conta para desbloquear o acesso a todos os recursos." + }, + "verifyEmailFirst": { + "message": "Primeiro, o endereço de e-mail da sua conta precisa ser confirmado." + }, + "checkInboxForVerification": { + "message": "Verifique sua caixa de entrada do e-mail para obter o código de verificação." + }, + "emailVerified": { + "message": "O seu e-mail foi verificado." + }, + "emailVerifiedFailed": { + "message": "Não é possível confirmar o seu e-mail. Tente enviar um novo e-mail de verificação." + }, + "emailVerificationRequired": { + "message": "Verificação de E-mail Necessária" + }, + "emailVerificationRequiredDesc": { + "message": "Você precisa verificar o seu e-mail para usar este recurso." + }, + "updateBrowser": { + "message": "Atualizar Navegador" + }, + "updateBrowserDesc": { + "message": "Você está usando um navegador da Web não suportado. O cofre web pode não funcionar corretamente." + }, + "joinOrganization": { + "message": "Junte-se a Organização" + }, + "joinOrganizationDesc": { + "message": "Você foi convidado para participar da organização listada acima. Para aceitar o convite, você precisa iniciar sessão ou criar uma nova conta no Bitwarden." + }, + "inviteAccepted": { + "message": "Convite Aceito" + }, + "inviteAcceptedDesc": { + "message": "Você pode acessar essa organização quando um administrador confirmar sua associação. Enviaremos um e-mail quando isso acontecer." + }, + "inviteAcceptFailed": { + "message": "Não é possível aceitar o convite. Peça a um administrador da organização para enviar um novo convite." + }, + "inviteAcceptFailedShort": { + "message": "Não foi possível aceitar o convite. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Lembrar e-mail" + }, + "recoverAccountTwoStepDesc": { + "message": "Se você não puder acessar sua conta por meio de seus métodos normais de login em duas etapas, poderá usar seu código de recuperação de login em duas etapas para desativar a funcionalidade de duas etapas da sua conta." + }, + "recoverAccountTwoStep": { + "message": "Recuperar login em duas etapas da conta" + }, + "twoStepRecoverDisabled": { + "message": "O login em duas etapas foi desativado em sua conta." + }, + "learnMore": { + "message": "Saiba mais" + }, + "deleteRecoverDesc": { + "message": "Insira seu endereço de e-mail abaixo para recuperar e excluir sua conta." + }, + "deleteRecoverEmailSent": { + "message": "Se a sua conta existir, enviamos um e-mail para você com mais instruções." + }, + "deleteRecoverConfirmDesc": { + "message": "Você pediu para excluir a sua conta no Bitwarden. Clique no botão abaixo para confirmar." + }, + "myOrganization": { + "message": "Minha Organização" + }, + "deleteOrganization": { + "message": "Excluir Organização" + }, + "deletingOrganizationContentWarning": { + "message": "Digite a senha mestra para confirmar a exclusão de $ORGANIZATION$ e todos os dados associados. Os dados do cofre no $ORGANIZATION$ incluem:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "As contas de usuários permanecerão ativas após a exclusão, mas não estarão mais associadas a essa organização." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "A exclusão de $ORGANIZATION$ é permanente e irreversível.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organização Excluida" + }, + "organizationDeletedDesc": { + "message": "A organização e todos os dados associados foram excluídos." + }, + "organizationUpdated": { + "message": "Organização atualizada" + }, + "taxInformation": { + "message": "Informações de Impostos" + }, + "taxInformationDesc": { + "message": "Para clientes dentro dos EUA, o código postal (ZIP code) é necessário para satisfazer os requisitos fiscais das vendas. para outros países você pode opcionalmente fornecer um número de identificação fiscal (VAT/GST) e/ou um endereço para aparecer nas suas faturas." + }, + "billingPlan": { + "message": "Plano", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Atualizar Plano", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Atualize sua conta para outro plano fornecendo as informações abaixo. Por favor, verifique se você tem um método de pagamento ativo adicionado à conta.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Fatura #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Ver Fatura" + }, + "downloadInvoice": { + "message": "Baixar Fatura" + }, + "verifyBankAccount": { + "message": "Verificar Conta Bancária" + }, + "verifyBankAccountDesc": { + "message": "Fizemos dois micro-depósitos em sua conta bancária (pode demorar de 1 a 2 dias úteis para aparecer). Insira esses valores para confirmar a conta bancária." + }, + "verifyBankAccountInitialDesc": { + "message": "O pagamento com uma conta bancária só está disponível para clientes nos Estados Unidos. Você será solicitado a confirmar sua conta bancária. Vamos fazer dois micro-depósitos nos próximos 1-2 dias úteis. Insira esses valores na página de faturamento da organização para confirmar a conta bancária." + }, + "verifyBankAccountFailureWarning": { + "message": "A não verificação da conta bancária resultará em um pagamento não atendido e sua assinatura será desativada." + }, + "verifiedBankAccount": { + "message": "A conta bancária foi verificada." + }, + "bankAccount": { + "message": "Conta Bancária" + }, + "amountX": { + "message": "Montante $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Numero da Conta" + }, + "accountHolderName": { + "message": "Nome do Titular da Conta" + }, + "bankAccountType": { + "message": "Tipo de Conta" + }, + "bankAccountTypeCompany": { + "message": "Empresa (Profissional)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Pessoal)" + }, + "enterInstallationId": { + "message": "Insira o seu ID de instalação" + }, + "limitSubscriptionDesc": { + "message": "Defina um limite de vagas para sua assinatura. Quando esse limite for atingido, você não poderá convidar novos usuários." + }, + "maxSeatLimit": { + "message": "Limite Máximo de Vaga (opcional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Custo de vaga máximo potencial" + }, + "addSeats": { + "message": "Adicionar Assentos", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remover Assentos", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Ajustes em sua assinatura resultarão em alterações rateadas em seus totais de cobrança. Se os usuários recém-convidados excederem o número de vagas de sua assinatura, você receberá imediatamente uma cobrança proporcional pelos usuários adicionais." + }, + "subscriptionUserSeats": { + "message": "Sua assinatura permite um total de $COUNT$ usuários.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Assinatura Limite (Opcional)" + }, + "subscriptionSeats": { + "message": "Vagas de Assinatura" + }, + "subscriptionUpdated": { + "message": "Assinatura atualizada" + }, + "additionalOptions": { + "message": "Opções Adicionais" + }, + "additionalOptionsDesc": { + "message": "Para ajuda adicional no gerenciamento de sua assinatura, entre em contato com o suporte ao cliente." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Ajustes em sua assinatura resultarão em alterações rateadas em seus totais de cobrança. Se os usuários recém-convidados excederem o número de vagas de sua assinatura, você receberá imediatamente uma cobrança proporcional pelos usuários adicionais." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Ajustes em sua assinatura resultarão em alterações rateadas em seus totais de cobrança. Se os usuários recém-convidados excederem o número de vagas de sua assinatura, você receberá imediatamente uma cobrança proporcional para os usuários adicionais até que seu limite de $MAX$ de vaga seja atingido.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Você não pode convidar mais do que $COUNT$ usuários sem atualizar seu plano.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Você não pode convidar mais de $COUNT$ usuários sem atualizar seu plano. Entre em contato com o Suporte ao Cliente para atualizar.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Sua assinatura permite um total de $COUNT$ usuários. Seu plano é patrocinado e cobrado por uma organização externa.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Ajustes em sua assinatura resultarão em alterações rateadas em seus totais de cobrança. Você não pode convidar mais de $COUNT$ usuários sem aumentar suas vagas de assinatura.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Assentos Para Adicionar" + }, + "seatsToRemove": { + "message": "Assentos Para Remover" + }, + "seatsAddNote": { + "message": "A adição de assentos de usuário resultará em ajustes no total da cobrança, e será cobrada imediatamente pela sua forma de pagamento registrada. A primeira cobrança será rateada pelo restante do ciclo do faturamento atual." + }, + "seatsRemoveNote": { + "message": "A remoção dos assentos de usuário resultará em ajustes no total do faturamento, que será rateado como crédito para sua próxima cobrança." + }, + "adjustedSeats": { + "message": "Ajustado $AMOUNT$ assentos de usuário.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Chave Atualizada" + }, + "updateKeyTitle": { + "message": "Atualizar Chave" + }, + "updateEncryptionKey": { + "message": "Atualizar Chave de Criptografia" + }, + "updateEncryptionKeyShortDesc": { + "message": "Você está usando atualmente um esquema de criptografia desatualizado." + }, + "updateEncryptionKeyDesc": { + "message": "Passamos para chaves de criptografia maiores, que oferecem melhor segurança e acesso a recursos mais recentes. Atualizar sua chave de criptografia é rápido e fácil. Basta inserir sua senha mestra abaixo. Esta atualização eventualmente se tornará obrigatória." + }, + "updateEncryptionKeyWarning": { + "message": "Depois de atualizar sua chave de criptografia, é necessário encerrar e iniciar a sessão em todos os aplicativos do Bitwarden que você está usando atualmente (como o aplicativo móvel ou as extensões do navegador). Não encerrar e iniciar sessão (que baixa sua nova chave de criptografia) pode resultar em corrupção de dados. Nós tentaremos desconectá-lo automaticamente, mas isso pode demorar um pouco." + }, + "updateEncryptionKeyExportWarning": { + "message": "Quaisquer exportações criptografadas que você tenha salvo também se tornarão inválidas." + }, + "subscription": { + "message": "Assinatura" + }, + "loading": { + "message": "Carregando" + }, + "upgrade": { + "message": "Atualizar" + }, + "upgradeOrganization": { + "message": "Atualizar Organização" + }, + "upgradeOrganizationDesc": { + "message": "Este recurso não está disponível para organizações gratuitas. Mude para um plano pago para desbloquear mais recursos." + }, + "createOrganizationStep1": { + "message": "Criar Organização: Passo 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Antes de criar sua organização, primeiro você precisa criar uma conta pessoal gratuita." + }, + "refunded": { + "message": "Reembolsado" + }, + "nothingSelected": { + "message": "Você selecionou nada." + }, + "acceptPolicies": { + "message": "Ao marcar esta caixa, você concorda com o seguinte:" + }, + "acceptPoliciesError": { + "message": "Os Termos de Serviço e a Política de Privacidade não foram reconhecidos." + }, + "termsOfService": { + "message": "Termos de Serviço" + }, + "privacyPolicy": { + "message": "Política de Privacidade" + }, + "filters": { + "message": "Filtros" + }, + "vaultTimeout": { + "message": "Tempo Limite do Cofre" + }, + "vaultTimeoutDesc": { + "message": "Escolha quando o tempo limite do seu cofre irá se esgotar e execute a ação selecionada." + }, + "oneMinute": { + "message": "1 minuto" + }, + "fiveMinutes": { + "message": "5 minutos" + }, + "fifteenMinutes": { + "message": "15 minutos" + }, + "thirtyMinutes": { + "message": "30 minutos" + }, + "oneHour": { + "message": "1 hora" + }, + "fourHours": { + "message": "4 horas" + }, + "onRefresh": { + "message": "Quando Reiniciar o Navegador" + }, + "dateUpdated": { + "message": "Atualizado", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Senha Atualizada", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organização está desabilitada." + }, + "licenseIsExpired": { + "message": "A licença está expirada." + }, + "updatedUsers": { + "message": "Usuários atualizados" + }, + "selected": { + "message": "Selecionado" + }, + "ownership": { + "message": "Propriedade" + }, + "whoOwnsThisItem": { + "message": "Quem possui este item?" + }, + "strong": { + "message": "Forte", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Boa", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Fraca", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Muito Fraca", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Senha Mestra Fraca" + }, + "weakMasterPasswordDesc": { + "message": "A senha mestra que você selecionou está fraca. Você deve usar uma senha mestra forte (ou uma frase-passe) para proteger a sua conta Bitwarden adequadamente. Tem certeza que deseja usar esta senha mestra?" + }, + "rotateAccountEncKey": { + "message": "Também rodar a chave de encriptação da minha conta" + }, + "rotateEncKeyTitle": { + "message": "Rodar Chave de Encriptação" + }, + "rotateEncKeyConfirmation": { + "message": "Você tem certeza que quer rodar a chave de encriptação da sua conta?" + }, + "attachmentsNeedFix": { + "message": "Este item tem anexos de arquivos antigos que precisam ser corrigidos." + }, + "attachmentFixDesc": { + "message": "Este é um anexo de arquivo antigo que precisa ser corrigido. Clique para saber mais." + }, + "fix": { + "message": "Corrigir", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Há anexos de arquivos antigos no seu cofre que precisam ser corrigidos antes que você possa girar a chave de criptografia da sua conta." + }, + "yourAccountsFingerprint": { + "message": "A sua frase biométrica", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Para garantir a integridade de suas chaves de criptografia, verifique a frase biométrica do usuário antes de continuar.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Não peça para verificar a frase biométrica novamente", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Gratuito", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "Chave API" + }, + "apiKeyDesc": { + "message": "Sua chave API pode ser usada para autenticar na API pública do Bitwarden." + }, + "apiKeyRotateDesc": { + "message": "Girar a chave da API invalidará a chave anterior. Você pode girar sua chave de API se acreditar que a chave atual não é mais segura de usar." + }, + "apiKeyWarning": { + "message": "Sua chave de API tem acesso total à organização. Deve ser mantido em segredo." + }, + "userApiKeyDesc": { + "message": "Sua chave API pode ser usada para autenticar no Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Sua chave de API é um mecanismo de autenticação alternativo. Deve ser mantido em segredo." + }, + "oauth2ClientCredentials": { + "message": "Credenciais do cliente OAuth 2.0", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Ver chave API" + }, + "rotateApiKey": { + "message": "Girar chave API" + }, + "selectOneCollection": { + "message": "Você deve selecionar pelo menos uma coleção." + }, + "couldNotChargeCardPayInvoice": { + "message": "Não foi possível cobrar no seu cartão. Por favor, veja e pague a fatura pendente listada abaixo." + }, + "inAppPurchase": { + "message": "Compra no Aplicativo" + }, + "cannotPerformInAppPurchase": { + "message": "Você não pode executar esta ação enquanto usa um método de pagamento de compra dentro do aplicativo." + }, + "manageSubscriptionFromStore": { + "message": "Você deve gerenciar sua assinatura na loja onde sua compra pelo aplicativo foi feita." + }, + "minLength": { + "message": "Comprimento Mínimo" + }, + "clone": { + "message": "Clonar" + }, + "masterPassPolicyDesc": { + "message": "Defina os requisitos mínimos para a força da senha mestra." + }, + "twoStepLoginPolicyDesc": { + "message": "Exigir que os usuários definam a autenticação de dois passos nas suas contas pessoais." + }, + "twoStepLoginPolicyWarning": { + "message": "Os membros da organização que não possuam a autenticação de dois passos ativa para sua conta pessoal serão removidos da organização e receberão um e-mail notificando-os da mudança." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Você é um membro de uma organização que exige que a autenticação de dois passos seja ativada na sua conta de usuário. Se desativar todos os serviços de autenticação de dois passos, você será automaticamente removido dessas organizações." + }, + "passwordGeneratorPolicyDesc": { + "message": "Defina os requisitos mínimos para configuração do gerador de senhas." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Uma ou mais políticas da organização estão afetando as suas configurações do gerador." + }, + "masterPasswordPolicyInEffect": { + "message": "Uma ou mais políticas da organização exigem que a sua senha mestra cumpra aos seguintes requisitos:" + }, + "policyInEffectMinComplexity": { + "message": "Pontuação mínima de complexidade de $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Comprimento mínimo de $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contém um ou mais caracteres em maiúsculo" + }, + "policyInEffectLowercase": { + "message": "Contém um ou mais caracteres em minúsculo" + }, + "policyInEffectNumbers": { + "message": "Contém um ou mais números" + }, + "policyInEffectSpecial": { + "message": "Contém um ou mais dos seguintes caracteres especiais $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "A sua nova senha mestra não cumpre aos requisitos da política." + }, + "minimumNumberOfWords": { + "message": "Número Mínimo de Palavras" + }, + "defaultType": { + "message": "Tipo Padrão" + }, + "userPreference": { + "message": "Preferência do Usuário" + }, + "vaultTimeoutAction": { + "message": "Ação de Tempo Limite do Cofre" + }, + "vaultTimeoutActionLockDesc": { + "message": "Um cofre bloqueado requer que você reinsira a sua senha mestra para entrar novamente." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Uma sessão encerrada com o cofre requer que você autentique-se novamente para acessá-lo de novo." + }, + "lock": { + "message": "Bloquear", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Lixeira", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Pesquisar na Lixeira" + }, + "permanentlyDelete": { + "message": "Excluir Permanentemente" + }, + "permanentlyDeleteSelected": { + "message": "Excluir Permanentemente Selecionados" + }, + "permanentlyDeleteItem": { + "message": "Excluir o Item Permanentemente" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Você tem certeza que deseja excluir permanentemente esse item?" + }, + "permanentlyDeletedItem": { + "message": "Item Permanentemente Excluído" + }, + "permanentlyDeletedItems": { + "message": "Itens Permanentemente Excluídos" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Você selecionou $COUNT$ item(ns) para excluir permanentemente. Tem certeza que deseja excluir permanentemente todos estes itens?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Item $ID$ Excluído Permanentemente.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restaurar" + }, + "restoreSelected": { + "message": "Restaurar Selecionados" + }, + "restoreItem": { + "message": "Restaurar Item" + }, + "restoredItem": { + "message": "Item Restaurado" + }, + "restoredItems": { + "message": "Itens Restaurados" + }, + "restoreItemConfirmation": { + "message": "Você tem certeza que deseja restaurar esse item?" + }, + "restoreItems": { + "message": "Restaurar itens" + }, + "restoreSelectedItemsDesc": { + "message": "Você selecionou $COUNT$ item(ns) para restaurar. Tem certeza que deseja restaurar todos esses itens?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Item $ID$ restaurado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Sair irá remover todo o acesso ao seu cofre e requer autenticação online após o período de tempo limite. Tem certeza de que deseja usar esta configuração?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Confirmação de Ação de Tempo Limite" + }, + "hidePasswords": { + "message": "Esconder Senhas" + }, + "countryPostalCodeRequiredDesc": { + "message": "Exigimos essa informação apenas para o cálculo do imposto sobre as vendas e informação financeira." + }, + "includeVAT": { + "message": "Incluir informações sobre IVA/GST (opcional)" + }, + "taxIdNumber": { + "message": "ID de Imposto VAT/GST" + }, + "taxInfoUpdated": { + "message": "Informações de impostos atualizadas." + }, + "setMasterPassword": { + "message": "Definir Senha Mestra" + }, + "ssoCompleteRegistration": { + "message": "Para concluir o login com o SSO, defina uma senha mestra para acessar e proteger o seu cofre." + }, + "identifier": { + "message": "Identificador" + }, + "organizationIdentifier": { + "message": "Identificador da Organização" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Faça o login usando o portal de login único da sua organização. Por favor, insira o identificador da sua organização para começar." + }, + "enterpriseSingleSignOn": { + "message": "Iniciar Sessão Empresarial Única" + }, + "ssoHandOff": { + "message": "Agora você pode fechar esta aba e continuar na extensão." + }, + "includeAllTeamsFeatures": { + "message": "Recursos para Todas as Equipes, além de:" + }, + "includeSsoAuthentication": { + "message": "Autenticação SSO via SAML2.0 e OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Políticas Empresariais" + }, + "ssoValidationFailed": { + "message": "Falha na Validação SSO" + }, + "ssoIdentifierRequired": { + "message": "O Identificador da Organização é obrigatório." + }, + "unlinkSso": { + "message": "Desvincular SSO" + }, + "unlinkSsoConfirmation": { + "message": "Você tem certeza que deseja desvincular o SSO para esta organização?" + }, + "linkSso": { + "message": "Vincular SSO" + }, + "singleOrg": { + "message": "Organização Única" + }, + "singleOrgDesc": { + "message": "Restringir os usuários de poderem entrar em outras organizações." + }, + "singleOrgBlockCreateMessage": { + "message": "Sua organização atual tem uma política que não permite que você entre em mais de uma organização. Por favor, entre em contato com os administradores da sua organização ou cadastre-se a partir de uma conta do Bitwarden diferente." + }, + "singleOrgPolicyWarning": { + "message": "Os membros da organização que não são Donos ou Administradores, e já são membros de outra organização serão removidos da sua organização." + }, + "requireSso": { + "message": "Autenticação de Acesso Único" + }, + "requireSsoPolicyDesc": { + "message": "Exige que os usuários façam login com o método de Login Único da Empresa." + }, + "prerequisite": { + "message": "Pré-requisito" + }, + "requireSsoPolicyReq": { + "message": "A política das empresas da Organização Única tem de ser viabilizada antes da ativação desta política." + }, + "requireSsoPolicyReqError": { + "message": "Política da Organização Única não ativada." + }, + "requireSsoExemption": { + "message": "Os Proprietários e Administradores da Organização estão isentos da aplicação desta política." + }, + "sendTypeFile": { + "message": "Arquivo" + }, + "sendTypeText": { + "message": "Texto" + }, + "createSend": { + "message": "Criar Novo Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Editar Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send Criado", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Send Editado", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send Excluído", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Excluir Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Você tem certeza que deseja excluir este Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Que tipo de Send é este?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Data de Exclusão" + }, + "deletionDateDesc": { + "message": "O Send será eliminado permanentemente na data e hora especificadas.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Data de Validade" + }, + "expirationDateDesc": { + "message": "Se definido, o acesso a este Send expirará na data e hora especificadas.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Contagem Máxima de Acessos" + }, + "maxAccessCountDesc": { + "message": "Se atribuído, usuários não poderão mais acessar este Send assim que o número máximo de acessos for atingido.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Contagem Atual de Acesso" + }, + "sendPasswordDesc": { + "message": "Opcionalmente exigir uma senha para os usuários acessarem este Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Notas privadas sobre esse Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Desativado" + }, + "sendLink": { + "message": "Link do Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copiar Link do Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remover Senha" + }, + "removedPassword": { + "message": "Senha Removida" + }, + "removePasswordConfirmation": { + "message": "Você tem certeza que deseja remover a senha?" + }, + "hideEmail": { + "message": "Ocultar meu endereço de e-mail dos destinatários." + }, + "disableThisSend": { + "message": "Desabilite este Send para que ninguém possa acessá-lo.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Todos os Sends" + }, + "maxAccessCountReached": { + "message": "Número máximo de acessos atingido", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Exclusão pendente" + }, + "expired": { + "message": "Expirado" + }, + "searchSends": { + "message": "Pesquisar Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Este Send está protegido com uma senha. Por favor, digite a senha abaixo para continuar.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Não sabe a senha? Peça ao Remetente a senha necessária para acessar esse Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Este Send é oculto por padrão. Você pode alternar a visibilidade usando o botão abaixo.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Baixar Arquivo" + }, + "sendAccessUnavailable": { + "message": "O Send que você está tentando acessar não existe ou não está mais disponível.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "O arquivo associado a este Send não foi encontrado.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Não há Sends para listar.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Acesso de Emergência" + }, + "emergencyAccessDesc": { + "message": "Conceda e gerencie o acesso de emergência para contatos confiáveis. Contatos confiáveis podem solicitar acesso a Visualizar ou Assumir o Controle da sua conta em caso de emergência. Visite a nossa página de ajuda para obter mais informações e detalhes sobre como o compartilhamento de conhecimento zero funciona." + }, + "emergencyAccessOwnerWarning": { + "message": "Você é o Proprietário de uma ou mais organizações. Se você conceder acesso a um contato de emergência, eles serão capazes de usar todas as suas permissões como Proprietário após uma concessão." + }, + "trustedEmergencyContacts": { + "message": "Contatos de emergência confiáveis" + }, + "noTrustedContacts": { + "message": "Você ainda não adicionou nenhum contato de emergência, convide um contato confiável para começar." + }, + "addEmergencyContact": { + "message": "Adicionar contato de emergência" + }, + "designatedEmergencyContacts": { + "message": "Designado como contato de emergência" + }, + "noGrantedAccess": { + "message": "Você ainda não foi designado como um contato de emergência para ninguém." + }, + "inviteEmergencyContact": { + "message": "Convidar contato de emergência" + }, + "editEmergencyContact": { + "message": "Editar contato de emergência" + }, + "inviteEmergencyContactDesc": { + "message": "Convide um novo contato de emergência digitando o endereço de e-mail da conta Bitwarden abaixo. Se eles não tiverem uma conta no Bitwarden, eles serão solicitados a criar uma nova conta." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Acesso de Emergência Iniciado" + }, + "emergencyAccessRecoveryApproved": { + "message": "Acesso de Emergência Aprovado" + }, + "viewDesc": { + "message": "Você pode ver todos os itens no seu próprio cofre." + }, + "takeover": { + "message": "Assumir o Controle" + }, + "takeoverDesc": { + "message": "Pode redefinir a sua conta com uma nova senha mestra." + }, + "waitTime": { + "message": "Tempo de Espera" + }, + "waitTimeDesc": { + "message": "Tempo necessário antes de conceder acesso automaticamente." + }, + "oneDay": { + "message": "1 dia" + }, + "days": { + "message": "$DAYS$ dias", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Usuário convidado." + }, + "acceptEmergencyAccess": { + "message": "Você foi convidado para se tornar um contato de emergência para o usuário listado acima. Para aceitar o convite, você precisa iniciar sessão ou criar uma nova conta no Bitwarden." + }, + "emergencyInviteAcceptFailed": { + "message": "Não foi possível aceitar o convite. Peça ao usuário para enviar um novo convite." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Não foi possível aceitar o convite. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Você pode acessar as opções de emergência para esse usuário após a confirmação da sua identidade. Enviaremos um e-mail a você quando isso acontecer." + }, + "requestAccess": { + "message": "Solicitar Acesso" + }, + "requestAccessConfirmation": { + "message": "Tem certeza que deseja solicitar acesso de emergência? Você receberá acesso após $WAITTIME$ dia(s) ou sempre que o usuário aprovar manualmente a solicitação.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Acesso de emergência solicitado para $USER$. Nós o notificaremos por e-mail quando for possível continuar.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Aprovar" + }, + "reject": { + "message": "Rejeitar" + }, + "approveAccessConfirmation": { + "message": "Tem certeza de que deseja aprovar o acesso de emergência? Isto permitirá que $USER$ possa $ACTION$ da sua conta.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Acesso de emergência aprovado." + }, + "emergencyRejected": { + "message": "Acesso de emergência rejeitado" + }, + "passwordResetFor": { + "message": "Redefinição de senha para $USER$. Agora você pode acessar usando a nova senha.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Propriedade Pessoal" + }, + "personalOwnershipPolicyDesc": { + "message": "Exigir que os usuários salvem itens de cofre em uma organização removendo a opção de propriedade pessoal." + }, + "personalOwnershipExemption": { + "message": "Os proprietários e administradores da organização estão isentos da aplicação desta política." + }, + "personalOwnershipSubmitError": { + "message": "Devido a uma Política Empresarial, você está restrito de salvar itens para seu cofre pessoal. Altere a opção de propriedade para uma organização e escolha entre as Coleções disponíveis." + }, + "disableSend": { + "message": "Desabilitar Send" + }, + "disableSendPolicyDesc": { + "message": "Não permite que usuários criem ou editem um Send no Bitwarden. Excluir um Send existente ainda é permitido.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Os usuários da organização que podem gerenciar as políticas da organização estão isentos da aplicação desta política." + }, + "sendDisabled": { + "message": "Send desabilitado", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Devido a uma política corporativa, você só é capaz de excluir um Send existente.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Opções de Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Definir opções para a criação e edição de Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Os usuários da organização que podem gerenciar as políticas da organização estão isentos da aplicação desta política." + }, + "disableHideEmail": { + "message": "Não permitir que os usuários ocultem seus endereços de e-mail dos destinatários ao criar ou editar um Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "As seguintes políticas da organização estão em vigor atualmente:" + }, + "sendDisableHideEmailInEffect": { + "message": "Os usuários não têm permissão para ocultar seus endereços de e-mail dos destinatários ao criar ou editar um Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Política modificada $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Valor do plano" + }, + "estimatedTax": { + "message": "Impostos estimados" + }, + "custom": { + "message": "Personalizado" + }, + "customDesc": { + "message": "Permite controle mais granular das permissões de usuário para configurações avançadas." + }, + "permissions": { + "message": "Permissões" + }, + "accessEventLogs": { + "message": "Acessar Registro de Eventos" + }, + "accessImportExport": { + "message": "Acessar Importar/Exportar" + }, + "accessReports": { + "message": "Acessar Relatórios" + }, + "missingPermissions": { + "message": "Você não tem a permissão necessária para executar esta ação." + }, + "manageAllCollections": { + "message": "Gerenciar Todas as Coleções" + }, + "createNewCollections": { + "message": "Criar Novas Coleções" + }, + "editAnyCollection": { + "message": "Editar Qualquer Coleção" + }, + "deleteAnyCollection": { + "message": "Excluir Qualquer Coleção" + }, + "manageAssignedCollections": { + "message": "Gerenciar Coleções Atribuídas" + }, + "editAssignedCollections": { + "message": "Editar Coleções Atribuídas" + }, + "deleteAssignedCollections": { + "message": "Excluir Coleções Atribuídas" + }, + "manageGroups": { + "message": "Gerenciar Grupos" + }, + "managePolicies": { + "message": "Gerenciar Políticas" + }, + "manageSso": { + "message": "Gerenciar SSO" + }, + "manageUsers": { + "message": "Gerenciar Usuários" + }, + "manageResetPassword": { + "message": "Gerenciar Redefinição de Senha" + }, + "disableRequiredError": { + "message": "Você deve desativar manualmente a política $POLICYNAME$ antes que esta política possa ser desativada.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Uma política de organização está afetando suas opções de propriedade." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "Uma política da organização desativou a importação de itens para o seu cofre pessoal." + }, + "personalOwnershipCheckboxDesc": { + "message": "Desativar propriedade pessoal para usuários da organização" + }, + "textHiddenByDefault": { + "message": "Ao acessar o Send, ocultar o texto por padrão", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Um nome amigável para descrever este Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "O texto que você deseja enviar." + }, + "sendFileDesc": { + "message": "O arquivo que você deseja enviar." + }, + "copySendLinkOnSave": { + "message": "Copie o link para compartilhar este Send para minha área de transferência depois de salvar." + }, + "sendLinkLabel": { + "message": "Link do Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "O Bitwarden Send transmite informações sensíveis e temporárias para outras pessoas de forma fácil e segura.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Saiba mais", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Compartilhe texto ou arquivos diretamente com qualquer um." + }, + "sendVaultCardLearnMore": { + "message": "Saiba mais", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "veja", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "como funciona", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "ou", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "teste agora", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "ou", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "registre-se", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "para testar hoje mesmo.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "O usuário $USER_IDENTIFIER$ do Bitwarden compartilhou o seguinte com você", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "O usuário Bitwarden que criou este Send optou por ocultar seu endereço de e-mail. Você deve certificar-se de que confia na fonte deste link antes de usar ou baixar seu conteúdo.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "A data de validade fornecida não é válida." + }, + "deletionDateIsInvalid": { + "message": "A data de exclusão fornecida não é válida." + }, + "expirationDateAndTimeRequired": { + "message": "Uma data e hora de expiração são obrigatórias." + }, + "deletionDateAndTimeRequired": { + "message": "Uma data e hora de exclusão são obrigatórias." + }, + "dateParsingError": { + "message": "Ocorreu um erro ao salvar as suas datas de exclusão e validade." + }, + "webAuthnFallbackMsg": { + "message": "Para verificar seu 2FA, por favor, clique no botão abaixo." + }, + "webAuthnAuthenticate": { + "message": "Autenticar WebAuthn" + }, + "webAuthnNotSupported": { + "message": "O WebAuthn não é suportado neste navegador." + }, + "webAuthnSuccess": { + "message": "WebAuthn verificado com sucesso!
Você pode fechar esta guia." + }, + "hintEqualsPassword": { + "message": "Sua dica de senha senha não pode ser a mesma que a sua senha." + }, + "enrollPasswordReset": { + "message": "Inscrever-se na Redefinição de Senha" + }, + "enrolledPasswordReset": { + "message": "Inscrito na Redefinição de Senha" + }, + "withdrawPasswordReset": { + "message": "Retirar da Redefinição de Senha" + }, + "enrollPasswordResetSuccess": { + "message": "Inscrição com sucesso!" + }, + "withdrawPasswordResetSuccess": { + "message": "Retirada com sucesso!" + }, + "eventEnrollPasswordReset": { + "message": "O usuário $ID$ inscreveu-se na assistência para redefinição de senha.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "O usuário $ID$ retirou-se da assistência para redefinição de senha.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Redefinir senha mestra para o usuário $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Redefinir link Sso para o usuário $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ se conectou usando o Sso pela primeira vez", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Redefinir Senha" + }, + "resetPasswordLoggedOutWarning": { + "message": "O processo desconectará $NAME$ de sua sessão atual, exigindo que eles iniciem a sessão novamente. As sessões ativas em outros dispositivos podem continuar ativas por até uma hora.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "este usuário" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Uma ou mais políticas da organização exigem que a senha mestra cumpra aos seguintes requisitos:" + }, + "resetPasswordSuccess": { + "message": "Senha redefinida com sucesso!" + }, + "resetPasswordEnrollmentWarning": { + "message": "A inscrição permitirá que os administradores da organização alterem sua senha mestra. Tem certeza que deseja se inscrever?" + }, + "resetPasswordPolicy": { + "message": "Redefinir Senha Mestra" + }, + "resetPasswordPolicyDescription": { + "message": "Permitir que os administradores da organização redefinam a senha mestra dos usuários da organização." + }, + "resetPasswordPolicyWarning": { + "message": "Os usuários da organização terão de se inscrever automaticamente ou serem inscritos automaticamente para que os administradores possam redefinir sua senha mestra." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Inscrição Automática" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Todos os usuários serão inscritos automaticamente na redefinição de senha assim que o convite for aceito." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Os usuários que já estão na organização não serão inscritos retroativamente na redefinição de senha. Eles precisarão se inscrever para que os administradores possam redefinir sua senha mestra." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Inscrever automaticamente novos usuários" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Esta organização possui uma política empresarial que irá inscrevê-lo automaticamente na redefinição de senha. A inscrição permitirá que os administradores da organização alterem sua senha mestra." + }, + "resetPasswordOrgKeysError": { + "message": "A resposta das Chaves da Organização é nula" + }, + "resetPasswordDetailsError": { + "message": "A resposta para Redefinir os Detalhes da Senha é nula" + }, + "trashCleanupWarning": { + "message": "As cifras que ficarem na lixeira por mais de 30 dias serão excluídas automaticamente." + }, + "trashCleanupWarningSelfHosted": { + "message": "As cifras que estiverem na Lixeira por um tempo serão excluídas automaticamente." + }, + "passwordPrompt": { + "message": "Nova solicitação de senha mestra" + }, + "passwordConfirmation": { + "message": "Confirmação de senha mestra" + }, + "passwordConfirmationDesc": { + "message": "Esta ação está protegida. Para continuar, por favor, reinsira a sua senha mestra para verificar sua identidade." + }, + "reinviteSelected": { + "message": "Reenviar Convites" + }, + "noSelectedUsersApplicable": { + "message": "Esta ação não é aplicável a nenhum dos usuários selecionados." + }, + "removeUsersWarning": { + "message": "Tem certeza de que deseja remover os seguintes usuários? O processo pode levar alguns segundos para ser concluído e não pode ser interrompido ou cancelado." + }, + "theme": { + "message": "Tema" + }, + "themeDesc": { + "message": "Escolha um tema para o seu cofre web." + }, + "themeSystem": { + "message": "Usar Tema do Sistema" + }, + "themeDark": { + "message": "Escuro" + }, + "themeLight": { + "message": "Claro" + }, + "confirmSelected": { + "message": "Confirmar Selecionado(s)" + }, + "bulkConfirmStatus": { + "message": "Status de ação em massa" + }, + "bulkConfirmMessage": { + "message": "Confirmado com sucesso." + }, + "bulkReinviteMessage": { + "message": "Convidado novamente com sucesso." + }, + "bulkRemovedMessage": { + "message": "Removido com sucesso" + }, + "bulkFilteredMessage": { + "message": "Excluído, não aplicável para esta ação." + }, + "fingerprint": { + "message": "Impressão digital" + }, + "removeUsers": { + "message": "Remover Usuários" + }, + "error": { + "message": "Erro" + }, + "resetPasswordManageUsers": { + "message": "Gerenciar Usuários também deve ser habilitado com a permissão para Gerenciar a Redefinição de Senha" + }, + "setupProvider": { + "message": "Configuração do Provedor" + }, + "setupProviderLoginDesc": { + "message": "Você foi convidado para configurar um novo provedor. Para continuar, você precisa iniciar sessão ou criar uma nova conta no Bitwarden." + }, + "setupProviderDesc": { + "message": "Por favor, insira os detalhes abaixo para completar a configuração do provedor. Entre em Contato com o Suporte ao Cliente se tiver alguma dúvida." + }, + "providerName": { + "message": "Nome do Provedor" + }, + "providerSetup": { + "message": "O provedor foi configurado." + }, + "clients": { + "message": "Clientes" + }, + "providerAdmin": { + "message": "Administrador do Provedor" + }, + "providerAdminDesc": { + "message": "O usuário de maior acesso que pode gerenciar todos os aspectos do seu provedor, bem como acessar e gerenciar organizações de clientes." + }, + "serviceUser": { + "message": "Usuário de Serviço" + }, + "serviceUserDesc": { + "message": "Os usuários do serviço podem acessar e gerenciar todas as organizações de clientes." + }, + "providerInviteUserDesc": { + "message": "Convide um novo usuário para seu provedor digitando o endereço de e-mail da conta Bitwarden dele abaixo. Se ele não tiver uma conta no Bitwarden, ele será solicitado a criar uma nova conta." + }, + "joinProvider": { + "message": "Participar do Provedor" + }, + "joinProviderDesc": { + "message": "Você foi convidado para participar do provedor listado acima. Para aceitar o convite, você precisa iniciar sessão ou criar uma nova conta no Bitwarden." + }, + "providerInviteAcceptFailed": { + "message": "Não foi possível aceitar o convite. Peça ao administrador do provedor para enviar um novo convite." + }, + "providerInviteAcceptedDesc": { + "message": "Você pode acessar este provedor quando um administrador confirmar sua associação. Enviaremos um e-mail quando isso acontecer." + }, + "providerUsersNeedConfirmed": { + "message": "Você tem usuários que aceitaram o convite, mas ainda precisam ser confirmados. Os usuários não terão acesso ao provedor até que sejam confirmados." + }, + "provider": { + "message": "Provedor" + }, + "newClientOrganization": { + "message": "Nova Organização de Cliente" + }, + "newClientOrganizationDesc": { + "message": "Crie uma nova organização de cliente que será associada a você como o provedor. Você poderá acessar e gerenciar esta organização." + }, + "addExistingOrganization": { + "message": "Adicionar Organização Existente" + }, + "myProvider": { + "message": "Meu Provedor" + }, + "addOrganizationConfirmation": { + "message": "Tem certeza de que deseja adicionar $ORGANIZATION$ como um cliente a $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organização foi adicionada com sucesso ao provedor" + }, + "accessingUsingProvider": { + "message": "Acessando a organização usando o provedor $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "O provedor está desativado." + }, + "providerUpdated": { + "message": "Provedor atualizado" + }, + "yourProviderIs": { + "message": "Seu provedor é $PROVIDER$. Eles têm privilégios administrativos e de cobrança para sua organização.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "A organização $ORGANIZATION$ foi desanexada do seu provedor.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Tem certeza de que deseja desanexar esta organização? A organização continuará existindo, mas não será mais gerenciada pelo provedor." + }, + "add": { + "message": "Adicionar" + }, + "updatedMasterPassword": { + "message": "Senha Mestra Atualizada" + }, + "updateMasterPassword": { + "message": "Atualizar Senha Mestra" + }, + "updateMasterPasswordWarning": { + "message": "Sua Senha Mestra foi alterada recentemente por um administrador em sua organização. Para acessar o cofre, você deve atualizar sua Senha Mestra agora. Prosseguir irá desconectá-lo da sessão atual, exigindo que você faça login novamente. As sessões ativas em outros dispositivos podem continuar ativas por até uma hora." + }, + "masterPasswordInvalidWarning": { + "message": "Sua Senha Mestra foi alterada recentemente por um administrador de sua organização. Para acessar o cofre, você precisa atualizar sua Senha Mestra agora. O processo desconectará você da sessão atual, exigindo que você inicie a sessão novamente. Sessões ativas em outros dispositivos podem continuar ativas por até uma hora." + }, + "maximumVaultTimeout": { + "message": "Tempo Limite do Cofre" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure o tempo máximo para o cofre para todos os usuários." + }, + "maximumVaultTimeoutLabel": { + "message": "Tempo Limite Máximo do Cofre" + }, + "invalidMaximumVaultTimeout": { + "message": "Tempo Máximo de Cofre Inválido." + }, + "hours": { + "message": "Horas" + }, + "minutes": { + "message": "Minutos" + }, + "vaultTimeoutPolicyInEffect": { + "message": "As políticas da sua organização estão afetando o tempo limite do seu cofre. O Tempo Limite Máximo permitido do Cofre é $HOURS$ hora(s) e $MINUTES$ minuto(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Tempo Limite do Cofre Personalizado" + }, + "vaultTimeoutToLarge": { + "message": "O tempo limite do seu cofre excede a restrição definida por sua organização." + }, + "disablePersonalVaultExport": { + "message": "Desabilitar Exportação de Cofre Pessoal" + }, + "disablePersonalVaultExportDesc": { + "message": "Proíbe os usuários de exportar seus dados de cofre privados." + }, + "vaultExportDisabled": { + "message": "Exportação de Cofre Desabilitada" + }, + "personalVaultExportPolicyInEffect": { + "message": "Uma ou mais políticas da organização impdem que você exporte seu cofre pessoal." + }, + "selectType": { + "message": "Selecionar Tipo de SSO" + }, + "type": { + "message": "Tipo" + }, + "openIdConnectConfig": { + "message": "Configuração OpenID Connect" + }, + "samlSpConfig": { + "message": "Configuração do Provedor de Serviço SAML" + }, + "samlIdpConfig": { + "message": "Configuração do Provedor de Identidade SAML" + }, + "callbackPath": { + "message": "Caminho de Retorno" + }, + "signedOutCallbackPath": { + "message": "Caminho de Retorno de Chamada Desconectado" + }, + "authority": { + "message": "Autoridade" + }, + "clientId": { + "message": "ID do Cliente" + }, + "clientSecret": { + "message": "Segredo do Cliente" + }, + "metadataAddress": { + "message": "Endereço dos Metadados" + }, + "oidcRedirectBehavior": { + "message": "Comportamento de Redirecionamento OIDC" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Obter Reivindicações do Terminal de Informações do Usuário" + }, + "additionalScopes": { + "message": "Escopos Adicionais/Personalizados (delimitado por vírgulas)" + }, + "additionalUserIdClaimTypes": { + "message": "Tipos de Reivindicação de ID de Usuário Adicionais/Personalizados (delimitado por vírgulas)" + }, + "additionalEmailClaimTypes": { + "message": "Tipos de Reivindicação de E-mail Adicionais/Personalizados (delimitado por vírgulas)" + }, + "additionalNameClaimTypes": { + "message": "Tipos de Reivindicação de Nome Adicionais/Personalizados (delimitado por vírgulas)" + }, + "acrValues": { + "message": "Valores de Referência de Classe de Contexto de Autenticação Solicitada (acr_values)" + }, + "expectedReturnAcrValue": { + "message": "Esperado Valor de Reivindicação \"acr\" Na Resposta (validação acr)" + }, + "spEntityId": { + "message": "ID da Entidade SP" + }, + "spMetadataUrl": { + "message": "URL de Metadados SAML 2.0" + }, + "spAcsUrl": { + "message": "URL do Serviço de Declaração de Consumidor (ACS)" + }, + "spNameIdFormat": { + "message": "Formato ID do Nome" + }, + "spOutboundSigningAlgorithm": { + "message": "Algoritmo de Assinatura de Saída" + }, + "spSigningBehavior": { + "message": "Comportamento de Assinatura" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Algoritmo de Assinatura de Entrada Mínima" + }, + "spWantAssertionsSigned": { + "message": "Precisa de Declarações Assinadas" + }, + "spValidateCertificates": { + "message": "Validar Certificados" + }, + "idpEntityId": { + "message": "ID da Entidade" + }, + "idpBindingType": { + "message": "Tipo de Ligação" + }, + "idpSingleSignOnServiceUrl": { + "message": "URL de Serviço de Logon Único" + }, + "idpSingleLogoutServiceUrl": { + "message": "URL de Serviço de Desconexão Único" + }, + "idpX509PublicCert": { + "message": "Certificado Público X509" + }, + "idpOutboundSigningAlgorithm": { + "message": "Algoritmo de Assinatura de Saída" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Permitir Retorno de Autenticação Não Solicitada" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Assinar pedidos de autenticação" + }, + "ssoSettingsSaved": { + "message": "Configuração de logon único foi salva." + }, + "sponsoredFamilies": { + "message": "Bitwarden Families Gratuito" + }, + "sponsoredFamiliesEligible": { + "message": "Você e sua família estão elegíveis para o Bitwarden Families Gratuito. Resgate com seu e-mail pessoal para manter seus dados seguros mesmo quando você não estiver no trabalho." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Resgate o seu plano Bitwarden for Families Grátis hoje para manter seus dados seguros mesmo quando você não estiver no trabalho." + }, + "sponsoredFamiliesInclude": { + "message": "O plano Bitwarden Families inclui" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Acesso premium para até 6 usuários" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Coleções compartilhadas de segredos de Família" + }, + "badToken": { + "message": "O link não é mais válido. Peça ao patrocinador para reenviar a oferta." + }, + "reclaimedFreePlan": { + "message": "Plano gratuito recuperado" + }, + "redeem": { + "message": "Resgatar" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Selecione a organização que você gostaria de patrocinar" + }, + "familiesSponsoringOrgSelect": { + "message": "Qual oferta do Families Grátis você gostaria de resgatar?" + }, + "sponsoredFamiliesEmail": { + "message": "Digite seu e-mail pessoal para resgatar o Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Se você sair ou for removido desta organização, seu plano do Families irá expirar no final do período de cobrança." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Aceite a oferta de uma organização existente ou crie uma nova organização de Famílias." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Foi oferecida a você uma Organização do Plano Bitwarden Families gratuita. Para continuar, você precisa entrar na conta que recebeu a oferta." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Não é possível aceitar a oferta. Reenvie o e-mail da oferta da conta corporativa e tente novamente." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Não é possível aceitar a oferta. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Resgatar Oferta de Organização do Bitwarden Families Gratuita" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "A Oferta Gratuita do Bitwarden Families foi resgatada com sucesso" + }, + "redeemed": { + "message": "Resgatado" + }, + "redeemedAccount": { + "message": "Conta Resgatada" + }, + "revokeAccount": { + "message": "Revogar conta $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Reenviar e-mail de Patrocínio para $NAME$ patrocínio", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Plano Familiar Gratuito" + }, + "redeemNow": { + "message": "Resgatar Agora" + }, + "recipient": { + "message": "Destinatário" + }, + "removeSponsorship": { + "message": "Remover Patrocínio" + }, + "removeSponsorshipConfirmation": { + "message": "Depois de remover um patrocínio, você será responsável por essa assinatura e faturas relacionadas. Tem certeza de que quer continuar?" + }, + "sponsorshipCreated": { + "message": "Patrocínio Criado" + }, + "revoke": { + "message": "Revogar" + }, + "emailSent": { + "message": "E-mail Enviado" + }, + "revokeSponsorshipConfirmation": { + "message": "Depois de remover esta conta, o proprietário da organização das Famílias será responsável por essa assinatura e faturas relacionadas. Tem certeza de que quer continuar?" + }, + "removeSponsorshipSuccess": { + "message": "Patrocínio Removido" + }, + "ssoKeyConnectorUnavailable": { + "message": "Não foi possível acessar o Conector de Chave, tente novamente mais tarde." + }, + "keyConnectorUrl": { + "message": "URL de Conector de Chave" + }, + "sendVerificationCode": { + "message": "Enviar um código de verificação para o seu e-mail" + }, + "sendCode": { + "message": "Enviar Código" + }, + "codeSent": { + "message": "Código Enviado" + }, + "verificationCode": { + "message": "Código de Verificação" + }, + "confirmIdentity": { + "message": "Confirme a sua identidade para continuar." + }, + "verificationCodeRequired": { + "message": "O código de verificação é necessário." + }, + "invalidVerificationCode": { + "message": "Código de verificação inválido" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ está usando SSO com um servidor de chaves auto-hospedado. Não é mais necessária uma senha mestra para os membros desta organização entrarem.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Sair da Organização" + }, + "removeMasterPassword": { + "message": "Remover Senha Mestra" + }, + "removedMasterPassword": { + "message": "Senha mestra removida." + }, + "allowSso": { + "message": "Permitir autenticação por SSO" + }, + "allowSsoDesc": { + "message": "Uma vez definida, sua configuração será salva e os membros poderão se autenticar usando suas credenciais de Provedor de Identidade." + }, + "ssoPolicyHelpStart": { + "message": "Ativar o", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "Política de SSO", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "para exigir que todos os membros entrem com o SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "As políticas de Autenticação de SSO e Organização Única são necessárias para configurar a descriptografia do Conector de Chave." + }, + "memberDecryptionOption": { + "message": "Opções de Descriptografia de Membro" + }, + "memberDecryptionPassDesc": { + "message": "Uma vez autenticados, os membros irão descriptografar os dados do cofre usando suas Senhas Mestras." + }, + "keyConnector": { + "message": "Conector de Chave" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Conecte o Login com o SSO ao seu servidor de chave de descriptografia auto-hospedado. Usando esta opção, os membros não precisarão usar suas senhas mestras para descriptografar os dados do cofre." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Entrar com o SSO e Descriptografia de Conector de Chave\" está habilitado. Esta política se aplica apenas a Proprietários e Administradores." + }, + "enabledSso": { + "message": "Ativado o SSO" + }, + "disabledSso": { + "message": "Desativado o SSO" + }, + "enabledKeyConnector": { + "message": "Ativado o Conector de Chave" + }, + "disabledKeyConnector": { + "message": "Desativado o Conector de Chave" + }, + "keyConnectorWarning": { + "message": "Depois que o Conector de Chave é configurado, as Opções de Descriptografia de Membro não podem ser alteradas." + }, + "migratedKeyConnector": { + "message": "Migrado para o Conector de Chave" + }, + "paymentSponsored": { + "message": "Por favor, forneça uma forma de pagamento para associar à organização. Não se preocupe, não cobraremos nada, a menos que você selecione recursos adicionais ou seu patrocínio expire. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "A oferta de patrocínio expirou, você pode excluir a organização que criou para evitar uma cobrança no final do seu teste de 7 dias. Caso contrário, você pode fechar este alerta para manter a organização e assumir a responsabilidade pela cobrança." + }, + "newFamiliesOrganization": { + "message": "Nova Organização de Famílias" + }, + "acceptOffer": { + "message": "Aceitar Oferta" + }, + "sponsoringOrg": { + "message": "Organização Patrocinadora" + }, + "keyConnectorTest": { + "message": "Testar" + }, + "keyConnectorTestSuccess": { + "message": "Sucesso! Conector de Chave acessado." + }, + "keyConnectorTestFail": { + "message": "Não foi possível acessar o Conector de Chave. Verifique a URL." + }, + "sponsorshipTokenHasExpired": { + "message": "A oferta de patrocínio expirou." + }, + "freeWithSponsorship": { + "message": "GRÁTIS com patrocínio" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Recriar Usuário" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/pt_PT/messages.json b/apps/web/src/locales/pt_PT/messages.json new file mode 100644 index 0000000000..836c14fda1 --- /dev/null +++ b/apps/web/src/locales/pt_PT/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "Cofre Web $APP_NAME$", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Que tipo de item é este?" + }, + "name": { + "message": "Nome" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Novo URI" + }, + "username": { + "message": "Nome de utilizador" + }, + "password": { + "message": "Palavra-passe" + }, + "newPassword": { + "message": "Nova palavra-passe" + }, + "passphrase": { + "message": "Frase-passe" + }, + "notes": { + "message": "Notas" + }, + "customFields": { + "message": "Campos personalizados" + }, + "cardholderName": { + "message": "Titular do cartão" + }, + "number": { + "message": "Número" + }, + "brand": { + "message": "Marca" + }, + "expiration": { + "message": "Expiração" + }, + "securityCode": { + "message": "Código de segurança (CVV)" + }, + "identityName": { + "message": "Nome de identidade" + }, + "company": { + "message": "Empresa" + }, + "ssn": { + "message": "Número de segurança social" + }, + "passportNumber": { + "message": "Número do passaporte" + }, + "licenseNumber": { + "message": "Número da licença" + }, + "email": { + "message": "Email" + }, + "phone": { + "message": "Telefone" + }, + "january": { + "message": "Janeiro" + }, + "february": { + "message": "Fevereiro" + }, + "march": { + "message": "Março" + }, + "april": { + "message": "Abril" + }, + "may": { + "message": "Maio" + }, + "june": { + "message": "Junho" + }, + "july": { + "message": "Julho" + }, + "august": { + "message": "Agosto" + }, + "september": { + "message": "Setembro" + }, + "october": { + "message": "Outubro" + }, + "november": { + "message": "Novembro" + }, + "december": { + "message": "Dezembro" + }, + "title": { + "message": "Título" + }, + "mr": { + "message": "Sr" + }, + "mrs": { + "message": "Sra" + }, + "ms": { + "message": "Sra" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Mês de expiração" + }, + "expirationYear": { + "message": "Ano de expiração" + }, + "authenticatorKeyTotp": { + "message": "Chave do autenticador (TOTP)" + }, + "folder": { + "message": "Pasta" + }, + "newCustomField": { + "message": "Novo campo personalizado" + }, + "value": { + "message": "Valor" + }, + "dragToSort": { + "message": "Arraste para ordenar" + }, + "cfTypeText": { + "message": "Texto" + }, + "cfTypeHidden": { + "message": "Ocultado" + }, + "cfTypeBoolean": { + "message": "Booleano" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Remover" + }, + "unassigned": { + "message": "Não atribuido" + }, + "noneFolder": { + "message": "Nenhuma pasta", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Adicionar pasta" + }, + "editFolder": { + "message": "Editar pasta" + }, + "baseDomain": { + "message": "Domínio base", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Servidor", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exato" + }, + "startsWith": { + "message": "Começa por" + }, + "regEx": { + "message": "Expressão regular", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Deteção de correspondência", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Deteção de correspondência predefinida", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Nunca" + }, + "toggleVisibility": { + "message": "Alternar visibilidade" + }, + "toggleCollapse": { + "message": "Alternar colapso", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Gerar palavra-passe" + }, + "checkPassword": { + "message": "Verifica se a palavra-passe foi exposta." + }, + "passwordExposed": { + "message": "Esta palavra-passe foi exposta $VALUE$ vez(es) em brechas de dados. Deve alterá-la.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Esta palavra-passe não foi encontrada em nenhuma brecha de dados conhecida. Esta deve ser segura de utilizar." + }, + "save": { + "message": "Guardar" + }, + "cancel": { + "message": "Cancelar" + }, + "canceled": { + "message": "Cancelado" + }, + "close": { + "message": "Fechar" + }, + "delete": { + "message": "Eliminar" + }, + "favorite": { + "message": "Favorito" + }, + "unfavorite": { + "message": "Remover dos favoritos" + }, + "edit": { + "message": "Editar" + }, + "searchCollection": { + "message": "Pesquisar coleção" + }, + "searchFolder": { + "message": "Pesquisar pasta" + }, + "searchFavorites": { + "message": "Pesquisar favoritos" + }, + "searchType": { + "message": "Pesquisar tipo", + "description": "Search item type" + }, + "searchVault": { + "message": "Pesquisar cofre" + }, + "allItems": { + "message": "Todos os itens" + }, + "favorites": { + "message": "Favoritos" + }, + "types": { + "message": "Tipos" + }, + "typeLogin": { + "message": "Credencial" + }, + "typeCard": { + "message": "Cartão" + }, + "typeIdentity": { + "message": "Identidade" + }, + "typeSecureNote": { + "message": "Nota segura" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "Pastas" + }, + "collections": { + "message": "Coleções" + }, + "firstName": { + "message": "Primeiro nome" + }, + "middleName": { + "message": "Nome do meio" + }, + "lastName": { + "message": "Último nome" + }, + "fullName": { + "message": "Nome Completo" + }, + "address1": { + "message": "Endereço 1" + }, + "address2": { + "message": "Endereço 2" + }, + "address3": { + "message": "Endereço 3" + }, + "cityTown": { + "message": "Cidade / localidade" + }, + "stateProvince": { + "message": "Estado / província" + }, + "zipPostalCode": { + "message": "Código postal" + }, + "country": { + "message": "País" + }, + "shared": { + "message": "Partilhado" + }, + "attachments": { + "message": "Anexos" + }, + "select": { + "message": "Selecionar" + }, + "addItem": { + "message": "Adicionar item" + }, + "editItem": { + "message": "Editar item" + }, + "viewItem": { + "message": "View Item" + }, + "ex": { + "message": "ex.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Outros" + }, + "share": { + "message": "Partilhar" + }, + "moveToOrganization": { + "message": "Move to Organization" + }, + "valueCopied": { + "message": "$VALUE$ copiado(a)", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Copiar valor", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Copiar palavra-passe", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Copiar nome de utilizador", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Copiar número", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copiar código de segurança", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Copiar URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Meu cofre" + }, + "vault": { + "message": "Cofre" + }, + "moveSelectedToOrg": { + "message": "Move Selected to Organization" + }, + "deleteSelected": { + "message": "Eliminar seleção" + }, + "moveSelected": { + "message": "Mover seleção" + }, + "selectAll": { + "message": "Selecionar tudo" + }, + "unselectAll": { + "message": "Desfazer seleção" + }, + "launch": { + "message": "Iniciar" + }, + "newAttachment": { + "message": "Adicionar novo anexo" + }, + "deletedAttachment": { + "message": "Anexo eliminado" + }, + "deleteAttachmentConfirmation": { + "message": "Tem a certeza de que pretende eliminar este anexo?" + }, + "attachmentSaved": { + "message": "O anexo foi guardado." + }, + "file": { + "message": "Ficheiro" + }, + "selectFile": { + "message": "Selecione um ficheiro." + }, + "maxFileSize": { + "message": "O tamanho máximo do ficheiro é de 500 MB." + }, + "updateKey": { + "message": "Não pode utilizar esta funcionalidade até atualizar a sua chave de encriptação." + }, + "addedItem": { + "message": "Item adicionado" + }, + "editedItem": { + "message": "Item alterado" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ moved to $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Selected items moved to $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Eliminar item" + }, + "deleteFolder": { + "message": "Eliminar pasta" + }, + "deleteAttachment": { + "message": "Eliminar anexo" + }, + "deleteItemConfirmation": { + "message": "Tem a certeza de que pretende eliminar este item?" + }, + "deletedItem": { + "message": "Item enviado para o lixo" + }, + "deletedItems": { + "message": "Itens enviado para o lixo" + }, + "movedItems": { + "message": "Itens movidos" + }, + "overwritePasswordConfirmation": { + "message": "Tem a certeza de que pretende sobrescrever a palavra-passe atual?" + }, + "editedFolder": { + "message": "Pasta alterada" + }, + "addedFolder": { + "message": "Pasta adicionada" + }, + "deleteFolderConfirmation": { + "message": "Tem a certeza de que pretende eliminar esta pasta?" + }, + "deletedFolder": { + "message": "Pasta eliminada" + }, + "loggedOut": { + "message": "Sessão terminada" + }, + "loginExpired": { + "message": "A sua sessão expirou." + }, + "logOutConfirmation": { + "message": "Tem a certeza de que pretende terminar a sessão?" + }, + "logOut": { + "message": "Terminar sessão" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Sim" + }, + "no": { + "message": "Não" + }, + "loginOrCreateNewAccount": { + "message": "Inicie sessão ou crie uma nova conta para aceder ao seu cofre seguro." + }, + "createAccount": { + "message": "Criar conta" + }, + "logIn": { + "message": "Iniciar sessão" + }, + "submit": { + "message": "Submeter" + }, + "emailAddressDesc": { + "message": "Vai utilizar o seu endereço de email para iniciar sessão." + }, + "yourName": { + "message": "O seu nome" + }, + "yourNameDesc": { + "message": "Como deveremos chamá-lo?" + }, + "masterPass": { + "message": "Palavra-passe mestra" + }, + "masterPassDesc": { + "message": "A palavra-passe mestra é a palavra-passe que utiliza para aceder ao seu cofre. É muito importante que não se esqueça da sua palavra-passe mestra. Não existe maneira de recuperar a palavra-passe no caso de a esquecer." + }, + "masterPassHintDesc": { + "message": "Uma dica da palavra-passe mestra pode ajudar a lembrar-se da sua palavra-passe se a esquecer." + }, + "reTypeMasterPass": { + "message": "Reescreva a palavra-passe mestra" + }, + "masterPassHint": { + "message": "Dica da palavra-passe mestra (opcional)" + }, + "masterPassHintLabel": { + "message": "Dica da palavra-passe mestra" + }, + "settings": { + "message": "Definições" + }, + "passwordHint": { + "message": "Dica da palavra-passe" + }, + "enterEmailToGetHint": { + "message": "Introduza o endereço de email da sua conta para receber a dica da sua palavra-passe mestra." + }, + "getMasterPasswordHint": { + "message": "Obter dica da palavra-passe mestra" + }, + "emailRequired": { + "message": "O endereço de email é requerido." + }, + "invalidEmail": { + "message": "Endereço de email inválido." + }, + "masterPassRequired": { + "message": "A palavra-passe mestra é requerida." + }, + "masterPassLength": { + "message": "A palavra-passe mestra tem de ter pelo menos 8 caracteres." + }, + "masterPassDoesntMatch": { + "message": "A confirmação da palavra-passe mestra não corresponde." + }, + "newAccountCreated": { + "message": "A sua nova conta foi criada! Agora pode iniciar sessão." + }, + "masterPassSent": { + "message": "Enviámos-lhe um email com a dica da sua palavra-passe mestra." + }, + "unexpectedError": { + "message": "Ocorreu um erro inesperado." + }, + "emailAddress": { + "message": "Endereço de email" + }, + "yourVaultIsLocked": { + "message": "O seu cofre está bloqueado. Verifique a sua palavra-passe mestra para continuar." + }, + "unlock": { + "message": "Desbloquear" + }, + "loggedInAsEmailOn": { + "message": "Sessão iniciada como $EMAIL$ em $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Palavra-passe mestra inválida" + }, + "lockNow": { + "message": "Bloquear agora" + }, + "noItemsInList": { + "message": "Não existem itens para listar." + }, + "noCollectionsInList": { + "message": "Não existem coleções para listar." + }, + "noGroupsInList": { + "message": "Não existem grupos para listar." + }, + "noUsersInList": { + "message": "Não existem utilizadores para listar." + }, + "noEventsInList": { + "message": "Não existem eventos para listar." + }, + "newOrganization": { + "message": "Nova organização" + }, + "noOrganizationsList": { + "message": "Você não pertence a nenhuma organização. Organizações permitem-lhe partilhar itens em segurança com outros utilizadores." + }, + "versionNumber": { + "message": "Versão $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Introduza o código de verificação de 6 dígitos da sua aplicação de autenticador." + }, + "enterVerificationCodeEmail": { + "message": "Introduza o código de verificação de 6 dígitos que foi enviado por email para $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Email de verificação enviado para $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Memorizar-me" + }, + "sendVerificationCodeEmailAgain": { + "message": "Enviar email com o código de confirmação novamente" + }, + "useAnotherTwoStepMethod": { + "message": "Utilizar outro método de início de sessão de dois passos" + }, + "insertYubiKey": { + "message": "Introduza a sua YubiKey na porta USB do seu computador, depois toque no botão da mesma." + }, + "insertU2f": { + "message": "Introduza a sua chave de segurança na porta USB do seu computador. Se tiver um botão, toque no mesmo." + }, + "loginUnavailable": { + "message": "Início de sessão indisponível" + }, + "noTwoStepProviders": { + "message": "Esta conta tem o início de sessão de dois passos ativado, no entanto, nenhum dos provedores de início de sessão de dois passos configurados são suportados por este navegador web." + }, + "noTwoStepProviders2": { + "message": "Por favor utilize um navegador web suportado (tal como o Chrome) e/ou adicione provedores adicionais que são melhor suportados entre navegadores web (tal como uma aplicação de autenticador)." + }, + "twoStepOptions": { + "message": "Opções de início de sessão de dois passos" + }, + "recoveryCodeDesc": { + "message": "Perdeu o acesso a todos os seus provedores de dois passos? Utilize o seu código de recuperação para desativar todos os provedores de dois passos da sua conta." + }, + "recoveryCodeTitle": { + "message": "Código de recuperação" + }, + "authenticatorAppTitle": { + "message": "Aplicação de autenticador" + }, + "authenticatorAppDesc": { + "message": "Utilize uma aplicação de autenticador (tal como Authy ou Google Authenticator) para gerar códigos de verificação baseados na hora.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "Chave de segurança YubiKey OTP" + }, + "yubiKeyDesc": { + "message": "Utilize uma YubiKey para aceder à sua conta. Funciona com YubiKey série 4, série 5, e dispositivos NEO." + }, + "duoDesc": { + "message": "Verifique com Duo Security utilizando a aplicação Duo Mobile, SMS, chamada telefónica, ou chave de segurança U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verifique com Duo Security para a sua organização utilizando a aplicação Duo Mobile, SMS, chamada telefónica, ou chave de segurança U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Utilize qualquer chave de segurança ativada por FIDO U2F para aceder à sua conta." + }, + "u2fTitle": { + "message": "Chave de segurança FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Os códigos de verificação vão ser enviados por email para si." + }, + "continue": { + "message": "Continuar" + }, + "organization": { + "message": "Organização" + }, + "organizations": { + "message": "Organizações" + }, + "moveToOrgDesc": { + "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organization that you wish to move these items to. Moving to an organization transfers ownership of the items to that organization. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "Edite as coleções em que este item está a ser partilhado. Apenas utilizadores da organização com acesso a estas coleções podem ver este item." + }, + "deleteSelectedItemsDesc": { + "message": "Selecionou $COUNT$ item(s) para eliminar. Tem a certeza de que pretende eliminar todos estes itens?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Escolha a pasta para onde que mover o(s) $COUNT$ item(s) selecionado(s).", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organization, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Código de verificação (TOTP)" + }, + "copyVerificationCode": { + "message": "Copiar código de confirmação" + }, + "warning": { + "message": "Aviso" + }, + "confirmVaultExport": { + "message": "Confirm Vault Export" + }, + "exportWarningDesc": { + "message": "Esta exportação contém os seus dados do cofre num formato desencriptado. Não deve armazenar ou enviar o ficheiro exportado através de canais inseguros (como email). Elimine-o imediatamente após o utilizar." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Exportar" + }, + "exportVault": { + "message": "Exportar cofre" + }, + "fileFormat": { + "message": "Formato do ficheiro" + }, + "exportSuccess": { + "message": "Os dados do seu cofre foram exportados." + }, + "passwordGenerator": { + "message": "Gerador de palavras-passe" + }, + "minComplexityScore": { + "message": "Pontuação mínima de complexidade" + }, + "minNumbers": { + "message": "Números mínimos" + }, + "minSpecial": { + "message": "Especiais mínimos", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Evitar caracteres ambíguos" + }, + "regeneratePassword": { + "message": "Regenerar palavra-passe" + }, + "length": { + "message": "Comprimento" + }, + "numWords": { + "message": "Número de palavras" + }, + "wordSeparator": { + "message": "Separador de palavras" + }, + "capitalize": { + "message": "Capitalizar", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Incluir número" + }, + "passwordHistory": { + "message": "Histórico de palavras-passe" + }, + "noPasswordsInList": { + "message": "Não existem palavras-passe para listar." + }, + "clear": { + "message": "Limpar", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Conta atualizada" + }, + "changeEmail": { + "message": "Alterar email" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "Novo email" + }, + "code": { + "message": "Código" + }, + "changeEmailDesc": { + "message": "Enviámos um código de verificação para $EMAIL$. Por favor verifique este código no seu email e introduza-o abaixo para finalizar a alteração de endereço de email.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceder irá terminar a sua sessão atual, requerendo-lhe voltar a iniciar sessão. Sessões ativas noutros dispositivos podem continuar ativas por até uma hora." + }, + "emailChanged": { + "message": "Email alterado" + }, + "logBackIn": { + "message": "Por favor volte a iniciar sessão." + }, + "logBackInOthersToo": { + "message": "Por favor volte a iniciar sessão. Se estiver a usar outras aplicações Bitwarden termine sessão e volte a iniciar sessão nessas também." + }, + "changeMasterPassword": { + "message": "Alterar palavra-passe mestra" + }, + "masterPasswordChanged": { + "message": "Palavra-passe mestra alterada" + }, + "currentMasterPass": { + "message": "Palavra-passe mestra atual" + }, + "newMasterPass": { + "message": "Nova palavra-passe mestra" + }, + "confirmNewMasterPass": { + "message": "Confirmar nova palavra-passe" + }, + "encKeySettings": { + "message": "Definições da chave de encriptação" + }, + "kdfAlgorithm": { + "message": "Algoritmo KDF" + }, + "kdfIterations": { + "message": "Iterações KDF" + }, + "kdfIterationsDesc": { + "message": "Iterações KDF mais altas podem ajudar a proteger a sua palavra-passe mestra de ser forçada por um atacante. Nós recomendamos um valor de $VALUE$ ou mais.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Definir as suas iterações KDF muito altas pode resultar em desempenho fraco ao iniciar sessão (e desbloquear) o Bitwarden em dispositivos com CPUs mais lentos. Nós recomendamos que aumente o valor em incrementos de $INCREMENT$ e depois testar todos os seus dispositivos.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Alterar KDF" + }, + "encKeySettingsChanged": { + "message": "Definições da chave de encriptação alteradas" + }, + "dangerZone": { + "message": "Zona perigosa" + }, + "dangerZoneDesc": { + "message": "Cuidado, estas ações não são reversíveis!" + }, + "deauthorizeSessions": { + "message": "Desautorizar sessões" + }, + "deauthorizeSessionsDesc": { + "message": "Preocupado pela sua conta ter sessão iniciada noutro dispositivo? Proceda abaixo para desautorizar todos os computadores ou dispositivos que tenha utilizado previamente. Este passo de segurança é recomendado se utilizou um computador público previamente ou guardou acidentalmente a sua palavra-passe num dispositivo que não lhe pertence. Este passo também irá limpar todas as sessões de dois passos previamente memorizadas." + }, + "deauthorizeSessionsWarning": { + "message": "Proceder também irá terminar a sua sessão atual, requerendo-lhe voltara a iniciar sessão. Irá ser-lhe solicitado o código de início de sessão de dois passos, se ativado. Sessões ativas noutros dispositivos podem continuar ativas por até uma hora." + }, + "sessionsDeauthorized": { + "message": "Todas as sessões desautorizadas" + }, + "purgeVault": { + "message": "Purgar cofre" + }, + "purgedOrganizationVault": { + "message": "Cofre da organização purgado." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Proceda abaixo para eliminar todos os itens e pastas do seu cofre. Itens que pertençam a uma organização que partilhe não serão eliminados." + }, + "purgeOrgVaultDesc": { + "message": "Proceda abaixo para eliminar todos os itens no cofre da organização." + }, + "purgeVaultWarning": { + "message": "Purgar o seu cofre é permanente. Não pode ser desfeito." + }, + "vaultPurged": { + "message": "O seu cofre foi purgado." + }, + "deleteAccount": { + "message": "Eliminar conta" + }, + "deleteAccountDesc": { + "message": "Proceda abaixo para eliminar a sua conta e todos os seus dados associados." + }, + "deleteAccountWarning": { + "message": "A eliminação da sua conta é permanente. Não pode ser desfeita." + }, + "accountDeleted": { + "message": "Conta eliminada" + }, + "accountDeletedDesc": { + "message": "A sua conta foi encerrada e todos os dados associados foram eliminados." + }, + "myAccount": { + "message": "Minha conta" + }, + "tools": { + "message": "Ferramentas" + }, + "importData": { + "message": "Importar dados" + }, + "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." + }, + "importSuccess": { + "message": "Os dados foram importados com sucesso para o seu cofre." + }, + "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": "Os dados não estão formatados corretamente. Por favor verifique o ficheiro de importação e tente novamente." + }, + "importNothingError": { + "message": "Nada foi importado." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "selectFormat": { + "message": "Selecione o formato do ficheiro a importar" + }, + "selectImportFile": { + "message": "Selecione o ficheiro a importar" + }, + "orCopyPasteFileContents": { + "message": "ou copie/cole o seu conteúdo" + }, + "instructionsFor": { + "message": "Instruções para $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Opções" + }, + "optionsDesc": { + "message": "Personalize a sua experiência do cofre web." + }, + "optionsUpdated": { + "message": "Opções atualizadas" + }, + "language": { + "message": "Idioma" + }, + "languageDesc": { + "message": "Alterar o idioma utilizado pelo cofre web." + }, + "disableIcons": { + "message": "Desativar ícones de websites" + }, + "disableIconsDesc": { + "message": "Os ícones de websites providenciam uma imagem reconhecível ao lado de cada item de credencial no seu cofre." + }, + "enableGravatars": { + "message": "Ativar Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Utilizar imagens de avatar carregadas a partir de gravatar.com." + }, + "enableFullWidth": { + "message": "Ativar layout de largura total", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Permitir que o cofre web expanda a largura total da janela do navegador." + }, + "default": { + "message": "Predefinido" + }, + "domainRules": { + "message": "Regras de domínios" + }, + "domainRulesDesc": { + "message": "Se tiver o mesmo início de sessão em múltiplos websites de domínios diferentes, pode marcar o website como \"equivalente\". Domínios \"globais\" são aqueles já criados para si pelo Bitwarden." + }, + "globalEqDomains": { + "message": "Domínios equivalentes globais" + }, + "customEqDomains": { + "message": "Domínios equivalentes personalizados" + }, + "exclude": { + "message": "Excluir" + }, + "include": { + "message": "Incluir" + }, + "customize": { + "message": "Personalizar" + }, + "newCustomDomain": { + "message": "Novo domínio personalizado" + }, + "newCustomDomainDesc": { + "message": "Introduza uma lista de domínios separados por vírgulas. Apenas são permitidos domínios \"base\". Por exemplo, introduza \"google.com\" em vez de \"www.google.com\". Pode também introduzir \"androidapp://package.name\" para associar uma aplicação android a outros domínios." + }, + "customDomainX": { + "message": "Domínio personalizado $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domínios atualizados" + }, + "twoStepLogin": { + "message": "Início de sessão de dois passos" + }, + "twoStepLoginDesc": { + "message": "Reforce a segurança da sua conta ao requerer um passo adicional para iniciar sessão." + }, + "twoStepLoginOrganizationDesc": { + "message": "Requeira início de sessão de dois passos para os utilizadores da sua organização ao configurar os provedores ao nível da organização." + }, + "twoStepLoginRecoveryWarning": { + "message": "Ativar o início de sessão de dois passos pode bloquear-lhe permanentemente o acesso à sua conta Bitwarden. Um código de recuperação permite-lhe aceder à sua conta caso já não possa utilizar o seu provedor normal de início de sessão de dois passos (ex. perde o seu dispositivo). O apoio do Bitwarden não irá poder assistir-lhe se perder acesso à sua conta. Recomendamos que anote ou imprima o código de recuperação e o mantenha num local seguro." + }, + "viewRecoveryCode": { + "message": "Ver código de recuperação" + }, + "providers": { + "message": "Provedores", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Ativar" + }, + "enabled": { + "message": "Ativado" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Adesão Premium" + }, + "premiumRequired": { + "message": "Premium requerido" + }, + "premiumRequiredDesc": { + "message": "É requerida uma adesão premium para utilizar esta funcionalidade." + }, + "youHavePremiumAccess": { + "message": "Você tem acesso premium" + }, + "alreadyPremiumFromOrg": { + "message": "Você já tem acesso às funcionalidades premium por causa de uma organização da qual é um membro." + }, + "manage": { + "message": "Gerir" + }, + "disable": { + "message": "Desativar" + }, + "twoStepLoginProviderEnabled": { + "message": "Este provedor de início de sessão de dois passos está ativado na sua conta." + }, + "twoStepLoginAuthDesc": { + "message": "Introduza a sua palavra-passe mestra para modificar as definições do início de sessão de dois passos." + }, + "twoStepAuthenticatorDesc": { + "message": "Siga estes passos para ativar o início de sessão de dois passos com uma aplicação de autenticador:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Transfira uma aplicação de autenticador de dois passos" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Precisa de uma aplicação de autenticador de dois passos? Transfira uma das seguintes" + }, + "iosDevices": { + "message": "Dispositivos iOS" + }, + "androidDevices": { + "message": "Dispositivos Android" + }, + "windowsDevices": { + "message": "Dispositivos Windows" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Estas aplicações são recomendadas, todavia outras aplicações de autenticador também funcionarão." + }, + "twoStepAuthenticatorScanCode": { + "message": "Digitalize este código QR com a sua aplicação de autenticador" + }, + "key": { + "message": "Chave" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Introduza o código de confirmação de 6 dígitos indicado pela aplicação" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "No caso de precisar de adicioná-lo a outro dispositivo, abaixo está o código QR (ou chave) requerido pela sua aplicação de autenticador." + }, + "twoStepDisableDesc": { + "message": "Tem certeza de que pretende desativar este provedor de início de sessão de dois passos?" + }, + "twoStepDisabled": { + "message": "Provedor de início de sessão de dois passos desativado." + }, + "twoFactorYubikeyAdd": { + "message": "Adicionar uma nova YubiKey à sua conta" + }, + "twoFactorYubikeyPlugIn": { + "message": "Ligue a YubiKey (NEO ou série 4) numa porta USB do seu computador." + }, + "twoFactorYubikeySelectKey": { + "message": "Selecione o primeiro campo de entrada YubiKey vazio abaixo." + }, + "twoFactorYubikeyTouchButton": { + "message": "Toque no botão da YubiKey." + }, + "twoFactorYubikeySaveForm": { + "message": "Guarde o formulário." + }, + "twoFactorYubikeyWarning": { + "message": "Devido a limitações da plataforma, as YubiKeys não podem ser utilizadas em todas as aplicações Bitwarden. Deve ativar outro provedor de início de sessão de dois passos para que possa aceder à sua conta quando as YubiKeys não puderem ser utilizadas. Plataformas suportadas:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Cofre web, aplicação para computador, CLI e todas as extensões de navegador num dispositivo com porta USB que pode aceitar a sua YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Aplicações móveis num dispositivo com capacidades NFC ou porta de dados que possam aceitar a sua YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "Chave $INDEX$ U2F", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "Suporte NFC" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Uma das minhas chaves suporta NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Se uma das suas YubiKeys suporta NFC (como a YubiKey NEO), irá ser-lhe solicitado num dispositivo móvel sempre que a disponibilidade NFC seja detetada." + }, + "yubikeysUpdated": { + "message": "YubiKeys atualizadas" + }, + "disableAllKeys": { + "message": "Desativar todas as chaves" + }, + "twoFactorDuoDesc": { + "message": "Introduza a informação da aplicação Bitwarden do painel de administrador do seu Duo." + }, + "twoFactorDuoIntegrationKey": { + "message": "Chave de integração" + }, + "twoFactorDuoSecretKey": { + "message": "Chave secreta" + }, + "twoFactorDuoApiHostname": { + "message": "Servidor API" + }, + "twoFactorEmailDesc": { + "message": "Siga estes passos para ativar o início de sessão de dois passos com o email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Introduza o email onde quer receber códigos de confirmação" + }, + "twoFactorEmailEnterCode": { + "message": "Introduza o código de confirmação de 6 dígitos indicado no email" + }, + "sendEmail": { + "message": "Enviar email" + }, + "twoFactorU2fAdd": { + "message": "Adicione uma chave de segurança FIDO U2F à sua conta" + }, + "removeU2fConfirmation": { + "message": "Tem a certeza de que pretende remover esta chave de segurança?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Ler chave" + }, + "keyCompromised": { + "message": "A chave foi comprometida." + }, + "twoFactorU2fGiveName": { + "message": "Dê à chave de segurança um nome amigável para a identificar." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Coloque a chave de segurança na porta USB do seu computador e clique no botão \"Ler chave\"." + }, + "twoFactorU2fTouchButton": { + "message": "Se a chave de segurança tiver um botão, toque-lhe." + }, + "twoFactorU2fSaveForm": { + "message": "Guarde o formulário." + }, + "twoFactorU2fWarning": { + "message": "Devido a limitações da plataforma, as FIDO U2F não podem ser utilizadas em todas as aplicações Bitwarden. Deve ativar outro provedor de início de sessão de dois passos para que possa aceder à sua conta quando as FIDO U2F não puderem ser utilizadas. Plataformas suportadas:" + }, + "twoFactorU2fSupportWeb": { + "message": "Cofre web e extensões de navegador num computador/portátil com um navegador com U2F ativado (Chrome, Opera, Vivaldi ou Firefox com FIDO U2F ativado)." + }, + "twoFactorU2fWaiting": { + "message": "A aguardar que toque no botão da sua chave de segurança" + }, + "twoFactorU2fClickSave": { + "message": "Clique no botão \"Guardar\" abaixo para ativar esta chave de segurança para o início de sessão em dois passos." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Ocorreu um problema ao ler a chave de segurança. Tente novamente." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "O seu código Bitwarden de recuperação de início de sessão de dois passos" + }, + "twoFactorRecoveryNoCode": { + "message": "Ainda não ativou qualquer provedor de início de sessão de dois passos. Depois de ativar um provedor de início de sessão de dois passos pode voltar aqui para obter o seu código de recuperação." + }, + "printCode": { + "message": "Imprimir código", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Relatórios" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Relatório de websites inseguros" + }, + "unsecuredWebsitesReportDesc": { + "message": "Utilizar websites inseguros com o esquema http:// pode ser perigoso. Se o website permitir, deve sempre aceder-lo utilizando o esquema https:// para que a sua ligação seja encriptada." + }, + "unsecuredWebsitesFound": { + "message": "Websites inseguros encontrados" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Encontrámos $COUNT$ itens no seu cofre com URIs inseguros. Deve alterar os seus esquemas de URI para https:// se o website permitir.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Nenhum item no seu cofre tem URIs inseguros." + }, + "inactive2faReport": { + "message": "Relatório de 2FA inativo" + }, + "inactive2faReportDesc": { + "message": "Autenticação de dois fatores (2FA) é uma definição de segurança importante que ajuda a tornar a as suas contas seguras. Se o website a oferece, deve sempre ativar a autenticação de dois fatores." + }, + "inactive2faFound": { + "message": "Credenciais sem 2FA encontradas" + }, + "inactive2faFoundDesc": { + "message": "Encontrámos $COUNT$ website(s) no seu cofre que podem não estar configurados com autenticação de dois fatores (de acordo com twofactorauth.org). Para melhor proteger estas contas, deve ativar a autenticação de dois fatores.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Nenhum website foi encontrado no seu cofre com uma configuração de autenticação de dois fatores em falta." + }, + "instructions": { + "message": "Instruções" + }, + "exposedPasswordsReport": { + "message": "Relatório de palavras-passe expostas" + }, + "exposedPasswordsReportDesc": { + "message": "Exposed passwords are passwords have been uncovered in known data breaches that were released publicly or sold on the dark web by hackers." + }, + "exposedPasswordsFound": { + "message": "Palavras-passe expostas encontradas" + }, + "exposedPasswordsFoundDesc": { + "message": "Encontrámos $COUNT$ itens no seu cofre que têm palavras-passe que foram expostas em brechas de dados conhecidas. Deve alterá-las para utilizar uma nova palavra-passe.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Nenhum item no seu cofre tem palavras-passe que foram expostas em brechas de dados conhecidas." + }, + "checkExposedPasswords": { + "message": "Verificar palavras-passe expostas" + }, + "exposedXTimes": { + "message": "Exposta $COUNT$ vez(es)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Relatório de palavras-passe fracas" + }, + "weakPasswordsReportDesc": { + "message": "As palavras-passe fracas podem ser facilmente adivinhadas por hackers e ferramentas automáticas que são utilizadas para decifrar palavras-passe. O gerador de palavras-passe do Bitwarden pode ajudar-lhe a criar palavras-passe fortes." + }, + "weakPasswordsFound": { + "message": "Palavras-passe fracas encontradas" + }, + "weakPasswordsFoundDesc": { + "message": "Encontrámos $COUNT$ itens no seu cofre com palavras-passe que não são fortes. Deve atualizá-los para utilizar palavras-passe mais fortes.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Nenhum item no seu cofre tem palavras-passe fracas." + }, + "reusedPasswordsReport": { + "message": "Relatório de palavras-passe reutilizadas" + }, + "reusedPasswordsReportDesc": { + "message": "Se um serviço foi comprometido, reutilizar a mesma palavras-passe noutro lugar pode permitir ao hackers ganhar acesso facilmente a mais das suas contas online. Deve utilizar uma palavra-passe única para cada conta ou serviço." + }, + "reusedPasswordsFound": { + "message": "Palavras-passe reutilizadas encontradas" + }, + "reusedPasswordsFoundDesc": { + "message": "Encontrámos $COUNT$ palavras-passe que estão a ser reutilizadas no seu cofre. Deve alterá-las para um valor único.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Nenhuma credencial no seu cofre tem palavras-passe que estão a ser reutilizadas." + }, + "reusedXTimes": { + "message": "Reutilizada $COUNT$ vezes", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Relatório de brecha de dados" + }, + "breachDesc": { + "message": "Uma \"brecha\" é um incidente em que os dados de um site foram ilegalmente acedidos e tornados públicos. Verifique o tipo de dados comprometidos (endereços de email, palavras-passe, cartões de crédito etc.) e tome as medidas apropriadas, como mudar as palavras-passe." + }, + "breachCheckUsernameEmail": { + "message": "Verifique quaisquer nomes de utilizador ou endereços de email que utilize." + }, + "checkBreaches": { + "message": "Verificar brechas" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ não encontrado em nenhuma brecha de dados conhecida.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Boas notícias", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ foi encontrado em $COUNT$ diferentes brechas de dados online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Encontradas contas alvo de brecha" + }, + "compromisedData": { + "message": "Dados comprometidos" + }, + "website": { + "message": "Website" + }, + "affectedUsers": { + "message": "Utilizadores afetados" + }, + "breachOccurred": { + "message": "Brecha ocorreu" + }, + "breachReported": { + "message": "Brecha relatada" + }, + "reportError": { + "message": "Ocorreu um erro ao tentar carregar o relatório. Tente novamente" + }, + "billing": { + "message": "Faturação" + }, + "accountCredit": { + "message": "Crédito da conta", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Saldo da conta", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Adicionar crédito", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Montante", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "O crédito adicionado irá aparecer na sua conta após o pagamento ser totalmente processado. Alguns métodos de pagamento são mais atrasados e podem levar mais tempo a processar do que outros." + }, + "makeSureEnoughCredit": { + "message": "Por favor certifique-se de que sua conta tem crédito suficiente disponível para esta compra. Se a sua conta não tem crédito suficiente disponível, o seu método de pagamento predefinido guardado irá ser utilizado para a diferença. Pode adicionar crédito à sua conta a partir da página de faturação." + }, + "creditAppliedDesc": { + "message": "O crédito da sua conta pode ser utilizado para fazer compras. Qualquer crédito disponível irá ser automaticamente aplicado em faturas geradas para esta conta." + }, + "goPremium": { + "message": "Tornar-se Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Atualizou para premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Atualize a sua conta para uma adesão premium e desbloqueie funcionalidades adicionais fantásticas." + }, + "premiumSignUpStorage": { + "message": "1 GB de armazenamento encriptado para anexos de ficheiros." + }, + "premiumSignUpTwoStep": { + "message": "Opções adicionais de início de sessão de dois passos, como YubiKey, FIDO U2F, e Duo." + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "Higiene de palavras-passe, saúde das contas, e relatórios de brechas de dados para manter o seu cofre seguro." + }, + "premiumSignUpTotp": { + "message": "Gerador de códigos de verificação TOTP (2FA) para aceder ao seu cofre." + }, + "premiumSignUpSupport": { + "message": "Prioridade no apoio ao cliente." + }, + "premiumSignUpFuture": { + "message": "Todas as funcionalidades premium futuras. Mais a chegar brevemente!" + }, + "premiumPrice": { + "message": "Tudo por apenas $PRICE$ /ano!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Extras" + }, + "premiumAccess": { + "message": "Acesso Premium" + }, + "premiumAccessDesc": { + "message": "Pode adicionar acesso premium a todos os membros da sua organização por $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Armazenamento adicional (GB)" + }, + "additionalStorageGbDesc": { + "message": "# de GB adicionais" + }, + "additionalStorageIntervalDesc": { + "message": "O seu plano vem com $SIZE$ de armazenamento encriptado de ficheiros. Pode adicionar armazenamento adicional por $PRICE$ por GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Resumo" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "ano" + }, + "month": { + "message": "mês" + }, + "monthAbbr": { + "message": "m.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "O seu método de pagamento será imediatamente cobrado e, de forma regular, anualmente. Pode cancelar a qualquer momento." + }, + "paymentCharged": { + "message": "O seu método de pagamento será imediatamente cobrado e, de forma regular, a cada $INTERVAL$. Pode cancelar a qualquer momento.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "O seu plano inclui um teste gratuito de 7 dias. O seu método de pagamento não irá ser cobrado até o período de teste acabar. A faturação irá ocorreu de forma recorrente a cada $INTERVAL$. Pode cancelar a qualquer momento." + }, + "paymentInformation": { + "message": "Informação de pagamento" + }, + "billingInformation": { + "message": "Billing Information" + }, + "creditCard": { + "message": "Cartão de crédito" + }, + "paypalClickSubmit": { + "message": "Clique no botão PayPal para aceder à sua conta PayPal, depois clique no botão Submeter abaixo para continuar." + }, + "cancelSubscription": { + "message": "Cancelar subscrição" + }, + "subscriptionCanceled": { + "message": "A subscrição foi cancelada." + }, + "pendingCancellation": { + "message": "Cancelamento pendente" + }, + "subscriptionPendingCanceled": { + "message": "A subscrição foi marcada para cancelamento no fim do atual período de faturação." + }, + "reinstateSubscription": { + "message": "Restabelecer subscrição" + }, + "reinstateConfirmation": { + "message": "Tem a certeza de que pretende eliminar o pedido de cancelamento pendente e restabelecer a sua subscrição?" + }, + "reinstated": { + "message": "A subscrição foi restabelecida." + }, + "cancelConfirmation": { + "message": "Tem a certeza de que pretende cancelar? Irá perder acesso a todas as funcionalidades desta subscrição no fim deste ciclo de faturação." + }, + "canceledSubscription": { + "message": "A subscrição foi cancelada." + }, + "neverExpires": { + "message": "Nunca expira" + }, + "status": { + "message": "Estado" + }, + "nextCharge": { + "message": "Próxima cobrança" + }, + "details": { + "message": "Detalhes" + }, + "downloadLicense": { + "message": "Transferir licença" + }, + "updateLicense": { + "message": "Atualizar licença" + }, + "updatedLicense": { + "message": "Licença atualizada" + }, + "manageSubscription": { + "message": "Gerir subscrição" + }, + "storage": { + "message": "Armazenamento" + }, + "addStorage": { + "message": "Adicionar armazenamento" + }, + "removeStorage": { + "message": "Remover armazenamento" + }, + "subscriptionStorage": { + "message": "A sua subscrição tem um total de $MAX_STORAGE$ GB de armazenamento de ficheiros encriptado. Está a utilizar atualmente $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Método de pagamento" + }, + "noPaymentMethod": { + "message": "Nenhum método de pagamento registado." + }, + "addPaymentMethod": { + "message": "Adicionar método de pagamento" + }, + "changePaymentMethod": { + "message": "Alterar método de pagamento" + }, + "invoices": { + "message": "Faturas" + }, + "noInvoices": { + "message": "Sem faturas." + }, + "paid": { + "message": "Paga", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Por pagar", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transações", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Sem transações." + }, + "chargeNoun": { + "message": "Cobrança", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Reembolsado", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Quaisquer cobranças aparecerão no seu extrato como $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB de armazenamento a adicionar" + }, + "gbStorageRemove": { + "message": "GB de armazenamento a remover" + }, + "storageAddNote": { + "message": "Adicionar armazenamento irá resultar em ajustamentos aos seus totais a faturar e imediatamente cobrados no seu método de pagamento registado. A primeira cobrança será alocada pelo remanescente do atual ciclo de faturação." + }, + "storageRemoveNote": { + "message": "Eliminar armazenamento irá resultar em ajustamentos nos totais a faturar que irão ser alocados como créditos na próxima cobrança de faturação." + }, + "adjustedStorage": { + "message": "Ajustado $AMOUNT$ GB de armazenamento.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contacte o apoio ao cliente" + }, + "updatedPaymentMethod": { + "message": "Método de pagamento atualizado." + }, + "purchasePremium": { + "message": "Comprar Premium" + }, + "licenseFile": { + "message": "Ficheiro de licença" + }, + "licenseFileDesc": { + "message": "O seu ficheiro de licença irá ser chamado algo como $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Para atualizar a sua conta para uma adesão premium precisa de carregar um ficheiro de licença válido." + }, + "uploadLicenseFileOrg": { + "message": "Para criar uma organização alojada nas suas premissas precisa de carregar um ficheiro de licença válido." + }, + "accountEmailMustBeVerified": { + "message": "O endereço de email da sua conta precisa de ser verificado." + }, + "newOrganizationDesc": { + "message": "Organizações permitem-lhe partilhar partes do seu cofre com outros, bem como gerir utilizadores relacionados com uma entidade específica, como uma família, pequena equipa ou grande empresa." + }, + "generalInformation": { + "message": "Informação geral" + }, + "organizationName": { + "message": "Nome da organização" + }, + "accountOwnedBusiness": { + "message": "Esta conta é propriedade de uma empresa." + }, + "billingEmail": { + "message": "Email de faturação" + }, + "businessName": { + "message": "Nome da empresa" + }, + "chooseYourPlan": { + "message": "Escolha o seu plano" + }, + "users": { + "message": "Utilizadores" + }, + "userSeats": { + "message": "Lugares de utilizador" + }, + "additionalUserSeats": { + "message": "Lugares de utilizador adicionais" + }, + "userSeatsDesc": { + "message": "# de lugares de utilizador" + }, + "userSeatsAdditionalDesc": { + "message": "O seu plano vem com $BASE_SEATS$ lugares de utilizador. Pode adicionar utilizadores adicionais por $SEAT_PRICE$ por utilizador /mês.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "De quantos lugares de utilizador precisa? Pode também adicionar lugares adicionais mais tarde se necessário." + }, + "planNameFree": { + "message": "Gratuito", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Para teste ou utilizadores pessoais partilharem com $COUNT$ outro utilizador.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Famílias" + }, + "planDescFamilies": { + "message": "Para uso pessoal, para partilhar com a família e amigos." + }, + "planNameTeams": { + "message": "Equipas" + }, + "planDescTeams": { + "message": "Para empresas e outras equipas e organizações." + }, + "planNameEnterprise": { + "message": "Empresarial" + }, + "planDescEnterprise": { + "message": "Para empresas e outras grandes organizações." + }, + "freeForever": { + "message": "Gratuito para sempre" + }, + "includesXUsers": { + "message": "inclui $COUNT$ utilizadores", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Utilizadores adicionais" + }, + "costPerUser": { + "message": "$COST$ por utilizador", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limitado a $COUNT$ utilizadores (incluindo você)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limitado a $COUNT$ coleções", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Adicione e partilhe com até $COUNT$ utilizadores", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Adicione e partilhe com utilizadores ilimitados" + }, + "createUnlimitedCollections": { + "message": "Crie coleções ilimitadas" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ de armazenamento de ficheiros encriptado", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Alojamento próprio (opcional)" + }, + "usersGetPremium": { + "message": "Os utilizadores obtêm acesso a funcionalidades de adesão premium" + }, + "controlAccessWithGroups": { + "message": "Controle o acesso de utilizadores com grupos" + }, + "syncUsersFromDirectory": { + "message": "Sincronize os seus utilizadores e grupos de um diretório" + }, + "trackAuditLogs": { + "message": "Siga as ações dos utilizadores com registos de auditoria" + }, + "enforce2faDuo": { + "message": "Impor 2FA com Duo" + }, + "priorityCustomerSupport": { + "message": "Prioridade no apoio ao cliente" + }, + "xDayFreeTrial": { + "message": "$COUNT$ dia(s) de teste gratuito, cancele quando quiser", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Mensalmente" + }, + "annually": { + "message": "Anualmente" + }, + "basePrice": { + "message": "Preço base" + }, + "organizationCreated": { + "message": "Organização criada" + }, + "organizationReadyToGo": { + "message": "A sua nova organização está pronta!" + }, + "organizationUpgraded": { + "message": "A sua organização foi atualizada." + }, + "leave": { + "message": "Sair" + }, + "leaveOrganizationConfirmation": { + "message": "Tem a certeza de que pretende sair desta organização?" + }, + "leftOrganization": { + "message": "Saiu da organização." + }, + "defaultCollection": { + "message": "Coleção predefinida" + }, + "getHelp": { + "message": "Obter ajuda" + }, + "getApps": { + "message": "Obter as aplicações" + }, + "loggedInAs": { + "message": "Sessão iniciada como" + }, + "eventLogs": { + "message": "Registos de eventos" + }, + "people": { + "message": "Pessoas" + }, + "policies": { + "message": "Políticas" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Editar política" + }, + "groups": { + "message": "Grupos" + }, + "newGroup": { + "message": "Novo grupo" + }, + "addGroup": { + "message": "Adicionar grupo" + }, + "editGroup": { + "message": "Editar grupo" + }, + "deleteGroupConfirmation": { + "message": "Tem certeza que pretende eliminar este grupo?" + }, + "removeUserConfirmation": { + "message": "Tem a certeza de que pretende remover este utilizador?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "Id externo" + }, + "externalIdDesc": { + "message": "O id externo pode ser utilizado como uma referência ou para ligar este recurso a um sistema externo como um diretório de utilizadores." + }, + "accessControl": { + "message": "Controlo de acesso" + }, + "groupAccessAllItems": { + "message": "Este grupo pode aceder e modificar todos os itens." + }, + "groupAccessSelectedCollections": { + "message": "Este grupo pode aceder apenas a coleções selecionadas." + }, + "readOnly": { + "message": "Apenas leitura" + }, + "newCollection": { + "message": "Nova coleção" + }, + "addCollection": { + "message": "Adicionar coleção" + }, + "editCollection": { + "message": "Editar coleção" + }, + "deleteCollectionConfirmation": { + "message": "Tem a certeza de que pretende eliminar esta coleção?" + }, + "editUser": { + "message": "Editar utilizador" + }, + "inviteUser": { + "message": "Convidar utilizador" + }, + "inviteUserDesc": { + "message": "Convide um novo utilizador para a sua organização ao introduzir abaixo o endereço de email da sua conta Bitwarden. Se ainda não tiver uma conta Bitwarden, irá ser-lhe solicitado criar uma nova conta." + }, + "inviteMultipleEmailDesc": { + "message": "Pode convidar até $COUNT$ utilizadores de cada vez ao separando por virgula uma lista de endereços de email.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Este utilizador está a utilizar início de sessão de dois passos para proteger a sua conta." + }, + "userAccessAllItems": { + "message": "Este utilizador pode aceder e modificar todos os itens." + }, + "userAccessSelectedCollections": { + "message": "Este utilizador pode aceder apenas a coleções selecionadas." + }, + "search": { + "message": "Pesquisar" + }, + "invited": { + "message": "Convidado" + }, + "accepted": { + "message": "Aceite" + }, + "confirmed": { + "message": "Confirmado" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Proprietário" + }, + "ownerDesc": { + "message": "O utilizador com acesso mais elevado que pode gerir todos os aspetos da sua organização." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Administrador" + }, + "adminDesc": { + "message": "Os administradores podem aceder e gerir todos os itens, coleções e utilizadores na sua organização." + }, + "user": { + "message": "Utilizador" + }, + "userDesc": { + "message": "Um utilizador normal com acesso às coleções atribuídas da sua organização." + }, + "manager": { + "message": "Gestor" + }, + "managerDesc": { + "message": "Os gestores podem aceder e gerir coleções atribuídas na sua organização." + }, + "all": { + "message": "Todos" + }, + "refresh": { + "message": "Atualizar" + }, + "timestamp": { + "message": "Data e hora" + }, + "event": { + "message": "Evento" + }, + "unknown": { + "message": "Desconhecido" + }, + "loadMore": { + "message": "Carregar mais" + }, + "mobile": { + "message": "Telemóvel", + "description": "Mobile app" + }, + "extension": { + "message": "Extensão", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Computador", + "description": "Desktop app" + }, + "webVault": { + "message": "Cofre Web" + }, + "loggedIn": { + "message": "Sessão iniciada." + }, + "changedPassword": { + "message": "Palavra-passe da conta alterada." + }, + "enabledUpdated2fa": { + "message": "Início de sessão de dois passos ativado/atualizado." + }, + "disabled2fa": { + "message": "Início de sessão de dois passos desativado." + }, + "recovered2fa": { + "message": "Conta recuperada de início de sessão de dois passos." + }, + "failedLogin": { + "message": "Tentativa de início de sessão falhado com palavra-passe incorreta." + }, + "failedLogin2fa": { + "message": "Tentativa de início de sessão falhada com inicio de sessão de dois passos incorreto." + }, + "exportedVault": { + "message": "Cofre exportado." + }, + "exportedOrganizationVault": { + "message": "Cofre da organização exportado." + }, + "editedOrgSettings": { + "message": "Definições de organização editadas." + }, + "createdItemId": { + "message": "Item $ID$ criado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Item $ID$ editado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Item $ID$ enviado para o lixo.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Item $ID$ visto.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Palavra-passe vista para o item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Campo oculto visto para o item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Código de segurança visto para o item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Palavra-passe copiada para o item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Campo oculto copiado para o item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Código de segurança copiado para o item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Item $ID$ auto-preenchido.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Coleção $ID$ criada.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Coleção $ID$ editada.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Coleção $ID$ eliminada.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Editou a política $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Grupo $ID$ criado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Grupo $ID$ editado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Grupo $ID$ eliminado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Utilizador $ID$ removido.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Anexo para o item $ID$ criado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Anexo para o item $ID$ eliminado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Coleções para o item $ID$ editadas.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Utilizador $ID$ convidado.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Utilizador $ID$ confirmado.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Utilizador $ID$ editado.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Grupos para o utilizador $ID$ editados.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Dispositivo" + }, + "view": { + "message": "Ver" + }, + "invalidDateRange": { + "message": "Período de data inválido." + }, + "errorOccurred": { + "message": "Ocorreu um erro." + }, + "userAccess": { + "message": "Acesso de utilizador" + }, + "userType": { + "message": "Tipo de utilizador" + }, + "groupAccess": { + "message": "Acesso de grupo" + }, + "groupAccessUserDesc": { + "message": "Edite os grupos a que este utilizador pertence." + }, + "invitedUsers": { + "message": "Utilizador(es) convidado(s)." + }, + "resendInvitation": { + "message": "Reenviar convite" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ foi novamente convidado.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirmar" + }, + "confirmUser": { + "message": "Confirmar utilizador" + }, + "hasBeenConfirmed": { + "message": "$USER$ foi confirmado.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirmar utilizadores" + }, + "usersNeedConfirmed": { + "message": "Tem utilizadores que aceitaram os seus convites, mas ainda precisam de ser confirmados. Os utilizadores não irão ter acesso à organização até serem confirmados." + }, + "startDate": { + "message": "Data de início" + }, + "endDate": { + "message": "Data de fim" + }, + "verifyEmail": { + "message": "Verificar email" + }, + "verifyEmailDesc": { + "message": "Verifique o endereço de email da sua conta para desbloquear o acesso a todas as funcionalidades." + }, + "verifyEmailFirst": { + "message": "O endereço de email da sua conta deve ser verificado primeiro." + }, + "checkInboxForVerification": { + "message": "Verifique a caixa de entrada do seu email pela ligação de verificação." + }, + "emailVerified": { + "message": "O seu email foi verificado." + }, + "emailVerifiedFailed": { + "message": "Não foi possível verificar o seu email. Tente enviar um novo email de verificação." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "Atualizar navegador" + }, + "updateBrowserDesc": { + "message": "Está a utilizar um navegador web não suportado. O cofre web pode não funcionar corretamente." + }, + "joinOrganization": { + "message": "Aderir a organização" + }, + "joinOrganizationDesc": { + "message": "Foi convidado para se juntar à organização listada acima. Para aceitar o convite, precisa de iniciar sessão ou criar uma nova conta Bitwarden." + }, + "inviteAccepted": { + "message": "Convite aceite" + }, + "inviteAcceptedDesc": { + "message": "Pode aceder a esta organização quanto um administrador confirmar a sua adesão. Enviaremos um email quando tal acontecer." + }, + "inviteAcceptFailed": { + "message": "Não foi possível aceitar o convite. Peça a um administrador da organização para enviar novo convite." + }, + "inviteAcceptFailedShort": { + "message": "Não foi possível aceitar o convite. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Memorizar email" + }, + "recoverAccountTwoStepDesc": { + "message": "Se não conseguir aceder à sua conta através dos seus métodos normais de início de sessão de dois passos, pode utilizar o seu código de recuperação de dois passos para desativar todos os provedores de início de sessão de dois passos da sua conta." + }, + "recoverAccountTwoStep": { + "message": "Recuperar início de sessão de dois passos da conta" + }, + "twoStepRecoverDisabled": { + "message": "O início de sessão de dois passos foi desativado na sua conta." + }, + "learnMore": { + "message": "Saber mais" + }, + "deleteRecoverDesc": { + "message": "Introduza o seu endereço de email abaixo para recuperar ou eliminar a sua conta." + }, + "deleteRecoverEmailSent": { + "message": "Se a sua conta existe, enviámos-lhe um email com mais instruções." + }, + "deleteRecoverConfirmDesc": { + "message": "Pediu para eliminar a sua conta Bitwarden. Clique no botão abaixo para confirmar." + }, + "myOrganization": { + "message": "Minha organização" + }, + "deleteOrganization": { + "message": "Eliminar organização" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organização eliminada" + }, + "organizationDeletedDesc": { + "message": "A organização e todos os dados associados foram eliminados." + }, + "organizationUpdated": { + "message": "Organização atualizada" + }, + "taxInformation": { + "message": "Informação fiscal" + }, + "taxInformationDesc": { + "message": "Para clientes dentro dos EUA, o código postal é requerido para satisfazer os requisitos fiscais das vendas, para outros países pode, opcionalmente, providenciar um número de identificação fiscal (IVA/GST) e/ou um endereço para aparecer nas suas faturas." + }, + "billingPlan": { + "message": "Plano", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Alterar plano", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Atualize a sua conta para outro plano fornecendo as informações abaixo. Por favor certifique-se de que tem um método de pagamento ativo adicionado na conta.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Fatura #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Ver fatura" + }, + "downloadInvoice": { + "message": "Transferir fatura" + }, + "verifyBankAccount": { + "message": "Verificar conta nancária" + }, + "verifyBankAccountDesc": { + "message": "Fizemos dois micro-depósitos na sua conta bancária (pode demorar 1-2 dias úteis a aparecer). Introduza estas quantias para verificar a conta bancária." + }, + "verifyBankAccountInitialDesc": { + "message": "O pagamento via conta bancária apenas está disponível para clientes nos Estados Unidos. Irá ser-lhe requerido verificar a sua conta bancária. Iremos fazer dois micro-depósitos nos próximos 1-2 dias úteis. Introduza estas quantias na página de faturação da organização para verificar a conta bancária." + }, + "verifyBankAccountFailureWarning": { + "message": "Falha ao verificar a conta bancária irá resultar na falta de um pagamento e a sua subscrição ser desativada." + }, + "verifiedBankAccount": { + "message": "A conta bancária foi confirmada." + }, + "bankAccount": { + "message": "Conta bancária" + }, + "amountX": { + "message": "Quantia $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Número de roteamento", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Número da conta" + }, + "accountHolderName": { + "message": "Titular da conta" + }, + "bankAccountType": { + "message": "Tipo de conta" + }, + "bankAccountTypeCompany": { + "message": "Empresa (Empresarial)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Pessoal)" + }, + "enterInstallationId": { + "message": "Introduza o id da sua instalação" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Adicionar lugares", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remover lugares", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "A sua subscrição permite um total de $COUNT$ utilizadores.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Opções Adicionais" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Lugares a adicionar" + }, + "seatsToRemove": { + "message": "Lugares a remover" + }, + "seatsAddNote": { + "message": "Adicionar lugares de utilizador irá resultar em ajustamentos aos seus totais a faturar e imediatamente cobrados no seu método de pagamento registado. A primeira cobrança será alocada pelo remanescente do atual ciclo de faturação." + }, + "seatsRemoveNote": { + "message": "Remover lugares de utilizador irá resultar em ajustamentos nos totais a faturar que irão ser alocados como créditos na próxima cobrança de faturação." + }, + "adjustedSeats": { + "message": "Ajustado $AMOUNT$ lugares de utilizador.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Chave atualizada" + }, + "updateKeyTitle": { + "message": "Atualizar chave" + }, + "updateEncryptionKey": { + "message": "Atualizar chave de encriptação" + }, + "updateEncryptionKeyShortDesc": { + "message": "Está atualmente a utilizar um esquema de encriptação desatualizado." + }, + "updateEncryptionKeyDesc": { + "message": "Mudámos para chaves de encriptação maiores que providenciam maior segurança e acesso a funcionalidades mais recentes. Atualizar a sua chave de encriptação é rápido e fácil. Apenas escreva abaixo a sua palavra-passe mestra. Esta atualização eventualmente irá tornar-se obrigatória." + }, + "updateEncryptionKeyWarning": { + "message": "Depois de atualizar a sua chave de encriptação, é-lhe requerido terminar sessão e voltar a iniciá-la em todas as aplicações Bitwarden que esteja a utilizar (tais como a aplicação móvel ou extensões de navegador). Falha ao terminar sessão e voltar a iniciar (que transfere a sua nova chave de encriptação) pode resultar em corrupção de dados. Tentaremos terminar-lhe a sessão automaticamente, todavia, pode demorar." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "Subscrição" + }, + "loading": { + "message": "A carregar" + }, + "upgrade": { + "message": "Atualizar" + }, + "upgradeOrganization": { + "message": "Atualizar organização" + }, + "upgradeOrganizationDesc": { + "message": "Esta funcionalidade não está disponível para organizações gratuitas. Mude para um plano pago para desbloquear mais funcionalidades." + }, + "createOrganizationStep1": { + "message": "Criar organização: Passo 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Antes de criar a sua organização, primeiro tem de criar uma conta pessoal gratuita." + }, + "refunded": { + "message": "Reembolsado" + }, + "nothingSelected": { + "message": "Não selecionou nada." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." + }, + "termsOfService": { + "message": "Termos de serviço" + }, + "privacyPolicy": { + "message": "Política de privacidade" + }, + "filters": { + "message": "Filtros" + }, + "vaultTimeout": { + "message": "Expiração do cofre" + }, + "vaultTimeoutDesc": { + "message": "Escolha quando o seu cofre irá expirar e realizar a ação selecionada." + }, + "oneMinute": { + "message": "1 minuto" + }, + "fiveMinutes": { + "message": "5 minutos" + }, + "fifteenMinutes": { + "message": "15 minutos" + }, + "thirtyMinutes": { + "message": "30 minutos" + }, + "oneHour": { + "message": "1 hora" + }, + "fourHours": { + "message": "4 horas" + }, + "onRefresh": { + "message": "Quando reiniciar o navegador" + }, + "dateUpdated": { + "message": "Atualizado", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Palavra-passe atualizada", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "A organização está desativada." + }, + "licenseIsExpired": { + "message": "A licença está expirada." + }, + "updatedUsers": { + "message": "Utilizadores atualizados" + }, + "selected": { + "message": "Selecionado(s)" + }, + "ownership": { + "message": "Propriedade" + }, + "whoOwnsThisItem": { + "message": "Quem é o proprietário deste item?" + }, + "strong": { + "message": "Forte", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Boa", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Fraca", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Muito fraca", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Palavra-passe mestra fraca" + }, + "weakMasterPasswordDesc": { + "message": "A palavra-passe mestra que escolheu é fraca. Deve utilizar uma palavra-passe mestra forte (ou uma frase-passe) para proteger adequadamente a sua conta Bitwarden. Tem a certeza de que pretende utilizar esta palavra-passe mestra?" + }, + "rotateAccountEncKey": { + "message": "Também rodar a chave de encriptação da minha conta" + }, + "rotateEncKeyTitle": { + "message": "Rodar chave de encriptação" + }, + "rotateEncKeyConfirmation": { + "message": "Tem a certeza de que pretende rodar a chave de encriptação da sua conta?" + }, + "attachmentsNeedFix": { + "message": "Este item tem anexos de ficheiros antigos que precisam de ser corrigidos." + }, + "attachmentFixDesc": { + "message": "Este é um anexo de ficheiro que precisa de ser corrigido. Clique para saber mais." + }, + "fix": { + "message": "Corrigir", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Existem anexos de ficheiros antigos no seu cofre que precisam de ser corrigidos antes de poder rodar a chave de encriptação da sua conta." + }, + "yourAccountsFingerprint": { + "message": "A frase de impressão digital da sua conta", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Para assegurar a integridade das suas chaves de encriptação, por favor verifique a frase de impressão digital do utilizador antes de continuar.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Não perguntar para verificar frase de impressão digital novamente", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Gratuito", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "Chave da API" + }, + "apiKeyDesc": { + "message": "A sua chave da API pode ser utilizada para autenticar na API pública Bitwarden." + }, + "apiKeyRotateDesc": { + "message": "Rodar a chave da API irá invalidar a chave anterior. Pode rodar a sua chave da API se achar que a chave atual já não é segura para uso." + }, + "apiKeyWarning": { + "message": "A sua chave da API tem acesso total à organização. Esta deve ser mantida secreta." + }, + "userApiKeyDesc": { + "message": "Your API key can be used to authenticate in the Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + }, + "oauth2ClientCredentials": { + "message": "Credenciais de cliente OAuth 2.0", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Ver chave da API" + }, + "rotateApiKey": { + "message": "Rodar chave da API" + }, + "selectOneCollection": { + "message": "Tem de selecionar pelo menos uma coleção." + }, + "couldNotChargeCardPayInvoice": { + "message": "Não foi possível cobrar o seu cartão. Por favor verifique e efetue o pagamento da fatura por pagar listada abaixo." + }, + "inAppPurchase": { + "message": "Compra na aplicação" + }, + "cannotPerformInAppPurchase": { + "message": "Não pode realizar esta ação utilizando um método de pagamento dentro da aplicação." + }, + "manageSubscriptionFromStore": { + "message": "Terá de gerir a sua subscrição a partir da loja onde a sua compra na aplicação foi efetuada." + }, + "minLength": { + "message": "Comprimento mínimo" + }, + "clone": { + "message": "Clonar" + }, + "masterPassPolicyDesc": { + "message": "Defina os requisitos mínimos para a força da palavra-passe mestra." + }, + "twoStepLoginPolicyDesc": { + "message": "Requer que os utilizadores definam a autenticação de dois passos nas suas contas pessoais." + }, + "twoStepLoginPolicyWarning": { + "message": "Os membros da organização que não tenham a autenticação de dois passos ativada para sua conta pessoal, serão removidos da organização e receberão um email notificando-os acerca da alteração." + }, + "twoStepLoginPolicyUserWarning": { + "message": "É membro de uma organização que requer que a autenticação de dois passos esteja ativada na sua conta de utilizador. Se desativar todos os serviços de autenticação de dois passos, será automaticamente removido(a) dessas organizações." + }, + "passwordGeneratorPolicyDesc": { + "message": "Defina os requisitos mínimos para configuração do gerador de palavras-passe." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Uma ou mais políticas da organização estão a afetar as suas definições do gerador." + }, + "masterPasswordPolicyInEffect": { + "message": "Uma ou mais políticas da organização requerem que a sua palavra-passe mestra cumpra aos seguintes requisitos:" + }, + "policyInEffectMinComplexity": { + "message": "Pontuação mínima de complexidade de $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Comprimento mínimo de $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contém um ou mais caracteres em maiúsculas" + }, + "policyInEffectLowercase": { + "message": "Contém um ou mais caracteres em minúsculas" + }, + "policyInEffectNumbers": { + "message": "Contém um ou mais números" + }, + "policyInEffectSpecial": { + "message": "Contém um ou mais dos seguintes caracteres especiais $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "A sua nova palavra-passe mestra não cumpre os requisitos da política." + }, + "minimumNumberOfWords": { + "message": "Número mínimo de palavras" + }, + "defaultType": { + "message": "Tipo predefinido" + }, + "userPreference": { + "message": "Preferência do utilizador" + }, + "vaultTimeoutAction": { + "message": "Ação de expiração do cofre" + }, + "vaultTimeoutActionLockDesc": { + "message": "Um cofre bloqueado requer que reintroduza a sua palavra-passe mestra para aceder novamente." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Um cofre com sessão terminada requer que se volte a autenticar para o poder aceder novamente." + }, + "lock": { + "message": "Bloquear", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Lixo", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Pesquisar lixo" + }, + "permanentlyDelete": { + "message": "Eliminar permanentemente" + }, + "permanentlyDeleteSelected": { + "message": "Eliminar selecionados permanentemente" + }, + "permanentlyDeleteItem": { + "message": "Eliminar item permanentemente" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Tem a certeza de que pretende eliminar este item permanentemente?" + }, + "permanentlyDeletedItem": { + "message": "Item eliminado permanentemente" + }, + "permanentlyDeletedItems": { + "message": "Itens eliminados permanentemente" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Selecionou $COUNT$ item(s) para eliminar permanentemente. Tem a certeza de que pretende eliminar permanentemente todos estes itens?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Item $ID$ eliminado permanentemente.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restaurar" + }, + "restoreSelected": { + "message": "Restaurar selecionados" + }, + "restoreItem": { + "message": "Restaurar item" + }, + "restoredItem": { + "message": "Item restaurado" + }, + "restoredItems": { + "message": "Itens restaurados" + }, + "restoreItemConfirmation": { + "message": "Tem a certeza de que pretende restaurar este item?" + }, + "restoreItems": { + "message": "Restaurar itens" + }, + "restoreSelectedItemsDesc": { + "message": "Selecionou $COUNT$ item(s) para restaurar. Tem a certeza de que pretende restaurar todos estes itens?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Item $ID$ restaurado.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Terminar sessão irá remover todos os acessos ao seu cofre e requer autenticação online após o período de expiração. Tem a certeza de que pretende utilizar esta definição?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Confirmação de expiração do cofre" + }, + "hidePasswords": { + "message": "Ocultar palavras-passe" + }, + "countryPostalCodeRequiredDesc": { + "message": "Requeremos esta informação para calcular imposto sobre vendas e relatórios financeiros apenas." + }, + "includeVAT": { + "message": "Incluir informações de IVA/GST (opcional)" + }, + "taxIdNumber": { + "message": "ID de imposto IVA/GST" + }, + "taxInfoUpdated": { + "message": "Informação fiscal atualizada." + }, + "setMasterPassword": { + "message": "Definir palavra-passe mestra" + }, + "ssoCompleteRegistration": { + "message": "Para concluir o início de sessão com SSO, por favor defina uma palavra-passe mestra para aceder e proteger o seu cofre." + }, + "identifier": { + "message": "Identificador" + }, + "organizationIdentifier": { + "message": "Identificador da organização" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Inicie sessão utilizando o portal de início de sessão único da sua organização. Por favor introduza o identificador da sua organização para começar." + }, + "enterpriseSingleSignOn": { + "message": "Início de Sessão Único da Empresa" + }, + "ssoHandOff": { + "message": "You may now close this tab and continue in the extension." + }, + "includeAllTeamsFeatures": { + "message": "Todas as funcionalidades de Equipas, mais:" + }, + "includeSsoAuthentication": { + "message": "Autenticação SSO via SAML2.0 e OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Políticas empresariais" + }, + "ssoValidationFailed": { + "message": "Validação SSO falhou" + }, + "ssoIdentifierRequired": { + "message": "Identificador da organização é requerido." + }, + "unlinkSso": { + "message": "Desligar SSO" + }, + "unlinkSsoConfirmation": { + "message": "Tem a certeza de que deseja desagregar o SSO desta organização?" + }, + "linkSso": { + "message": "Ligar SSO" + }, + "singleOrg": { + "message": "Single Organization" + }, + "singleOrgDesc": { + "message": "Restrict users from being able to join any other organizations." + }, + "singleOrgBlockCreateMessage": { + "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + }, + "singleOrgPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + }, + "requireSso": { + "message": "Single Sign-On Authentication" + }, + "requireSsoPolicyDesc": { + "message": "Require users to log in with the Enterprise Single Sign-On method." + }, + "prerequisite": { + "message": "Prerequisite" + }, + "requireSsoPolicyReq": { + "message": "The Single Organization enterprise policy must be enabled before activating this policy." + }, + "requireSsoPolicyReqError": { + "message": "Single Organization policy not enabled." + }, + "requireSsoExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "sendTypeFile": { + "message": "Ficheiro" + }, + "sendTypeText": { + "message": "Texto" + }, + "createSend": { + "message": "Create New Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edit Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Created Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Edited Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Deleted Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Delete Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Are you sure you want to delete this Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "What type of Send is this?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Deletion Date" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Expiration Date" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximum Access Count" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Current Access Count" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Disabled" + }, + "sendLink": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copy Send Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remove Password" + }, + "removedPassword": { + "message": "Removed Password" + }, + "removePasswordConfirmation": { + "message": "Are you sure you want to remove the password?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "All Sends" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "expired": { + "message": "Expired" + }, + "searchSends": { + "message": "Search Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "This Send is protected with a password. Please type the password below to continue.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Descarregar Ficheiro" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "There are no Sends to list.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Emergency Access" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Request Access" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approve" + }, + "reject": { + "message": "Reject" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Disable Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "Estimated tax" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Manage All Collections" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Manage Groups" + }, + "managePolicies": { + "message": "Manage Policies" + }, + "manageSso": { + "message": "Manage SSO" + }, + "manageUsers": { + "message": "Manage Users" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organization users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Learn more about", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Learn more", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "try it now", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "sign up", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "to try it today.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organization policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organization administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Assinar pedidos de autenticação" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ campos acima necessitam da sua atenção.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 campo acima necessita da sua atenção." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ é necessário.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "necessário" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Necessário se o ID da Entidade não for um URL." + }, + "openIdOptionalCustomizations": { + "message": "Personalizações Opcionais" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separe vários com uma vírgula." + }, + "sessionTimeout": { + "message": "A sua sessão expirou. Por favor, volte atrás e tente iniciar sessão novamente." + }, + "exportingPersonalVaultTitle": { + "message": "A Exportar Cofre Pessoal" + }, + "exportingOrganizationVaultTitle": { + "message": "A Exportar Cofre da Organização" + }, + "exportingPersonalVaultDescription": { + "message": "Apenas os itens do cofre pessoal associado ao $EMAIL$ serão exportados. Os itens do cofre da organização não serão incluídos.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Apenas o cofre da organização associado ao(à) $ORGANIZATION$ serão exportados. Os itens do cofre pessoal e os de outras organizações não serão incluídos.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/ro/messages.json b/apps/web/src/locales/ro/messages.json new file mode 100644 index 0000000000..9a2d2fb453 --- /dev/null +++ b/apps/web/src/locales/ro/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "Seif web $APP_NAME$", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Ce fel de articol este acesta?" + }, + "name": { + "message": "Denumire" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "URI nou" + }, + "username": { + "message": "Nume utilizator" + }, + "password": { + "message": "Parolă" + }, + "newPassword": { + "message": "Parolă nouă" + }, + "passphrase": { + "message": "Frază de acces" + }, + "notes": { + "message": "Note" + }, + "customFields": { + "message": "Câmpuri particularizate" + }, + "cardholderName": { + "message": "Deținător card" + }, + "number": { + "message": "Număr card" + }, + "brand": { + "message": "Tip card" + }, + "expiration": { + "message": "Expirare" + }, + "securityCode": { + "message": "Cod de securitate (CVV/CVC)" + }, + "identityName": { + "message": "Nume identitate" + }, + "company": { + "message": "Companie" + }, + "ssn": { + "message": "Cod Numeric Personal" + }, + "passportNumber": { + "message": "Număr CI / Pașaport" + }, + "licenseNumber": { + "message": "Număr licență" + }, + "email": { + "message": "E-mail" + }, + "phone": { + "message": "Telefon" + }, + "january": { + "message": "ianuarie" + }, + "february": { + "message": "februarie" + }, + "march": { + "message": "martie" + }, + "april": { + "message": "aprilie" + }, + "may": { + "message": "mai" + }, + "june": { + "message": "iunie" + }, + "july": { + "message": "iulie" + }, + "august": { + "message": "august" + }, + "september": { + "message": "septembrie" + }, + "october": { + "message": "octombrie" + }, + "november": { + "message": "noiembrie" + }, + "december": { + "message": "decembrie" + }, + "title": { + "message": "Titlu" + }, + "mr": { + "message": "Dl" + }, + "mrs": { + "message": "Dna" + }, + "ms": { + "message": "Dra" + }, + "dr": { + "message": "Dr." + }, + "expirationMonth": { + "message": "Luna expirării" + }, + "expirationYear": { + "message": "Anul expirării" + }, + "authenticatorKeyTotp": { + "message": "Cheie autentificare (TOTP)" + }, + "folder": { + "message": "Dosar" + }, + "newCustomField": { + "message": "Câmp nou particularizat" + }, + "value": { + "message": "Valoare" + }, + "dragToSort": { + "message": "Tragere pentru sortare" + }, + "cfTypeText": { + "message": "Text" + }, + "cfTypeHidden": { + "message": "Ascuns" + }, + "cfTypeBoolean": { + "message": "Valoare logică" + }, + "cfTypeLinked": { + "message": "Conectat", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Ștergere" + }, + "unassigned": { + "message": "Nealocat" + }, + "noneFolder": { + "message": "Fără dosar", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Adăugare dosar" + }, + "editFolder": { + "message": "Editare dosar" + }, + "baseDomain": { + "message": "Domeniu de bază", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Nume de domeniu", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Gazdă", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exact" + }, + "startsWith": { + "message": "Începe cu" + }, + "regEx": { + "message": "Expresie regulată", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Detectare de potrivire", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Detectare de potrivire implicită", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Niciodată" + }, + "toggleVisibility": { + "message": "Comutare vizibilitate" + }, + "toggleCollapse": { + "message": "Restrângere / Extindere", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generare parolă" + }, + "checkPassword": { + "message": "Verificați dacă parola a fost dezvăluită." + }, + "passwordExposed": { + "message": "Această parolă a fost dezvăluită de $VALUE$ ori în breșe de date. Ar trebui să o schimbați.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Această parolă nu a fost găsită în nicio breșă de date cunoscută. Ar trebui să fie sigură de utilizat." + }, + "save": { + "message": "Salvare" + }, + "cancel": { + "message": "Anulare" + }, + "canceled": { + "message": "Anulat" + }, + "close": { + "message": "Închidere" + }, + "delete": { + "message": "Ștergere" + }, + "favorite": { + "message": "Favorit" + }, + "unfavorite": { + "message": "Scoatere din favorite" + }, + "edit": { + "message": "Editare" + }, + "searchCollection": { + "message": "Căutare în colecție" + }, + "searchFolder": { + "message": "Căutare în dosar" + }, + "searchFavorites": { + "message": "Căutare în favorite" + }, + "searchType": { + "message": "Căutare în tipuri", + "description": "Search item type" + }, + "searchVault": { + "message": "Căutare în seif" + }, + "allItems": { + "message": "Toate elementele" + }, + "favorites": { + "message": "Favorite" + }, + "types": { + "message": "Tipuri" + }, + "typeLogin": { + "message": "Conectare" + }, + "typeCard": { + "message": "Card" + }, + "typeIdentity": { + "message": "Identitate" + }, + "typeSecureNote": { + "message": "Notă protejată" + }, + "typeLoginPlural": { + "message": "Conectări" + }, + "typeCardPlural": { + "message": "Carduri" + }, + "typeIdentityPlural": { + "message": "Identități" + }, + "typeSecureNotePlural": { + "message": "Note protejate" + }, + "folders": { + "message": "Dosare" + }, + "collections": { + "message": "Colecții" + }, + "firstName": { + "message": "Prenume" + }, + "middleName": { + "message": "Al doilea prenume" + }, + "lastName": { + "message": "Nume" + }, + "fullName": { + "message": "Numele complet" + }, + "address1": { + "message": "Adresă 1" + }, + "address2": { + "message": "Adresă 2" + }, + "address3": { + "message": "Adresă 3" + }, + "cityTown": { + "message": "Localitate" + }, + "stateProvince": { + "message": "Județ" + }, + "zipPostalCode": { + "message": "Cod poștal" + }, + "country": { + "message": "Țară" + }, + "shared": { + "message": "Partajat" + }, + "attachments": { + "message": "Atașamente" + }, + "select": { + "message": "Selectare" + }, + "addItem": { + "message": "Adăugare articol" + }, + "editItem": { + "message": "Editare articol" + }, + "viewItem": { + "message": "Afișare articol" + }, + "ex": { + "message": "ex.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Altele" + }, + "share": { + "message": "Partajare" + }, + "moveToOrganization": { + "message": "Mutare la organizație" + }, + "valueCopied": { + "message": "$VALUE$ s-a copiat", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Copiere valoare", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Copiere parolă", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Copiere nume utilizator", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Copiere număr", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copiere cod de securitate", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Copiere URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Seiful meu" + }, + "vault": { + "message": "Seif" + }, + "moveSelectedToOrg": { + "message": "Mutați cele selectate în organizație" + }, + "deleteSelected": { + "message": "Ștergere selecție" + }, + "moveSelected": { + "message": "Mutare selecție" + }, + "selectAll": { + "message": "Selectare totală" + }, + "unselectAll": { + "message": "Deselectare totală" + }, + "launch": { + "message": "Lansare" + }, + "newAttachment": { + "message": "Adăugare atașament nou" + }, + "deletedAttachment": { + "message": "Atașamentul s-a șters" + }, + "deleteAttachmentConfirmation": { + "message": "Sigur doriți să ștergeți acest atașament?" + }, + "attachmentSaved": { + "message": "Atașamentul a fost salvat." + }, + "file": { + "message": "Fișier" + }, + "selectFile": { + "message": "Selectare fișier." + }, + "maxFileSize": { + "message": "Mărimea maximă a fișierului este de 500 MB." + }, + "updateKey": { + "message": "Veți putea utiliza această caracteristică după ce veți actualiza cheia de criptare." + }, + "addedItem": { + "message": "Articol adăugat" + }, + "editedItem": { + "message": "Articol editat" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ mutat la $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Articolele selectate au fost mutate în $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Ștergere articol" + }, + "deleteFolder": { + "message": "Ștergere dosar" + }, + "deleteAttachment": { + "message": "Ștergere atașament" + }, + "deleteItemConfirmation": { + "message": "Sigur doriți să trimiteți în coșul de reciclare?" + }, + "deletedItem": { + "message": "Articolul a fost trimis în coșul de reciclare" + }, + "deletedItems": { + "message": "Articolele au fost trimise în coșul de reciclare" + }, + "movedItems": { + "message": "Articole mutate" + }, + "overwritePasswordConfirmation": { + "message": "Sigur doriți să suprascrieți parola curentă?" + }, + "editedFolder": { + "message": "Dosar editat" + }, + "addedFolder": { + "message": "Dosar adăugat" + }, + "deleteFolderConfirmation": { + "message": "Sigur doriți să ștergeți acest folder?" + }, + "deletedFolder": { + "message": "Dosar șters" + }, + "loggedOut": { + "message": "Deconectat" + }, + "loginExpired": { + "message": "Sesiunea de autentificare a expirat." + }, + "logOutConfirmation": { + "message": "Sigur doriți să vă deconectați?" + }, + "logOut": { + "message": "Deconectare" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Da" + }, + "no": { + "message": "Nu" + }, + "loginOrCreateNewAccount": { + "message": "Autentificați-vă sau creați un cont nou pentru a accesa seiful dvs. securizat." + }, + "createAccount": { + "message": "Creare cont" + }, + "logIn": { + "message": "Conectare" + }, + "submit": { + "message": "Trimitere" + }, + "emailAddressDesc": { + "message": "Vă veți folosi adresa de e-mail pentru a vă conecta." + }, + "yourName": { + "message": "Numele dvs." + }, + "yourNameDesc": { + "message": "Cum ar trebui să vă numim?" + }, + "masterPass": { + "message": "Parolă principală" + }, + "masterPassDesc": { + "message": "Parola principală este parola pe care o utilizați pentru a vă accesa seiful. Este foarte important să nu uitați această parolă. Nu există nicio modalitate de a recupera parola în cazul în care ați uitat-o." + }, + "masterPassHintDesc": { + "message": "Un indiciu pentru parola principală vă poate ajuta să v-o reamintiți dacă o uitați." + }, + "reTypeMasterPass": { + "message": "Reintroducere parolă principală" + }, + "masterPassHint": { + "message": "Indiciu pentru parola principală (opțional)" + }, + "masterPassHintLabel": { + "message": "Indiciu pentru parola principală" + }, + "settings": { + "message": "Setări" + }, + "passwordHint": { + "message": "Indiciu parolă" + }, + "enterEmailToGetHint": { + "message": "Adresa de e-mail a contului pentru primirea indiciului parolei principale." + }, + "getMasterPasswordHint": { + "message": "Obținere indiciu parolă principală" + }, + "emailRequired": { + "message": "Adresa de e-mail este necesară." + }, + "invalidEmail": { + "message": "Adresă de e-mail greșită." + }, + "masterPassRequired": { + "message": "Este necesară parola principală." + }, + "masterPassLength": { + "message": "Parola principală trebuie să conțină minimum 8 caractere." + }, + "masterPassDoesntMatch": { + "message": "Parola principală și confirmarea ei nu coincid!" + }, + "newAccountCreated": { + "message": "Noul dvs. cont a fost creat! Acum vă puteți autentifica." + }, + "masterPassSent": { + "message": "V-am trimis un e-mail cu indiciul parolei principale." + }, + "unexpectedError": { + "message": "A survenit o eroare neașteptată." + }, + "emailAddress": { + "message": "Adresă de e-mail" + }, + "yourVaultIsLocked": { + "message": "Seiful dvs. este blocat. Verificați parola principală pentru a continua." + }, + "unlock": { + "message": "Deblocare" + }, + "loggedInAsEmailOn": { + "message": "Autentificat ca $EMAIL$ pe $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Parolă principală incorectă" + }, + "lockNow": { + "message": "Blocare acum" + }, + "noItemsInList": { + "message": "Niciun articol de afișat." + }, + "noCollectionsInList": { + "message": "Nicio colecție de afișat." + }, + "noGroupsInList": { + "message": "Niciun grup de afișat." + }, + "noUsersInList": { + "message": "Niciun utilizator de afișat." + }, + "noEventsInList": { + "message": "Niciun eveniment de afișat." + }, + "newOrganization": { + "message": "Organizație nouă" + }, + "noOrganizationsList": { + "message": "Nu aparțineți niciunei organizații. Organizațiile vă permit să partajați în siguranță articole cu alți utilizatori." + }, + "versionNumber": { + "message": "Versiunea $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Introducere cod de verificare din 6 cifre din aplicația de autentificare." + }, + "enterVerificationCodeEmail": { + "message": "Introducere cod de verificare din 6 cifre care a fost trimis prin e-mail la $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "E-mailul de verificare a fost trimis la $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Memorare autentificare" + }, + "sendVerificationCodeEmailAgain": { + "message": "Retrimitere e-mail cu codul de verificare" + }, + "useAnotherTwoStepMethod": { + "message": "Utilizare de metodă diferită de autentificare în două etape" + }, + "insertYubiKey": { + "message": "Introduceți YubiKey în portul USB al calculatorului apoi apăsați butonul acestuia." + }, + "insertU2f": { + "message": "Introduceți cheia de securitate în portul USB al computerului. Dacă are un buton, apăsați-l." + }, + "loginUnavailable": { + "message": "Conectare indisponibilă" + }, + "noTwoStepProviders": { + "message": "Acest cont are activată autentificarea în două etape, dar niciunul dintre furnizorii configurați pentru aceasta nu este acceptat de acest browser web." + }, + "noTwoStepProviders2": { + "message": "Utilizați un browser acceptat (cum ar fi Chrome) și/sau adăugați furnizori suplimentari mai bine susținuți de browserele web (cum ar fi o aplicație de autentificare)." + }, + "twoStepOptions": { + "message": "Opțiuni de autentificare în două etape" + }, + "recoveryCodeDesc": { + "message": "Ați pierdut accesul la toți furnizorii de autentificare în două etape? Utilizați codul de recuperare pentru a dezactiva toți acești furnizori din contul dvs." + }, + "recoveryCodeTitle": { + "message": "Cod de recuperare" + }, + "authenticatorAppTitle": { + "message": "Aplicație de autentificare" + }, + "authenticatorAppDesc": { + "message": "Utilizați o aplicație de autentificare (cum ar fi Authy sau Google Authenticator) pentru a genera codurile de verificare bazate pe timp.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "Cheie de securitate YubiKey OTP" + }, + "yubiKeyDesc": { + "message": "Utilizați un YubiKey pentru a vă accesa contul. Funcționează cu dispozitivele YubiKey serie 4, 5 și NEO." + }, + "duoDesc": { + "message": "Verificați cu Duo Security utilizând aplicația Duo Mobile, SMS, apel telefonic sau cheia de securitate U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verificați cu Duo Security pentru organizația dvs. utilizând aplicația Duo Mobile, SMS, apel telefonic sau cheia de securitate U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Utilizați orice cheie de securitate activată FIDO U2F pentru a vă accesa contul." + }, + "u2fTitle": { + "message": "Cheie de securitate FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Utilizați orice cheie de securitate activată WebAuthn pentru a vă accesa contul." + }, + "webAuthnMigrated": { + "message": "(Migrate din FIDO)" + }, + "emailTitle": { + "message": "E-mail" + }, + "emailDesc": { + "message": "Codurile de verificare vor fi trimise prin e-mail." + }, + "continue": { + "message": "Continuare" + }, + "organization": { + "message": "Organizație" + }, + "organizations": { + "message": "Organizații" + }, + "moveToOrgDesc": { + "message": "Alegeți o organizație la care doriți să mutați acest articol. Mutarea într-o organizație, transferă proprietatea asupra articolului către organizația respectivă. Nu veți mai fi proprietarul direct al acestui articol odată ce a fost mutat." + }, + "moveManyToOrgDesc": { + "message": "Alegeți o organizație la care doriți să mutați aceste articole. Mutarea într-o organizație, transferă proprietatea asupra articolelor către organizația respectivă. Nu veți mai fi proprietarul direct al acestor articole odată ce au fost mutate." + }, + "collectionsDesc": { + "message": "Editați colecțiile cu care este partajat acest articol. Numai utilizatorii organizației cu acces la aceste colecții vor putea vedea acest articol." + }, + "deleteSelectedItemsDesc": { + "message": "Ați selectat $COUNT$ articole pentru ștergere. Sigur doriți să ștergeți toate aceste articole?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Alegeți un dosar în care doriți să mutați $COUNT$ articole selectate.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Ați selectat $COUNT$ articol(e). $MOVEABLE_COUNT$ articol(e) poate/pot fi mutat(e) într-o organizație, $NONMOVEABLE_COUNT$ nu.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Cod de verificare (TOTP)" + }, + "copyVerificationCode": { + "message": "Copiere cod de verificare" + }, + "warning": { + "message": "Avertisment" + }, + "confirmVaultExport": { + "message": "Confirmare export seif" + }, + "exportWarningDesc": { + "message": "Acest export conține datele dvs. din seif în format necriptat. Nu ar trebui să stocați sau să trimiteți fișierul pe canale nesecurizate (cum ar fi e-mail). Ștergeți-l imediat după ce nu îl mai folosiți." + }, + "encExportKeyWarningDesc": { + "message": "Acest export criptează datele, utilizând cheia de criptare a contului. Dacă revocați vreodată cheia de criptare a contului dvs., ar trebui să exportați din nou, deoarece nu veți putea decripta acest fișier de export." + }, + "encExportAccountWarningDesc": { + "message": "Cheile de criptare a contului sunt unice fiecărui cont de utilizator Bitwarden, astfel încât nu puteți importa un export criptat într-un cont diferit." + }, + "export": { + "message": "Exportați" + }, + "exportVault": { + "message": "Export seif" + }, + "fileFormat": { + "message": "Format fișier" + }, + "exportSuccess": { + "message": "Datele seifului dvs. au fost exportate." + }, + "passwordGenerator": { + "message": "Generator de parole" + }, + "minComplexityScore": { + "message": "Scor minim de complexitate" + }, + "minNumbers": { + "message": "Minimum de cifre" + }, + "minSpecial": { + "message": "Minimum de caractere speciale", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Se evită caracterele ambigue" + }, + "regeneratePassword": { + "message": "Regenerare parolă" + }, + "length": { + "message": "Lungime" + }, + "numWords": { + "message": "Număr de cuvinte" + }, + "wordSeparator": { + "message": "Separator de cuvinte" + }, + "capitalize": { + "message": "Se folosesc majuscule inițiale", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Se includ cifre" + }, + "passwordHistory": { + "message": "Istoric parole" + }, + "noPasswordsInList": { + "message": "Nicio parolă de afișat." + }, + "clear": { + "message": "Ștergere", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Contul s-a actualizat" + }, + "changeEmail": { + "message": "Schimbare adresă e-mail" + }, + "changeEmailTwoFactorWarning": { + "message": "Procedura va schimba adresa de e-mail a contului. Nu va schimba adresa de e-mail utilizată pentru autentificarea cu doi factori. Puteți modifica această adresă de e-mail în setările de conectare în doi pași." + }, + "newEmail": { + "message": "E-mail nou" + }, + "code": { + "message": "Cod" + }, + "changeEmailDesc": { + "message": "Am trimis prin e-mail un cod de verificare la $EMAIL$. Verificați e-mailul pentru acest cod și introduceți-l mai jos pentru a finaliza schimbarea adresei de e-mail.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Continuând, veți fi deconectat de la sesiunea curentă, solicitându-vă să vă conectați din nou. Sesiunile active pe alte dispozitive pot continua să rămână active timp de până la o oră." + }, + "emailChanged": { + "message": "E-mailul a fost modificat" + }, + "logBackIn": { + "message": "Vă rugăm să vă conectați din nou." + }, + "logBackInOthersToo": { + "message": "Vă rugăm să vă reconectați. Dacă utilizați și alte aplicații Bitwarden, reconectați-vă la ele de asemenea." + }, + "changeMasterPassword": { + "message": "Schimbare parolă principală" + }, + "masterPasswordChanged": { + "message": "Parolă principală schimbată" + }, + "currentMasterPass": { + "message": "Parola principală curentă" + }, + "newMasterPass": { + "message": "Parolă principală nouă" + }, + "confirmNewMasterPass": { + "message": "Confirmare parolă principală nouă" + }, + "encKeySettings": { + "message": "Setări cheie de criptare" + }, + "kdfAlgorithm": { + "message": "Algoritm KDF" + }, + "kdfIterations": { + "message": "Iterații KDF" + }, + "kdfIterationsDesc": { + "message": "Un număr de iterații KDF mai mare vă poate ajuta la protejarea parolei principale de un atac prin forța brută de către un atacator. Vă recomandăm o valoare de $VALUE$ sau mai mare.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Setarea iterațiilor KDF prea sus poate duce la performanțe slabe la conectarea (și deblocarea) Bitwarden pe dispozitive cu procesoare mai lente. Vă recomandăm să măriți valoarea în trepte de $INCREMENT$ și apoi să testați toate dispozitivele.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Modificare KDF" + }, + "encKeySettingsChanged": { + "message": "Setările cheii de criptare s-au modificat" + }, + "dangerZone": { + "message": "Zonă periculoasă" + }, + "dangerZoneDesc": { + "message": "Atenție, aceste acțiuni nu sunt reversibile!" + }, + "deauthorizeSessions": { + "message": "Revocare sesiuni" + }, + "deauthorizeSessionsDesc": { + "message": "Sunteți preocupat de faptul că v-ați conectat pe alt dispozitiv cu contul dvs.? Continuați în modul indicat mai jos pentru a revoca autorizarea computerelor sau dispozitivelor folosite anterior. Această măsură de securitate se recomandă dacă ați folosit anterior un computer public sau ați salvat neintenționat parola pe un dispozitiv care nu vă aparține. Aceasta va elimina, de asemenea, toate sesiunile de conectare în două etape stocate anterior." + }, + "deauthorizeSessionsWarning": { + "message": "Continuând, veți fi deconectat de asemenea de la sesiunea curentă, solicitându-vă să vă reconectați. De asemenea, vi se va solicita din nou autentificarea în două etape, dacă este activată. Sesiunile active pe alte dispozitive pot continua să rămână active timp de până la o oră." + }, + "sessionsDeauthorized": { + "message": "Toate sesiunile au fost revocate" + }, + "purgeVault": { + "message": "Curățare seif" + }, + "purgedOrganizationVault": { + "message": "Seiful organizației a fost curățat." + }, + "vaultAccessedByProvider": { + "message": "Seif accesat de furnizor." + }, + "purgeVaultDesc": { + "message": "Continuați în modul indicat mai jos pentru a șterge toate articolele și dosarele din seiful dvs. Articolele care aparțin unei organizații din care sunteți membru nu vor fi șterse." + }, + "purgeOrgVaultDesc": { + "message": "Continuați în modul indicat mai jos pentru a șterge toate articolele din seiful organizației." + }, + "purgeVaultWarning": { + "message": "Curățarea seifului dvs. este definitivă. Nu poate fi anulată." + }, + "vaultPurged": { + "message": "Seiful dvs. a fost curățat." + }, + "deleteAccount": { + "message": "Ștergere cont" + }, + "deleteAccountDesc": { + "message": "Continuați în modul indicat mai jos pentru a vă șterge contul și toate datele asociate." + }, + "deleteAccountWarning": { + "message": "Ștergerea contului dvs. este definitivă. Nu poate fi anulată." + }, + "accountDeleted": { + "message": "Contul a fost șters" + }, + "accountDeletedDesc": { + "message": "Contul dvs. a fost închis și toate datele asociate au fost șterse." + }, + "myAccount": { + "message": "Contul meu" + }, + "tools": { + "message": "Unelte" + }, + "importData": { + "message": "Import de date" + }, + "importError": { + "message": "Eroare de import" + }, + "importErrorDesc": { + "message": "A apărut o problemă cu datele pe care ați încercat să le importați. Vă rugăm să rezolvați erorile enumerate mai jos în fișierul sursă și să încercați din nou." + }, + "importSuccess": { + "message": "Datele au fost importate cu succes în seiful dvs." + }, + "importWarning": { + "message": "Importați date în $ORGANIZATION$. Datele dvs. pot fi partajate cu membrii acestei organizații. Doriți să continuați?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Datele nu au formatul corect. Vă rugăm să verificați fișierul de import și încercați din nou." + }, + "importNothingError": { + "message": "Nu s-a importat nimic." + }, + "importEncKeyError": { + "message": "Eroare la decriptarea fișierului exportat. Cheia dvs. de criptare nu corespunde cu cheia de criptare folosită pentru a exporta datele." + }, + "selectFormat": { + "message": "Alegeți din listă formatul fișierului de import" + }, + "selectImportFile": { + "message": "Alegeți fișierul de import" + }, + "orCopyPasteFileContents": { + "message": " sau copiați/lipiți conținutul fișierului de import" + }, + "instructionsFor": { + "message": "Instrucțiuni $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Opțiuni" + }, + "optionsDesc": { + "message": "Personalizați-vă experiența în seiful web." + }, + "optionsUpdated": { + "message": "Opțiunile s-au actualizat" + }, + "language": { + "message": "Limbă" + }, + "languageDesc": { + "message": "Alegeți limba în care folosiți seiful web." + }, + "disableIcons": { + "message": "Dezactivare iconuri sait" + }, + "disableIconsDesc": { + "message": "Iconurile saiturilor oferă o imagine identificabilă lângă fiecare element de conectare din seiful dvs." + }, + "enableGravatars": { + "message": "Activare Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Folosește imagini avatar încărcate de pe gravatar.com." + }, + "enableFullWidth": { + "message": "Activare aspect seif cu lățimea completă", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Permite seifului web să se extindă pe toată lățimea ferestrei browserului." + }, + "default": { + "message": "Implicit" + }, + "domainRules": { + "message": "Reguli de domeniu" + }, + "domainRulesDesc": { + "message": "Dacă aveți aceleași date de autentificare pe mai multe domenii web diferite, puteți marca saitul web ca \"echivalent\". Domeniile \"globale\" sunt cele create deja de Bitwarden pentru dvs." + }, + "globalEqDomains": { + "message": "Domenii globale echivalente" + }, + "customEqDomains": { + "message": "Domenii personalizate echivalente" + }, + "exclude": { + "message": "Excludere" + }, + "include": { + "message": "Includere" + }, + "customize": { + "message": "Personalizare" + }, + "newCustomDomain": { + "message": "Domeniu nou personalizat" + }, + "newCustomDomainDesc": { + "message": "Introduceți o listă de domenii separate prin virgulă. Sunt permise doar domeniile de \"bază\". Nu introduceți subdomenii. De exemplu, introduceți \"google.com\" în loc de \"www.google.com\". Puteți introduce și \"androidapp://package.name\" pentru a asocia o aplicație Android cu alte domenii de site-uri web." + }, + "customDomainX": { + "message": "Domeniu personalizat $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domenii s-au actualizat" + }, + "twoStepLogin": { + "message": "Autentificare în două etape" + }, + "twoStepLoginDesc": { + "message": "Vă securizează contul solicitând un pas suplimentar la conectare." + }, + "twoStepLoginOrganizationDesc": { + "message": "Necesită autentificarea în două etape pentru utilizatorii organizației dvs. prin configurarea furnizorilor la nivel de organizație." + }, + "twoStepLoginRecoveryWarning": { + "message": "Activarea autentificării în două etape vă poate bloca definitiv din contul Bitwarden. Un cod de recuperare vă permite să vă accesați contul când nu mai puteți utiliza furnizorul dvs. normal de autentificare în două etape (ex. vă pierdeți dispozitivul). Asistența Bitwarden nu vă va putea ajuta dacă pierdeți accesul la contul dvs. Vă recomandăm să notați sau să imprimați codul de recuperare și să îl păstrați într-un loc sigur." + }, + "viewRecoveryCode": { + "message": "Afișare cod de recuperare" + }, + "providers": { + "message": "Furnizori", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Activare" + }, + "enabled": { + "message": "Activat" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Membru Premium" + }, + "premiumRequired": { + "message": "Este necesară versiunea Premium" + }, + "premiumRequiredDesc": { + "message": "Este necesar statutul de membru Premium pentru a utiliza această caracteristică." + }, + "youHavePremiumAccess": { + "message": "Aveți acces premium" + }, + "alreadyPremiumFromOrg": { + "message": "Aveți deja acces la funcții premium datorită organizației la care sunteți membru." + }, + "manage": { + "message": "Gestionare" + }, + "disable": { + "message": "Dezactivare" + }, + "twoStepLoginProviderEnabled": { + "message": "Acest furnizor de autentificare în două etape este activat în contul dvs." + }, + "twoStepLoginAuthDesc": { + "message": "Introduceți parola principală pentru a modifica setările de autentificare în două etape." + }, + "twoStepAuthenticatorDesc": { + "message": "Urmați acești pași pentru a configura autentificarea în două etape cu o aplicație de autentificare:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Descărcați o aplicație de autentificare în două etape" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Aveți nevoie de o aplicație de autentificare în două etape? Descărcați una dintre următoarele" + }, + "iosDevices": { + "message": "Dispozitive iOS" + }, + "androidDevices": { + "message": "Dispozitive Android" + }, + "windowsDevices": { + "message": "Dispozitive Windows" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Aceste aplicații sunt recomandate, cu toate acestea, vor funcționa și alte aplicații de autentificare." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scanați acest cod QR cu aplicația dvs. de autentificare" + }, + "key": { + "message": "Cheie" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Introduceți codul de verificare din 6 cifre din aplicație" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Dacă trebuie să-l adăugați la un alt dispozitiv, mai jos este codul QR (sau cheia) cerut de aplicația dvs. de autentificare." + }, + "twoStepDisableDesc": { + "message": "Sigur doriți să dezactivați acest furnizor de autentificare în două etape?" + }, + "twoStepDisabled": { + "message": "Furnizorul de autentificare în două etape a fost dezactivat." + }, + "twoFactorYubikeyAdd": { + "message": "Etape de urmat pentru a vă adăuga o nouă cheie in cont." + }, + "twoFactorYubikeyPlugIn": { + "message": "Conectați YubiKey la portul USB al computerului." + }, + "twoFactorYubikeySelectKey": { + "message": "Alegeți primul câmp de intrare YubiKey gol de mai jos." + }, + "twoFactorYubikeyTouchButton": { + "message": "Atingeți butonul YubiKey." + }, + "twoFactorYubikeySaveForm": { + "message": "Salvați formularul." + }, + "twoFactorYubikeyWarning": { + "message": "Drept consecință a limitărilor platformei, YubiKey-urile nu se pot utiliza pe toate aplicațiile Bitwarden. Ar trebui să activați un alt furnizor de conectare în două etape pentru a vă accesa contul atunci când YubiKey-urile nu se pot utiliza. Platforme acceptate:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Seiful web, aplicația desktop, CLI (Command-Line Interface), și toate extensiile de browser de pe un dispozitiv cu un port USB care poate accepta YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Aplicații mobile pe un dispozitiv cu tehnologia NFC integrată sau un port de date care poate accepta YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "Cheie U2F $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "Cheie WebAuthn $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "Suport NFC" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Una dintre cheile mele acceptă NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Dacă unul din YubiKey-urile dvs. suportă NFC (cum ar fi un YubiKey NEO), vi se va solicita pe dispozitivele mobile ori de câte ori este detectată disponibilitatea NFC." + }, + "yubikeysUpdated": { + "message": "YubiKey-urile s-au actualizat" + }, + "disableAllKeys": { + "message": "Dezactivare a tuturor cheilor" + }, + "twoFactorDuoDesc": { + "message": "Introduceți informațiile despre aplicația Bitwarden din panoul dvs. Duo Admin." + }, + "twoFactorDuoIntegrationKey": { + "message": "Cheie de integrare" + }, + "twoFactorDuoSecretKey": { + "message": "Cheie secretă" + }, + "twoFactorDuoApiHostname": { + "message": "Numele gazdei API" + }, + "twoFactorEmailDesc": { + "message": "Urmați acești pași pentru a configura conectarea în două etape cu e-mail:" + }, + "twoFactorEmailEnterEmail": { + "message": "Introducere de adresă de e-mail la care doriți să primiți codurile de verificare" + }, + "twoFactorEmailEnterCode": { + "message": "Introducere cod de verificare din 6 cifre din e-mail" + }, + "sendEmail": { + "message": "Trimitere e-mail" + }, + "twoFactorU2fAdd": { + "message": "Adăugare de cheie de securitate FIDO U2F în contul dvs." + }, + "removeU2fConfirmation": { + "message": "Sigur doriți să eliminați această cheie de securitate?" + }, + "twoFactorWebAuthnAdd": { + "message": "Adăugare de cheie de securitate WebAuthn în contul dvs." + }, + "readKey": { + "message": "Citire cheie" + }, + "keyCompromised": { + "message": "Cheia este compromisă." + }, + "twoFactorU2fGiveName": { + "message": "Dați cheii de securitate un nume prietenos pentru a o identifica." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Conectați cheia de securitate la portul USB al computerului și clicați pe butonul \"Citire cheie\"." + }, + "twoFactorU2fTouchButton": { + "message": "Când cheia de securitate are un buton, atingeți-l." + }, + "twoFactorU2fSaveForm": { + "message": "Salvați formularul." + }, + "twoFactorU2fWarning": { + "message": "Drept consecință a limitărilor platformei, FIDO U2F nu poate fi utilizat pe toate aplicațiile Bitwarden. Ar trebui să activați un alt furnizor de conectare în două etape pentru a vă accesa contul atunci când FIDO U2F nu se poate utiliza. Platforme acceptate:" + }, + "twoFactorU2fSupportWeb": { + "message": "Seiful web și extensiile de browser pe un desktop/laptop cu un browser activat U2F (Chrome, Opera, Vivaldi, sau Firefox cu FIDO U2F activat)." + }, + "twoFactorU2fWaiting": { + "message": "Vă așteptăm ca să atingeți butonul de pe cheia de securitate" + }, + "twoFactorU2fClickSave": { + "message": "Clicați pe butonul \"Salvare\" mai jos pentru a activa cheia de securitate de conectarea în două etape." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "A apărut o problemă la citirea cheii de securitate. Încercați din nou." + }, + "twoFactorWebAuthnWarning": { + "message": "Drept consecință a limitărilor platformei, WebAuthn nu se poate utiliza pe toate aplicațiile Bitwarden. Ar trebui să activați un alt furnizor de conectare în două etape pentru a vă accesa contul, atunci când WebAuthn nu se poate utiliza. Platforme acceptate:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Seiful web și extensiile de browser pe un desktop/laptop cu un browser activat WebAuthn (Chrome, Opera, Vivaldi sau Firefox cu FIDO U2F activat)." + }, + "twoFactorRecoveryYourCode": { + "message": "Codul dvs. Bitwarden de recuperare a autentificării în două etape" + }, + "twoFactorRecoveryNoCode": { + "message": "Nu ați activat încă niciun furnizor de conectare în două etape. După ce activați un furnizor de conectare în două etape, puteți reveni aici pentru codul de recuperare." + }, + "printCode": { + "message": "Imprimare cod", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Rapoarte" + }, + "reportsDesc": { + "message": "Identificați și eliminați lacunele de securitate din conturile dvs. online făcând clic pe rapoartele de mai jos." + }, + "unsecuredWebsitesReport": { + "message": "Site-uri web nesigure" + }, + "unsecuredWebsitesReportDesc": { + "message": "URL-urile care încep cu http:// nu utilizează cea mai bună criptare disponibilă. Schimbați URI-urile de conectare pentru aceste conturi cu https:// pentru o navigare mai sigură." + }, + "unsecuredWebsitesFound": { + "message": "S-au găsit saituri web nesecurizate" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Am găsit $COUNT$ articole în seiful dvs. cu URI-uri nesecurizate. Ar trebui să schimbați schema URl-urilor lor în https:// dacă saitul o permite.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Niciun articol din seiful dvs. nu are URI-uri nesecurizate." + }, + "inactive2faReport": { + "message": "Autentificare în doi pași inactivă" + }, + "inactive2faReportDesc": { + "message": "Autentificarea în doi pași adaugă un nivel de protecție pentru conturile d-voastră. Activați Autentificarea în doi pași utilizând Autentificatorul Bitwarden pentru aceste conturi sau utilizați o metodă alternativă." + }, + "inactive2faFound": { + "message": "S-au găsit conectări fără 2FA" + }, + "inactive2faFoundDesc": { + "message": "Am găsit $COUNT$ sait(uri) web în seiful dvs. care s-ar putea să nu fie configurate cu autentificarea cu doi factori (conform cu 2fa.directory). Pentru a proteja în continuare aceste conturi, ar trebui să activați autentificarea cu doi factori.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Nu au fost găsite saituri în seiful dvs. cu o configurație de autentificare cu doi factori lipsă." + }, + "instructions": { + "message": "Instrucțiuni" + }, + "exposedPasswordsReport": { + "message": "Parolele expuse" + }, + "exposedPasswordsReportDesc": { + "message": "Parolele expuse în cazul unei încălcări a securității datelor sunt ținte ușoare pentru atacatori. Schimbați aceste parole pentru a preveni eventualele intruziuni." + }, + "exposedPasswordsFound": { + "message": "S-au găsit parole dezvăluite" + }, + "exposedPasswordsFoundDesc": { + "message": "Am găsit $COUNT$ articole în seiful dvs. care folosesc parole dezvăluite în scurgeri de date cunoscute. Ar trebui să le schimbați pentru a utiliza o parolă nouă.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Niciun articol din seiful dvs. nu are parole dezvăluite în scurgeri de date cunoscute." + }, + "checkExposedPasswords": { + "message": "Verificați parolele dezvăluite" + }, + "exposedXTimes": { + "message": "Dezvăluită de $COUNT$ ori", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Parole slabe" + }, + "weakPasswordsReportDesc": { + "message": "Parolele slabe pot fi ușor ghicite de atacatori. Schimbați aceste parole cu unele puternice folosind Generatorul de parole." + }, + "weakPasswordsFound": { + "message": "S-au găsit parole slabe" + }, + "weakPasswordsFoundDesc": { + "message": "Am găsit $COUNT$ articole cu parole slabe articole în seiful dvs. Ar trebui să le actualizați ca să folosească parole puternice.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Niciun articol din seiful dvs. nu are parole slabe." + }, + "reusedPasswordsReport": { + "message": "Parole refolosite" + }, + "reusedPasswordsReportDesc": { + "message": "Reutilizarea parolelor facilitează accesul atacatorilor la mai multe conturi. Schimbați aceste parole astfel încât fiecare să fie unică." + }, + "reusedPasswordsFound": { + "message": "S-au găsit parole refolosite" + }, + "reusedPasswordsFoundDesc": { + "message": "Am găsit $COUNT$ parole reutilizate în seiful dvs. Ar trebui să le schimbați la o valoare unică.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Nicio dată de conectare din seiful dvs. nu conține parole reutilizate." + }, + "reusedXTimes": { + "message": "Refolosit $COUNT$ ori", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Breșă de date" + }, + "breachDesc": { + "message": "Conturile care au fost piratate vă pot expune informațiile personale. Protejați conturile compromise prin activarea 2FA sau prin crearea unei parole mai puternice." + }, + "breachCheckUsernameEmail": { + "message": "Verificați orice nume de utilizator sau adresă e-mail pe care o folosiți." + }, + "checkBreaches": { + "message": "Verificare scurgeri" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ nu a fost găsit în nicio scurgere de date cunoscută.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Vești bune", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ a fost găsit în $COUNT$ diferite scurgeri de date online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "S-au găsit conturi cu scurgeri" + }, + "compromisedData": { + "message": "Date compromise" + }, + "website": { + "message": "Sait web" + }, + "affectedUsers": { + "message": "Utilizatori afectați" + }, + "breachOccurred": { + "message": "Scurgere produsă" + }, + "breachReported": { + "message": "Scurgere raportată" + }, + "reportError": { + "message": "A apărut o eroare la încărcarea raportului. Încercați din nou" + }, + "billing": { + "message": "Facturare" + }, + "accountCredit": { + "message": "Creditul contului", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Balanța contului", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Adăugare credit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Sumă", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Creditul adăugat va apare în contul dvs. după procesarea completă a plății. Unele metode de plată sunt întârziate și pot lua mai mult timp de procesare decât altele." + }, + "makeSureEnoughCredit": { + "message": "Vă rugăm să vă asigurați că aveți suficient credit disponibil în cont pentru această achiziție. Dacă nu aveți suficient credit în cont, metoda dvs. implicită de plată înregistrată va fi folosită pentru diferență. Puteți adăuga credit în contul dvs. din pagina Facturare." + }, + "creditAppliedDesc": { + "message": "Creditul contului dvs. se poate utiliza pentru a face cumpărături. Orice credit disponibil va fi aplicat automat pentru facturile generate pentru acest cont." + }, + "goPremium": { + "message": "Obțineți Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Ați actualizat la Premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Actualizați-vă contul la un abonament premium și deblocați câteva funcții suplimentare excelente." + }, + "premiumSignUpStorage": { + "message": "1 GB stocare criptată pentru fișiere atașate." + }, + "premiumSignUpTwoStep": { + "message": "Opțiuni suplimentare de conectare în două etape, cum ar fi YubiKey, FIDO U2F și Duo." + }, + "premiumSignUpEmergency": { + "message": "Acces de urgență" + }, + "premiumSignUpReports": { + "message": "Rapoarte privind igiena parolelor, sănătatea contului și breșele de date pentru a vă păstra seiful în siguranță." + }, + "premiumSignUpTotp": { + "message": "Generator de cod de verificare TOTP (2FA) pentru autentificări în seiful dvs." + }, + "premiumSignUpSupport": { + "message": "Asistență prioritară pentru clienți." + }, + "premiumSignUpFuture": { + "message": "Toate funcțiile premium viitoare. În curând mai multe!" + }, + "premiumPrice": { + "message": "Totul pentru numai $PRICE$ /an!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Add-on-uri" + }, + "premiumAccess": { + "message": "Acces Premium" + }, + "premiumAccessDesc": { + "message": "Puteți adăuga acces premium tuturor membrilor organizației dvs. pentru $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Stocare adițională (GB)" + }, + "additionalStorageGbDesc": { + "message": "# de GB adiționali" + }, + "additionalStorageIntervalDesc": { + "message": "Planul dvs. vine cu $SIZE$ de stocare criptată de fișiere. Puteți adăuga stocare suplimentară pentru $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Rezumat" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "an" + }, + "month": { + "message": "lună" + }, + "monthAbbr": { + "message": "lună", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Metoda dvs. de plată va fi facturată imediat și apoi în mod recurent în fiecare an. Puteți anula în orice moment." + }, + "paymentCharged": { + "message": "Metoda dvs. de plată va fi facturată imediat și apoi în mod recurent în fiecare $INTERVAL$. Puteți anula în orice moment.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Planul dvs. vine cu o încercare gratuită de 7 zile. Metoda dvs. de plată nu va fi facturată până la sfârșitul perioadei de încercare. Puteți anula în orice moment." + }, + "paymentInformation": { + "message": "Informații de plată" + }, + "billingInformation": { + "message": "Informații de facturare" + }, + "creditCard": { + "message": "Card de credit" + }, + "paypalClickSubmit": { + "message": "Clicați pe butonul PayPal pentru a vă conecta la contul PayPal, apoi clicați pe butonul Trimitere mai jos pentru a continua." + }, + "cancelSubscription": { + "message": "Anulare abonament" + }, + "subscriptionCanceled": { + "message": "Abonamentul a fost anulat." + }, + "pendingCancellation": { + "message": "Anulare în așteptare" + }, + "subscriptionPendingCanceled": { + "message": "Abonamentul a fost marcat pentru anulare la sfârșitul perioadei curente de facturare." + }, + "reinstateSubscription": { + "message": "Restabilire abonament" + }, + "reinstateConfirmation": { + "message": "Sigur doriți să eliminați cererea de anulare în așteptare și să vă restabiliți abonamentul?" + }, + "reinstated": { + "message": "Abonamentul a fost restabilit." + }, + "cancelConfirmation": { + "message": "Sigur doriți să anulați? Veți pierde accesul la toate funcționalitățile acestui abonament la sfârșitul acestui ciclu de facturare." + }, + "canceledSubscription": { + "message": "Abonamentul a fost anulat." + }, + "neverExpires": { + "message": "Nu expiră niciodată" + }, + "status": { + "message": "Stare" + }, + "nextCharge": { + "message": "Plata următoare" + }, + "details": { + "message": "Detalii" + }, + "downloadLicense": { + "message": "Descărcare licență" + }, + "updateLicense": { + "message": "Actualizare licență" + }, + "updatedLicense": { + "message": "Licența s-a actualizat" + }, + "manageSubscription": { + "message": "Gestionare abonament" + }, + "storage": { + "message": "Stocare" + }, + "addStorage": { + "message": "Adăugare stocare" + }, + "removeStorage": { + "message": "Eliminare stocare" + }, + "subscriptionStorage": { + "message": "Abonamentul dvs. are un total de $MAX_STORAGE$ GB de stocare criptată de fișiere. În prezent folosiți $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Metoda de plată" + }, + "noPaymentMethod": { + "message": "Nicio metodă de plată în fișier." + }, + "addPaymentMethod": { + "message": "Adăugare metodă de plată" + }, + "changePaymentMethod": { + "message": "Schimbare metodă de plată" + }, + "invoices": { + "message": "Facturi" + }, + "noInvoices": { + "message": "Nicio factură." + }, + "paid": { + "message": "Plătit", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Neplătit", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Tranzacții", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Nicio tranzacție." + }, + "chargeNoun": { + "message": "Debit", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Rambursare", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Orice plați în contul dvs. vor apărea ca $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB de stocare de adăugat" + }, + "gbStorageRemove": { + "message": "GB de stocare de eliminat" + }, + "storageAddNote": { + "message": "Adăugarea stocării va duce la ajustări ale totalelor de facturare și la facturarea imediată conform metodei dvs. de facturare. Prima facturare va fi aplicată proporțional la restul ciclului curent de facturare." + }, + "storageRemoveNote": { + "message": "Eliminarea stocării va duce la ajustări ale totalelor dvs. de facturare, care vor fi proporționate ca credite pentru următoarea facturare." + }, + "adjustedStorage": { + "message": "$AMOUNT$ GB de spațiu de stocare ajustat.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contactare asistență pentru clienți" + }, + "updatedPaymentMethod": { + "message": "Metoda de plată s-a actualizat." + }, + "purchasePremium": { + "message": "Achiziționare abonament Premium" + }, + "licenseFile": { + "message": "Fișier de licență" + }, + "licenseFileDesc": { + "message": "Fișierul dvs. de licență va fi numit ceva de genul $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Pentru a vă actualiza contul la statutul de membru Premium, trebuie să încărcați un fișier de licență valid." + }, + "uploadLicenseFileOrg": { + "message": "Pentru a crea o organizație găzduită local, trebuie să încărcați un fișier de licență valid." + }, + "accountEmailMustBeVerified": { + "message": "Adresa de e-mail a contului dvs. trebuie verificată." + }, + "newOrganizationDesc": { + "message": "Organizațiile vă permit să vă partajați părți din seif cu ceilalți, precum și gestionarea utilizatorilor asociați pentru o anumită entitate, cum ar fi o familie, echipă mică sau companie mare." + }, + "generalInformation": { + "message": "Informații generale" + }, + "organizationName": { + "message": "Numele organizației" + }, + "accountOwnedBusiness": { + "message": "Acest cont este deținut de un business." + }, + "billingEmail": { + "message": "Adresa e-mail de facturare" + }, + "businessName": { + "message": "Numele businessului" + }, + "chooseYourPlan": { + "message": "Alegeți-vă planul" + }, + "users": { + "message": "Utilizatori" + }, + "userSeats": { + "message": "Licențe utilizator" + }, + "additionalUserSeats": { + "message": "Licențe utilizator adiționale" + }, + "userSeatsDesc": { + "message": "# de licențe utilizator" + }, + "userSeatsAdditionalDesc": { + "message": "Planul dvs. vine cu $BASE_SEATS$ licențe de utilizator. Puteți adăuga utilizatori adiționali pentru $SEAT_PRICE$ per utilizator /lună.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "De câte licențe de utilizator aveți nevoie? Dacă este nevoie, licențe suplimentare pot fi adăugate mai târziu." + }, + "planNameFree": { + "message": "Gratuit", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Pentru testare sau pentru utilizatori privați pentru partajarea cu $COUNT$ alt utilizator.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Familiile" + }, + "planDescFamilies": { + "message": "Pentru uz personal, pentru a partaja cu familia și prietenii." + }, + "planNameTeams": { + "message": "Echipe" + }, + "planDescTeams": { + "message": "Pentru businessuri și alte organizații în echipă." + }, + "planNameEnterprise": { + "message": "Organizație" + }, + "planDescEnterprise": { + "message": "Pentru businessuri și alte organizații mari." + }, + "freeForever": { + "message": "Gratuit pentru totdeauna" + }, + "includesXUsers": { + "message": "include $COUNT$ utilizatori", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Utilizatori suplimentari" + }, + "costPerUser": { + "message": "$COST$ per utilizator", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limitat la $COUNT$ utilizatori (inclusiv dvs.)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limitat la $COUNT$ colecții", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Adăugare și partajare cu până la $COUNT$ utilizatori", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Adăugare și partajare cu utilizatori nelimitați" + }, + "createUnlimitedCollections": { + "message": "Creați colecții nelimitate" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ de stocare de fișiere criptate", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Găzduire locală (opțional)" + }, + "usersGetPremium": { + "message": "Utilizatorii au acces la funcțiile Premium" + }, + "controlAccessWithGroups": { + "message": "Controlare a accesului utilizatorilor cu Grupuri" + }, + "syncUsersFromDirectory": { + "message": "Sincronizare a utilizatorilor și Grupurilor dvs dintr-un director" + }, + "trackAuditLogs": { + "message": "Urmăriți acțiunile utilizatorilor cu jurnalele de audit" + }, + "enforce2faDuo": { + "message": "Impunere 2FA cu Duo" + }, + "priorityCustomerSupport": { + "message": "Asistență prioritară pentru clienți" + }, + "xDayFreeTrial": { + "message": "$COUNT$ zile de încercare gratuită, anulați oricând", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Lunar" + }, + "annually": { + "message": "Anual" + }, + "basePrice": { + "message": "Preț de bază" + }, + "organizationCreated": { + "message": "Organizația a fost creată" + }, + "organizationReadyToGo": { + "message": "Noua dvs. organizație este pregătită!" + }, + "organizationUpgraded": { + "message": "Un upgrade al organizației a fost efectuat." + }, + "leave": { + "message": "Părăsește" + }, + "leaveOrganizationConfirmation": { + "message": "Sigur doriți să părăsiți această organizație?" + }, + "leftOrganization": { + "message": "Ați părăsit organizația." + }, + "defaultCollection": { + "message": "Colecție implicită" + }, + "getHelp": { + "message": "Obținere ajutor" + }, + "getApps": { + "message": "Obținere aplicație" + }, + "loggedInAs": { + "message": "Autentificat ca" + }, + "eventLogs": { + "message": "Jurnale evenimente" + }, + "people": { + "message": "Persoane" + }, + "policies": { + "message": "Politici" + }, + "singleSignOn": { + "message": "Conectare unică" + }, + "editPolicy": { + "message": "Editare politici" + }, + "groups": { + "message": "Grupuri" + }, + "newGroup": { + "message": "Grup nou" + }, + "addGroup": { + "message": "Adăugare grup" + }, + "editGroup": { + "message": "Editare grup" + }, + "deleteGroupConfirmation": { + "message": "Sigur doriți să ștergeți acest grup?" + }, + "removeUserConfirmation": { + "message": "Sigur doriți să eliminați acest utilizator?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Avertisment! Acest utilizator are nevoie de Conector Cheie pentru a-și gestiona criptarea. Eliminarea acestui utilizator din organizația dvs., îi va dezactiva permanent contul. Această acțiune nu poate fi anulată. Doriți să continuați?" + }, + "externalId": { + "message": "Id Extern" + }, + "externalIdDesc": { + "message": "Id-ul extern poate fi utilizat ca referință sau pentru a lega această resursă de un sistem extern, cum ar fi un folder utilizator." + }, + "accessControl": { + "message": "Controlul accesului" + }, + "groupAccessAllItems": { + "message": "Acest grup poate accesa și modifica toate articolele." + }, + "groupAccessSelectedCollections": { + "message": "Acest grup poate accesa doar colecțiile selectate." + }, + "readOnly": { + "message": "Doar pentru citire" + }, + "newCollection": { + "message": "Colecție nouă" + }, + "addCollection": { + "message": "Adăugare colecție" + }, + "editCollection": { + "message": "Editare colecție" + }, + "deleteCollectionConfirmation": { + "message": "Sigur doriți să ștergeți această colecție?" + }, + "editUser": { + "message": "Editare utilizator" + }, + "inviteUser": { + "message": "Invitare utilizator" + }, + "inviteUserDesc": { + "message": "Invitați un utilizator nou în organizația dvs. introducându-i mai jos adresa de e-mail a contului Bitwarden. Dacă nu au deja un cont Bitwarden, li se va solicita să își creeze un cont nou." + }, + "inviteMultipleEmailDesc": { + "message": "Puteți invita până la $COUNT$ utilizatori odată separând prin virgulă o listă de adrese de e-mail.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Acest utilizator folosește conectarea în două etape pentru a-și proteja contul." + }, + "userAccessAllItems": { + "message": "Acest utilizator poate accesa și modifica toate articolele." + }, + "userAccessSelectedCollections": { + "message": "Acest utilizator poate accesa doar colecțiile selectate." + }, + "search": { + "message": "Căutare" + }, + "invited": { + "message": "Invitat" + }, + "accepted": { + "message": "Acceptat" + }, + "confirmed": { + "message": "Confirmat" + }, + "clientOwnerEmail": { + "message": "E-mailul proprietarului clientului" + }, + "owner": { + "message": "Proprietar" + }, + "ownerDesc": { + "message": "Contul cu cele mai mari privilegii care poate gestiona toate aspectele organizației." + }, + "clientOwnerDesc": { + "message": "Acest utilizator trebuie să fie independent de furnizor. În cazul în care furnizorul este dezasociat de organizație, acest utilizator va menține proprietatea organizației." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Administratorii pot accesa și gestiona toate articolele, colecțiile și utilizatorii din organizația dvs." + }, + "user": { + "message": "Utilizator" + }, + "userDesc": { + "message": "Un utilizator obișnuit cu acces la colecțiile alocate din organizația dvs." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managerii pot accesa și gestiona colecțiile atribuite în organizația dvs." + }, + "all": { + "message": "Tot" + }, + "refresh": { + "message": "Reîmprospătare" + }, + "timestamp": { + "message": "Marcă temporală" + }, + "event": { + "message": "Eveniment" + }, + "unknown": { + "message": "Necunoscut" + }, + "loadMore": { + "message": "Încărcați mai mult" + }, + "mobile": { + "message": "Mobil", + "description": "Mobile app" + }, + "extension": { + "message": "Extensie", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Seif web" + }, + "loggedIn": { + "message": "Autentificat." + }, + "changedPassword": { + "message": "Parola contului a fost modificată." + }, + "enabledUpdated2fa": { + "message": "Conectarea în două etape s-a activat/actualizat." + }, + "disabled2fa": { + "message": "Conexiune în două etape dezactivată." + }, + "recovered2fa": { + "message": "Cont recuperat de la conectarea în două etape." + }, + "failedLogin": { + "message": "Încercare de conectare eșuată cu o parolă incorectă." + }, + "failedLogin2fa": { + "message": "Încercare de conectare eșuată cu verificarea în două etape incorectă." + }, + "exportedVault": { + "message": "Seiful a fost exportat." + }, + "exportedOrganizationVault": { + "message": "Seiful organizației a fost exportat." + }, + "editedOrgSettings": { + "message": "Setările organizației s-au modificat." + }, + "createdItemId": { + "message": "Element $ID$ creat.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Element $ID$ editat.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Articolul $ID$ a fost trimis în coșul de reciclare.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Articolul $ID$ a fost mutat la o organizație.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Element $ID$ vizualizat.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Parola pentru elementul $ID$ a fost vizualizată.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Câmpul ascuns al elementului $ID$ a fost vizualizat.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Codul de securitate al elementului $ID$ a fost vizualizat.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Parola elementului $ID$ s-a copiat.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Câmpul ascuns al elementului $ID$ a fost copiat.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Codul de securitate al elementului $ID$ a fost copiat.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Elementul $ID$ s-a completat automat", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Colecția $ID$ a fost creată.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Colecția $ID$ a fost editată.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Colecția $ID$ a fost ștearsă.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Politica $ID$ a fost editată.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Grupul $ID$ a fost creat.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Grupul $ID$ a fost editat.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Grupul $ID$ a fost șters.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Utilizatorul $ID$ a fost eliminat.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Atașamentul elementului $ID$ a fost creat.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Atașamentul elementului $ID$ a fost șters.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Colecțiile elementului $ID$ au fost editate.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Utilizatorul $ID$ a fost invitat.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Utilizatorul $ID$ a fost confirmat.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Utilizatorul $ID$ a fost editat.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Grupurile utilizatorului $ID$ au fost editate.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "SSO deconectat pentru utilizatorul $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Organizația $ID$ a fost creată.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Organizația $ID$ a fost adăugată.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Organizația $ID$ a fost eliminată.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Seiful organizației $ID$ a fost accesat.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Dispozitiv" + }, + "view": { + "message": "Afișare" + }, + "invalidDateRange": { + "message": "Interval de date incorect." + }, + "errorOccurred": { + "message": "S-a produs o eroare." + }, + "userAccess": { + "message": "Acces utilizator" + }, + "userType": { + "message": "Tip de utilizator" + }, + "groupAccess": { + "message": "Acces grup" + }, + "groupAccessUserDesc": { + "message": "Editați grupurile cu care este asociat acest utilizator." + }, + "invitedUsers": { + "message": "Utilizatori invitați." + }, + "resendInvitation": { + "message": "Retrimitere invitație" + }, + "resendEmail": { + "message": "Retrimitere e-mail" + }, + "hasBeenReinvited": { + "message": "$USER$ a fost invitat din nou.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirmare" + }, + "confirmUser": { + "message": "Confirmare utilizator" + }, + "hasBeenConfirmed": { + "message": "$USER$ a fost confirmat.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirmare utilizatori" + }, + "usersNeedConfirmed": { + "message": "Aveți utilizatori care au acceptat invitația, dar care încă au nevoie să fie confirmați. Utilizatorii nu vor avea acces la organizație până când nu sunt confirmați." + }, + "startDate": { + "message": "Data de început" + }, + "endDate": { + "message": "Data de sfârșit" + }, + "verifyEmail": { + "message": "Verificare e-mail" + }, + "verifyEmailDesc": { + "message": "Verifică adresa de e-mail a contului pentru a debloca accesul la toate funcțiile." + }, + "verifyEmailFirst": { + "message": "Adresa de e-mail a contului dvs. trebuie mai întâi verificată." + }, + "checkInboxForVerification": { + "message": "Verificați dacă ați primit linkul de verificare prin e-mail." + }, + "emailVerified": { + "message": "E-mailul dvs. a fost confirmat." + }, + "emailVerifiedFailed": { + "message": "E-mailul dvs. nu a putut fi verificat. Încercați să trimiteți un nou e-mail de verificare." + }, + "emailVerificationRequired": { + "message": "Este necesară verificarea adresei de e-mail" + }, + "emailVerificationRequiredDesc": { + "message": "Trebuie să vă verificați e-mailul pentru a utiliza această caracteristică." + }, + "updateBrowser": { + "message": "Actualizare browser" + }, + "updateBrowserDesc": { + "message": "Utilizați un browser nesuportat. Seiful web ar putea să nu funcționeze corect." + }, + "joinOrganization": { + "message": "Alăturare la organizație" + }, + "joinOrganizationDesc": { + "message": "Ați fost invitat să vă alăturați organizației listate mai sus. Pentru a accepta invitația, trebuie să vă conectați sau să creați un cont Bitwarden nou." + }, + "inviteAccepted": { + "message": "Invitație acceptată" + }, + "inviteAcceptedDesc": { + "message": "Puteți accesa această organizație după ce un administrator vă confirmă abonamentul. Vă vom trimite un e-mail când se întâmplă acest lucru." + }, + "inviteAcceptFailed": { + "message": "Imposibil de acceptat invitația. Solicitați unui administrator al organizației să trimită o invitație nouă." + }, + "inviteAcceptFailedShort": { + "message": "Imposibil de acceptat invitația. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Memorare e-mail" + }, + "recoverAccountTwoStepDesc": { + "message": "Dacă nu vă puteți accesa contul prin metodele normale de conectare în două etape, puteți utiliza codul de recuperare în două etape pentru a dezactiva toți furnizorii în două etape din contul dvs." + }, + "recoverAccountTwoStep": { + "message": "Recuperare autentificare în două etape a contului" + }, + "twoStepRecoverDisabled": { + "message": "Conectarea în două etape a fost dezactivată în contul dvs." + }, + "learnMore": { + "message": "Aflați mai multe" + }, + "deleteRecoverDesc": { + "message": "Introduceți adresa de e-mail mai jos pentru a vă recupera și șterge contul." + }, + "deleteRecoverEmailSent": { + "message": "În cazul în care contul dvs. există, v-am trimis un e-mail cu instrucțiuni suplimentare." + }, + "deleteRecoverConfirmDesc": { + "message": "Ați solicitat să ștergeți contul Bitwarden. Clicați pe butonul de mai jos pentru a confirma." + }, + "myOrganization": { + "message": "Organizația mea" + }, + "deleteOrganization": { + "message": "Ștergere organizație" + }, + "deletingOrganizationContentWarning": { + "message": "Introduceți parola principală pentru a confirma ștergerea $ORGANIZATION$ și a tuturor datelor asociate. Datele de seif din $ORGANIZATION$ includ:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Conturile de utilizator vor rămâne active după ștergere, dar nu vor mai fi asociate cu această organizație." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Ștergerea $ORGANIZATION$ este permanentă și ireversibilă.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organizația a fost ștearsă" + }, + "organizationDeletedDesc": { + "message": "Organizația și toate datele asociate au fost șterse." + }, + "organizationUpdated": { + "message": "Organizația s-a actualizat" + }, + "taxInformation": { + "message": "Informații fiscale" + }, + "taxInformationDesc": { + "message": "Pentru clienții din SUA, codul ZIP este necesar pentru a satisface cerințele privind taxa de vânzare, pentru alte țări, opțional, puteți să furnizați un număr de identificare fiscală (TVA/GST) și/sau o adresă care să apară pe facturile dvs." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Actualizare plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Actualizați-vă contului la un alt plan prin furnizarea informațiilor de mai jos. Vă rugăm să vă asigurați că ați adăugat o metodă de plată activă în cont.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Factura #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Afișare factură" + }, + "downloadInvoice": { + "message": "Descărcare factură" + }, + "verifyBankAccount": { + "message": "Verificare contul bancar" + }, + "verifyBankAccountDesc": { + "message": "Am făcut două micro-depozite în contul dvs. bancar (poate dura 1-2 zile lucrătoare pentru a apărea). Introduceți aceste sume pentru a verifica contul bancar." + }, + "verifyBankAccountInitialDesc": { + "message": "Plata cu un cont bancar este disponibilă numai clienților din Statele Unite. Vi se va cere să vă verificați contul bancar. Vom face două micro-depozite în următoarele 1-2 zile lucrătoare. Introduceți aceste sume pe pagina de facturare a organizației pentru a verifica contul bancar." + }, + "verifyBankAccountFailureWarning": { + "message": "O eroare la validarea contului dvs. bancar va duce la o plată pierdută, iar abonamentul dvs. va fi dezactivat." + }, + "verifiedBankAccount": { + "message": "Contul bancar a fost verificat." + }, + "bankAccount": { + "message": "Cont bancar" + }, + "amountX": { + "message": "Suma $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Cod bancar", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Număr de cont" + }, + "accountHolderName": { + "message": "Numele titularului contului" + }, + "bankAccountType": { + "message": "Tip de cont" + }, + "bankAccountTypeCompany": { + "message": "Companie (Business)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Personal)" + }, + "enterInstallationId": { + "message": "Introducere id de instalare" + }, + "limitSubscriptionDesc": { + "message": "Setați o limită de licențe pentru abonamentul dvs. Odată ce această limită este atinsă, nu veți putea invita utilizatori noi." + }, + "maxSeatLimit": { + "message": "Limita maximă de licențe (opțional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Cost potențial maxim de licență" + }, + "addSeats": { + "message": "Adăugare licențe", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Eliminare licențe", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Ajustările abonamentului dvs. vor avea ca rezultat modificări proporționale ale totalurilor dvs. de facturare. Dacă utilizatorii nou invitați depășesc numărul dvs. de licențe, veți primi imediat o taxă proporțională pentru utilizatorii suplimentari." + }, + "subscriptionUserSeats": { + "message": "Abonamentul dvs. permite un total de $COUNT$ utilizatori.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limită de abonament (opțional)" + }, + "subscriptionSeats": { + "message": "Licențele abonamentului" + }, + "subscriptionUpdated": { + "message": "Abonament actualizat" + }, + "additionalOptions": { + "message": "Opțiuni suplimentare" + }, + "additionalOptionsDesc": { + "message": "Pentru ajutor suplimentar în gestionarea abonamentului dvs., vă rugăm să contactați serviciul de asistență pentru clienți." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Ajustările abonamentului dvs. vor avea ca rezultat modificări proporționale ale totalurilor dvs. de facturare. Dacă utilizatorii nou invitați depășesc numărul dvs. de licențe, veți primi imediat o taxă proporțională pentru utilizatorii suplimentari." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Ajustările abonamentului dvs. vor avea ca rezultat modificări proporționale ale totalurilor dvs. de facturare. Dacă utilizatorii nou invitați depășesc numărul dvs. de licențe, veți primi imediat o taxă proporțională pentru utilizatorii suplimentari, până când limita dvs. de $MAX$ licențe este atinsă.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Nu puteți invita mai mult de $COUNT$ utilizatori fără să vă actualizați planul.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Nu puteți invita mai mult de $COUNT$ utilizatori fără să vă actualizați planul. Vă rugăm să contactați serviciul de asistență pentru clienți pentru a moderniza.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Abonamentul dvs. permite un total de $COUNT$ utilizatori. Planul dvs. este sponsorizat și facturat unei organizații externe.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Ajustările abonamentului dvs. vor avea ca rezultat modificări proporționale ale totalurilor dvs. de facturare. Nu puteți invita mai mult de $COUNT$ utilizatori fără a vă mări numărul de licențe ale abonamentului.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Licențe de adăugat" + }, + "seatsToRemove": { + "message": "Licențe de eliminat" + }, + "seatsAddNote": { + "message": "Adăugarea de licențe utilizator va duce la ajustări ale totalelor de facturare și la facturarea imediată conform metodei dvs. de facturare. Prima facturare va fi aplicată proporțional la restul ciclului curent de facturare." + }, + "seatsRemoveNote": { + "message": "Eliminarea de licențe utilizatori va duce la ajustări ale totalelor dvs. de facturare, care vor fi proporționate ca credite pentru următoarea facturare." + }, + "adjustedSeats": { + "message": "$AMOUNT$ licențe de utilizator actualizate.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Cheia s-a actualizat" + }, + "updateKeyTitle": { + "message": "Actualizare cheie" + }, + "updateEncryptionKey": { + "message": "Actualizare cheie de criptare" + }, + "updateEncryptionKeyShortDesc": { + "message": "În prezent utilizați o schemă de criptare învechită." + }, + "updateEncryptionKeyDesc": { + "message": "Ne-am mutat la chei mai mari de criptare care oferă o mai bună securitate și acces la funcții mai noi. Actualizarea cheii de criptare este rapidă și ușoară. Doar tastați parola principală mai jos. Această actualizare va deveni în cele din urmă obligatorie." + }, + "updateEncryptionKeyWarning": { + "message": "După actualizarea cheii de criptare, trebuie să vă reconectați în toate aplicațiile Bitwarden pe care le utilizați în prezent (cum ar fi aplicația mobilă sau extensiile browserului). Faptul de a nu vă deconecta și reconecta (care descarcă noua cheie de criptare) poate duce la corupția datelor. Vom încerca să vă deconectăm automat, însă ar putea fi întârziat." + }, + "updateEncryptionKeyExportWarning": { + "message": "Orice export criptat pe care l-ați salvat va deveni, de asemenea, nevalid." + }, + "subscription": { + "message": "Abonament" + }, + "loading": { + "message": "Se încarcă" + }, + "upgrade": { + "message": "Faceți upgrade" + }, + "upgradeOrganization": { + "message": "Faceți upgrade organizației" + }, + "upgradeOrganizationDesc": { + "message": "Această funcție nu este disponibilă pentru organizațiile gratuite. Comutați la un plan plătit pentru a debloca mai multe funcții." + }, + "createOrganizationStep1": { + "message": "Crearea unei organizații: Pasul 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Înainte de a vă crea organizația, trebuie mai întâi să creați un cont personal gratuit." + }, + "refunded": { + "message": "Rambursat" + }, + "nothingSelected": { + "message": "Nu ați selectat nimic." + }, + "acceptPolicies": { + "message": "Dacă bifați această casetă sunteți de acord cu următoarele:" + }, + "acceptPoliciesError": { + "message": "Termeni de utilizare și Politica de confidențialitate nu au fost recunoscute." + }, + "termsOfService": { + "message": "Termeni de utilizare" + }, + "privacyPolicy": { + "message": "Politică de confidențialitate" + }, + "filters": { + "message": "Filtre" + }, + "vaultTimeout": { + "message": "Expirare seif" + }, + "vaultTimeoutDesc": { + "message": "Determină când seiful dvs. va expira și va efectua acțiunea selectată." + }, + "oneMinute": { + "message": "1 minut" + }, + "fiveMinutes": { + "message": "5 minute" + }, + "fifteenMinutes": { + "message": "15 minute" + }, + "thirtyMinutes": { + "message": "30 de minute" + }, + "oneHour": { + "message": "1 oră" + }, + "fourHours": { + "message": "4 ore" + }, + "onRefresh": { + "message": "La reîmprospătarea browserului" + }, + "dateUpdated": { + "message": "S-a actualizat", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Parola s-a actualizat", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organizația este dezactivată." + }, + "licenseIsExpired": { + "message": "Licența a expirat." + }, + "updatedUsers": { + "message": "Utilizatori actualizați" + }, + "selected": { + "message": "Selectat(e)" + }, + "ownership": { + "message": "Proprietate" + }, + "whoOwnsThisItem": { + "message": "Cine deține acest element?" + }, + "strong": { + "message": "Puternică", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Bună", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Slabă", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Foarte slabă", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Parolă principală slabă" + }, + "weakMasterPasswordDesc": { + "message": "Parola principală aleasă este slabă. Ar trebui folosită o parolă principală (sau o frază de access) puternică pentru a vă proteja corect contul Bitwarden. Sigur doriți să folosiți această parola principală?" + }, + "rotateAccountEncKey": { + "message": "De asemenea, revocați cheia de criptare a contului meu" + }, + "rotateEncKeyTitle": { + "message": "Revocare cheia de criptare" + }, + "rotateEncKeyConfirmation": { + "message": "Sigur doriți să revocați cheia de criptare a contului?" + }, + "attachmentsNeedFix": { + "message": "Acest element are atașamente vechi care trebuie fixate." + }, + "attachmentFixDesc": { + "message": "Acesta este un atașament de fișier vechi care trebuie reparat. Clicați pentru a afla mai multe." + }, + "fix": { + "message": "Repară", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Există atașamente de fișiere vechi în seiful dvs. care trebuie reparate înainte de a putea revoca cheia de criptare a contului." + }, + "yourAccountsFingerprint": { + "message": "Fraza amprentă a contului dvs.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Pentru a asigura integritatea cheilor dvs. de criptare, vă rugăm să verificați fraza amprentă a utilizatorului înainte de a continua.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Nu-mi cereți niciodată să verific frazele amprentă pentru utilizatorii invitați (Nerecomandat)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Gratuit", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "Cheie API" + }, + "apiKeyDesc": { + "message": "Cheia dvs. API poate fi utilizată pentru autentificarea la API-ul public Bitwarden." + }, + "apiKeyRotateDesc": { + "message": "Revocarea cheii API va invalida cheia anterioară. Puteți revoca cheia API dacă vi se pare că actuala cheie nu mai este sigur de folosit." + }, + "apiKeyWarning": { + "message": "Cheia dvs. API are acces complet la organizație. Ar trebui păstrată secret." + }, + "userApiKeyDesc": { + "message": "Cheia dvs. API poate fi utilizată pentru autentificare în Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Cheia dvs. API este un mecanism alternativ de autentificare. Ar trebui păstrată secret." + }, + "oauth2ClientCredentials": { + "message": "Acreditări client OAuth 2.0", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Afișare cheie API" + }, + "rotateApiKey": { + "message": "Revocare cheie API" + }, + "selectOneCollection": { + "message": "Trebuie să selectați cel puțin o colecție." + }, + "couldNotChargeCardPayInvoice": { + "message": "Nu am putut procesa plata cu cardul dvs. Vă rugăm să vizualizați și să plătiți factura neplătită de mai jos." + }, + "inAppPurchase": { + "message": "Achiziție în aplicație" + }, + "cannotPerformInAppPurchase": { + "message": "Nu puteți efectua această acțiune în timp ce utilizați ca metodă de plată achiziția în aplicație." + }, + "manageSubscriptionFromStore": { + "message": "Trebuie să vă gestionați abonamentul din magazinul în care a fost efectuată achiziția în aplicație." + }, + "minLength": { + "message": "Lungimea minimă" + }, + "clone": { + "message": "Clonare" + }, + "masterPassPolicyDesc": { + "message": "Setează cerințele minime pentru puterea parolei principale." + }, + "twoStepLoginPolicyDesc": { + "message": "Solicită utilizatorilor să configureze conectarea în două etape pentru conturile lor personale." + }, + "twoStepLoginPolicyWarning": { + "message": "Membrii organizației care nu sunt Proprietari sau Administratori și nu au activată conectarea în două etape în contul lor personal vor fi eliminați din organizație și vor primi o notificare prin e-mail cu privire la modificare." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Sunteți membrul unei organizații care necesită conectarea în două etape activată în contul dvs. de utilizator. Dacă dezactivați toți furnizorii de conectare în două etape, veți fi eliminat automat din aceste organizații." + }, + "passwordGeneratorPolicyDesc": { + "message": "Setează cerințele minime pentru configurarea generatorului de parole." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Una sau mai multe politici organizaționale vă afectează setările generatorului." + }, + "masterPasswordPolicyInEffect": { + "message": "Una sau mai multe politici organizaționale necesită ca parola principală să îndeplinească următoarele cerințe:" + }, + "policyInEffectMinComplexity": { + "message": "Scor minim de complexitate de $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Lungime minimă de $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Unul sau mai multe caractere majuscule" + }, + "policyInEffectLowercase": { + "message": "Unul sau mai multe caractere minuscule" + }, + "policyInEffectNumbers": { + "message": "Una sau mai multe cifre" + }, + "policyInEffectSpecial": { + "message": "Unul sau mai multe din următoarele caractere: $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Noua dvs. parolă principală nu îndeplinește cerințele politicii." + }, + "minimumNumberOfWords": { + "message": "Număr minim de cuvinte" + }, + "defaultType": { + "message": "Tip implicit" + }, + "userPreference": { + "message": "Preferințe utilizator" + }, + "vaultTimeoutAction": { + "message": "Acțiune la expirarea seifului" + }, + "vaultTimeoutActionLockDesc": { + "message": "Un seif blocat necesită reintroducerea parolei principale pentru a-l accesa din nou." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Un seif deconectat necesită reautentificarea pentru a-l accesa din nou." + }, + "lock": { + "message": "Blocare", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Coș de reciclare", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Căutare în coșul de reciclare" + }, + "permanentlyDelete": { + "message": "Ștergere definitivă" + }, + "permanentlyDeleteSelected": { + "message": "Ștergere definitivă a selecției" + }, + "permanentlyDeleteItem": { + "message": "Ștergere definitivă a articolului" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Sigur doriți să ștergeți definitiv acest articol?" + }, + "permanentlyDeletedItem": { + "message": "Articolul a fost șters definitiv" + }, + "permanentlyDeletedItems": { + "message": "Articolele au fost șterse definitiv" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Ați selectat $COUNT$ articol(e) pentru ștergere definitivă. Sigur vreți să ștergeți definitiv toate articolele selectate?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Articolul $ID$ a fost șters definitiv.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restabilire" + }, + "restoreSelected": { + "message": "Restabilire selecție" + }, + "restoreItem": { + "message": "Restabilire articol" + }, + "restoredItem": { + "message": "Articol restabilit" + }, + "restoredItems": { + "message": "Articole restabilite" + }, + "restoreItemConfirmation": { + "message": "Sigur doriți să restabiliți acest articol?" + }, + "restoreItems": { + "message": "Restabilire articole" + }, + "restoreSelectedItemsDesc": { + "message": "Ați selectat $COUNT$ articol(e) pentru restabilire. Sigur vreți să restabiliți toate aceste articole?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Elementul $ID$ a fost restabilit.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "După expirare, accesul la seiful dvs. va fi restricționat și va fi necesară autentificarea on-line. Sigur doriți să utilizați această setare?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Confirmare acțiune la expirare" + }, + "hidePasswords": { + "message": "Ascundere parole" + }, + "countryPostalCodeRequiredDesc": { + "message": "Solicităm aceste informații doar pentru calcularea taxei de vânzare și a raportării financiare." + }, + "includeVAT": { + "message": "Includere informații despre TVA/GST (opțional)" + }, + "taxIdNumber": { + "message": "Codul fiscal TVA/GST" + }, + "taxInfoUpdated": { + "message": "Informațiile fiscale au fost actualizate." + }, + "setMasterPassword": { + "message": "Setare parolă principală" + }, + "ssoCompleteRegistration": { + "message": "Pentru a finaliza conectarea cu SSO, vă rugăm să setați o parolă principală pentru a vă accesa și proteja seiful." + }, + "identifier": { + "message": "Identificator" + }, + "organizationIdentifier": { + "message": "Identificatorul organizației" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Conectați-vă utilizând portalul de conectare unică al organizației. Pentru a începe, Introduceți vă rog identificatorul organizației dvs." + }, + "enterpriseSingleSignOn": { + "message": "Conectare unică organizație (SSO)" + }, + "ssoHandOff": { + "message": "Acum puteți închide această filă și puteți continua în extensie." + }, + "includeAllTeamsFeatures": { + "message": "Toate funcțiile planului Echipe, plus:" + }, + "includeSsoAuthentication": { + "message": "Autentificare SSO prin SAML2.0 și OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Politici Organizație" + }, + "ssoValidationFailed": { + "message": "Validarea SSO nu a reușit" + }, + "ssoIdentifierRequired": { + "message": "Identificatorul organizației este necesar." + }, + "unlinkSso": { + "message": "Deconectare SSO" + }, + "unlinkSsoConfirmation": { + "message": "Sigur doriți să deconectați SSO pentru această organizație?" + }, + "linkSso": { + "message": "Conectare SSO" + }, + "singleOrg": { + "message": "Organizație Unică" + }, + "singleOrgDesc": { + "message": "Restricționează utilizatorii să se alăture oricărei alte organizații." + }, + "singleOrgBlockCreateMessage": { + "message": "Organizația dvs. actuală are o politică care nu vă permite să vă alăturați la mai mult de o organizație. Vă rugăm să contactați administratorii organizației sau să vă înscrieți dintr-un cont Bitwarden diferit." + }, + "singleOrgPolicyWarning": { + "message": "Membrii organizației care nu sunt proprietari sau administratori și sunt deja membri ai unei alte organizații vor fi eliminați din organizația dvs." + }, + "requireSso": { + "message": "Autentificare Single Sign-On" + }, + "requireSsoPolicyDesc": { + "message": "Solicită utilizatorilor să se conecteze cu metoda Conectare unică organizație (SSO)." + }, + "prerequisite": { + "message": "Condiție prealabilă" + }, + "requireSsoPolicyReq": { + "message": "Înainte de activarea acestei politici, trebuie activată metoda de conectare \"Single sign-on\" pentru organizație (SSO)." + }, + "requireSsoPolicyReqError": { + "message": "Politica Organizație Unică nu este activată." + }, + "requireSsoExemption": { + "message": "Proprietarii și administratorii organizației sunt exceptați de la aplicarea acestei politici." + }, + "sendTypeFile": { + "message": "Fișier" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Creare de nou Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Editare Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "S-a creat un nou Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Send-ul a fost editat", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send-ul a fost șters", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Ștergere Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Sigur doriți să ștergeți acest Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Ce fel de Send este acesta?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Data ștergerii" + }, + "deletionDateDesc": { + "message": "Send-ul va fi șters definitiv la data și ora specificate.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Data expirării" + }, + "expirationDateDesc": { + "message": "Dacă este setat, accesul la acest Send va expira la data și ora specificate.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Număr maxim de accesări" + }, + "maxAccessCountDesc": { + "message": "Dacă este configurat, utilizatorii nu vor mai putea accesa acest Send când a fost atins numărul maxim de accesări.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Număr actual de accesări" + }, + "sendPasswordDesc": { + "message": "Opțional, este necesară o parolă pentru ca utilizatorii să acceseze acest Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Note private despre acest Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Dezactivat" + }, + "sendLink": { + "message": "Link Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copiere link Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Eliminare parolă" + }, + "removedPassword": { + "message": "Parola a fost eliminată" + }, + "removePasswordConfirmation": { + "message": "Sigur doriți să eliminați parola?" + }, + "hideEmail": { + "message": "Ascundeți adresa mea de e-mail de la destinatari." + }, + "disableThisSend": { + "message": "Dezactivați acest Send astfel încât nimeni să nu îl poată accesa.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Toate Send-urile" + }, + "maxAccessCountReached": { + "message": "S-a atins numărul maxim de acces", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Ștergere în așteptare" + }, + "expired": { + "message": "Expirat" + }, + "searchSends": { + "message": "Căutare în Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Acest Send este protejat cu parolă. Vă rugăm să introduceți mai jos parola pentru a continua.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Nu știți parola? Cereți Expeditorului parola necesară pentru a accesa acest Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Acest Send este ascuns în mod implicit. Puteți comuta vizibilitatea acestuia folosind butonul de mai jos.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Descărcare fișier" + }, + "sendAccessUnavailable": { + "message": "Send-ul pe care încercați să-l accesați nu există sau nu mai este disponibil.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Fișierul asociat cu acest Send nu a putut fi găsit.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Niciun Send de afișat.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Acces de urgență" + }, + "emergencyAccessDesc": { + "message": "Acordă și gestionează accesul de urgență, contactelor de încredere. Contactele de încredere, pot solicita accesul, fie la vizualizarea, fie la preluarea controlului contului dvs. în caz de urgență. Vizitați-ne pagina de ajutor, pentru detalii privind modul cum funcționează schimbul zero de cunoștințe." + }, + "emergencyAccessOwnerWarning": { + "message": "Sunteți proprietarul uneia sau mai multor organizații. Dacă permiteți preluarea controlului de către un contact de urgență, acesta va putea utiliza toate permisiunile dvs. ca proprietar, după preluarea controlului." + }, + "trustedEmergencyContacts": { + "message": "Contacte de urgență de încredere" + }, + "noTrustedContacts": { + "message": "Nu ați adăugat încă niciun contact de urgență, invitați un contact de încredere pentru a începe." + }, + "addEmergencyContact": { + "message": "Adăugați un contact de urgență" + }, + "designatedEmergencyContacts": { + "message": "Desemnat ca contact de urgență" + }, + "noGrantedAccess": { + "message": "Nu ați fost încă desemnat drept contact de urgență pentru nimeni." + }, + "inviteEmergencyContact": { + "message": "Invitați contactul de urgență" + }, + "editEmergencyContact": { + "message": "Editați contactul de urgență" + }, + "inviteEmergencyContactDesc": { + "message": "Invitați un nou contact de urgență introducând adresa de e-mail a contului Bitwarden de mai jos. Dacă nu au deja un cont Bitwarden, li se va solicita să creeze un cont nou." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Acces de urgență inițiat" + }, + "emergencyAccessRecoveryApproved": { + "message": "Acces de urgență aprobat" + }, + "viewDesc": { + "message": "Poate vizualiza toate articolele din seiful dvs." + }, + "takeover": { + "message": "Preluare" + }, + "takeoverDesc": { + "message": "Vă poate reseta contul cu o nouă parolă principală." + }, + "waitTime": { + "message": "Timp de așteptare" + }, + "waitTimeDesc": { + "message": "Timp necesar înainte de acordarea automată a accesului." + }, + "oneDay": { + "message": "1 zi" + }, + "days": { + "message": "$DAYS$ zile", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Utilizator invitat." + }, + "acceptEmergencyAccess": { + "message": "Ați fost invitat să deveniți un contact de urgență pentru utilizatorul listat mai sus. Pentru a accepta invitația, trebuie să vă conectați sau să creați un cont Bitwarden nou." + }, + "emergencyInviteAcceptFailed": { + "message": "Invitația nu poate fi acceptată. Solicitați utilizatorului să trimită o nouă invitație." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Invitația nu poate fi acceptată. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Puteți accesa opțiunile de urgență pentru acest utilizator după confirmarea identității dvs. Vă vom trimite un e-mail atunci când se întâmplă acest lucru." + }, + "requestAccess": { + "message": "Solicitare de acces" + }, + "requestAccessConfirmation": { + "message": "Sunteți sigur că doriți să solicitați acces de urgență? Vi se va oferi acces după $WAITTIME$ zi(le) sau ori de câte ori utilizatorul aprobă manual solicitarea.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Acces de urgență solicitat pentru $USER$. Vă vom notifica prin e-mail când este posibil să continuați.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Autorizez" + }, + "reject": { + "message": "Declin" + }, + "approveAccessConfirmation": { + "message": "Confirmați aprobarea accesului de urgență? Acest lucru va permite lui $USER$ să $ACTION$ contul dvs.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Acces de urgență aprobat." + }, + "emergencyRejected": { + "message": "Acces de urgență respins" + }, + "passwordResetFor": { + "message": "S-a resetat parola pentru $USER$. Vă puteți conecta acum cu noua parolă.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Proprietate personală" + }, + "personalOwnershipPolicyDesc": { + "message": "Solicită utilizatorilor să salveze articolele din seif într-o organizație prin eliminarea opțiunii de proprietate personală." + }, + "personalOwnershipExemption": { + "message": "Proprietarii și administratorii organizației sunt exceptați de la aplicarea acestei politici." + }, + "personalOwnershipSubmitError": { + "message": "Datorită unei politici pentru întreprinderi, vă este restricționată salvarea de articole în seiful dvs. personal. Schimbați opțiunea de proprietate la o organizație și alegeți dintre colecțiile disponibile." + }, + "disableSend": { + "message": "Dezactivare Send" + }, + "disableSendPolicyDesc": { + "message": "Nu permiteți utilizatorilor să creeze sau să editeze un Send Bitwarden. Ștergerea unui Send existent este încă permisă.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Utilizatorii organizației care pot gestiona politicile organizației sunt exceptați de la aplicarea acestei politici." + }, + "sendDisabled": { + "message": "Send dezactivat", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Datorită unei politici de întreprindere, puteți șterge numai un Send existent.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Opțiuni Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Setați opțiunile pentru crearea și editarea Send-urilor.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Utilizatorii organizației care pot gestiona politicile organizației sunt exceptați de la aplicarea acestei politici." + }, + "disableHideEmail": { + "message": "Nu permiteți utilizatorilor să-și ascundă adresa de e-mail de la destinatari, atunci când creează sau editează un Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "În prezent, sunt în vigoare următoarele politici de organizare:" + }, + "sendDisableHideEmailInEffect": { + "message": "Utilizatorii nu au voie să-și ascundă adresa de e-mail de la destinatari atunci când creează sau editează un Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Politica $ID$ a fost editată.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Prețul planului" + }, + "estimatedTax": { + "message": "Taxa estimată" + }, + "custom": { + "message": "Personalizat" + }, + "customDesc": { + "message": "Permite mai mult control granular al permisiunilor utilizatorilor pentru configurații avansate." + }, + "permissions": { + "message": "Permisiuni" + }, + "accessEventLogs": { + "message": "Acces la jurnalele de evenimente" + }, + "accessImportExport": { + "message": "Acces la import/export" + }, + "accessReports": { + "message": "Acces la rapoarte" + }, + "missingPermissions": { + "message": "Nu aveți drepturile necesare pentru a efectua această acțiune." + }, + "manageAllCollections": { + "message": "Gestionați toate colecțiile" + }, + "createNewCollections": { + "message": "Creare de colecție nouă" + }, + "editAnyCollection": { + "message": "Modificare a oricărei colecții" + }, + "deleteAnyCollection": { + "message": "Ștergere a oricărei colecții" + }, + "manageAssignedCollections": { + "message": "Gestionați colecțiile alocate" + }, + "editAssignedCollections": { + "message": "Editare de colecții alocate" + }, + "deleteAssignedCollections": { + "message": "Ștergere de colecții alocate" + }, + "manageGroups": { + "message": "Gestionați grupurile" + }, + "managePolicies": { + "message": "Gestionați politicile" + }, + "manageSso": { + "message": "Gestionați SSO" + }, + "manageUsers": { + "message": "Gestionați utilizatorii" + }, + "manageResetPassword": { + "message": "Gestionați resetarea parolei" + }, + "disableRequiredError": { + "message": "Trebuie să dezactivați manual politica $POLICYNAME$ înainte ca această politică să poată fi dezactivată.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "O politică de organizație vă afectează opțiunile de proprietate." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "O politică a organizației a dezactivat importarea de elemente în seiful dvs. personal." + }, + "personalOwnershipCheckboxDesc": { + "message": "Dezactivează proprietatea personală pentru utilizatorii organizației" + }, + "textHiddenByDefault": { + "message": "Când Send-ul este accesat, ascundeți textul în mod implicit", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Un nume prietenos pentru a descrie acest Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Textul pe care doriți să-l trimiteți." + }, + "sendFileDesc": { + "message": "Fișierul pe care doriți să-l trimiteți." + }, + "copySendLinkOnSave": { + "message": "Copiați linkul pentru a partaja acest Send în clipboard-ul meu la salvare." + }, + "sendLinkLabel": { + "message": "Link Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmite celorlalți informații sensibile, temporare, cu ușurință și în siguranță.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Aflați mai multe despre", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Partajați text sau fișiere direct cu oricine." + }, + "sendVaultCardLearnMore": { + "message": "Aflați mai multe", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "vedeți", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "cum funcționează", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "sau", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "încercați-l acum", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "sau", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "înregistrați-vă", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "pentru a-l încerca astăzi.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Utilizatorul Bitwarden $USER_IDENTIFIER$ a partajat următoarele cu dvs.", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Utilizatorul Bitwarden care a creat acest Send a ales să-și ascundă adresa de e-mail. Ar trebui să vă asigurați că aveți încredere în sursa acestui link înainte de utilizarea sau descărcarea conținutului acestuia.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Data de expirare furnizată nu este validă." + }, + "deletionDateIsInvalid": { + "message": "Data de ștergere furnizată nu este validă." + }, + "expirationDateAndTimeRequired": { + "message": "Sunt necesare o dată și o oră de expirare." + }, + "deletionDateAndTimeRequired": { + "message": "Sunt necesare o dată și o oră de ștergere." + }, + "dateParsingError": { + "message": "A survenit o eroare la salvarea datelor de ștergere și de expirare." + }, + "webAuthnFallbackMsg": { + "message": "Pentru a verifica 2FA, vă rugăm să faceți clic pe butonul de mai jos." + }, + "webAuthnAuthenticate": { + "message": "Autentificare WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn nu este acceptat în acest browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn a fost verificat cu succes! Puteți închide această filă." + }, + "hintEqualsPassword": { + "message": "Indiciul dvs. de parolă nu poate fi aceeași cu parola." + }, + "enrollPasswordReset": { + "message": "Înscriere în resetarea parolei" + }, + "enrolledPasswordReset": { + "message": "Înregistrat la resetarea parolei" + }, + "withdrawPasswordReset": { + "message": "Retragere din resetarea parolei" + }, + "enrollPasswordResetSuccess": { + "message": "Înregistrare reușită!" + }, + "withdrawPasswordResetSuccess": { + "message": "Retragere reușită!" + }, + "eventEnrollPasswordReset": { + "message": "Utilizator $ID$ s-a înscris în asistența de resetare a parolei.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Utilizatorul $ID$ s-a retras din asistența pentru resetarea parolei.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Resetarea parolei principale pentru utilizatorul $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Resetare link SSO pentru utilizatorul $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ s-a autentificat folosind SSO pentru prima data", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Resetați parola" + }, + "resetPasswordLoggedOutWarning": { + "message": "Procedând, $NAME$ va fi deconectat de la sesiunea curentă, solicitându-i să se conecteze din nou. Sesiunile active pe alte dispozitive pot continua să rămână active timp de până la o oră.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "acest utilizator" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Una sau mai multe politici ale organizației, necesită ca parola principală să îndeplinească următoarele cerințe:" + }, + "resetPasswordSuccess": { + "message": "Parolă resetată cu succes!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Înscrierea va permite administratorilor organizației să vă schimbe parola principală. Sigur doriți să vă înscrieți?" + }, + "resetPasswordPolicy": { + "message": "Resetare parolă principală" + }, + "resetPasswordPolicyDescription": { + "message": "Permite administratorilor din organizație să reseteze parola principală a utilizatorilor organizației." + }, + "resetPasswordPolicyWarning": { + "message": "Utilizatorii din organizație vor trebui să se înregistreze singuri sau, să fie înregistrați automat, înainte ca administratorii să le poată reseta parola principală." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Înregistrare automată" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Toți utilizatorii vor fi înregistrați automat în resetarea parolei odată ce invitația lor este acceptată și nu li se va permite să se retragă." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Utilizatorii care fac deja parte din organizație, nu vor fi înscriși retroactiv în resetarea parolei. Ei vor trebui să se înregistreze singuri, înainte ca administratorii să poată reseta parola lor principală." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Solicită înscrierea automată a noilor utilizatori" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Această organizație are o politică de întreprindere care vă va înregistra automat în resetarea parolei. Înregistrarea va permite administratorilor organizației să vă schimbe parola principală." + }, + "resetPasswordOrgKeysError": { + "message": "Răspunsul Cheilor organizației este nul" + }, + "resetPasswordDetailsError": { + "message": "Răspunsul detaliat la resetarea parolei este nul" + }, + "trashCleanupWarning": { + "message": "Articolele care au fost în coșul de reciclare mai mult de 30 de zile vor fi șterse automat." + }, + "trashCleanupWarningSelfHosted": { + "message": "Articolele care au fost în coșul de reciclare de ceva vreme vor fi șterse automat." + }, + "passwordPrompt": { + "message": "Re-solicitare parolă principală" + }, + "passwordConfirmation": { + "message": "Confirmare parolă principală" + }, + "passwordConfirmationDesc": { + "message": "Această acțiune este protejată. Pentru a continua, vă rugăm să reintroduceți parola principală pentru a vă verifica identitatea." + }, + "reinviteSelected": { + "message": "Retrimitere invitații" + }, + "noSelectedUsersApplicable": { + "message": "Această acțiune nu se aplică niciunui utilizator selectat." + }, + "removeUsersWarning": { + "message": "Sunteți sigur că doriți să eliminați următorii utilizatori? Finalizarea procesului poate dura câteva secunde și nu poate fi întrerupt sau anulat." + }, + "theme": { + "message": "Temă" + }, + "themeDesc": { + "message": "Alegere temă pentru seiful dvs. web." + }, + "themeSystem": { + "message": "Utilizare temă de sistem" + }, + "themeDark": { + "message": "Întunecat" + }, + "themeLight": { + "message": "Luminos" + }, + "confirmSelected": { + "message": "Confirmați selecția" + }, + "bulkConfirmStatus": { + "message": "Starea operației în masă" + }, + "bulkConfirmMessage": { + "message": "Confirmat cu succes." + }, + "bulkReinviteMessage": { + "message": "Reinvitat cu succes." + }, + "bulkRemovedMessage": { + "message": "Eliminat cu succes" + }, + "bulkFilteredMessage": { + "message": "Exclus, nu se aplică pentru această acțiune." + }, + "fingerprint": { + "message": "Amprentă" + }, + "removeUsers": { + "message": "Eliminați utilizatorii" + }, + "error": { + "message": "Eroare" + }, + "resetPasswordManageUsers": { + "message": "Gestionare Utilizatori trebuie de asemenea activată cu Gestionare Permisiune de Resetare a Parolei" + }, + "setupProvider": { + "message": "Configurare furnizor" + }, + "setupProviderLoginDesc": { + "message": "Ați fost invitat să configurați un nou furnizor. Pentru a continua, trebuie să vă conectați sau să creați un nou cont Bitwarden." + }, + "setupProviderDesc": { + "message": "Vă rugăm să introduceți mai jos detaliile pentru a finaliza configurarea furnizorului. Contactați asistența pentru clienți dacă aveți întrebări." + }, + "providerName": { + "message": "Numele furnizorului" + }, + "providerSetup": { + "message": "Furnizorul a fost configurat." + }, + "clients": { + "message": "Clienți" + }, + "providerAdmin": { + "message": "Administrator furnizor" + }, + "providerAdminDesc": { + "message": "Utilizatorul cu accesul cel mai ridicat, care poate gestiona toate aspectele furnizorului dvs., precum și accesul și gestionarea organizațiilor clientului." + }, + "serviceUser": { + "message": "Utilizator de serviciu" + }, + "serviceUserDesc": { + "message": "Utilizatorii serviciilor pot accesa și gestiona toate organizațiile clienților." + }, + "providerInviteUserDesc": { + "message": "Invitați un utilizator nou la furnizorul dvs. introducând mai jos adresa de e-mail a contului Bitwarden. Dacă nu au deja un cont Bitwarden, li se va solicita să creeze un cont nou." + }, + "joinProvider": { + "message": "Alăturare la furnizor" + }, + "joinProviderDesc": { + "message": "Ați fost invitat să vă alăturați furnizorului enumerat mai sus. Pentru a accepta invitația, trebuie să vă conectați sau să creați un cont Bitwarden nou." + }, + "providerInviteAcceptFailed": { + "message": "Nu am putut accepta invitația. Solicitați unui administrator de furnizor să trimită o nouă invitație." + }, + "providerInviteAcceptedDesc": { + "message": "Puteți accesa acest furnizor după ce un administrator vă confirmă abonamentul. Vă vom trimite un e-mail când se întâmplă acest lucru." + }, + "providerUsersNeedConfirmed": { + "message": "Aveți utilizatori care au acceptat invitația, dar încă mai trebuie să fie confirmați. Utilizatorii nu vor avea acces la furnizor până când nu vor fi confirmați." + }, + "provider": { + "message": "Furnizor" + }, + "newClientOrganization": { + "message": "Organizație client nouă" + }, + "newClientOrganizationDesc": { + "message": "Creați o nouă organizație client care va fi asociată cu dvs. ca furnizor. Veți putea accesa și gestiona această organizație." + }, + "addExistingOrganization": { + "message": "Adăugare organizație existentă" + }, + "myProvider": { + "message": "Furnizorul meu" + }, + "addOrganizationConfirmation": { + "message": "Sunteți sigur că doriți să adăugați $ORGANIZATION$ ca și client la $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organizația a fost adăugată cu succes la furnizor" + }, + "accessingUsingProvider": { + "message": "Accesarea organizației folosind furnizorul $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Furnizorul este dezactivat." + }, + "providerUpdated": { + "message": "Furnizor actualizat" + }, + "yourProviderIs": { + "message": "Furnizorul dvs. este $PROVIDER$. Ei au privilegii administrative și de facturare pentru organizația dvs.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "Organizația $ORGANIZATION$ a fost detașată de furnizorul dvs.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Sigur doriți să detașați această organizație? Organizația va continua să existe, dar nu va mai fi gestionată de furnizor." + }, + "add": { + "message": "Adaugă" + }, + "updatedMasterPassword": { + "message": "Parolă principală actualizată" + }, + "updateMasterPassword": { + "message": "Actualizare parolă principală" + }, + "updateMasterPasswordWarning": { + "message": "Parola dvs. principală a fost modificată recent de unul din administratorii organizației dvs. Pentru a accesa seiful, trebuie să o actualizați acum. Procedura vă va deconecta de la sesiunea curentă, necesitând să vă reconectați. Sesiunile active de pe alte dispozitive pot continua să rămână active timp de până la o oră." + }, + "masterPasswordInvalidWarning": { + "message": "Parola dvs. principală nu îndeplinește cerințele politicii acestei organizații. Pentru a vă alătura organizației, trebuie să vă actualizați acum parola principală. Continuarea vă va deconecta de la sesiunea curentă, fiind necesar să vă autentificați din nou. Sesiunile active pe alte dispozitive pot continua să rămână active timp de până la o oră." + }, + "maximumVaultTimeout": { + "message": "Expirare seif" + }, + "maximumVaultTimeoutDesc": { + "message": "Configurează timpul maxim de expirare a seifului pentru toți utilizatorii." + }, + "maximumVaultTimeoutLabel": { + "message": "Timp maxim de expirare a seifului" + }, + "invalidMaximumVaultTimeout": { + "message": "Timp maxim de expirare a seifului nevalid." + }, + "hours": { + "message": "Ore" + }, + "minutes": { + "message": "Minute" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Politicile organizației dvs vă afectează expirarea seifului. Timpul maxim permis de expirare a seifului este $HOURS$ oră (ore) și $MINUTES$ minut(e)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Expirare seif personalizată" + }, + "vaultTimeoutToLarge": { + "message": "Timpul de expirare a seifului depășește restricția stabilită de organizația dvs." + }, + "disablePersonalVaultExport": { + "message": "Dezactivare a exportului seifului personal" + }, + "disablePersonalVaultExportDesc": { + "message": "Interzice utilizatorilor să exporte datele private ale seifului lor." + }, + "vaultExportDisabled": { + "message": "Export de seif dezactivat" + }, + "personalVaultExportPolicyInEffect": { + "message": "Una sau mai multe politici ale organizației vă împiedică să exportați seiful personal." + }, + "selectType": { + "message": "Selectați tipul SSO" + }, + "type": { + "message": "Tip" + }, + "openIdConnectConfig": { + "message": "Configurare OpenID Connect" + }, + "samlSpConfig": { + "message": "Configurare furnizor de servicii SAML" + }, + "samlIdpConfig": { + "message": "Configurare furnizor de identitate SAML" + }, + "callbackPath": { + "message": "Calea redirecționării" + }, + "signedOutCallbackPath": { + "message": "Calea de deconectare a redirecționării" + }, + "authority": { + "message": "Autoritate" + }, + "clientId": { + "message": "ID-ul clientului" + }, + "clientSecret": { + "message": "Codul secret al clientului" + }, + "metadataAddress": { + "message": "Adresă de metadate" + }, + "oidcRedirectBehavior": { + "message": "Comportament de redirecționare OIDC" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Obținere de claims de la punctul final de info utilizator" + }, + "additionalScopes": { + "message": "Scopes personalizate" + }, + "additionalUserIdClaimTypes": { + "message": "Tipuri de claim personalizate de ID utilizator" + }, + "additionalEmailClaimTypes": { + "message": "Tipuri de Claim e-mail" + }, + "additionalNameClaimTypes": { + "message": "Tipuri de Claim cu nume personalizate" + }, + "acrValues": { + "message": "Valorile de referință ale clasei de context de autentificare solicitate" + }, + "expectedReturnAcrValue": { + "message": "Valoarea Claim „acr” care trebuie așteptată în răspuns" + }, + "spEntityId": { + "message": "ID-ul Entității SP" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Format ID nume" + }, + "spOutboundSigningAlgorithm": { + "message": "Algoritm de semnare de ieșire" + }, + "spSigningBehavior": { + "message": "Comportamentul semnăturii" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Algoritmul minim de semnare de intrare" + }, + "spWantAssertionsSigned": { + "message": "Se așteaptă afirmații semnate" + }, + "spValidateCertificates": { + "message": "Validare certificate" + }, + "idpEntityId": { + "message": "ID-ul Entității" + }, + "idpBindingType": { + "message": "Tip de legare" + }, + "idpSingleSignOnServiceUrl": { + "message": "Serviciul de Conectare Unică URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Serviciului de Deconectare Unică URL" + }, + "idpX509PublicCert": { + "message": "Certificat public X509" + }, + "idpOutboundSigningAlgorithm": { + "message": "Algoritm de semnare de ieșire" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Se permite răspunsul nesolicitat de autentificare" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Se permit cererile de deconectare de ieșire" + }, + "idpSignAuthenticationRequests": { + "message": "Semnare a solicitărilor de autentificare" + }, + "ssoSettingsSaved": { + "message": "Configurația de conectare unică a fost salvată." + }, + "sponsoredFamilies": { + "message": "Planul Bitwarden Familiile gratuit" + }, + "sponsoredFamiliesEligible": { + "message": "Dumneavoastră și familia dvs., sunteți eligibili pentru planul Bitwarden Familiile gratuit. Revendicați-l cu e-mailul personal pentru a vă păstra datele în siguranță chiar și atunci când nu sunteți la locul de muncă." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Schimbați-vă astăzi planul Bitwarden Gratuit pentru Familiile, pentru a vă păstra datele dvs. sigure, chiar și atunci când nu sunteți la locul de muncă." + }, + "sponsoredFamiliesInclude": { + "message": "Planul Bitwarden Familiile include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Acces Premium pentru până la 6 utilizatori" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Colecții partajate pentru secrete familiale" + }, + "badToken": { + "message": "Linkul nu mai este valabil. Vă rugăm să cereți sponsorului să retrimită oferta." + }, + "reclaimedFreePlan": { + "message": "Planul gratuit revendicat" + }, + "redeem": { + "message": "Revendicare" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Selectați organizația pe care doriți să o sponsorizați" + }, + "familiesSponsoringOrgSelect": { + "message": "Ce ofertă Gratuită Familiile ați dori să revendicați?" + }, + "sponsoredFamiliesEmail": { + "message": "Introduceți e-mailul dvs. personal pentru a revendica planul Bitwarden Familiile" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Dacă părăsiți sau sunteți exclus din organizația sponsor, planul dvs. Familiile va expira la sfârșitul perioadei de facturare." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Acceptați oferta pentru o organizație existentă sau creați o nouă organizație Familiile." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Vi s-a oferit gratuit un plan de Organizație Bitwarden Familiile. Pentru a continua, trebuie să vă conectați la contul care a primit oferta." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Imposibil de acceptat oferta. Vă rugăm să retrimiteți e-mailul ofertei din contul dvs. de întreprindere și încercați din nou." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Imposibil de acceptat oferta. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Acceptați planul Bitwarden Familiile gratuit" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Oferta gratuită Bitwarden Familiile a fost revendicată cu succes" + }, + "redeemed": { + "message": "Revendicată" + }, + "redeemedAccount": { + "message": "Cont revendicat" + }, + "revokeAccount": { + "message": "Revocare cont $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Retrimiteți e-mailul de sponsorizare către sponsorul $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Planul Familiile gratuit" + }, + "redeemNow": { + "message": "Revendicați acum" + }, + "recipient": { + "message": "Beneficiar" + }, + "removeSponsorship": { + "message": "Eliminare sponsorizare" + }, + "removeSponsorshipConfirmation": { + "message": "După eliminarea unei sponsorizări, veți fi responsabil pentru acest abonament și facturile conexe. Sigur doriți să continuați?" + }, + "sponsorshipCreated": { + "message": "Sponsorizare creată" + }, + "revoke": { + "message": "Revocare" + }, + "emailSent": { + "message": "E-mail trimis" + }, + "revokeSponsorshipConfirmation": { + "message": "După eliminarea acestui cont, proprietarul organizației Familiile va fi responsabil pentru acest abonament și facturile aferente. Sigur doriți să continuați?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorizare eliminată" + }, + "ssoKeyConnectorUnavailable": { + "message": "Nu se poate accesa Conectorul Cheie. Vă rugăm să încercați din nou mai târziu." + }, + "keyConnectorUrl": { + "message": "URL de Conector Cheie" + }, + "sendVerificationCode": { + "message": "Trimite un cod de verificare la adresa dvs. de e-mail" + }, + "sendCode": { + "message": "Trimitere cod" + }, + "codeSent": { + "message": "Cod trimis" + }, + "verificationCode": { + "message": "Cod de verificare" + }, + "confirmIdentity": { + "message": "Confirmați-vă identitatea pentru a continua." + }, + "verificationCodeRequired": { + "message": "Este necesar codul de verificare." + }, + "invalidVerificationCode": { + "message": "Cod de verificare nevalid" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ folosește SSO cu un server de chei auto-găzduit. Membrii acestei organizații nu mai au nevoie de o parolă principală pentru autentificare.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Părăsire organizație" + }, + "removeMasterPassword": { + "message": "Eliminare parolă principală" + }, + "removedMasterPassword": { + "message": "Parolă principală eliminată." + }, + "allowSso": { + "message": "Permite autentificarea SSO" + }, + "allowSsoDesc": { + "message": "Odată configurată, configurația dvs. va fi salvată, iar membrii vor putea să se autentifice folosind acreditările furnizorului lor de identitate." + }, + "ssoPolicyHelpStart": { + "message": "Activează", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "Politica de autentificare SSO", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "pentru a solicita tuturor membrilor să se conecteze cu SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "Autentificarea SSO și politicile Organizației Unice sunt necesare pentru a configura decriptarea cu Conectorul Cheie." + }, + "memberDecryptionOption": { + "message": "Opțiuni de decriptare ale membrilor" + }, + "memberDecryptionPassDesc": { + "message": "Odată autentificați, membrii vor decripta datele seifului folosind parolele lor principale." + }, + "keyConnector": { + "message": "Conector Cheie" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Conectează Autentificarea cu SSO la serverul dvs. cheie de decriptare auto-găzduit. Folosind această opțiune, membrii nu vor trebui să folosească parolele lor principale pentru a decripta datele seifului. Contactați asistența Bitwarden pentru ajutor la configurare." + }, + "keyConnectorPolicyRestriction": { + "message": "„Autentificarea cu SSO și Decriptarea cu Conectorul Cheie” este activată. Această politică se va aplica numai proprietarilor și administratorilor." + }, + "enabledSso": { + "message": "SSO activat" + }, + "disabledSso": { + "message": "SSO dezactivat" + }, + "enabledKeyConnector": { + "message": "Conector Cheie activat" + }, + "disabledKeyConnector": { + "message": "Conector Cheie dezactivat" + }, + "keyConnectorWarning": { + "message": "Odată ce membrii încep să utilizeze Conectorul Cheie, organizația dvs. nu mai poate reveni la decriptarea cu Parola Principală. Continuați numai dacă vă simțiți confortabil să implementați și să gestionați un server cheie." + }, + "migratedKeyConnector": { + "message": "Migrat la Conectorul Cheie" + }, + "paymentSponsored": { + "message": "Vă rugăm să furnizați o metodă de plată pentru a asocia cu organizația. Nu vă faceți griji, nu vă vom percepe nimic decât dacă selectați caracteristici suplimentare sau dacă sponsorizarea dvs. expiră. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "Oferta de sponsorizare a expirat. Puteți șterge organizația pe care ați creat-o pentru a evita o taxă la sfârșitul perioadei de încercare de 7 zile. În caz contrar, puteți închide această solicitare pentru a păstra organizația și pentru a vă asuma responsabilitatea de facturare." + }, + "newFamiliesOrganization": { + "message": "Nouă Organizație Familiile" + }, + "acceptOffer": { + "message": "Acceptare ofertă" + }, + "sponsoringOrg": { + "message": "Organizația de sponsorizare" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Succes! Conectorul Cheie a fost accesat." + }, + "keyConnectorTestFail": { + "message": "Conectorul Cheie nu este accesibil. Verificați adresa URL." + }, + "sponsorshipTokenHasExpired": { + "message": "Oferta de sponsorizare a expirat." + }, + "freeWithSponsorship": { + "message": "GRATUIT cu sponsorizare" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ câmpuri de mai sus necesită atenția dvs.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 câmp de mai sus necesită atenția dvs." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ este obligatoriu.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "necesar" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Necesar dacă ID-ul de entitate nu este un URL." + }, + "openIdOptionalCustomizations": { + "message": "Personalizări opționale" + }, + "openIdAuthorityRequired": { + "message": "Necesar dacă Autoritatea nu este validă." + }, + "separateMultipleWithComma": { + "message": "Separați mai multe prin virgulă." + }, + "sessionTimeout": { + "message": "Sesiunea dvs. a expirat. Vă rugăm reveniți și încercați să vă autentificați din nou." + }, + "exportingPersonalVaultTitle": { + "message": "Exportarea seifului personal" + }, + "exportingOrganizationVaultTitle": { + "message": "Exportarea seifului organizației" + }, + "exportingPersonalVaultDescription": { + "message": "Numai elementele personale din seif asociate cu $EMAIL$ vor fi exportate. Elementele seifului organizației nu vor fi incluse.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Numai seiful organizației asociat cu $ORGANIZATION$ va fi exportat. Elementele seifului personal și elementele din alte organizații nu vor fi incluse.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Înapoi la rapoarte" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "Ce doriți să generați?" + }, + "passwordType": { + "message": "Tip de parolă" + }, + "regenerateUsername": { + "message": "Regenerare nume de utilizator" + }, + "generateUsername": { + "message": "Generare nume de utilizator" + }, + "usernameType": { + "message": "Tip de nume de utilizator" + }, + "plusAddressedEmail": { + "message": "Plus e-mail adresat", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Utilizați capacitățile de subadresare ale furnizorului dvs. de e-mail." + }, + "catchallEmail": { + "message": "E-mail Catch-all" + }, + "catchallEmailDesc": { + "message": "Utilizați inbox-ul catch-all configurat pentru domeniul dvs." + }, + "random": { + "message": "Aleatoriu" + }, + "randomWord": { + "message": "Cuvânt aleatoriu" + }, + "service": { + "message": "Serviciu" + } +} diff --git a/apps/web/src/locales/ru/messages.json b/apps/web/src/locales/ru/messages.json new file mode 100644 index 0000000000..76d6565cfe --- /dev/null +++ b/apps/web/src/locales/ru/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "Веб-хранилище $APP_NAME$", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Выберите тип элемента" + }, + "name": { + "message": "Имя" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Новый URI" + }, + "username": { + "message": "Имя пользователя" + }, + "password": { + "message": "Пароль" + }, + "newPassword": { + "message": "Новый пароль" + }, + "passphrase": { + "message": "Парольная фраза" + }, + "notes": { + "message": "Заметки" + }, + "customFields": { + "message": "Пользовательские поля" + }, + "cardholderName": { + "message": "Имя владельца карты" + }, + "number": { + "message": "Номер" + }, + "brand": { + "message": "Тип карты" + }, + "expiration": { + "message": "Срок действия" + }, + "securityCode": { + "message": "Код безопасности (CVV)" + }, + "identityName": { + "message": "Имя" + }, + "company": { + "message": "Компания" + }, + "ssn": { + "message": "Номер социального страхования" + }, + "passportNumber": { + "message": "Номер паспорта" + }, + "licenseNumber": { + "message": "ИНН" + }, + "email": { + "message": "Email" + }, + "phone": { + "message": "Телефон" + }, + "january": { + "message": "Январь" + }, + "february": { + "message": "Февраль" + }, + "march": { + "message": "Март" + }, + "april": { + "message": "Апрель" + }, + "may": { + "message": "Май" + }, + "june": { + "message": "Июнь" + }, + "july": { + "message": "Июль" + }, + "august": { + "message": "Август" + }, + "september": { + "message": "Сентябрь" + }, + "october": { + "message": "Октябрь" + }, + "november": { + "message": "Ноябрь" + }, + "december": { + "message": "Декабрь" + }, + "title": { + "message": "Обращение" + }, + "mr": { + "message": "Г-н" + }, + "mrs": { + "message": "Г-жа" + }, + "ms": { + "message": "Проф." + }, + "dr": { + "message": "Тов." + }, + "expirationMonth": { + "message": "Месяц" + }, + "expirationYear": { + "message": "Год" + }, + "authenticatorKeyTotp": { + "message": "Ключ проверки подлинности (TOTP)" + }, + "folder": { + "message": "Папка" + }, + "newCustomField": { + "message": "Новое пользовательское поле" + }, + "value": { + "message": "Значение" + }, + "dragToSort": { + "message": "Перетащите для сортировки" + }, + "cfTypeText": { + "message": "Текстовое" + }, + "cfTypeHidden": { + "message": "Скрытое" + }, + "cfTypeBoolean": { + "message": "Логическое" + }, + "cfTypeLinked": { + "message": "Связано", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Удалить" + }, + "unassigned": { + "message": "Неназначенные" + }, + "noneFolder": { + "message": "Без папки", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Добавить папку" + }, + "editFolder": { + "message": "Изменить папку" + }, + "baseDomain": { + "message": "Основной домен", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Доменное имя", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Хост", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Точно" + }, + "startsWith": { + "message": "Начинается с" + }, + "regEx": { + "message": "Регулярное выражение", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Обнаружение совпадений", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Метод обнаружения по умолчанию", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Никогда" + }, + "toggleVisibility": { + "message": "Изменить видимость" + }, + "toggleCollapse": { + "message": "Свернуть/развернуть", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Сгенерировать пароль" + }, + "checkPassword": { + "message": "Проверьте, не скомпрометирован ли пароль." + }, + "passwordExposed": { + "message": "Этот пароль был скомпрометирован $VALUE$ раз(а). Вам следует его изменить.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Этот пароль не обнаружен в известных базах утечек. Можно продолжать его использовать." + }, + "save": { + "message": "Сохранить" + }, + "cancel": { + "message": "Отмена" + }, + "canceled": { + "message": "Отменено" + }, + "close": { + "message": "Закрыть" + }, + "delete": { + "message": "Удалить" + }, + "favorite": { + "message": "Избранный" + }, + "unfavorite": { + "message": "Удалить из избранного" + }, + "edit": { + "message": "Изменить" + }, + "searchCollection": { + "message": "Поиск в коллекции" + }, + "searchFolder": { + "message": "Поиск в папке" + }, + "searchFavorites": { + "message": "Поиск в избранном" + }, + "searchType": { + "message": "Поиск по типу", + "description": "Search item type" + }, + "searchVault": { + "message": "Поиск в хранилище" + }, + "allItems": { + "message": "Все элементы" + }, + "favorites": { + "message": "Избранные" + }, + "types": { + "message": "Типы элементов" + }, + "typeLogin": { + "message": "Логин" + }, + "typeCard": { + "message": "Карта" + }, + "typeIdentity": { + "message": "Личная информация" + }, + "typeSecureNote": { + "message": "Защищенная заметка" + }, + "typeLoginPlural": { + "message": "Логины" + }, + "typeCardPlural": { + "message": "Карты" + }, + "typeIdentityPlural": { + "message": "Личная информация" + }, + "typeSecureNotePlural": { + "message": "Защищенные заметки" + }, + "folders": { + "message": "Папки" + }, + "collections": { + "message": "Коллекции" + }, + "firstName": { + "message": "Имя" + }, + "middleName": { + "message": "Отчество" + }, + "lastName": { + "message": "Фамилия" + }, + "fullName": { + "message": "Полное имя" + }, + "address1": { + "message": "Строка адреса 1" + }, + "address2": { + "message": "Строка адреса 2" + }, + "address3": { + "message": "Строка адреса 3" + }, + "cityTown": { + "message": "Город/поселок" + }, + "stateProvince": { + "message": "Регион/область" + }, + "zipPostalCode": { + "message": "Почтовый индекс" + }, + "country": { + "message": "Страна" + }, + "shared": { + "message": "Общие" + }, + "attachments": { + "message": "Вложения" + }, + "select": { + "message": "Выбрать" + }, + "addItem": { + "message": "Добавить элемент" + }, + "editItem": { + "message": "Изменение элемента" + }, + "viewItem": { + "message": "Просмотр элемента" + }, + "ex": { + "message": "напр.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Прочее" + }, + "share": { + "message": "Поделиться" + }, + "moveToOrganization": { + "message": "Переместить в организацию" + }, + "valueCopied": { + "message": "$VALUE$ скопирован(о)", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Скопировать значение", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Скопировать пароль", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Скопировать имя пользователя", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Скопировать номер", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Скопировать код безопасности", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Скопировать URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Хранилище" + }, + "vault": { + "message": "Хранилище" + }, + "moveSelectedToOrg": { + "message": "Переместить выбранное в организацию" + }, + "deleteSelected": { + "message": "Удалить выбранное" + }, + "moveSelected": { + "message": "Переместить выбранное" + }, + "selectAll": { + "message": "Выбрать все" + }, + "unselectAll": { + "message": "Отменить выбор" + }, + "launch": { + "message": "Перейти" + }, + "newAttachment": { + "message": "Добавить новое вложение" + }, + "deletedAttachment": { + "message": "Вложение удалено" + }, + "deleteAttachmentConfirmation": { + "message": "Вы действительно хотите удалить это вложение?" + }, + "attachmentSaved": { + "message": "Вложение сохранено." + }, + "file": { + "message": "Файл" + }, + "selectFile": { + "message": "Выберите файл." + }, + "maxFileSize": { + "message": "Максимальный размер файла 500 МБ." + }, + "updateKey": { + "message": "Вы не можете использовать эту функцию, пока не обновите свой ключ шифрования." + }, + "addedItem": { + "message": "Элемент добавлен" + }, + "editedItem": { + "message": "Элемент изменен" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ перемещен в $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Выбранные элементы перемещены в $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Удалить элемент" + }, + "deleteFolder": { + "message": "Удалить папку" + }, + "deleteAttachment": { + "message": "Удалить вложение" + }, + "deleteItemConfirmation": { + "message": "Вы действительно хотите отправить в корзину?" + }, + "deletedItem": { + "message": "Элемент удален" + }, + "deletedItems": { + "message": "Элементы удалены" + }, + "movedItems": { + "message": "Элементы перемещены" + }, + "overwritePasswordConfirmation": { + "message": "Вы хотите перезаписать текущий пароль?" + }, + "editedFolder": { + "message": "Папка отредактирована" + }, + "addedFolder": { + "message": "Папка добавлена" + }, + "deleteFolderConfirmation": { + "message": "Вы хотите удалить эту папку?" + }, + "deletedFolder": { + "message": "Папка удалена" + }, + "loggedOut": { + "message": "Вы вышли из хранилища" + }, + "loginExpired": { + "message": "Истек срок действия вашей сессии." + }, + "logOutConfirmation": { + "message": "Вы действительно хотите выйти?" + }, + "logOut": { + "message": "Выйти" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Да" + }, + "no": { + "message": "Нет" + }, + "loginOrCreateNewAccount": { + "message": "Войдите или создайте новый аккаунт для доступа к вашему защищенному хранилищу." + }, + "createAccount": { + "message": "Создать аккаунт" + }, + "logIn": { + "message": "Войти" + }, + "submit": { + "message": "Подтвердить" + }, + "emailAddressDesc": { + "message": "Адрес электронной почты будет использоваться для входа." + }, + "yourName": { + "message": "Ваше имя" + }, + "yourNameDesc": { + "message": "Как вас называть?" + }, + "masterPass": { + "message": "Мастер-пароль" + }, + "masterPassDesc": { + "message": "Мастер-пароль – это ключ к вашему защищенному хранилищу. Он очень важен, поэтому не забывайте его. Восстановить мастер-пароль невозможно." + }, + "masterPassHintDesc": { + "message": "Подсказка к мастер-паролю может помочь вам его вспомнить." + }, + "reTypeMasterPass": { + "message": "Введите мастер-пароль повторно" + }, + "masterPassHint": { + "message": "Подсказка к мастер-паролю (необяз.)" + }, + "masterPassHintLabel": { + "message": "Подсказка к мастер-паролю" + }, + "settings": { + "message": "Настройки" + }, + "passwordHint": { + "message": "Подсказка к паролю" + }, + "enterEmailToGetHint": { + "message": "Введите email учетной записи для получения подсказки к мастер-паролю." + }, + "getMasterPasswordHint": { + "message": "Получить подсказку к мастер-паролю" + }, + "emailRequired": { + "message": "Необходимо указать email." + }, + "invalidEmail": { + "message": "Неверный адрес email." + }, + "masterPassRequired": { + "message": "Требуется мастер-пароль." + }, + "masterPassLength": { + "message": "Мастер-пароль должен содержать не менее 8 символов." + }, + "masterPassDoesntMatch": { + "message": "Мастер-пароли не совпадают." + }, + "newAccountCreated": { + "message": "Ваш аккаунт создан! Теперь вы можете войти в систему." + }, + "masterPassSent": { + "message": "Мы отправили вам email с подсказкой к мастер-паролю." + }, + "unexpectedError": { + "message": "Произошла непредвиденная ошибка." + }, + "emailAddress": { + "message": "Адрес email" + }, + "yourVaultIsLocked": { + "message": "Ваше хранилище заблокировано. Для продолжения введите мастер-пароль." + }, + "unlock": { + "message": "Разблокировать" + }, + "loggedInAsEmailOn": { + "message": "Выполнен вход на $HOSTNAME$ как $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Неверный мастер-пароль" + }, + "lockNow": { + "message": "Заблокировать сейчас" + }, + "noItemsInList": { + "message": "Нет элементов для отображения." + }, + "noCollectionsInList": { + "message": "Нет коллекций для отображения." + }, + "noGroupsInList": { + "message": "Нет групп для отображения." + }, + "noUsersInList": { + "message": "Нет пользователей для отображения." + }, + "noEventsInList": { + "message": "Нет событий для отображения." + }, + "newOrganization": { + "message": "Новая организация" + }, + "noOrganizationsList": { + "message": "Вы не являетесь членом какой-либо организации. Организации позволяют безопасно обмениваться элементами с другими пользователями." + }, + "versionNumber": { + "message": "Версия $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Введите 6-значный код подтверждения из вашего приложения-аутентификатора." + }, + "enterVerificationCodeEmail": { + "message": "Введите 6-значный код подтверждения, который был отправлен на $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Отправлено письмо подтверждения на $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Запомнить меня" + }, + "sendVerificationCodeEmailAgain": { + "message": "Отправить код подтверждения еще раз" + }, + "useAnotherTwoStepMethod": { + "message": "Использовать другой метод двухфакторной аутентификации" + }, + "insertYubiKey": { + "message": "Вставьте свой YubiKey в USB-порт компьютера и нажмите его кнопку." + }, + "insertU2f": { + "message": "Вставьте ключ безопасности в USB-порт компьютера. Если у ключа есть кнопка, нажмите ее." + }, + "loginUnavailable": { + "message": "Вход недоступен" + }, + "noTwoStepProviders": { + "message": "У этого аккаунта включена двухфакторная аутентификация, однако ни один из настроенных вариантов не поддерживается этим веб-браузером." + }, + "noTwoStepProviders2": { + "message": "Используйте поддерживаемый веб-браузер (например Chrome) и/или добавьте дополнительные варианты аутентификации, которые поддерживаются в веб-браузерах (например приложение-аутентификатор)." + }, + "twoStepOptions": { + "message": "Настройки двухфакторной аутентификации" + }, + "recoveryCodeDesc": { + "message": "Потеряли доступ ко всем вариантам двухфакторной аутентификации? Используйте код восстановления, чтобы отключить ее для вашего аккаунта." + }, + "recoveryCodeTitle": { + "message": "Код восстановления" + }, + "authenticatorAppTitle": { + "message": "Приложение-аутентификатор" + }, + "authenticatorAppDesc": { + "message": "Используйте приложение-аутентификатор (например Authy или Google Authenticator) для создания кодов проверки на основе времени.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "Ключ безопасности YubiKey OTP" + }, + "yubiKeyDesc": { + "message": "Используйте YubiKey для доступа к аккаунту. Работает с устройствами YubiKey серий 4, 5 и NEO." + }, + "duoDesc": { + "message": "Подтвердите при помощи Duo Security, используя приложение Duo Mobile, SMS, телефонный звонок или ключ безопасности U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Подтвердите при помощи Duo Security для вашей организации, используя приложение Duo Mobile, SMS, телефонный звонок или ключ безопасности U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Используйте любой защищенный ключ FIDO U2F для доступа к вашему аккаунту." + }, + "u2fTitle": { + "message": "Ключ безопасности FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Используйте любой ключ безопасности с поддержкой WebAuthn для доступа к своей учетной записи." + }, + "webAuthnMigrated": { + "message": "(Перенесено из FIDO)" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Коды подтверждения будут отправлены вам по электронной почте." + }, + "continue": { + "message": "Продолжить" + }, + "organization": { + "message": "Организация" + }, + "organizations": { + "message": "Организации" + }, + "moveToOrgDesc": { + "message": "Выберите организацию, в которую вы хотите переместить этот элемент. При перемещении в организацию право собственности на элемент переходит к этой организации. Вы больше не будете прямым владельцем этого элемента после его перемещения." + }, + "moveManyToOrgDesc": { + "message": "Выберите организацию, в которую вы хотите переместить эти элементы. При перемещении в организацию право собственности на элементы переходит к этой организации. Вы больше не будете прямым владельцем этих элементов после их перемещения." + }, + "collectionsDesc": { + "message": "Отредактируйте коллекции, с которыми совместно используется этот элемент. Данный элемент смогут видеть только пользователи организации, имеющие доступ к этим коллекциям." + }, + "deleteSelectedItemsDesc": { + "message": "Выбрано элементов для удаления: $COUNT$. Вы действительно хотите удалить все эти элементы?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Выберите папку, в которую вы хотите переместить выбранные элементы ($COUNT$ шт.).", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Вы выбрали $COUNT$ элемента(-ов). $MOVEABLE_COUNT$ элемента(-ов) могут быть перемещены в организацию, $NONMOVEABLE_COUNT$ не могут.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Код подтверждения (TOTP)" + }, + "copyVerificationCode": { + "message": "Скопировать код подтверждения" + }, + "warning": { + "message": "Предупреждение" + }, + "confirmVaultExport": { + "message": "Подтвердить экспорт хранилища" + }, + "exportWarningDesc": { + "message": "Экспортируемый файл содержит данные вашего хранилища в незашифрованном формате. Его не следует хранить или отправлять по небезопасным каналам (например по электронной почте). Удалите его сразу после использования." + }, + "encExportKeyWarningDesc": { + "message": "При экспорте данные шифруются при помощи ключа шифрования учетной записи. Если вы решите сменить ключ шифрования, вам следует экспортировать данные повторно, поскольку вы не сможете расшифровать этот файл экспорта." + }, + "encExportAccountWarningDesc": { + "message": "Ключи шифрования уникальны для каждой учетной записи Bitwarden, поэтому нельзя импортировать зашифрованное хранилище в другой аккаунт." + }, + "export": { + "message": "Экспорт" + }, + "exportVault": { + "message": "Экспортировать хранилище" + }, + "fileFormat": { + "message": "Формат файла" + }, + "exportSuccess": { + "message": "Данные вашего хранилища экспортированы." + }, + "passwordGenerator": { + "message": "Генератор паролей" + }, + "minComplexityScore": { + "message": "Минимальный уровень сложности" + }, + "minNumbers": { + "message": "Минимум цифр" + }, + "minSpecial": { + "message": "Минимум символов", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Избегать неоднозначных символов" + }, + "regeneratePassword": { + "message": "Создать новый пароль" + }, + "length": { + "message": "Длина" + }, + "numWords": { + "message": "Количество слов" + }, + "wordSeparator": { + "message": "Разделитель слов" + }, + "capitalize": { + "message": "С заглавной буквы", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Добавить цифру" + }, + "passwordHistory": { + "message": "История паролей" + }, + "noPasswordsInList": { + "message": "Нет паролей для отображения." + }, + "clear": { + "message": "Очистить", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Аккаунт обновлен" + }, + "changeEmail": { + "message": "Изменение email" + }, + "changeEmailTwoFactorWarning": { + "message": "В результате будет изменен адрес email вашего аккаунта. Это не приведет к изменению адреса электронной почты, используемого для двухфакторной аутентификации. Вы можете изменить этот адрес электронной почты в настройках двухэтапного входа." + }, + "newEmail": { + "message": "Новый email" + }, + "code": { + "message": "Код" + }, + "changeEmailDesc": { + "message": "Мы отправили код подтверждения на $EMAIL$. Проверьте свою почту и введите ниже код из письма, чтобы завершить изменение адреса электронной почты.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "В случае продолжения, ваша сессия будет завершена и вам будет предложено авторизоваться повторно. Сессии на других устройствах могут оставаться активными в течение одного часа." + }, + "emailChanged": { + "message": "Email изменен" + }, + "logBackIn": { + "message": "Пожалуйста, войдите снова." + }, + "logBackInOthersToo": { + "message": "Пожалуйста, войдите снова. Если вы используете другие приложения Bitwarden, выполните на них выход и повторный вход." + }, + "changeMasterPassword": { + "message": "Изменение мастер-пароля" + }, + "masterPasswordChanged": { + "message": "Мастер-пароль изменен" + }, + "currentMasterPass": { + "message": "Текущий мастер-пароль" + }, + "newMasterPass": { + "message": "Новый мастер-пароль" + }, + "confirmNewMasterPass": { + "message": "Подтвердите новый мастер-пароль" + }, + "encKeySettings": { + "message": "Настройки ключа шифрования" + }, + "kdfAlgorithm": { + "message": "Алгоритм KDF" + }, + "kdfIterations": { + "message": "Итерации KDF" + }, + "kdfIterationsDesc": { + "message": "Большее число итераций KDF повысит защиту мастер-пароля от атаки перебором. Рекомендуем значение $VALUE$ или больше.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Слишком большое число итераций KDF может существенно замедлить вход (и разблокировку) на устройствах со слабыми процессорами. Рекомендуется последовательно увеличивать значение с шагом $INCREMENT$, проверяя результат на всех ваших устройствах.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Изменить KDF" + }, + "encKeySettingsChanged": { + "message": "Настройки ключа шифрования изменены" + }, + "dangerZone": { + "message": "Опасная зона" + }, + "dangerZoneDesc": { + "message": "Осторожно, эти действия необратимы!" + }, + "deauthorizeSessions": { + "message": "Деавторизовать сессии" + }, + "deauthorizeSessionsDesc": { + "message": "Беспокоитесь о том, что ваша учетная запись авторизована на другом устройстве? Чтобы деавторизовать все ранее использовавшиеся компьютеры или устройства, выполните действие ниже. Этот шаг безопасности рекомендуется, если вы ранее использовали общедоступный компьютер или случайно сохранили свой пароль на устройстве, которое вам не принадлежит. Это действие также очистит все ранее сохраненные сессии двухфакторной аутентификации." + }, + "deauthorizeSessionsWarning": { + "message": "В случае продолжения, ваша сессия будет завершена и вам будет предложено авторизоваться повторно. При активированной двухфакторной аутентификации вам потребуется ввести код. Сессии на других устройствах могут оставаться активными в течение одного часа." + }, + "sessionsDeauthorized": { + "message": "Все сессии деавторизованы" + }, + "purgeVault": { + "message": "Очистить хранилище" + }, + "purgedOrganizationVault": { + "message": "Хранилище организации очищено." + }, + "vaultAccessedByProvider": { + "message": "Хранилище, к которому имеет доступ поставщик." + }, + "purgeVaultDesc": { + "message": "Чтобы удалить все элементы и папки из вашего хранилища, выполните следующие действия. Элементы, принадлежащие организации, с которой вы делитесь, удалены не будут." + }, + "purgeOrgVaultDesc": { + "message": "Для удаления всех элементов в хранилище организации выполните следующие действия." + }, + "purgeVaultWarning": { + "message": "Очистка вашего хранилища необратима. Ее нельзя отменить." + }, + "vaultPurged": { + "message": "Ваше хранилище очищено." + }, + "deleteAccount": { + "message": "Удалить учетную запись" + }, + "deleteAccountDesc": { + "message": "Чтобы удалить учетную запись и все связанные с ней данные, выполните действие ниже." + }, + "deleteAccountWarning": { + "message": "Удаление вашей учетной записи необратимо. Его нельзя отменить." + }, + "accountDeleted": { + "message": "Учетная запись удалена" + }, + "accountDeletedDesc": { + "message": "Ваша учетная запись была закрыта и все связанные с ней данные были удалены." + }, + "myAccount": { + "message": "Моя учетная запись" + }, + "tools": { + "message": "Инструменты" + }, + "importData": { + "message": "Импорт данных" + }, + "importError": { + "message": "Ошибка импорта" + }, + "importErrorDesc": { + "message": "Возникла проблема с данными, которые вы пытались импортировать. Пожалуйста, исправьте ошибки, перечисленные ниже в вашем исходном файле и попробуйте еще раз." + }, + "importSuccess": { + "message": "Данные были успешно импортированы в ваше хранилище." + }, + "importWarning": { + "message": "Вы импортируете данные в $ORGANIZATION$. Члены этой организации могут получить доступ к вашим данным. Хотите продолжить?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Формат данных некорректен. Проверьте файл импорта и повторите попытку." + }, + "importNothingError": { + "message": "Ничего не было импортировано." + }, + "importEncKeyError": { + "message": "Ошибка при расшифровке экспортированного файла. Ваш ключ шифрования не совпадает с ключом шифрования, используемым для экспорта данных." + }, + "selectFormat": { + "message": "Выберите формат файла импорта" + }, + "selectImportFile": { + "message": "Выберите файл импорта" + }, + "orCopyPasteFileContents": { + "message": "или скопируйте/вставьте содержимое файла импорта" + }, + "instructionsFor": { + "message": "Инструкции для $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Опции" + }, + "optionsDesc": { + "message": "Настройте возможности вашего веб-хранилища." + }, + "optionsUpdated": { + "message": "Настройки обновлены" + }, + "language": { + "message": "Язык" + }, + "languageDesc": { + "message": "Изменение языка, используемого веб-хранилищем." + }, + "disableIcons": { + "message": "Отключить значки веб-сайтов" + }, + "disableIconsDesc": { + "message": "Значки веб-сайтов отображаются рядом с каждым элементом в вашем хранилище." + }, + "enableGravatars": { + "message": "Включить Gravatar", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Использовать аватары с сайта gravatar.com." + }, + "enableFullWidth": { + "message": "Активировать отображение на всю ширину", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Разрешить веб-хранилищу использовать всю ширину окна браузера." + }, + "default": { + "message": "По умолчанию" + }, + "domainRules": { + "message": "Доменные правила" + }, + "domainRulesDesc": { + "message": "Если у вас есть тот же логин на нескольких разных доменах веб-сайта, вы можете отметить веб-сайт как \"эквивалентный\". \"Глобальные\" - это домены, созданные для вас Bitwarden." + }, + "globalEqDomains": { + "message": "Глобальные эквивалентные домены" + }, + "customEqDomains": { + "message": "Пользовательские эквивалентные домены" + }, + "exclude": { + "message": "Исключить" + }, + "include": { + "message": "Включить" + }, + "customize": { + "message": "Настроить" + }, + "newCustomDomain": { + "message": "Новый пользовательский домен" + }, + "newCustomDomainDesc": { + "message": "Введите список доменов, разделенных запятыми. Допускаются только базовые домены. Не вводите субдомены. Например, вводите \"google.com\" вместо \"www.google.com\". Также вы можете ввести \"androidapp://package.name\", чтобы связать приложение Android с другими доменами веб-сайта." + }, + "customDomainX": { + "message": "Пользовательский домен $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Домены обновлены" + }, + "twoStepLogin": { + "message": "Двухфакторная аутентификация" + }, + "twoStepLoginDesc": { + "message": "Защитите свою учетную запись, при помощи дополнительного шага при авторизации." + }, + "twoStepLoginOrganizationDesc": { + "message": "Требовать двухфакторную аутентификацию для пользователей вашей организации, путем конфигурации ее на уровне организации." + }, + "twoStepLoginRecoveryWarning": { + "message": "При включении двухфакторной аутентификации вы можете навсегда потерять доступ к вашей учетной записи Bitwarden. Код восстановления позволяет получить доступ к вашему аккаунту в случае, если вы больше не можете использовать свой обычный метод двухфакторной аутентификации (например, при потере устройства). Поддержка Bitwarden не сможет вам помочь, если вы потеряете доступ к своей учетной записи. Мы рекомендуем вам записать или распечатать код восстановления и сохранить его в надежном месте." + }, + "viewRecoveryCode": { + "message": "Просмотр кода восстановления" + }, + "providers": { + "message": "Провайдеры", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Включить" + }, + "enabled": { + "message": "Включено" + }, + "premium": { + "message": "Премиум", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Премиум" + }, + "premiumRequired": { + "message": "Необходим Премиум" + }, + "premiumRequiredDesc": { + "message": "Для использования этой функции требуется Премиум." + }, + "youHavePremiumAccess": { + "message": "У вас есть Премиум" + }, + "alreadyPremiumFromOrg": { + "message": "У вас уже есть доступ к Премиум, так как вы являетесь членом организации." + }, + "manage": { + "message": "Управление" + }, + "disable": { + "message": "Выключить" + }, + "twoStepLoginProviderEnabled": { + "message": "Этот провайдер двухфакторной аутентификации включен для вашего аккаунта." + }, + "twoStepLoginAuthDesc": { + "message": "Для изменения настроек двухфакторной аутентификации введите мастер-пароль." + }, + "twoStepAuthenticatorDesc": { + "message": "Выполните следующие шаги, чтобы настроить двухфакторную аутентификацию с помощью приложения-аутетификатора:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Загрузите приложение-аутентификатор" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Нужно приложение-аутентификатор? Загрузите одно из следующих" + }, + "iosDevices": { + "message": "Устройства iOS" + }, + "androidDevices": { + "message": "Устройства Android" + }, + "windowsDevices": { + "message": "Устройства Windows" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Это рекомендуемые приложения, однако, будут работать и другие приложения-аутентификаторы." + }, + "twoStepAuthenticatorScanCode": { + "message": "Отсканируйте этот QR-код вашим приложением-аутентификатором" + }, + "key": { + "message": "Ключ" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Введите полученный 6-значный код подтверждения из вашего приложения-аутентификатора" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Если вам нужно добавить его на другое устройство, ниже указан QR-код для приложения-аутентификатора." + }, + "twoStepDisableDesc": { + "message": "Вы действительно хотите отключить этого провайдера двухфакторной аутентификации?" + }, + "twoStepDisabled": { + "message": "Провайдер двухфакторной аутентификации отключен." + }, + "twoFactorYubikeyAdd": { + "message": "Добавить в аккаунт новый YubiKey" + }, + "twoFactorYubikeyPlugIn": { + "message": "Вставьте YubiKey в USB-порт компьютера." + }, + "twoFactorYubikeySelectKey": { + "message": "Выберите первое пустое поле ввода YubiKey ниже." + }, + "twoFactorYubikeyTouchButton": { + "message": "Нажмите кнопку YubiKey." + }, + "twoFactorYubikeySaveForm": { + "message": "Сохранить форму." + }, + "twoFactorYubikeyWarning": { + "message": "Из-за ограничений платформы, YubiKey можно использовать не во всех приложениях Bitwarden. Если использовать YubiKey не удается, то включите другого провайдера двухфакторной аутентификации, чтобы иметь доступ к своему аккаунту. Поддерживаемые платформы:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Веб-хранилище, приложение для компьютера, интерфейс командной строки (CLI) и все расширения браузеров на устройстве с USB-портом, совместимым с YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Мобильные приложения на устройстве с NFC или USB-портом, совместимыми с YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "Ключ U2F $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "$INDEX$ ключ(-а) WebAuthn", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "Поддержка NFC" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Один из моих ключей поддерживает NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Если один из ваших YubiKey поддерживает NFC (например YubiKey NEO), то при обнаружении доступности NFC на мобильном устройстве вам будет выдан запрос." + }, + "yubikeysUpdated": { + "message": "YubiKey обновлены" + }, + "disableAllKeys": { + "message": "Отключить все ключи" + }, + "twoFactorDuoDesc": { + "message": "Введите информацию о приложении Bitwarden из панели администратора Duo." + }, + "twoFactorDuoIntegrationKey": { + "message": "Ключ интеграции" + }, + "twoFactorDuoSecretKey": { + "message": "Секретный ключ" + }, + "twoFactorDuoApiHostname": { + "message": "Имя хоста API" + }, + "twoFactorEmailDesc": { + "message": "Выполните следующие шаги, чтобы настроить двухфакторную аутентификацию по email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Введите адрес email, на который вы хотите получать коды подтверждения" + }, + "twoFactorEmailEnterCode": { + "message": "Введите полученный в письме 6-значный код подтверждения" + }, + "sendEmail": { + "message": "Отправить email" + }, + "twoFactorU2fAdd": { + "message": "Добавьте ключ безопасности FIDO U2F в свой аккаунт" + }, + "removeU2fConfirmation": { + "message": "Вы действительно хотите удалить этот ключ безопасности?" + }, + "twoFactorWebAuthnAdd": { + "message": "Добавить ключ безопасности WebAuthn в свою учетную запись" + }, + "readKey": { + "message": "Читать ключ" + }, + "keyCompromised": { + "message": "Ключ скомпрометирован." + }, + "twoFactorU2fGiveName": { + "message": "Присвойте ключу безопасности понятное имя, чтобы его можно было легко идентифицировать." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Подключите ключ безопасности к USB-порту компьютера и нажмите кнопку 'Прочитать ключ'." + }, + "twoFactorU2fTouchButton": { + "message": "Если у ключа безопасности есть кнопка, нажмите ее." + }, + "twoFactorU2fSaveForm": { + "message": "Сохранить форму." + }, + "twoFactorU2fWarning": { + "message": "Из-за ограничений платформы, FIDO U2F можно использовать не во всех приложениях Bitwarden. Если использовать FIDO U2F не удается, то включите другого провайдера двухфакторной аутентификации, чтобы иметь доступ к своему аккаунту. Поддерживаемые платформы:" + }, + "twoFactorU2fSupportWeb": { + "message": "Веб-хранилище и расширения браузера на компьютере/ноутбуке с браузером с поддержкой U2F (Chrome, Opera, Vivaldi или Firefox с включенным FIDO U2F)." + }, + "twoFactorU2fWaiting": { + "message": "В ожидании нажатия кнопки на ключе безопасности" + }, + "twoFactorU2fClickSave": { + "message": "Нажмите кнопку 'Сохранить' ниже, чтобы включить этот ключ безопасности для двухфакторной аутентификации." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Не удалось прочитать ключ безопасности. Попробуйте снова." + }, + "twoFactorWebAuthnWarning": { + "message": "Из-за ограничений платформы WebAuthn нельзя использовать во всех приложениях Bitwarden. Вы должны включить другого провайдера двухфакторной аутентификации, чтобы иметь возможность получить доступ к своей учетной записи, когда WebAuthn не может быть использован. Поддерживаемые платформы:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Веб-хранилище и расширения браузера на компьютере/ноутбуке с браузером с поддержкой WebAuthn (Chrome, Opera, Vivaldi или Firefox с включенным FIDO U2F)." + }, + "twoFactorRecoveryYourCode": { + "message": "Ваш код восстановления двухфакторной аутентификации Bitwarden" + }, + "twoFactorRecoveryNoCode": { + "message": "Вы еще не включили ни одного провайдера двухфакторной аутентификации. После включения вернитесь сюда и получите свой код восстановления." + }, + "printCode": { + "message": "Печать кода", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Отчеты" + }, + "reportsDesc": { + "message": "Выявите и устраните проблемы с безопасностью в ваших онлайн-аккаунтах, перейдя по ссылкам на отчеты ниже." + }, + "unsecuredWebsitesReport": { + "message": "Небезопасные сайты" + }, + "unsecuredWebsitesReportDesc": { + "message": "URL-адреса, начинающиеся с http://, не используют оптимальный способ шифрования. Измените URI для логинов этих аккаунтов на https:// для более безопасного использования интернета." + }, + "unsecuredWebsitesFound": { + "message": "Найдены незащищенные сайты" + }, + "unsecuredWebsitesFoundDesc": { + "message": "В хранилище обнаружены элементы ($COUNT$ шт.) с незащищенными URI. Вам следует изменить их схему URI на https://, если сайт это позволяет.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "В вашем хранилище нет элементов с незащищенными URI." + }, + "inactive2faReport": { + "message": "Неактивная двухфакторная аутентификация" + }, + "inactive2faReportDesc": { + "message": "Двухфакторная аутентификация добавляет уровень защиты для ваших аккаунтов. Включите ее для этих учетных записей с помощью Bitwarden Authenticator или используйте альтернативный метод." + }, + "inactive2faFound": { + "message": "Найдены логины без 2ФА" + }, + "inactive2faFoundDesc": { + "message": "В хранилище обнаружены сайты ($COUNT$ шт.), у которых может быть не настроена двухфакторная аутентификация (согласно 2fa.directory). Для дополнительной защиты этих аккаунтов следует включить двухфакторную аутентификацию.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "В вашем хранилище нет сайтов с ненастроенной двухфакторной аутентификацией." + }, + "instructions": { + "message": "Инструкции" + }, + "exposedPasswordsReport": { + "message": "Скомпрометированные пароли" + }, + "exposedPasswordsReportDesc": { + "message": "Скомпрометированные в результате утечки данных пароли - легкая мишень для злоумышленников. Измените эти пароли, чтобы предотвратить возможные взломы." + }, + "exposedPasswordsFound": { + "message": "Найдены скомпрометированные пароли" + }, + "exposedPasswordsFoundDesc": { + "message": "В хранилище обнаружены элементы ($COUNT$ шт.), пароли которых скомпрометированы. Вам следует задать для них новые пароли.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "В вашем хранилище нет скомпрометированных паролей." + }, + "checkExposedPasswords": { + "message": "Проверить пароли на компрометацию" + }, + "exposedXTimes": { + "message": "Скомпрометирован $COUNT$ раз(а)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Слабые пароли" + }, + "weakPasswordsReportDesc": { + "message": "Слабые пароли могут быть легко подобраны злоумышленниками. Измените эти пароли на надежные при помощи генератора паролей." + }, + "weakPasswordsFound": { + "message": "Обнаружены слабые пароли" + }, + "weakPasswordsFoundDesc": { + "message": "В хранилище есть элементы ($COUNT$ шт.) с ненадежными паролями. Следует задать для них более сильные пароли.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "В вашем хранилище нет слабых паролей." + }, + "reusedPasswordsReport": { + "message": "Повторно использованные пароли" + }, + "reusedPasswordsReportDesc": { + "message": "Повторное использование паролей облегчает злоумышленникам взлом нескольких учетных записей. Измените эти пароли и сделайте каждый из них уникальным." + }, + "reusedPasswordsFound": { + "message": "Обнаружены повторно использованные пароли" + }, + "reusedPasswordsFoundDesc": { + "message": "В хранилище есть элементы ($COUNT$ шт.) с повторно использованными паролями. Следует изменить их на уникальные.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "В вашем хранилище нет повторно использованных паролей." + }, + "reusedXTimes": { + "message": "Повторно использован $COUNT$ раз(а)", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Утечка данных" + }, + "breachDesc": { + "message": "Взломанные аккаунты могут раскрыть вашу личную информацию. Защитите их, включив 2ФА или создав более надежный пароль." + }, + "breachCheckUsernameEmail": { + "message": "Проверьте имена пользователей или адреса email, которые вы используете." + }, + "checkBreaches": { + "message": "Проверить в базах утечек" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ не найден в известных базах утечек.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Хорошие новости", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ найден в $COUNT$ различных онлайн-базах утечек.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Обнаружена утечка аккаунтов" + }, + "compromisedData": { + "message": "Скомпрометированные данные" + }, + "website": { + "message": "Веб-сайт" + }, + "affectedUsers": { + "message": "Затронутых пользователей" + }, + "breachOccurred": { + "message": "Произошла утечка" + }, + "breachReported": { + "message": "Сообщено об утечке" + }, + "reportError": { + "message": "При загрузке отчета произошла ошибка. Попробуйте еще раз" + }, + "billing": { + "message": "Оплата" + }, + "accountCredit": { + "message": "Средства аккаунта", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Баланс аккаунта", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Пополнить счет", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Сумма", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Внесенный платеж отобразится после его обработки. Некоторые способы оплаты могут занять больше времени, чем другие." + }, + "makeSureEnoughCredit": { + "message": "Убедитесь, что на вашем счету достаточно средств для этой покупки. Если на вашем счете недостаточно средств, то для покрытия разницы будет использован ваш метод оплаты по умолчанию. Вы можете добавить денежные средства в свой аккаунт на странице оплаты." + }, + "creditAppliedDesc": { + "message": "Средства на вашего аккаунта используются для совершения платежей. Любой доступный остаток будет автоматически использован для оплаты счетов, выставленных этому аккаунту." + }, + "goPremium": { + "message": "Перейти на Премиум", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Вы обновились до Премиум." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Обновите свою учетную запись до Премиум и разблокируйте великолепные дополнительные возможности." + }, + "premiumSignUpStorage": { + "message": "1 ГБ зашифрованного хранилища для вложенных файлов." + }, + "premiumSignUpTwoStep": { + "message": "Дополнительные варианты двухфакторной аутентификации, такие как YubiKey, FIDO U2F и Duo." + }, + "premiumSignUpEmergency": { + "message": "Экстренный доступ" + }, + "premiumSignUpReports": { + "message": "Гигиена паролей, здоровье аккаунта и отчеты об утечках данных для обеспечения безопасности вашего хранилища." + }, + "premiumSignUpTotp": { + "message": "TOTP-генератор кодов (2ФА) для логинов в хранилище." + }, + "premiumSignUpSupport": { + "message": "Приоритетная поддержка." + }, + "premiumSignUpFuture": { + "message": "Все будущие функции Премиум. Их будет больше!" + }, + "premiumPrice": { + "message": "Всего лишь $PRICE$ /в год!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Дополнения" + }, + "premiumAccess": { + "message": "Премиум-доступ" + }, + "premiumAccessDesc": { + "message": "Вы можете добавить премиум-доступ всем членам вашей организации за $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Дополнительное хранилище (ГБ)" + }, + "additionalStorageGbDesc": { + "message": "# дополнительных ГБ" + }, + "additionalStorageIntervalDesc": { + "message": "Ваш план включает $SIZE$ зашифрованного файлового хранилища. Вы можете добавить дополнительное место по цене $PRICE$ за ГБ /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Итого" + }, + "total": { + "message": "Всего" + }, + "year": { + "message": "год" + }, + "month": { + "message": "месяц" + }, + "monthAbbr": { + "message": "мес.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Ваш метод оплаты будет активирован немедленно и использоваться ежегодно. Вы можете отменить это в любой момент." + }, + "paymentCharged": { + "message": "Ваш метод оплаты будет активирован немедленно и использоваться каждый $INTERVAL$. Вы можете отменить это в любой момент.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Ваш план включает семидневную бесплатную пробную версию. Ваш метод оплаты не будет использован до окончания пробной версии. Оплата будет выполняться каждый $INTERVAL$. Вы можете отказаться в любое время." + }, + "paymentInformation": { + "message": "Платежная информация" + }, + "billingInformation": { + "message": "Платежная информация" + }, + "creditCard": { + "message": "Кредитная карта" + }, + "paypalClickSubmit": { + "message": "Нажмите кнопку PayPal, чтобы войти в свою учетную запись PayPal, затем нажмите кнопку 'Подтвердить' ниже, чтобы продолжить." + }, + "cancelSubscription": { + "message": "Отменить подписку" + }, + "subscriptionCanceled": { + "message": "Подписка отменена." + }, + "pendingCancellation": { + "message": "Ожидание отмены" + }, + "subscriptionPendingCanceled": { + "message": "Подписка была помечена для отмены в конце текущего платежного периода." + }, + "reinstateSubscription": { + "message": "Восстановить подписку" + }, + "reinstateConfirmation": { + "message": "Вы действительно хотите удалить ожидающий запрос на аннулирование и восстановить свою подписку?" + }, + "reinstated": { + "message": "Подписка восстановлена." + }, + "cancelConfirmation": { + "message": "Вы действительно хотите отменить? Вы потеряете доступ ко всем возможностям этой подписки в конце этого платежного периода." + }, + "canceledSubscription": { + "message": "Подписка отменена." + }, + "neverExpires": { + "message": "Никогда не истекает" + }, + "status": { + "message": "Статус" + }, + "nextCharge": { + "message": "Следующий платеж" + }, + "details": { + "message": "Подробности" + }, + "downloadLicense": { + "message": "Загрузить лицензию" + }, + "updateLicense": { + "message": "Обновить лицензию" + }, + "updatedLicense": { + "message": "Лицензия обновлена" + }, + "manageSubscription": { + "message": "Управление подпиской" + }, + "storage": { + "message": "Хранилище" + }, + "addStorage": { + "message": "Добавить хранилище" + }, + "removeStorage": { + "message": "Удалить хранилище" + }, + "subscriptionStorage": { + "message": "Ваша подписка включает в общей сложности $MAX_STORAGE$ ГБ зашифрованного файлового хранилища. На текущий момент использовано $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Способ оплаты" + }, + "noPaymentMethod": { + "message": "Нет сохраненных способов оплаты." + }, + "addPaymentMethod": { + "message": "Добавить способ оплаты" + }, + "changePaymentMethod": { + "message": "Изменить способ оплаты" + }, + "invoices": { + "message": "Счета" + }, + "noInvoices": { + "message": "Нет счетов." + }, + "paid": { + "message": "Оплачено", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Не оплачено", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Транзакции", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Нет транзакций." + }, + "chargeNoun": { + "message": "Списание", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Возврат", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Платежи будут отображаться в вашей выписке как $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "ГБ хранилища для добавления" + }, + "gbStorageRemove": { + "message": "ГБ хранилища для удаления" + }, + "storageAddNote": { + "message": "Добавление хранилища приведет к корректировке итоговых счетов и немедленному взиманию платы с вашего метода оплаты. Первый платеж будет пропорционален оставшейся части текущего платежного периода." + }, + "storageRemoveNote": { + "message": "Удаление хранилища приведет к корректировке ваших итоговых счетов. Излишне уплаченные средства будут пропорционально перенесены на ваш следующий платежный период." + }, + "adjustedStorage": { + "message": "Скорректировано $AMOUNT$ ГБ хранилища.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Обратиться в службу поддержки" + }, + "updatedPaymentMethod": { + "message": "Способ оплаты обновлен." + }, + "purchasePremium": { + "message": "Купить Премиум" + }, + "licenseFile": { + "message": "Файл лицензии" + }, + "licenseFileDesc": { + "message": "Ваш файл лицензии будет иметь имя $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Для обновления своей учетной записи до Премиум, необходимо загрузить действительный файл лицензии." + }, + "uploadLicenseFileOrg": { + "message": "Для создания организации размещенной на локальном хостинге, необходимо загрузить действительный файл лицензии." + }, + "accountEmailMustBeVerified": { + "message": "Адрес email вашей учетной записи должен быть подтвержден." + }, + "newOrganizationDesc": { + "message": "Организации позволяют совместно использовать части своего хранилища с другими, а также управлять связанными пользователями для определенного объекта, такого как семья, небольшая команда или крупная компания." + }, + "generalInformation": { + "message": "Общая информация" + }, + "organizationName": { + "message": "Название организации" + }, + "accountOwnedBusiness": { + "message": "Этот аккаунт принадлежит компании." + }, + "billingEmail": { + "message": "Email для выставления счетов" + }, + "businessName": { + "message": "Название компании" + }, + "chooseYourPlan": { + "message": "Выберите план" + }, + "users": { + "message": "Пользователи" + }, + "userSeats": { + "message": "Лицензированных мест" + }, + "additionalUserSeats": { + "message": "Дополнительные пользовательские лицензии" + }, + "userSeatsDesc": { + "message": "# пользовательских лицензий" + }, + "userSeatsAdditionalDesc": { + "message": "Лицензированных мест в вашем плане: $BASE_SEATS$. Вы можете добавить дополнительных пользователей по $SEAT_PRICE$ за пользователя/месяц.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Сколько лицензированных мест вам нужно? При необходимости вы можете добавить дополнительные лицензии позже." + }, + "planNameFree": { + "message": "Бесплатный", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Для тестирования или персонального использования с возможностью поделиться с другими пользователями ($COUNT$).", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Семья" + }, + "planDescFamilies": { + "message": "Для личного использования, чтобы поделиться с семьей и друзьями." + }, + "planNameTeams": { + "message": "Команда" + }, + "planDescTeams": { + "message": "Для компаний и других командных организаций." + }, + "planNameEnterprise": { + "message": "Предприятие" + }, + "planDescEnterprise": { + "message": "Для компаний и других крупных организаций." + }, + "freeForever": { + "message": "Бесплатно навсегда" + }, + "includesXUsers": { + "message": "включает $COUNT$ пользователей", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Дополнительные пользователи" + }, + "costPerUser": { + "message": "$COST$ за пользователя", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Ограничение до $COUNT$ пользователей (включая вас)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Ограничение до $COUNT$ коллекций", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Добавление и совместное использование с $COUNT$ пользователями", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Добавлять и делиться с неограниченным количеством пользователей" + }, + "createUnlimitedCollections": { + "message": "Создание неограниченных коллекций" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ зашифрованного хранилища файлов", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Локальный хостинг (опционально)" + }, + "usersGetPremium": { + "message": "Пользователи получают доступ к возможностям Премиум" + }, + "controlAccessWithGroups": { + "message": "Управление доступом пользователей с помощью групп" + }, + "syncUsersFromDirectory": { + "message": "Синхронизация пользователей и групп из каталога" + }, + "trackAuditLogs": { + "message": "Отслеживание действий пользователей с помощью журналов аудита" + }, + "enforce2faDuo": { + "message": "Принудительная 2ФА с Duo" + }, + "priorityCustomerSupport": { + "message": "Приоритетная поддержка" + }, + "xDayFreeTrial": { + "message": "$COUNT$-дневная бесплатная пробная версия, отмена в любое время", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Ежемесячно" + }, + "annually": { + "message": "Ежегодно" + }, + "basePrice": { + "message": "Базовая цена" + }, + "organizationCreated": { + "message": "Организация создана" + }, + "organizationReadyToGo": { + "message": "Ваша новая организация готова к работе!" + }, + "organizationUpgraded": { + "message": "Ваша организация была обновлена." + }, + "leave": { + "message": "Покинуть" + }, + "leaveOrganizationConfirmation": { + "message": "Вы действительно хотите покинуть эту организацию?" + }, + "leftOrganization": { + "message": "Вы покинули организацию." + }, + "defaultCollection": { + "message": "Коллекция по умолчанию" + }, + "getHelp": { + "message": "Получить помощь" + }, + "getApps": { + "message": "Получить приложения" + }, + "loggedInAs": { + "message": "Выполнен вход как" + }, + "eventLogs": { + "message": "Журнал событий" + }, + "people": { + "message": "Люди" + }, + "policies": { + "message": "Политики" + }, + "singleSignOn": { + "message": "Единый вход" + }, + "editPolicy": { + "message": "Редактировать политику" + }, + "groups": { + "message": "Группы" + }, + "newGroup": { + "message": "Новая группа" + }, + "addGroup": { + "message": "Добавить группу" + }, + "editGroup": { + "message": "Редактировать группу" + }, + "deleteGroupConfirmation": { + "message": "Вы действительно хотите удалить эту группу?" + }, + "removeUserConfirmation": { + "message": "Вы действительно хотите удалить этого пользователя?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Внимание! Этому пользователю необходим соединитель ключей для управления шифрованием. Удаление этого пользователя из вашей организации приведет к окончательному отключению его учетной записи. Это действие нельзя отменить. Вы хотите продолжить?" + }, + "externalId": { + "message": "Внешний ID" + }, + "externalIdDesc": { + "message": "Внешний идентификатор может быть использован в качестве ссылки или для связи этого ресурса с внешней системой, такой как каталог пользователя." + }, + "accessControl": { + "message": "Контроль доступа" + }, + "groupAccessAllItems": { + "message": "Эта группа может иметь доступ и изменять все элементы." + }, + "groupAccessSelectedCollections": { + "message": "Эта группа может иметь доступ только к выбранным коллекциям." + }, + "readOnly": { + "message": "Только чтение" + }, + "newCollection": { + "message": "Новая коллекция" + }, + "addCollection": { + "message": "Добавить коллекцию" + }, + "editCollection": { + "message": "Редактировать коллекцию" + }, + "deleteCollectionConfirmation": { + "message": "Вы действительно хотите удалить эту коллекцию?" + }, + "editUser": { + "message": "Редактировать пользователя" + }, + "inviteUser": { + "message": "Пригласить пользователя" + }, + "inviteUserDesc": { + "message": "Пригласите нового пользователя в свою организацию, введя ниже адрес email его аккаунта Bitwarden. Если у него пока нет аккаунта Bitwarden, ему будет предложено его создать." + }, + "inviteMultipleEmailDesc": { + "message": "Вы можете пригласить до $COUNT$ пользователей одновременно, разделяя адреса email запятыми.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Этот пользователь использует двухфакторную аутентификацию для защиты своего аккаунта." + }, + "userAccessAllItems": { + "message": "Эта пользователь может иметь доступ и изменять все элементы." + }, + "userAccessSelectedCollections": { + "message": "Этот пользователь может иметь доступ только к выбранным коллекциям." + }, + "search": { + "message": "Поиск" + }, + "invited": { + "message": "Приглашен" + }, + "accepted": { + "message": "Принято" + }, + "confirmed": { + "message": "Подтверждено" + }, + "clientOwnerEmail": { + "message": "Email владельца клиента" + }, + "owner": { + "message": "Владелец" + }, + "ownerDesc": { + "message": "Высший пользовательский уровень доступа, который позволяет управлять всеми аспектами вашей организации." + }, + "clientOwnerDesc": { + "message": "Этот пользователь должен быть независимым от поставщика. Если поставщик будет отсоединен от организации, этот пользователь сохранит право собственности на организацию." + }, + "admin": { + "message": "Администратор" + }, + "adminDesc": { + "message": "Администраторы могут получать доступ и управлять всеми элементами, коллекциями и пользователями вашей организации." + }, + "user": { + "message": "Пользователь" + }, + "userDesc": { + "message": "Обычный пользователь с доступом к коллекциям вашей организации." + }, + "manager": { + "message": "Менеджер" + }, + "managerDesc": { + "message": "Менеджеры могут получать доступ и управлять назначенными коллекциями вашей организации." + }, + "all": { + "message": "Все" + }, + "refresh": { + "message": "Обновить" + }, + "timestamp": { + "message": "Метка времени" + }, + "event": { + "message": "Событие" + }, + "unknown": { + "message": "Неизвестно" + }, + "loadMore": { + "message": "Загрузить еще" + }, + "mobile": { + "message": "Мобильный", + "description": "Mobile app" + }, + "extension": { + "message": "Расширение", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Компьютер", + "description": "Desktop app" + }, + "webVault": { + "message": "Веб-хранилище" + }, + "loggedIn": { + "message": "Вход выполнен." + }, + "changedPassword": { + "message": "Изменен пароль аккаунта." + }, + "enabledUpdated2fa": { + "message": "Двухфакторная аутентификация включена/обновлена." + }, + "disabled2fa": { + "message": "Двухфакторная аутентификация отключена." + }, + "recovered2fa": { + "message": "Аккаунт восстановлен после двухфакторной аутентификации." + }, + "failedLogin": { + "message": "Ошибка входа из-за неправильного пароля." + }, + "failedLogin2fa": { + "message": "Ошибка входа из-за некорректной двухфакторной аутентификации." + }, + "exportedVault": { + "message": "Хранилище экспортировано." + }, + "exportedOrganizationVault": { + "message": "Хранилище организации экспортировано." + }, + "editedOrgSettings": { + "message": "Настройки организации изменены." + }, + "createdItemId": { + "message": "Создан элемент $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Изменен элемент $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Удален элемент $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Элемент $ID$ перемещен в организацию.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Просмотрен элемент $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Просмотрен пароль элемента $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Просмотрено скрытое поле элемента $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Просмотрен код безопасности элемента $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Скопирован пароль элемента $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Скопировано скрытое поле элемента $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Скопирован код безопасности элемента $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Автоматически заполнен элемент $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Создана коллекция $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Изменена коллекция $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Удалена коллекция $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Отредактирована политика $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Создана группа $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Изменена группа $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Удалена группа $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Удален пользователь $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Создано вложение в элементе $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Удалено вложение у элемента $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Изменены коллекции для элемента $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Приглашен пользователь $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Подтвержден пользователь $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Изменен пользователь $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Изменена группа у пользователя $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Несвязанный SSO для пользователя $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Создана организация $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Добавлена организация $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Удалена организация $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Доступ к хранилищу организации $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Устройство" + }, + "view": { + "message": "Просмотр" + }, + "invalidDateRange": { + "message": "Недопустимый диапазон дат." + }, + "errorOccurred": { + "message": "Произошла ошибка." + }, + "userAccess": { + "message": "Доступ пользователя" + }, + "userType": { + "message": "Тип пользователя" + }, + "groupAccess": { + "message": "Доступ к группе" + }, + "groupAccessUserDesc": { + "message": "Изменить группы, в которые входит этот пользователь." + }, + "invitedUsers": { + "message": "Приглашенные пользователи." + }, + "resendInvitation": { + "message": "Пригласить повторно" + }, + "resendEmail": { + "message": "Отправить email повторно" + }, + "hasBeenReinvited": { + "message": "$USER$ был приглашен повторно.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Подтвердить" + }, + "confirmUser": { + "message": "Подтвердить пользователя" + }, + "hasBeenConfirmed": { + "message": "$USER$ был подтвержден.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Подтвердить пользователей" + }, + "usersNeedConfirmed": { + "message": "У вас есть пользователи, которые приняли приглашение, но не были подтверждены. У них не будет доступа к организации, пока они не будут подтверждены." + }, + "startDate": { + "message": "Дата начала" + }, + "endDate": { + "message": "Дата окончания" + }, + "verifyEmail": { + "message": "Подтвердить email" + }, + "verifyEmailDesc": { + "message": "Подтвердите адрес email своего аккаунта, чтобы открыть доступ ко всем возможностям." + }, + "verifyEmailFirst": { + "message": "Сначала необходимо подтвердить адрес email вашего аккаунта." + }, + "checkInboxForVerification": { + "message": "Проверьте почту - вам должна прийти ссылка подтверждения." + }, + "emailVerified": { + "message": "Ваш адрес email подтвержден." + }, + "emailVerifiedFailed": { + "message": "Не удалось подтвердить ваш email. Попробуйте отправить новое письмо с подтверждением." + }, + "emailVerificationRequired": { + "message": "Требуется подтверждение электронной почты" + }, + "emailVerificationRequiredDesc": { + "message": "Для использования этой функции необходимо подтвердить свою электронную почту." + }, + "updateBrowser": { + "message": "Обновить браузер" + }, + "updateBrowserDesc": { + "message": "Вы используете неподдерживаемый браузер. Веб-хранилище может работать некорректно." + }, + "joinOrganization": { + "message": "Присоединиться к организации" + }, + "joinOrganizationDesc": { + "message": "Вас пригласили присоединиться к организации, указанной выше. Чтобы принять приглашение, вам необходимо войти или создать новую учетную запись Bitwarden." + }, + "inviteAccepted": { + "message": "Приглашение принято" + }, + "inviteAcceptedDesc": { + "message": "Вы получите доступ к этой организации, как только администратор подтвердит ваше членство. Когда это произойдет, мы отправим вам email." + }, + "inviteAcceptFailed": { + "message": "Не удается принять приглашение. Попросите администратора организации выслать новое." + }, + "inviteAcceptFailedShort": { + "message": "Невозможно принять приглашение. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Запомнить email" + }, + "recoverAccountTwoStepDesc": { + "message": "Если у вас нет доступа к своему аккаунту с помощью двухфакторной аутентификации, для ее отключения вы можете использовать свой код восстановления." + }, + "recoverAccountTwoStep": { + "message": "Восстановить двухфакторную аутентификацию аккаунта" + }, + "twoStepRecoverDisabled": { + "message": "Двухфакторная аутентификация для вашего аккаунта отключена." + }, + "learnMore": { + "message": "Подробнее" + }, + "deleteRecoverDesc": { + "message": "Введите свой адрес email, чтобы восстановить и удалить ваш аккаунт." + }, + "deleteRecoverEmailSent": { + "message": "Если ваш аккаунт существует, мы отправим вам письмо с дальнейшими инструкциями." + }, + "deleteRecoverConfirmDesc": { + "message": "Вы запросили удаление вашего аккаунта Bitwarden. Нажмите кнопку ниже, чтобы подтвердить." + }, + "myOrganization": { + "message": "Моя организация" + }, + "deleteOrganization": { + "message": "Удалить организацию" + }, + "deletingOrganizationContentWarning": { + "message": "Введите мастер-пароль для подтверждения удаления $ORGANIZATION$ и всех связанных с ней данных. Данные хранилища в $ORGANIZATION$ включают:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Учетные записи пользователей останутся активными после удаления, но больше не будут связаны с этой организацией." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Удаление $ORGANIZATION$ окончательно и необратимо.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Организация удалена" + }, + "organizationDeletedDesc": { + "message": "Организация и все связанные с ней данные были удалены." + }, + "organizationUpdated": { + "message": "Организация обновлена" + }, + "taxInformation": { + "message": "Информация о налогах" + }, + "taxInformationDesc": { + "message": "Для клиентов из США почтовый индекс необходим для выполнения требований по уплате налога с продаж, для других стран вы можете по желанию предоставить идентификационный номер налогоплательщика (VAT/GST) и/или адрес, который будет указан в ваших счетах." + }, + "billingPlan": { + "message": "План", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Изменить план", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Обновите свой аккаунт до другого плана, предоставив информацию ниже. Пожалуйста, убедитесь, что в вашем аккаунте есть активный способ оплаты.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Счет #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Просмотр счета" + }, + "downloadInvoice": { + "message": "Загрузить счет" + }, + "verifyBankAccount": { + "message": "Подтвердить банковский счет" + }, + "verifyBankAccountDesc": { + "message": "Мы сделали два микродепозита на ваш счет (отобразиться в выписке они могут в течение 1-2 рабочих дней). Введите эти суммы для подтверждения счета." + }, + "verifyBankAccountInitialDesc": { + "message": "Оплата с банковского счета доступна только клиентам из США. Вам будет необходимо подтвердить свой банковский счет. Мы сделаем два микро-депозита в течение ближайших 1-2 рабочих дней. Введите эти суммы на странице выставления счетов организации, чтобы подтвердить банковский счет." + }, + "verifyBankAccountFailureWarning": { + "message": "Невыполнение подтверждения банковского счета приведет к неудачной оплате и отключению подписки." + }, + "verifiedBankAccount": { + "message": "Банковский счет был подтвержден." + }, + "bankAccount": { + "message": "Банковский счет" + }, + "amountX": { + "message": "Сумма $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Номер маршрута", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Номер счета" + }, + "accountHolderName": { + "message": "Имя владельца счета" + }, + "bankAccountType": { + "message": "Тип счета" + }, + "bankAccountTypeCompany": { + "message": "Компания (бизнес)" + }, + "bankAccountTypeIndividual": { + "message": "Индивидуальный (личный)" + }, + "enterInstallationId": { + "message": "Введите идентификатор установки" + }, + "limitSubscriptionDesc": { + "message": "Установите лимит мест для вашей подписки. По достижении этого лимита вы не сможете приглашать новых пользователей." + }, + "maxSeatLimit": { + "message": "Максимальный предел мест (необязательно)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Максимальная потенциальная стоимость места" + }, + "addSeats": { + "message": "Добавить лицензии", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Удалить лицензии", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Корректировка вашей подписки приведет к пропорциональному изменению суммарного счета. Если количество новых приглашенных пользователей превысит количество мест в вашей подписке, вы сразу же получите пропорциональную плату за дополнительных пользователей." + }, + "subscriptionUserSeats": { + "message": "Ваша подписка разрешает в общей сложности $COUNT$ пользователей.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Ограничить подписку (необязательно)" + }, + "subscriptionSeats": { + "message": "Места для подписки" + }, + "subscriptionUpdated": { + "message": "Подписка обновлена" + }, + "additionalOptions": { + "message": "Дополнительные настройки" + }, + "additionalOptionsDesc": { + "message": "За дополнительной помощью в управлении подпиской обращайтесь в службу поддержки клиентов." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Корректировка вашей подписки приведет к пропорциональному изменению суммарного счета. Если количество новых приглашенных пользователей превысит количество мест в вашей подписке, вы сразу же получите пропорциональную плату за дополнительных пользователей." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Корректировка вашей подписки приведет к пропорциональному изменению суммарного счета. Если количество новых приглашенных пользователей превысит количество мест в вашей подписке, вы сразу же получите пропорциональную плату за дополнительных пользователей, пока не будет достигнут лимит мест $MAX$.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Вы не можете пригласить более $COUNT$ пользователей без обновления вашего плана.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Вы не можете пригласить более $COUNT$ пользователей без обновления вашего плана. Для обновления обратитесь в службу поддержки клиентов.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Ваша подписка разрешена в общей сложности для $COUNT$ пользователей. Ваш план спонсируется и оплачивается внешней организацией.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Изменения в вашей подписке приведут к пропорциональным изменениям в сумме счетов. Без увеличения числа мест подписки количество приглашаемых пользователей - не более $COUNT$.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Лицензии для добавления" + }, + "seatsToRemove": { + "message": "Лицензии для удаления" + }, + "seatsAddNote": { + "message": "Добавление пользовательских лицензий приведет к корректировке итоговых счетов и немедленному взиманию платы с вашего метода оплаты. Первый платеж будет пропорционален оставшейся части текущего платежного периода." + }, + "seatsRemoveNote": { + "message": "Удаление пользовательских лицензий приведет к корректировке ваших итоговых счетов. Излишне уплаченные средства будут пропорционально перенесены на ваш следующий платежный период." + }, + "adjustedSeats": { + "message": "Скорректировано $AMOUNT$ пользовательских лицензий.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Ключ обновлен" + }, + "updateKeyTitle": { + "message": "Обновить ключ" + }, + "updateEncryptionKey": { + "message": "Обновить ключ шифрования" + }, + "updateEncryptionKeyShortDesc": { + "message": "В настоящее время вы используете устаревшую схему шифрования." + }, + "updateEncryptionKeyDesc": { + "message": "Мы перешли на более сложные ключи шифрования, которые обеспечивают лучшую безопасность и доступ к новым возможностям. Обновление ключа шифрования происходит быстро и легко. Просто введите свой мастер-пароль ниже. Это обновление в конечном итоге станет обязательным." + }, + "updateEncryptionKeyWarning": { + "message": "После обновления ключа шифрования необходимо выполнить выход во всех приложениях Bitwarden, которые вы используете (например, мобильное приложение или расширение браузера). Невыполнение этого требования может привести к повреждению данных (так как при этом загружается ваш новый ключ шифрования). Мы попытаемся автоматически осуществить завершение ваших сессий, однако это может произойти с задержкой." + }, + "updateEncryptionKeyExportWarning": { + "message": "Любые зашифрованные экспортированные данные, которые вы сохранили, также станут недействительными." + }, + "subscription": { + "message": "Подписка" + }, + "loading": { + "message": "Загрузка" + }, + "upgrade": { + "message": "Обновить" + }, + "upgradeOrganization": { + "message": "Обновить организацию" + }, + "upgradeOrganizationDesc": { + "message": "Эта функция недоступна для бесплатных организаций. Переключитесь на платный план, чтобы разблокировать дополнительные возможности." + }, + "createOrganizationStep1": { + "message": "Создание организации: Шаг 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Прежде чем создавать свою организацию, сначала необходимо создать бесплатную персональную учетную запись." + }, + "refunded": { + "message": "Возвращено" + }, + "nothingSelected": { + "message": "Вы ничего не выбрали." + }, + "acceptPolicies": { + "message": "Отметив этот флажок, вы соглашаетесь со следующим:" + }, + "acceptPoliciesError": { + "message": "Условия предоставления услуг и Политика конфиденциальности не были подтверждены." + }, + "termsOfService": { + "message": "Условия использования" + }, + "privacyPolicy": { + "message": "Политика конфиденциальности" + }, + "filters": { + "message": "Фильтры" + }, + "vaultTimeout": { + "message": "Тайм-аут хранилища" + }, + "vaultTimeoutDesc": { + "message": "Выберите тайм-аут для хранилища и действие, которое необходимо предпринять." + }, + "oneMinute": { + "message": "1 минута" + }, + "fiveMinutes": { + "message": "5 минут" + }, + "fifteenMinutes": { + "message": "15 минут" + }, + "thirtyMinutes": { + "message": "30 минут" + }, + "oneHour": { + "message": "1 час" + }, + "fourHours": { + "message": "4 часа" + }, + "onRefresh": { + "message": "При обновлении браузера" + }, + "dateUpdated": { + "message": "Обновлено", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Пароль обновлен", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Организация отключена." + }, + "licenseIsExpired": { + "message": "Срок действия лицензии истек." + }, + "updatedUsers": { + "message": "Пользователи обновлены" + }, + "selected": { + "message": "Выбрано" + }, + "ownership": { + "message": "Владелец" + }, + "whoOwnsThisItem": { + "message": "Кому принадлежит этот элемент?" + }, + "strong": { + "message": "Сильный", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Хороший", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Слабый", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Очень слабый", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Слабый мастер-пароль" + }, + "weakMasterPasswordDesc": { + "message": "Вы выбрали слабый мастер-пароль. Для надежной защиты аккаунта Bitwarden следует использовать сильный мастер-пароль (или парольную фразу). Вы действительно хотите использовать этот мастер-пароль?" + }, + "rotateAccountEncKey": { + "message": "Также изменить ключ шифрования моего аккаунта" + }, + "rotateEncKeyTitle": { + "message": "Изменить ключ шифрования" + }, + "rotateEncKeyConfirmation": { + "message": "Вы уверены, что хотите изменить ключ шифрования вашей учетной записи?" + }, + "attachmentsNeedFix": { + "message": "К этому элементу прикреплены старые вложения, которые необходимо исправить." + }, + "attachmentFixDesc": { + "message": "Это старое вложение необходимо исправить. Нажмите, чтобы узнать больше." + }, + "fix": { + "message": "Исправить", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "В вашем хранилище есть старые вложения файлов, которые необходимо исправить, прежде чем вы сможете изменить ключ шифрования вашего аккаунта." + }, + "yourAccountsFingerprint": { + "message": "Фраза отпечатка вашего аккаунта", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Чтобы обеспечить целостность ваших ключей шифрования, перед продолжением верифицируйте фразу отпечатка пользователя.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Никогда не запрашивать верификацию фразы отпечатка для приглашенных пользователей (не рекомендуется)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Бесплатно", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "Ключ API" + }, + "apiKeyDesc": { + "message": "Ваш ключ API может быть использован для аутентификации в публичном API Bitwarden." + }, + "apiKeyRotateDesc": { + "message": "Изменение ключа API приведет к аннулированию предыдущего ключа. Вы можете изменить свой ключ API, если считаете, что текущий ключ больше не безопасен для использования." + }, + "apiKeyWarning": { + "message": "Ваш ключ API имеет полный доступ к организации. Это должно храниться в секрете." + }, + "userApiKeyDesc": { + "message": "Ваш ключ API может быть использован для аутентификации в Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Ваш ключ API является альтернативным механизмом аутентификации. Он должен храниться в секрете." + }, + "oauth2ClientCredentials": { + "message": "Учетные данные клиента OAuth 2.0", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Показать ключ API" + }, + "rotateApiKey": { + "message": "Изменить ключ API" + }, + "selectOneCollection": { + "message": "Необходимо выбрать хотя бы одну коллекцию." + }, + "couldNotChargeCardPayInvoice": { + "message": "Мы не смогли списать деньги с вашей карты. Пожалуйста, просмотрите и оплатите неоплаченный счет, указанный ниже." + }, + "inAppPurchase": { + "message": "Покупка в приложении" + }, + "cannotPerformInAppPurchase": { + "message": "Вы не можете выполнить это действие при использовании оплаты из приложения." + }, + "manageSubscriptionFromStore": { + "message": "Вы должны управлять своей подпиской в том ​​магазине, в котором была совершена покупка в приложении." + }, + "minLength": { + "message": "Минимальная длина" + }, + "clone": { + "message": "Клонировать" + }, + "masterPassPolicyDesc": { + "message": "Установите минимальные требования к надежности мастер-пароля." + }, + "twoStepLoginPolicyDesc": { + "message": "Требовать от пользователей настройки двухэтапной авторизации в их персональных учетных записях." + }, + "twoStepLoginPolicyWarning": { + "message": "Члены организации, у которых в личном аккаунте отключена двухфакторная аутентификация, будут удалены из организации и получат об этом уведомление по email." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Вы участник организации, которая требует, чтобы в вашем аккаунте была включена двухфакторная аутентификация. Если вы отключите всех провайдеров двухфакторной аутентификации, то будете автоматически удалены из этих организаций." + }, + "passwordGeneratorPolicyDesc": { + "message": "Установите минимальные требования к конфигурации генератора паролей." + }, + "passwordGeneratorPolicyInEffect": { + "message": "На настройки генератора влияют одна или несколько политик организации." + }, + "masterPasswordPolicyInEffect": { + "message": "Согласно одной или нескольким политикам организации необходимо, чтобы ваш мастер-пароль отвечал следующим требованиям:" + }, + "policyInEffectMinComplexity": { + "message": "Минимальный уровень сложности $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Минимальная длина $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Содержать хотя бы одну заглавную букву" + }, + "policyInEffectLowercase": { + "message": "Содержать хотя бы одну строчную букву" + }, + "policyInEffectNumbers": { + "message": "Содержать хотя бы одну цифру" + }, + "policyInEffectSpecial": { + "message": "Содержать хотя бы один из следующих специальных символов $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Ваш новый мастер-пароль не соответствует требованиям политики." + }, + "minimumNumberOfWords": { + "message": "Минимальное количество слов" + }, + "defaultType": { + "message": "Тип по умолчанию" + }, + "userPreference": { + "message": "Предпочтения пользователя" + }, + "vaultTimeoutAction": { + "message": "Действие по тайм-ауту хранилища" + }, + "vaultTimeoutActionLockDesc": { + "message": "Заблокированное хранилище потребует повторного ввода мастер-пароля для получения доступа к нему." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Выход из хранилища потребует повторную аутентификацию для получения доступа к нему." + }, + "lock": { + "message": "Заблокировать", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Корзина", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Поиск в корзине" + }, + "permanentlyDelete": { + "message": "Удалить окончательно" + }, + "permanentlyDeleteSelected": { + "message": "Окончательно удалить выбранные" + }, + "permanentlyDeleteItem": { + "message": "Окончательно удалить элемент" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Вы уверены, что хотите окончательно удалить этот элемент?" + }, + "permanentlyDeletedItem": { + "message": "Элемент удален навсегда" + }, + "permanentlyDeletedItems": { + "message": "Элементы удалены навсегда" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Выбрано элементов для удаления: $COUNT$. Вы действительно хотите окончательно удалить все эти элементы?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Элемент $ID$ удален навсегда.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Восстановить" + }, + "restoreSelected": { + "message": "Восстановить выбранные" + }, + "restoreItem": { + "message": "Восстановить элемент" + }, + "restoredItem": { + "message": "Элемент восстановлен" + }, + "restoredItems": { + "message": "Элементы восстановлены" + }, + "restoreItemConfirmation": { + "message": "Вы уверены, что хотите восстановить этот элемент?" + }, + "restoreItems": { + "message": "Восстановить элементы" + }, + "restoreSelectedItemsDesc": { + "message": "Выбрано элементов для восстановления: $COUNT$. Вы действительно хотите восстановить все эти элементы?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Элемент $ID$ восстановлен.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "По истечении тайм-аута будет выполнен выход, что приведет к отмене всех прав доступа к вашему хранилищу и потребует онлайн-аутентификации. Вы уверены, что хотите использовать этот параметр?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Подтверждение действия по тайм-ауту" + }, + "hidePasswords": { + "message": "Скрывать пароли" + }, + "countryPostalCodeRequiredDesc": { + "message": "Эта информация требуется только для расчета налога с продаж и финансовой отчетности." + }, + "includeVAT": { + "message": "Включить информацию о VAT/GST (необязательно)" + }, + "taxIdNumber": { + "message": "ID VAT/GST" + }, + "taxInfoUpdated": { + "message": "Информация о налогах обновлена." + }, + "setMasterPassword": { + "message": "Задать мастер-пароль" + }, + "ssoCompleteRegistration": { + "message": "Для завершения процесса авторизации при помощи SSO, установите мастер-пароль для доступа к вашему хранилищу и его защиты." + }, + "identifier": { + "message": "Идентификатор" + }, + "organizationIdentifier": { + "message": "Идентификатор организации" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Авторизуйтесь при помощи единого корпоративного портала. Чтобы начать, введите идентификатор вашей организации." + }, + "enterpriseSingleSignOn": { + "message": "Единая корпоративная авторизация (SSO)" + }, + "ssoHandOff": { + "message": "Теперь вы можете закрыть эту вкладку и продолжить в расширении." + }, + "includeAllTeamsFeatures": { + "message": "Все функции команд, плюс:" + }, + "includeSsoAuthentication": { + "message": "SSO аутентификация через SAML2.0 и OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Политик организации" + }, + "ssoValidationFailed": { + "message": "Проверка SSO не пройдена" + }, + "ssoIdentifierRequired": { + "message": "Требуется идентификатор организации." + }, + "unlinkSso": { + "message": "Отключить SSO" + }, + "unlinkSsoConfirmation": { + "message": "Вы действительно хотите отключить SSO для этой организации?" + }, + "linkSso": { + "message": "Подключить SSO" + }, + "singleOrg": { + "message": "Одна организация" + }, + "singleOrgDesc": { + "message": "Запретить пользователям присоединяться к другим организациям." + }, + "singleOrgBlockCreateMessage": { + "message": "Политика вашей текущей организации не позволяет вам присоединиться к более чем одной организации. Пожалуйста, свяжитесь с администраторами вашей организации или авторизуйтесь под другим аккаунтом Bitwarden." + }, + "singleOrgPolicyWarning": { + "message": "Члены организации, которые не являются владельцами или администраторами и уже входят в другую организацию, будут удалены из вашей организации." + }, + "requireSso": { + "message": "Авторизация через единый вход (SSO)" + }, + "requireSsoPolicyDesc": { + "message": "Требовать от пользователей авторизацию с помощью единого корпоративного входа." + }, + "prerequisite": { + "message": "Обязательное условие" + }, + "requireSsoPolicyReq": { + "message": "Перед активацией этой политики необходимо активировать корпоративную политику 'Одна организация'." + }, + "requireSsoPolicyReqError": { + "message": "Не включена политика 'Одна организация'." + }, + "requireSsoExemption": { + "message": "Владельцы и администраторы организации не подпадают под действие этой политики." + }, + "sendTypeFile": { + "message": "Файл" + }, + "sendTypeText": { + "message": "Текст" + }, + "createSend": { + "message": "Создать новую Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Изменить Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Созданная Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Измененная Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Удаленная Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Удалить Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Вы действительно хотите удалить эту Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Выберите тип Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Срок удаления" + }, + "deletionDateDesc": { + "message": "Эта Send будет окончательно удалена в указанные дату и время.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Срок истечения" + }, + "expirationDateDesc": { + "message": "Если задано, доступ к этой Send истечет в указанные дату и время.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Максимум обращений" + }, + "maxAccessCountDesc": { + "message": "Если задано, пользователи больше не смогут получить доступ к этой Send, как только будет достигнуто максимальное количество обращений.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Текущих обращений" + }, + "sendPasswordDesc": { + "message": "По возможности запрашивать у пользователей пароль для доступа к этой Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Личные заметки об этой Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Отключено" + }, + "sendLink": { + "message": "Ссылка на Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Скопировать ссылку на Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Удалить пароль" + }, + "removedPassword": { + "message": "Пароль удален" + }, + "removePasswordConfirmation": { + "message": "Вы уверены, что хотите удалить пароль?" + }, + "hideEmail": { + "message": "Скрыть мой адрес email от получателей." + }, + "disableThisSend": { + "message": "Отключить эту Send, чтобы никто не мог получить к ней доступ.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Все Send’ы" + }, + "maxAccessCountReached": { + "message": "Достигнут максимум обращений", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Ожидание удаления" + }, + "expired": { + "message": "Срок истек" + }, + "searchSends": { + "message": "Поиск Send’ов", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Эта Send защищена паролем. Введите пароль ниже, чтобы продолжить.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Не знаете пароль? Для доступа к этой Send, запросите его у отправителя.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Эта Send по умолчанию скрыта. Вы можете переключить ее видимость с помощью расположенной ниже кнопки.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Скачать файл" + }, + "sendAccessUnavailable": { + "message": "Send, к которой вы пытаетесь получить доступ, больше не существует или недоступна.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Не удалось найти файл, связанный с этой Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "В списке нет Send’ов.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Экстренный доступ" + }, + "emergencyAccessDesc": { + "message": "Предоставляйте экстренный доступ доверенным контактам и управляйте им. Доверенные контакты могут получить доступ для просмотра или передачи владения вашей учетной записью в экстренных ситуациях. Посетите нашу страницу помощи для детального ознакомления о том, как работает доступ нулевого уровня." + }, + "emergencyAccessOwnerWarning": { + "message": "Вы являетесь владельцем одной или нескольких организаций. Если передать владение контакту для экстренных ситуаций, он будет наделен всеми полномочиями в качестве полноправного владельца." + }, + "trustedEmergencyContacts": { + "message": "Надежные контакты для экстренных ситуаций" + }, + "noTrustedContacts": { + "message": "Вы еще не добавили контакты для экстренных ситуаций. Пригласите доверенный контакт, чтобы начать." + }, + "addEmergencyContact": { + "message": "Добавить контакт для экстренной ситуации" + }, + "designatedEmergencyContacts": { + "message": "Назначен в качестве контакта для экстренной ситуации" + }, + "noGrantedAccess": { + "message": "Вы пока никому не назначены в качестве контакта на случай экстренной ситуации." + }, + "inviteEmergencyContact": { + "message": "Пригласить контакт для экстренной ситуации" + }, + "editEmergencyContact": { + "message": "Редактировать контакт для экстренной ситуации" + }, + "inviteEmergencyContactDesc": { + "message": "Пригласите новый контакт для экстренной ситуации, введя адрес email его учетной записи Bitwarden ниже. Если у него пока нет учетной записи Bitwarden, то будет предложено ее создать." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Инициирован экстренный доступ" + }, + "emergencyAccessRecoveryApproved": { + "message": "Экстренный доступ разрешен" + }, + "viewDesc": { + "message": "Может просматривать все элементы в вашем собственном хранилище." + }, + "takeover": { + "message": "Передача владения" + }, + "takeoverDesc": { + "message": "Вы можете сбросить свой аккаунт с помощью нового мастер-пароля." + }, + "waitTime": { + "message": "Время ожидания" + }, + "waitTimeDesc": { + "message": "Время, необходимое для автоматического предоставления доступа." + }, + "oneDay": { + "message": "1 день" + }, + "days": { + "message": "$DAYS$ дн.", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Приглашенный пользователь." + }, + "acceptEmergencyAccess": { + "message": "Вы были приглашены в качестве контакта на случай экстренной ситуации для пользователя, указанного выше. Чтобы принять приглашение, необходимо авторизоваться или создать новый аккаунт Bitwarden." + }, + "emergencyInviteAcceptFailed": { + "message": "Не удается принять приглашение. Попросите пользователя выслать новое." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Невозможно принять приглашение. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Вы можете получить доступ к опциям экстренной ситуации для этого пользователя после подтверждения вашей личности. Когда это произойдет, мы отправим вам электронное письмо." + }, + "requestAccess": { + "message": "Запрос доступа" + }, + "requestAccessConfirmation": { + "message": "Вы уверены, что хотите запросить экстренный доступ? Вам будет предоставлен доступ через $WAITTIME$ дн. или когда пользователь вручную одобрит запрос.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Запрошен экстренный доступ для $USER$. Мы уведомим вас по электронной почте, когда можно будет продолжить.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Принять" + }, + "reject": { + "message": "Отклонить" + }, + "approveAccessConfirmation": { + "message": "Вы уверены, что хотите разрешить экстренный доступ? Это позволит $USER$ перейти к $ACTION$ вашего аккаунта.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Экстренный доступ разрешен." + }, + "emergencyRejected": { + "message": "В экстренном доступе отказано" + }, + "passwordResetFor": { + "message": "Сброшен пароль для $USER$. Теперь вы можете войти, используя новый пароль.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Личное владение" + }, + "personalOwnershipPolicyDesc": { + "message": "Требовать от пользователей сохранения элементов хранилища в организации, удалив опцию личного владения." + }, + "personalOwnershipExemption": { + "message": "Владельцы и администраторы организации не подпадают под действие этой политики." + }, + "personalOwnershipSubmitError": { + "message": "В соответствии с корпоративной политикой вам запрещено сохранять элементы в личном хранилище. Измените владельца на организацию и выберите из доступных Коллекций." + }, + "disableSend": { + "message": "Отключить Send" + }, + "disableSendPolicyDesc": { + "message": "Не разрешать пользователям создавать или редактировать Bitwarden Send. Удаление существующей Send по-прежнему разрешено.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Политики не распространяются на пользователей организации, которые могут ими управлять." + }, + "sendDisabled": { + "message": "Send отключена", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "В соответствии с корпоративной политикой вы можете удалить только существующую Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Настройки Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Установка параметров создания и редактирования Send.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Политики не распространяются на пользователей организации, которые могут ими управлять." + }, + "disableHideEmail": { + "message": "Запретить пользователям скрывать свой адрес email от получателей при создании или редактировании Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "На данный момент действуют следующие политики организации:" + }, + "sendDisableHideEmailInEffect": { + "message": "Пользователям не разрешается скрывать свой адрес email от получателей при создании или редактировании Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Изменена политика $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Стоимость плана" + }, + "estimatedTax": { + "message": "Предполагаемый налог" + }, + "custom": { + "message": "Пользовательский" + }, + "customDesc": { + "message": "Позволяет более гибко контролировать права пользователей для расширенных конфигураций." + }, + "permissions": { + "message": "Разрешения" + }, + "accessEventLogs": { + "message": "Доступ к журналам событий" + }, + "accessImportExport": { + "message": "Доступ к импорту/экспорту" + }, + "accessReports": { + "message": "Доступ к отчетам" + }, + "missingPermissions": { + "message": "У вас нет необходимых разрешений для выполнения этого действия." + }, + "manageAllCollections": { + "message": "Управлять всеми коллекциями" + }, + "createNewCollections": { + "message": "Создать новые коллекции" + }, + "editAnyCollection": { + "message": "Редактировать любую коллекцию" + }, + "deleteAnyCollection": { + "message": "Удалить любую коллекцию" + }, + "manageAssignedCollections": { + "message": "Управление назначенными коллекциями" + }, + "editAssignedCollections": { + "message": "Изменить назначенные коллекции" + }, + "deleteAssignedCollections": { + "message": "Удалить назначенные коллекции" + }, + "manageGroups": { + "message": "Управление группами" + }, + "managePolicies": { + "message": "Управление политиками" + }, + "manageSso": { + "message": "Управление SSO" + }, + "manageUsers": { + "message": "Управление пользователями" + }, + "manageResetPassword": { + "message": "Управление сбросом пароля" + }, + "disableRequiredError": { + "message": "Перед отключением этой политики необходимо сначала отключить политику $POLICYNAME$.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Политика организации влияет на ваши варианты владения." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "Импорт элементов в ваше личное хранилище отключен политикой организации." + }, + "personalOwnershipCheckboxDesc": { + "message": "Отключить личное владение для пользователей организации" + }, + "textHiddenByDefault": { + "message": "При доступе к Send скрывать текст по умолчанию", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Понятное имя для описания этой Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Текст, который вы хотите отправить." + }, + "sendFileDesc": { + "message": "Файл, который вы хотите отправить." + }, + "copySendLinkOnSave": { + "message": "Скопировать ссылку в буфер обмена после сохранения, чтобы поделиться этой Send." + }, + "sendLinkLabel": { + "message": "Ссылка на Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send передает конфиденциальную, временную информацию другим легко и безопасно.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Узнать больше о", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Делитесь текстом или файлами напрямую с кем угодно." + }, + "sendVaultCardLearnMore": { + "message": "Узнайте больше", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "посмотрите", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "как это работает", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "или", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "попробуйте прямо сейчас", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "или", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "зарегистрируйтесь", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "чтобы попробовать уже сегодня.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Пользователь Bitwarden $USER_IDENTIFIER$ поделился с вами следующим", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Пользователь Bitwarden, создавший эту Send, решил скрыть свой адрес email. Вы должны убедиться, что доверяете источнику этой ссылки, прежде чем использовать или скачивать ее содержимое.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Срок истечения указан некорректно." + }, + "deletionDateIsInvalid": { + "message": "Срок удаления указан некорректно." + }, + "expirationDateAndTimeRequired": { + "message": "Необходимо указать дату и время срока истечения." + }, + "deletionDateAndTimeRequired": { + "message": "Необходимо указать дату и время срока удаления." + }, + "dateParsingError": { + "message": "Произошла ошибка при сохранении данных о сроках удаления и истечения." + }, + "webAuthnFallbackMsg": { + "message": "Для подтверждения 2ФА нажмите кнопку ниже." + }, + "webAuthnAuthenticate": { + "message": "Аутентификация WebAutn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn не поддерживается в этом браузере." + }, + "webAuthnSuccess": { + "message": "WebAuthn успешно прошел верификацию!
Вы можете закрыть эту вкладку." + }, + "hintEqualsPassword": { + "message": "Подсказка для пароля не может совпадать с паролем." + }, + "enrollPasswordReset": { + "message": "Записаться на сброс пароля" + }, + "enrolledPasswordReset": { + "message": "Запрос на сброс пароля зарегистрирован" + }, + "withdrawPasswordReset": { + "message": "Отписаться от сброса пароля" + }, + "enrollPasswordResetSuccess": { + "message": "Регистрация успешна!" + }, + "withdrawPasswordResetSuccess": { + "message": "Запись успешно отменена!" + }, + "eventEnrollPasswordReset": { + "message": "Пользователь $ID$ записался на помощь по сбросу пароля.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Пользователь $ID$ отказался от помощи по сбросу пароля.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Мастер-пароль сброшен для пользователя $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Сбросить SSO-ссылку для пользователя $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ впервые выполнил вход используя SSO", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Сбросить пароль" + }, + "resetPasswordLoggedOutWarning": { + "message": "В случае продолжения сессия $NAME$ будет завершена, что потребует повторной авторизации. Сессии на других устройствах могут оставаться активными до одного часа.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "этот пользователь" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Согласно одной или нескольким политикам организации необходимо, чтобы мастер-пароль отвечал следующим требованиям:" + }, + "resetPasswordSuccess": { + "message": "Пароль успешно сброшен!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Регистрация позволит администраторам организации изменять мастер-пароль. Вы действительно хотите зарегистрироваться?" + }, + "resetPasswordPolicy": { + "message": "Сброс мастер-пароля" + }, + "resetPasswordPolicyDescription": { + "message": "Разрешить администраторам организации сбрасывать мастер-пароль пользователей организации." + }, + "resetPasswordPolicyWarning": { + "message": "Пользователи организации должны зарегистрироваться самостоятельно или быть зарегистрированными автоматически, чтобы администраторы могли сбросить их мастер-пароль." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Автоматическая регистрация" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Все пользователи будут автоматически записаны на сброс пароля, после того как их приглашение будет принято, и им не будет разрешено отказаться от его выполнения." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Пользователи, уже входящие в организацию, не смогут записаться на сброс пароля задним числом. Они должны будут зарегистрироваться самостоятельно, прежде чем администраторы смогут сбросить их мастер-пароль." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Автоматически записывать новых пользователей" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "В этой организации действует корпоративная политика, которая автоматически зарегистрирует вас на сброс пароля. Регистрация позволит администраторам организации изменить ваш мастер-пароль." + }, + "resetPasswordOrgKeysError": { + "message": "Ответ на ключи организации пустой" + }, + "resetPasswordDetailsError": { + "message": "Ответ на сброс пароля пустой" + }, + "trashCleanupWarning": { + "message": "Элементы, которые находились в корзине более 30 дней, будут автоматически удалены." + }, + "trashCleanupWarningSelfHosted": { + "message": "Элементы, которые находились в корзине в течение некоторого времени, будут автоматически удалены." + }, + "passwordPrompt": { + "message": "Повторный запрос мастер-пароля" + }, + "passwordConfirmation": { + "message": "Подтверждение мастер-пароля" + }, + "passwordConfirmationDesc": { + "message": "Это действие защищено. Для продолжения введите свой мастер-пароль, чтобы подтвердить свою личность." + }, + "reinviteSelected": { + "message": "Отправить приглашения повторно" + }, + "noSelectedUsersApplicable": { + "message": "Это действие не применимо ни к одному из выбранных пользователей." + }, + "removeUsersWarning": { + "message": "Вы уверены, что хотите удалить следующих пользователей? Процесс может занять несколько секунд и не может быть прерван или отменен." + }, + "theme": { + "message": "Тема" + }, + "themeDesc": { + "message": "Выберите тему для своего веб-хранилища." + }, + "themeSystem": { + "message": "Использовать системную тему" + }, + "themeDark": { + "message": "Темная" + }, + "themeLight": { + "message": "Светлая" + }, + "confirmSelected": { + "message": "Подтвердить выбранное" + }, + "bulkConfirmStatus": { + "message": "Статус массового действия" + }, + "bulkConfirmMessage": { + "message": "Подтверждено успешно." + }, + "bulkReinviteMessage": { + "message": "Повторно приглашен успешно." + }, + "bulkRemovedMessage": { + "message": "Удален(-о) успешно" + }, + "bulkFilteredMessage": { + "message": "Исключено, не применимо для данного действия." + }, + "fingerprint": { + "message": "Отпечаток" + }, + "removeUsers": { + "message": "Удалить пользователей" + }, + "error": { + "message": "Ошибка" + }, + "resetPasswordManageUsers": { + "message": "Управление пользователями также должно быть включено с разрешением Управление сбросом пароля" + }, + "setupProvider": { + "message": "Настройка поставщика" + }, + "setupProviderLoginDesc": { + "message": "Вы приглашены для установки нового поставщика. Чтобы продолжить, войдите или создайте новый аккаунт Bitwarden." + }, + "setupProviderDesc": { + "message": "Введите подробную информацию ниже, чтобы завершить установку поставщика. Если у вас есть какие-либо вопросы, обратитесь в службу поддержки." + }, + "providerName": { + "message": "Название поставщика" + }, + "providerSetup": { + "message": "Поставщик настроен." + }, + "clients": { + "message": "Клиенты" + }, + "providerAdmin": { + "message": "Администратор поставщика" + }, + "providerAdminDesc": { + "message": "Пользователь с наивысшим уровнем доступа, который может управлять всеми аспектами деятельности вашего поставщика, а также доступом и управлением клиентскими организациями." + }, + "serviceUser": { + "message": "Пользователь сервиса" + }, + "serviceUserDesc": { + "message": "Пользователи сервиса могут получать доступ и управлять всеми клиентскими организациями." + }, + "providerInviteUserDesc": { + "message": "Пригласите нового пользователя в свою организацию, введя адрес email его учетной записи Bitwarden ниже. Если у него еще нет учетной записи, ему будет предложено ее создать." + }, + "joinProvider": { + "message": "Присоединиться к поставщику" + }, + "joinProviderDesc": { + "message": "Вас пригласили присоединиться к указанной выше организации. Чтобы принять приглашение, войдите или создайте новую учетную запись Bitwarden." + }, + "providerInviteAcceptFailed": { + "message": "Невозможно принять приглашение. Попросите администратора поставщика отправить новое приглашение." + }, + "providerInviteAcceptedDesc": { + "message": "Вы сможете получить доступ к этому поставщику, как только администратор подтвердит ваше членство. Мы отправим вам email, когда это произойдет." + }, + "providerUsersNeedConfirmed": { + "message": "У вас есть пользователи, которые приняли приглашение, но не были подтверждены. Пользователи не будут иметь доступа к поставщику, пока не получат подтверждение." + }, + "provider": { + "message": "Поставщик" + }, + "newClientOrganization": { + "message": "Организация нового клиента" + }, + "newClientOrganizationDesc": { + "message": "Создайте новую организацию клиента, которая будет связана с вами как с поставщиком услуг. Вы сможете получить доступ к этой организации и управлять ею." + }, + "addExistingOrganization": { + "message": "Добавить существующую организацию" + }, + "myProvider": { + "message": "Мой поставщик" + }, + "addOrganizationConfirmation": { + "message": "Вы уверены, что хотите добавить $ORGANIZATION$ в качестве клиента к $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Организация была успешно добавлена к поставщику" + }, + "accessingUsingProvider": { + "message": "Доступ к организации с используя поставщика $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Поставщик отключен." + }, + "providerUpdated": { + "message": "Поставщик обновлен" + }, + "yourProviderIs": { + "message": "Ваш поставщик услуг - $PROVIDER$. Он обладает административными и биллинговыми привилегиями для вашей организации.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "Организация $ORGANIZATION$ была отсоединена от вашего поставщика.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Вы уверены, что хотите отсоединить эту организацию? Организация продолжит существовать, но больше не будет управляться поставщиком." + }, + "add": { + "message": "Добавить" + }, + "updatedMasterPassword": { + "message": "Мастер-пароль обновлен" + }, + "updateMasterPassword": { + "message": "Обновить мастер-пароль" + }, + "updateMasterPasswordWarning": { + "message": "Мастер-пароль недавно был изменен администратором вашей организации. Чтобы получить доступ к хранилищу, вы должны обновить мастер-пароль сейчас. В результате текущая сессия будет завершена, потребуется повторный вход. Активные сессии на других устройствах могут оставаться активными в течение одного часа." + }, + "masterPasswordInvalidWarning": { + "message": "Мастер-пароль не соответствует требованиям политики этой организации. Чтобы присоединиться к организации, нужно обновить мастер-пароль. Текущая сессия будет завершена и потребуется повторный вход. Сессии на других устройствах могут оставаться активными в течение часа." + }, + "maximumVaultTimeout": { + "message": "Тайм-аут хранилища" + }, + "maximumVaultTimeoutDesc": { + "message": "Настроить максимальный тайм-аут хранилища для всех пользователей." + }, + "maximumVaultTimeoutLabel": { + "message": "Максимальный тайм-аут хранилища" + }, + "invalidMaximumVaultTimeout": { + "message": "Недопустимый максимальный тайм-аут хранилища." + }, + "hours": { + "message": "Час." + }, + "minutes": { + "message": "Мин." + }, + "vaultTimeoutPolicyInEffect": { + "message": "Политики вашей организации влияют на тайм-аут хранилища. Максимально допустимый тайм-аут хранилища составляет $HOURS$ час. и $MINUTES$ мин.", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Пользовательский тайм-аут хранилища" + }, + "vaultTimeoutToLarge": { + "message": "Тайм-аут вашего хранилища превышает ограничение, установленное вашей организацией." + }, + "disablePersonalVaultExport": { + "message": "Отключить экспорт личного хранилища" + }, + "disablePersonalVaultExportDesc": { + "message": "Запрещает пользователям экспортировать данные своего личного хранилища." + }, + "vaultExportDisabled": { + "message": "Экспорт хранилища отключен" + }, + "personalVaultExportPolicyInEffect": { + "message": "Экспорт вашего личного хранилища запрещен одной или несколькими политиками организации." + }, + "selectType": { + "message": "Выберите тип SSO" + }, + "type": { + "message": "Тип" + }, + "openIdConnectConfig": { + "message": "Конфигурация OpenID Connect" + }, + "samlSpConfig": { + "message": "Конфигурация поставщика услуг SAML" + }, + "samlIdpConfig": { + "message": "Конфигурация поставщика удостоверений SAML" + }, + "callbackPath": { + "message": "Резервный маршрут" + }, + "signedOutCallbackPath": { + "message": "Выход с резервного маршрута" + }, + "authority": { + "message": "Сервер авторизации" + }, + "clientId": { + "message": "ID клиента" + }, + "clientSecret": { + "message": "Секрет клиента" + }, + "metadataAddress": { + "message": "Адрес метаданных" + }, + "oidcRedirectBehavior": { + "message": "Поведение перенаправления OIDC" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Получать требования от конечной точки информации о пользователе" + }, + "additionalScopes": { + "message": "Пользовательские области" + }, + "additionalUserIdClaimTypes": { + "message": "Типы требований к ID пользователя" + }, + "additionalEmailClaimTypes": { + "message": "Типы требований email" + }, + "additionalNameClaimTypes": { + "message": "Типы требований к имени пользователя" + }, + "acrValues": { + "message": "Запрашиваемые значения класса ссылок на контекст аутентификации" + }, + "expectedReturnAcrValue": { + "message": "Ожидаемое значение \"acr\" Значение требования в ответе" + }, + "spEntityId": { + "message": "ID объекта SP" + }, + "spMetadataUrl": { + "message": "URL метаданных SAML 2.0" + }, + "spAcsUrl": { + "message": "URL службы подтверждения клиентов (ACS)" + }, + "spNameIdFormat": { + "message": "Формат ID названия" + }, + "spOutboundSigningAlgorithm": { + "message": "Алгоритм исходящей подписи" + }, + "spSigningBehavior": { + "message": "Поведение при подписании" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Алгоритм минимальной входящей подписи" + }, + "spWantAssertionsSigned": { + "message": "Ожидание подписанных подтверждений" + }, + "spValidateCertificates": { + "message": "Проверка сертификатов" + }, + "idpEntityId": { + "message": "ID субъекта" + }, + "idpBindingType": { + "message": "Тип привязки" + }, + "idpSingleSignOnServiceUrl": { + "message": "URL службы единого входа" + }, + "idpSingleLogoutServiceUrl": { + "message": "URL службы единого выхода" + }, + "idpX509PublicCert": { + "message": "Публичный сертификат X509" + }, + "idpOutboundSigningAlgorithm": { + "message": "Алгоритм исходящей подписи" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Разрешить нежелательный ответ на аутентификацию" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Разрешить исходящие запросы на завершение сеанса" + }, + "idpSignAuthenticationRequests": { + "message": "Подписать запросы аутентификации" + }, + "ssoSettingsSaved": { + "message": "Конфигурация единого входа сохранена." + }, + "sponsoredFamilies": { + "message": "Бесплатный план Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "Вам и вашей семье доступен бесплатный план Bitwarden Families. Используйте свой личный адрес электронной почты, чтобы защитить данные даже тогда, когда вы не на работе." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Воспользуйтесь бесплатным планом Bitwarden Families сегодня, чтобы обеспечить безопасность ваших данных, даже когда вы не на работе." + }, + "sponsoredFamiliesInclude": { + "message": "План Bitwarden Families включает" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Премиум-доступ для 6 пользователей" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Общие коллекции для семейных секретов" + }, + "badToken": { + "message": "Ссылка больше не действительна. Пожалуйста, попросите спонсора повторно отправить предложение." + }, + "reclaimedFreePlan": { + "message": "Бесплатный план восстановлен" + }, + "redeem": { + "message": "Активировать" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Выберите организацию, которую вы хотите спонсировать" + }, + "familiesSponsoringOrgSelect": { + "message": "Какое бесплатное предложение Bitwarden Families вы хотели бы использовать?" + }, + "sponsoredFamiliesEmail": { + "message": "Введите свой личный адрес электронной почты, чтобы активировать Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Если вы покинете или будете исключены из спонсорской организации, срок действия вашего плана Bitwarden Families истечет в конце расчетного периода." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Примите предложение существующей организации или создайте новую организацию Bitwarden Families." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Вам предложили бесплатный план Bitwarden Families. Чтобы продолжить, необходимо войти в учетную запись, которая получила предложение." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Не удается принять предложение. Пожалуйста, повторно отправьте письмо с предложением с вашего корпоративного аккаунта и повторите попытку." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Невозможно принять предложение. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Принять бесплатный план Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Бесплатный план Bitwarden Families успешно активирован" + }, + "redeemed": { + "message": "Активирован" + }, + "redeemedAccount": { + "message": "Активированный аккаунт" + }, + "revokeAccount": { + "message": "Отозвать аккаунт $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Повторно отправить письмо о спонсировании $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Бесплатный план Bitwarden Families" + }, + "redeemNow": { + "message": "Активировать сейчас" + }, + "recipient": { + "message": "Получатель" + }, + "removeSponsorship": { + "message": "Удалить спонсирование" + }, + "removeSponsorshipConfirmation": { + "message": "После удаления спонсорства вы будете нести ответственность за эту подписку и связанные с ней счета. Вы уверены что хотите продолжить?" + }, + "sponsorshipCreated": { + "message": "Спонсирование создано" + }, + "revoke": { + "message": "Отозвать" + }, + "emailSent": { + "message": "Письмо отправлено" + }, + "revokeSponsorshipConfirmation": { + "message": "После удаления этой учетной записи владелец организации Bitwarden Families будет нести ответственность за эту подписку и связанные счета. Вы уверены, что хотите продолжить?" + }, + "removeSponsorshipSuccess": { + "message": "Спонсорство удалено" + }, + "ssoKeyConnectorUnavailable": { + "message": "Не удается подключиться к соединителю ключей, повторите попытку позже." + }, + "keyConnectorUrl": { + "message": "URL соединителя ключей" + }, + "sendVerificationCode": { + "message": "Отправить код подтверждения на ваш email" + }, + "sendCode": { + "message": "Отправить код" + }, + "codeSent": { + "message": "Код отправлен" + }, + "verificationCode": { + "message": "Код подтверждения" + }, + "confirmIdentity": { + "message": "Подтвердите вашу личность, чтобы продолжить." + }, + "verificationCodeRequired": { + "message": "Необходимо ввести код подтверждения." + }, + "invalidVerificationCode": { + "message": "Неверный код подтверждения" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ использует SSO с собственным сервером ключей. Для авторизации членам этой организации больше не требуется мастер-пароль.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Покинуть организацию" + }, + "removeMasterPassword": { + "message": "Удалить мастер-пароль" + }, + "removedMasterPassword": { + "message": "Мастер-пароль удален." + }, + "allowSso": { + "message": "Разрешить аутентификацию SSO" + }, + "allowSsoDesc": { + "message": "После настройки ваша конфигурация будет сохранена, и пользователи смогут проходить аутентификацию, используя свои учетные данные Провайдера идентификации." + }, + "ssoPolicyHelpStart": { + "message": "Активировать", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "Политика аутентификации SSO", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "для обеспечения авторизации всех членов при помощи единого входа.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "Для настройки расшифровки соединителя ключей требуются политики проверки подлинности SSO и единой организации." + }, + "memberDecryptionOption": { + "message": "Параметры расшифровки членов" + }, + "memberDecryptionPassDesc": { + "message": "После аутентификации участники будут расшифровывать данные хранилища, используя свои мастер-пароли." + }, + "keyConnector": { + "message": "Соединитель ключей" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Подключите авторизацию посредством SSO к вашему собственному серверу расшифровки ключей. При использовании этой опции членам не нужно будет использовать свои мастер-пароли для расшифровки данных хранилища." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Авторизация посредством SSO и расшифровки соединителя ключей\" включена. Эта политика будет применяться только к владельцам и администраторам." + }, + "enabledSso": { + "message": "SSO включен" + }, + "disabledSso": { + "message": "SSO отключен" + }, + "enabledKeyConnector": { + "message": "Соединитель ключей включен" + }, + "disabledKeyConnector": { + "message": "Соединитель ключей отключен" + }, + "keyConnectorWarning": { + "message": "После настройки соединителя ключей параметры расшифровки членов не могут быть изменены." + }, + "migratedKeyConnector": { + "message": "Выполнена миграция на соединитель ключей" + }, + "paymentSponsored": { + "message": "Укажите способ оплаты для сопоставления с организацией. Не волнуйтесь, мы не будем ничего взимать с вас, если вы не выберете дополнительные функции или ваше спонсорское предложение не истечет. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "Срок действия спонсорского предложения истек. Вы можете удалить созданную вами организацию, чтобы избежать списания средств по истечении 7-дневного пробного периода. В противном случае вы можете закрыть эту подсказку, чтобы сохранить организацию и принять на себя платежные обязательства." + }, + "newFamiliesOrganization": { + "message": "Новая организация Bitwarden Families" + }, + "acceptOffer": { + "message": "Принять предложение" + }, + "sponsoringOrg": { + "message": "Спонсорская организация" + }, + "keyConnectorTest": { + "message": "Тест" + }, + "keyConnectorTestSuccess": { + "message": "Успешно! Соединитель ключей проверен." + }, + "keyConnectorTestFail": { + "message": "Не удается связаться с соединителем ключей. Проверьте URL." + }, + "sponsorshipTokenHasExpired": { + "message": "Срок действия спонсорского предложения истек." + }, + "freeWithSponsorship": { + "message": "БЕСПЛАТНО при спонсорской поддержке" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ полей выше требуют вашего внимания.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 поле выше требует вашего внимания." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ обязательно.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "обязательно" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Обязательно, если ID сущности не является URL." + }, + "openIdOptionalCustomizations": { + "message": "Дополнительные настройки" + }, + "openIdAuthorityRequired": { + "message": "Обязательно, если полномочия не действительны." + }, + "separateMultipleWithComma": { + "message": "Разделяйте запятыми." + }, + "sessionTimeout": { + "message": "Время вашей сессии истекло. Пожалуйста, вернитесь и попробуйте войти снова." + }, + "exportingPersonalVaultTitle": { + "message": "Экспорт личного хранилища" + }, + "exportingOrganizationVaultTitle": { + "message": "Экспорт хранилища организации" + }, + "exportingPersonalVaultDescription": { + "message": "Будут экспортированы только личные элементы хранилища, связанные с $EMAIL$. Элементы хранилища организации включены не будут.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Будет экспортировано только хранилище организации, связанное с $ORGANIZATION$. Личные элементы хранилища и элементы из других организаций включены не будут.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Вернуться к отчетам" + }, + "generator": { + "message": "Генератор" + }, + "whatWouldYouLikeToGenerate": { + "message": "Что вы хотите сгенерировать?" + }, + "passwordType": { + "message": "Тип пароля" + }, + "regenerateUsername": { + "message": "Пересоздать имя пользователя" + }, + "generateUsername": { + "message": "Создать имя пользователя" + }, + "usernameType": { + "message": "Тип имени пользователя" + }, + "plusAddressedEmail": { + "message": "Плюс-адресованные email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Использовать возможности суб-адресации вашего провайдера электронной почты." + }, + "catchallEmail": { + "message": "Catch-all-адрес электронной почты" + }, + "catchallEmailDesc": { + "message": "Использовать настроенную в вашем домене почту catch-all." + }, + "random": { + "message": "Случайно" + }, + "randomWord": { + "message": "Случайное слово" + }, + "service": { + "message": "Служба" + } +} diff --git a/apps/web/src/locales/si/messages.json b/apps/web/src/locales/si/messages.json new file mode 100644 index 0000000000..71100f067c --- /dev/null +++ b/apps/web/src/locales/si/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Web Vault", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "What type of item is this?" + }, + "name": { + "message": "නම" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "New URI" + }, + "username": { + "message": "පරිශීලක නාමය" + }, + "password": { + "message": "මුරපදය" + }, + "newPassword": { + "message": "නව මුරපදය" + }, + "passphrase": { + "message": "Passphrase" + }, + "notes": { + "message": "සටහන්" + }, + "customFields": { + "message": "Custom Fields" + }, + "cardholderName": { + "message": "Cardholder Name" + }, + "number": { + "message": "අංකය" + }, + "brand": { + "message": "Brand" + }, + "expiration": { + "message": "කල් ඉකත් වීම" + }, + "securityCode": { + "message": "Security Code (CVV)" + }, + "identityName": { + "message": "Identity Name" + }, + "company": { + "message": "සමාගම" + }, + "ssn": { + "message": "Social Security Number" + }, + "passportNumber": { + "message": "Passport Number" + }, + "licenseNumber": { + "message": "License Number" + }, + "email": { + "message": "වි-තැපෑල" + }, + "phone": { + "message": "දුරකථනය" + }, + "january": { + "message": "දුරුතු" + }, + "february": { + "message": "නවම්" + }, + "march": { + "message": "මැදින්" + }, + "april": { + "message": "බක්" + }, + "may": { + "message": "වෙසක්" + }, + "june": { + "message": "පොසොන්" + }, + "july": { + "message": "ඇසළ" + }, + "august": { + "message": "නිකිණි" + }, + "september": { + "message": "බිනර" + }, + "october": { + "message": "වප්" + }, + "november": { + "message": "ඉල්" + }, + "december": { + "message": "උඳුවප්" + }, + "title": { + "message": "මාතෘකාව" + }, + "mr": { + "message": "Mr" + }, + "mrs": { + "message": "Mrs" + }, + "ms": { + "message": "Ms" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Expiration Month" + }, + "expirationYear": { + "message": "Expiration Year" + }, + "authenticatorKeyTotp": { + "message": "Authenticator Key (TOTP)" + }, + "folder": { + "message": "බහාලුම" + }, + "newCustomField": { + "message": "New Custom Field" + }, + "value": { + "message": "අගය" + }, + "dragToSort": { + "message": "Drag to sort" + }, + "cfTypeText": { + "message": "Text" + }, + "cfTypeHidden": { + "message": "Hidden" + }, + "cfTypeBoolean": { + "message": "Boolean" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "ඉවත් කරන්න" + }, + "unassigned": { + "message": "Unassigned" + }, + "noneFolder": { + "message": "බහාලුමක් නැත", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "බහාලුම එකතු කරන්න" + }, + "editFolder": { + "message": "බහාලුම සංස්කරණය" + }, + "baseDomain": { + "message": "Base domain", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exact" + }, + "startsWith": { + "message": "Starts with" + }, + "regEx": { + "message": "Regular expression", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Match Detection", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Default match detection", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Never" + }, + "toggleVisibility": { + "message": "Toggle Visibility" + }, + "toggleCollapse": { + "message": "Toggle Collapse", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generate Password" + }, + "checkPassword": { + "message": "Check if password has been exposed." + }, + "passwordExposed": { + "message": "This password has been exposed $VALUE$ time(s) in data breaches. You should change it.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "This password was not found in any known data breaches. It should be safe to use." + }, + "save": { + "message": "සුරකින්න" + }, + "cancel": { + "message": "අවලංගු කරන්න" + }, + "canceled": { + "message": "Canceled" + }, + "close": { + "message": "වසන්න" + }, + "delete": { + "message": "Delete" + }, + "favorite": { + "message": "ප්‍රියතමය" + }, + "unfavorite": { + "message": "Unfavorite" + }, + "edit": { + "message": "සංස්කරණය" + }, + "searchCollection": { + "message": "Search Collection" + }, + "searchFolder": { + "message": "බහාලුම සොයන්න" + }, + "searchFavorites": { + "message": "Search Favorites" + }, + "searchType": { + "message": "Search Type", + "description": "Search item type" + }, + "searchVault": { + "message": "Search Vault" + }, + "allItems": { + "message": "All Items" + }, + "favorites": { + "message": "ප්‍රියතමයන්" + }, + "types": { + "message": "වර්ග" + }, + "typeLogin": { + "message": "පිවිසෙන්න" + }, + "typeCard": { + "message": "Card" + }, + "typeIdentity": { + "message": "අනන්‍යතාව" + }, + "typeSecureNote": { + "message": "Secure Note" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "බහාලුම්" + }, + "collections": { + "message": "Collections" + }, + "firstName": { + "message": "First Name" + }, + "middleName": { + "message": "Middle Name" + }, + "lastName": { + "message": "Last Name" + }, + "fullName": { + "message": "Full Name" + }, + "address1": { + "message": "ලිපිනය 1" + }, + "address2": { + "message": "ලිපිනය 2" + }, + "address3": { + "message": "ලිපිනය 3" + }, + "cityTown": { + "message": "City / Town" + }, + "stateProvince": { + "message": "State / Province" + }, + "zipPostalCode": { + "message": "Zip / Postal Code" + }, + "country": { + "message": "රට" + }, + "shared": { + "message": "Shared" + }, + "attachments": { + "message": "Attachments" + }, + "select": { + "message": "Select" + }, + "addItem": { + "message": "Add Item" + }, + "editItem": { + "message": "Edit Item" + }, + "viewItem": { + "message": "View Item" + }, + "ex": { + "message": "උදා.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "වෙනත්" + }, + "share": { + "message": "බෙදාගන්න" + }, + "moveToOrganization": { + "message": "Move to Organization" + }, + "valueCopied": { + "message": "$VALUE$ copied", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Copy Value", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Copy Password", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Copy Username", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Copy Number", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copy Security Code", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Copy URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "My Vault" + }, + "vault": { + "message": "Vault" + }, + "moveSelectedToOrg": { + "message": "Move Selected to Organization" + }, + "deleteSelected": { + "message": "Delete Selected" + }, + "moveSelected": { + "message": "Move Selected" + }, + "selectAll": { + "message": "Select All" + }, + "unselectAll": { + "message": "Unselect All" + }, + "launch": { + "message": "Launch" + }, + "newAttachment": { + "message": "Add New Attachment" + }, + "deletedAttachment": { + "message": "Deleted attachment" + }, + "deleteAttachmentConfirmation": { + "message": "Are you sure you want to delete this attachment?" + }, + "attachmentSaved": { + "message": "The attachment has been saved." + }, + "file": { + "message": "ගොනුව" + }, + "selectFile": { + "message": "Select a file." + }, + "maxFileSize": { + "message": "Maximum file size is 500 MB." + }, + "updateKey": { + "message": "You cannot use this feature until you update your encryption key." + }, + "addedItem": { + "message": "Added item" + }, + "editedItem": { + "message": "Edited item" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ moved to $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Selected items moved to $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Delete Item" + }, + "deleteFolder": { + "message": "Delete Folder" + }, + "deleteAttachment": { + "message": "Delete Attachment" + }, + "deleteItemConfirmation": { + "message": "Do you really want to send to the trash?" + }, + "deletedItem": { + "message": "Item sent to trash" + }, + "deletedItems": { + "message": "Items sent to trash" + }, + "movedItems": { + "message": "Moved items" + }, + "overwritePasswordConfirmation": { + "message": "Are you sure you want to overwrite the current password?" + }, + "editedFolder": { + "message": "Edited folder" + }, + "addedFolder": { + "message": "Added folder" + }, + "deleteFolderConfirmation": { + "message": "Are you sure you want to delete this folder?" + }, + "deletedFolder": { + "message": "Deleted folder" + }, + "loggedOut": { + "message": "Logged out" + }, + "loginExpired": { + "message": "Your login session has expired." + }, + "logOutConfirmation": { + "message": "Are you sure you want to log out?" + }, + "logOut": { + "message": "නික්මෙන්න" + }, + "ok": { + "message": "හරි" + }, + "yes": { + "message": "ඔව්" + }, + "no": { + "message": "නැහැ" + }, + "loginOrCreateNewAccount": { + "message": "Log in or create a new account to access your secure vault." + }, + "createAccount": { + "message": "ගිණුමක් සාදන්න" + }, + "logIn": { + "message": "පිවිසෙන්න" + }, + "submit": { + "message": "Submit" + }, + "emailAddressDesc": { + "message": "You'll use your email address to log in." + }, + "yourName": { + "message": "ඔබගේ නම" + }, + "yourNameDesc": { + "message": "What should we call you?" + }, + "masterPass": { + "message": "Master Password" + }, + "masterPassDesc": { + "message": "The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it." + }, + "masterPassHintDesc": { + "message": "A master password hint can help you remember your password if you forget it." + }, + "reTypeMasterPass": { + "message": "Re-type Master Password" + }, + "masterPassHint": { + "message": "Master Password Hint (optional)" + }, + "masterPassHintLabel": { + "message": "Master Password Hint" + }, + "settings": { + "message": "සැකසුම්" + }, + "passwordHint": { + "message": "Password Hint" + }, + "enterEmailToGetHint": { + "message": "Enter your account email address to receive your master password hint." + }, + "getMasterPasswordHint": { + "message": "Get master password hint" + }, + "emailRequired": { + "message": "Email address is required." + }, + "invalidEmail": { + "message": "Invalid email address." + }, + "masterPassRequired": { + "message": "Master password is required." + }, + "masterPassLength": { + "message": "Master password must be at least 8 characters long." + }, + "masterPassDoesntMatch": { + "message": "Master password confirmation does not match." + }, + "newAccountCreated": { + "message": "Your new account has been created! You may now log in." + }, + "masterPassSent": { + "message": "We've sent you an email with your master password hint." + }, + "unexpectedError": { + "message": "An unexpected error has occurred." + }, + "emailAddress": { + "message": "වි-තැපැල් ලිපිනය" + }, + "yourVaultIsLocked": { + "message": "Your vault is locked. Verify your master password to continue." + }, + "unlock": { + "message": "අනවහිර" + }, + "loggedInAsEmailOn": { + "message": "Logged in as $EMAIL$ on $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Invalid master password" + }, + "lockNow": { + "message": "දැන් අගුලුදමන්න" + }, + "noItemsInList": { + "message": "There are no items to list." + }, + "noCollectionsInList": { + "message": "There are no collections to list." + }, + "noGroupsInList": { + "message": "There are no groups to list." + }, + "noUsersInList": { + "message": "There are no users to list." + }, + "noEventsInList": { + "message": "There are no events to list." + }, + "newOrganization": { + "message": "නව සංවිධානය" + }, + "noOrganizationsList": { + "message": "You do not belong to any organizations. Organizations allow you to securely share items with other users." + }, + "versionNumber": { + "message": "Version $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Enter the 6 digit verification code from your authenticator app." + }, + "enterVerificationCodeEmail": { + "message": "Enter the 6 digit verification code that was emailed to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Verification email sent to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Remember me" + }, + "sendVerificationCodeEmailAgain": { + "message": "Send verification code email again" + }, + "useAnotherTwoStepMethod": { + "message": "Use another two-step login method" + }, + "insertYubiKey": { + "message": "Insert your YubiKey into your computer's USB port, then touch its button." + }, + "insertU2f": { + "message": "Insert your security key into your computer's USB port. If it has a button, touch it." + }, + "loginUnavailable": { + "message": "Login Unavailable" + }, + "noTwoStepProviders": { + "message": "This account has two-step login enabled, however, none of the configured two-step providers are supported by this web browser." + }, + "noTwoStepProviders2": { + "message": "Please use a supported web browser (such as Chrome) and/or add additional providers that are better supported across web browsers (such as an authenticator app)." + }, + "twoStepOptions": { + "message": "Two-step Login Options" + }, + "recoveryCodeDesc": { + "message": "Lost access to all of your two-factor providers? Use your recovery code to disable all two-factor providers from your account." + }, + "recoveryCodeTitle": { + "message": "ප්‍රතිසාධන කේතය" + }, + "authenticatorAppTitle": { + "message": "Authenticator App" + }, + "authenticatorAppDesc": { + "message": "Use an authenticator app (such as Authy or Google Authenticator) to generate time-based verification codes.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP Security Key" + }, + "yubiKeyDesc": { + "message": "Use a YubiKey to access your account. Works with YubiKey 4 series, 5 series, and NEO devices." + }, + "duoDesc": { + "message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verify with Duo Security for your organization using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Use any FIDO U2F enabled security key to access your account." + }, + "u2fTitle": { + "message": "FIDO U2F Security Key" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "වි-තැපෑල" + }, + "emailDesc": { + "message": "Verification codes will be emailed to you." + }, + "continue": { + "message": "ඉදිරියට" + }, + "organization": { + "message": "සංවිධානය" + }, + "organizations": { + "message": "සංවිධාන" + }, + "moveToOrgDesc": { + "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organization that you wish to move these items to. Moving to an organization transfers ownership of the items to that organization. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "Edit the collections that this item is being shared with. Only organization users with access to these collections will be able to see this item." + }, + "deleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to delete. Are you sure you want to delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Choose a folder that you would like to move the $COUNT$ selected item(s) to.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organization, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Verification Code (TOTP)" + }, + "copyVerificationCode": { + "message": "Copy Verification Code" + }, + "warning": { + "message": "අවවාදයයි" + }, + "confirmVaultExport": { + "message": "Confirm Vault Export" + }, + "exportWarningDesc": { + "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "Export Vault" + }, + "fileFormat": { + "message": "File Format" + }, + "exportSuccess": { + "message": "Your vault data has been exported." + }, + "passwordGenerator": { + "message": "Password Generator" + }, + "minComplexityScore": { + "message": "Minimum Complexity Score" + }, + "minNumbers": { + "message": "Minimum Numbers" + }, + "minSpecial": { + "message": "Minimum Special", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Avoid Ambiguous Characters" + }, + "regeneratePassword": { + "message": "Regenerate Password" + }, + "length": { + "message": "Length" + }, + "numWords": { + "message": "Number of Words" + }, + "wordSeparator": { + "message": "Word Separator" + }, + "capitalize": { + "message": "Capitalize", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Include Number" + }, + "passwordHistory": { + "message": "Password History" + }, + "noPasswordsInList": { + "message": "There are no passwords to list." + }, + "clear": { + "message": "Clear", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Account Updated" + }, + "changeEmail": { + "message": "Change Email" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "New Email" + }, + "code": { + "message": "Code" + }, + "changeEmailDesc": { + "message": "We have emailed a verification code to $EMAIL$. Please check your email for this code and enter it below to finalize the email address change.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "emailChanged": { + "message": "Email Changed" + }, + "logBackIn": { + "message": "Please log back in." + }, + "logBackInOthersToo": { + "message": "Please log back in. If you are using other Bitwarden applications log out and back in to those as well." + }, + "changeMasterPassword": { + "message": "Change Master Password" + }, + "masterPasswordChanged": { + "message": "Master Password Changed" + }, + "currentMasterPass": { + "message": "Current Master Password" + }, + "newMasterPass": { + "message": "New Master Password" + }, + "confirmNewMasterPass": { + "message": "Confirm New Master Password" + }, + "encKeySettings": { + "message": "Encryption Key Settings" + }, + "kdfAlgorithm": { + "message": "KDF Algorithm" + }, + "kdfIterations": { + "message": "KDF Iterations" + }, + "kdfIterationsDesc": { + "message": "Higher KDF iterations can help protect your master password from being brute forced by an attacker. We recommend a value of $VALUE$ or more.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Setting your KDF iterations too high could result in poor performance when logging into (and unlocking) Bitwarden on devices with slower CPUs. We recommend that you increase the value in increments of $INCREMENT$ and then test all of your devices.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Change KDF" + }, + "encKeySettingsChanged": { + "message": "Encryption Key Settings Changed" + }, + "dangerZone": { + "message": "Danger Zone" + }, + "dangerZoneDesc": { + "message": "Careful, these actions are not reversible!" + }, + "deauthorizeSessions": { + "message": "Deauthorize Sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Concerned your account is logged in on another device? Proceed below to deauthorize all computers or devices that you have previously used. This security step is recommended if you previously used a public computer or accidentally saved your password on a device that isn't yours. This step will also clear all previously remembered two-step login sessions." + }, + "deauthorizeSessionsWarning": { + "message": "Proceeding will also log you out of your current session, requiring you to log back in. You will also be prompted for two-step login again, if enabled. Active sessions on other devices may continue to remain active for up to one hour." + }, + "sessionsDeauthorized": { + "message": "All Sessions Deauthorized" + }, + "purgeVault": { + "message": "Purge Vault" + }, + "purgedOrganizationVault": { + "message": "Purged organization vault." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Proceed below to delete all items and folders in your vault. Items that belong to an organization that you share with will not be deleted." + }, + "purgeOrgVaultDesc": { + "message": "Proceed below to delete all items in the organization's vault." + }, + "purgeVaultWarning": { + "message": "Purging your vault is permanent. It cannot be undone." + }, + "vaultPurged": { + "message": "Your vault has been purged." + }, + "deleteAccount": { + "message": "Delete Account" + }, + "deleteAccountDesc": { + "message": "Proceed below to delete your account and all associated data." + }, + "deleteAccountWarning": { + "message": "Deleting your account is permanent. It cannot be undone." + }, + "accountDeleted": { + "message": "Account Deleted" + }, + "accountDeletedDesc": { + "message": "Your account has been closed and all associated data has been deleted." + }, + "myAccount": { + "message": "My Account" + }, + "tools": { + "message": "Tools" + }, + "importData": { + "message": "Import Data" + }, + "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." + }, + "importSuccess": { + "message": "Data has been successfully imported into your vault." + }, + "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." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "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)" + } + } + }, + "options": { + "message": "Options" + }, + "optionsDesc": { + "message": "Customize your web vault experience." + }, + "optionsUpdated": { + "message": "Options updated" + }, + "language": { + "message": "Language" + }, + "languageDesc": { + "message": "Change the language used by the web vault." + }, + "disableIcons": { + "message": "Disable Website Icons" + }, + "disableIconsDesc": { + "message": "Website Icons provide a recognizable image next to each login item in your vault." + }, + "enableGravatars": { + "message": "Enable Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use avatar images loaded from gravatar.com." + }, + "enableFullWidth": { + "message": "Enable Full Width Layout", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Allow the web vault to expand the full width of the browser window." + }, + "default": { + "message": "Default" + }, + "domainRules": { + "message": "Domain Rules" + }, + "domainRulesDesc": { + "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + }, + "globalEqDomains": { + "message": "Global Equivalent Domains" + }, + "customEqDomains": { + "message": "Custom Equivalent Domains" + }, + "exclude": { + "message": "Exclude" + }, + "include": { + "message": "Include" + }, + "customize": { + "message": "Customize" + }, + "newCustomDomain": { + "message": "New Custom Domain" + }, + "newCustomDomainDesc": { + "message": "Enter a list of domains separated by commas. Only \"base\" domains are allowed. Do not enter subdomains. For example, enter \"google.com\" instead of \"www.google.com\". You can also enter \"androidapp://package.name\" to associate an android app with other website domains." + }, + "customDomainX": { + "message": "Custom Domain $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domains updated" + }, + "twoStepLogin": { + "message": "Two-step Login" + }, + "twoStepLoginDesc": { + "message": "Secure your account by requiring an additional step when logging in." + }, + "twoStepLoginOrganizationDesc": { + "message": "Require two-step login for your organization's users by configuring providers at the organization level." + }, + "twoStepLoginRecoveryWarning": { + "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (ex. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + }, + "viewRecoveryCode": { + "message": "View Recovery Code" + }, + "providers": { + "message": "Providers", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Enable" + }, + "enabled": { + "message": "Enabled" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium Membership" + }, + "premiumRequired": { + "message": "Premium Required" + }, + "premiumRequiredDesc": { + "message": "A premium membership is required to use this feature." + }, + "youHavePremiumAccess": { + "message": "You have premium access" + }, + "alreadyPremiumFromOrg": { + "message": "You already have access to premium features because of an organization you are a member of." + }, + "manage": { + "message": "Manage" + }, + "disable": { + "message": "Disable" + }, + "twoStepLoginProviderEnabled": { + "message": "This two-step login provider is enabled on your account." + }, + "twoStepLoginAuthDesc": { + "message": "Enter your master password to modify two-step login settings." + }, + "twoStepAuthenticatorDesc": { + "message": "Follow these steps to set up two-step login with an authenticator app:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Download a two-step authenticator app" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Need a two-step authenticator app? Download one of the following" + }, + "iosDevices": { + "message": "iOS devices" + }, + "androidDevices": { + "message": "Android devices" + }, + "windowsDevices": { + "message": "Windows devices" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "These apps are recommended, however, other authenticator apps will also work." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scan this QR code with your authenticator app" + }, + "key": { + "message": "Key" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Enter the resulting 6 digit verification code from the app" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app." + }, + "twoStepDisableDesc": { + "message": "Are you sure you want to disable this two-step login provider?" + }, + "twoStepDisabled": { + "message": "Two-step login provider disabled." + }, + "twoFactorYubikeyAdd": { + "message": "Add a new YubiKey to your account" + }, + "twoFactorYubikeyPlugIn": { + "message": "Plug the YubiKey into your computer's USB port." + }, + "twoFactorYubikeySelectKey": { + "message": "Select the first empty YubiKey input field below." + }, + "twoFactorYubikeyTouchButton": { + "message": "Touch the YubiKey's button." + }, + "twoFactorYubikeySaveForm": { + "message": "Save the form." + }, + "twoFactorYubikeyWarning": { + "message": "Due to platform limitations, YubiKeys cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when YubiKeys cannot be used. Supported platforms:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile apps on a device with NFC capabilities or a data port that can accept your YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC Support" + }, + "twoFactorYubikeySupportsNfc": { + "message": "One of my keys supports NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "If one of your YubiKeys supports NFC (such as a YubiKey NEO), you will be prompted on mobile devices whenever NFC availability is detected." + }, + "yubikeysUpdated": { + "message": "YubiKeys updated" + }, + "disableAllKeys": { + "message": "Disable All Keys" + }, + "twoFactorDuoDesc": { + "message": "Enter the Bitwarden application information from your Duo Admin panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration Key" + }, + "twoFactorDuoSecretKey": { + "message": "Secret Key" + }, + "twoFactorDuoApiHostname": { + "message": "API Hostname" + }, + "twoFactorEmailDesc": { + "message": "Follow these steps to set up two-step login with email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enter the email that you wish to receive verification codes" + }, + "twoFactorEmailEnterCode": { + "message": "Enter the resulting 6 digit verification code from the email" + }, + "sendEmail": { + "message": "Send Email" + }, + "twoFactorU2fAdd": { + "message": "Add a FIDO U2F security key to your account" + }, + "removeU2fConfirmation": { + "message": "Are you sure you want to remove this security key?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Read Key" + }, + "keyCompromised": { + "message": "Key is compromised." + }, + "twoFactorU2fGiveName": { + "message": "Give the security key a friendly name to identify it." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Plug the security key into your computer's USB port and click the \"Read Key\" button." + }, + "twoFactorU2fTouchButton": { + "message": "If the security key has a button, touch it." + }, + "twoFactorU2fSaveForm": { + "message": "Save the form." + }, + "twoFactorU2fWarning": { + "message": "Due to platform limitations, FIDO U2F cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when FIDO U2F cannot be used. Supported platforms:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorU2fWaiting": { + "message": "Waiting for you to touch the button on your security key" + }, + "twoFactorU2fClickSave": { + "message": "Click the \"Save\" button below to enable this security key for two-step login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Your Bitwarden two-step login recovery code" + }, + "twoFactorRecoveryNoCode": { + "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + }, + "printCode": { + "message": "Print Code", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Reports" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Unsecure Websites" + }, + "unsecuredWebsitesReportDesc": { + "message": "URLs that start with http:// don’t use the best available encryption. Change the Login URIs for these accounts to https:// for safer browsing." + }, + "unsecuredWebsitesFound": { + "message": "Unsecured Websites Found" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Inactive Two-step Login" + }, + "inactive2faReportDesc": { + "message": "Two-step Login adds a layer of protection to your accounts. Turn on Two-Step Login using Bitwarden Authenticator for these accounts or use an alternative method." + }, + "inactive2faFound": { + "message": "Logins Without 2FA Found" + }, + "inactive2faFoundDesc": { + "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to 2fa.directory). To further protect these accounts, you should enable two-factor authentication.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No websites were found in your vault with a missing two-factor authentication configuration." + }, + "instructions": { + "message": "Instructions" + }, + "exposedPasswordsReport": { + "message": "Exposed Passwords" + }, + "exposedPasswordsReportDesc": { + "message": "Passwords exposed in a data breach are easy targets for attackers. Change these passwords to prevent potential break-ins." + }, + "exposedPasswordsFound": { + "message": "Exposed Passwords Found" + }, + "exposedPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No items in your vault have passwords that have been exposed in known data breaches." + }, + "checkExposedPasswords": { + "message": "Check Exposed Passwords" + }, + "exposedXTimes": { + "message": "Exposed $COUNT$ time(s)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Weak Passwords" + }, + "weakPasswordsReportDesc": { + "message": "Weak passwords can be easily guessed by attackers. Change these passwords to strong ones using the Password Generator." + }, + "weakPasswordsFound": { + "message": "Weak Passwords Found" + }, + "weakPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "No items in your vault have weak passwords." + }, + "reusedPasswordsReport": { + "message": "Reused Passwords" + }, + "reusedPasswordsReportDesc": { + "message": "Reusing passwords makes it easier for attackers to break into multiple accounts. Change these passwords so that each is unique." + }, + "reusedPasswordsFound": { + "message": "Reused Passwords Found" + }, + "reusedPasswordsFoundDesc": { + "message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "No logins in your vault have passwords that are being reused." + }, + "reusedXTimes": { + "message": "Reused $COUNT$ times", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Data Breach" + }, + "breachDesc": { + "message": "Breached accounts can expose your personal information. Secure breached accounts by enabling 2FA or creating a stronger password." + }, + "breachCheckUsernameEmail": { + "message": "Check any usernames or email addresses that you use." + }, + "checkBreaches": { + "message": "Check Breaches" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ was not found in any known data breaches.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Good News", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Breached Accounts Found" + }, + "compromisedData": { + "message": "Compromised data" + }, + "website": { + "message": "Website" + }, + "affectedUsers": { + "message": "Affected Users" + }, + "breachOccurred": { + "message": "Breach Occurred" + }, + "breachReported": { + "message": "Breach Reported" + }, + "reportError": { + "message": "An error occurred trying to load the report. Try again" + }, + "billing": { + "message": "Billing" + }, + "accountCredit": { + "message": "Account Credit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Account Balance", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Add Credit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Amount", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Added credit will appear on your account after the payment has been fully processed. Some payment methods are delayed and can take longer to process than others." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + }, + "goPremium": { + "message": "Go Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "You've upgraded to premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Upgrade your account to a premium membership and unlock some great additional features." + }, + "premiumSignUpStorage": { + "message": "1 GB encrypted storage for file attachments." + }, + "premiumSignUpTwoStep": { + "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + }, + "premiumSignUpTotp": { + "message": "TOTP verification code (2FA) generator for logins in your vault." + }, + "premiumSignUpSupport": { + "message": "Priority customer support." + }, + "premiumSignUpFuture": { + "message": "All future premium features. More coming soon!" + }, + "premiumPrice": { + "message": "All for just $PRICE$ /year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Addons" + }, + "premiumAccess": { + "message": "Premium Access" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organization for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Additional Storage (GB)" + }, + "additionalStorageGbDesc": { + "message": "# of additional GB" + }, + "additionalStorageIntervalDesc": { + "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Summary" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "year" + }, + "month": { + "message": "month" + }, + "monthAbbr": { + "message": "mo.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Your payment method will be charged immediately and then on a recurring basis each year. You may cancel at any time." + }, + "paymentCharged": { + "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Your plan comes with a free 7 day trial. Your payment method will not be charged until the trial has ended. You may cancel at any time." + }, + "paymentInformation": { + "message": "Payment Information" + }, + "billingInformation": { + "message": "Billing Information" + }, + "creditCard": { + "message": "Credit Card" + }, + "paypalClickSubmit": { + "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + }, + "cancelSubscription": { + "message": "Cancel Subscription" + }, + "subscriptionCanceled": { + "message": "The subscription has been canceled." + }, + "pendingCancellation": { + "message": "Pending Cancellation" + }, + "subscriptionPendingCanceled": { + "message": "The subscription has been marked for cancellation at the end of the current billing period." + }, + "reinstateSubscription": { + "message": "Reinstate Subscription" + }, + "reinstateConfirmation": { + "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + }, + "reinstated": { + "message": "The subscription has been reinstated." + }, + "cancelConfirmation": { + "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + }, + "canceledSubscription": { + "message": "The subscription has been canceled." + }, + "neverExpires": { + "message": "Never Expires" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Next Charge" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "Download License" + }, + "updateLicense": { + "message": "Update License" + }, + "updatedLicense": { + "message": "Updated license" + }, + "manageSubscription": { + "message": "Manage Subscription" + }, + "storage": { + "message": "Storage" + }, + "addStorage": { + "message": "Add Storage" + }, + "removeStorage": { + "message": "Remove Storage" + }, + "subscriptionStorage": { + "message": "Your subscription has a total of $MAX_STORAGE$ GB of encrypted file storage. You are currently using $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Payment Method" + }, + "noPaymentMethod": { + "message": "No payment method on file." + }, + "addPaymentMethod": { + "message": "Add Payment Method" + }, + "changePaymentMethod": { + "message": "Change Payment Method" + }, + "invoices": { + "message": "Invoices" + }, + "noInvoices": { + "message": "No invoices." + }, + "paid": { + "message": "Paid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Unpaid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transactions", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "No transactions." + }, + "chargeNoun": { + "message": "Charge", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Refund", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Any charges will appear on your statement as $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB of Storage To Add" + }, + "gbStorageRemove": { + "message": "GB of Storage To Remove" + }, + "storageAddNote": { + "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "storageRemoveNote": { + "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedStorage": { + "message": "Adjusted $AMOUNT$ GB of storage.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contact Customer Support" + }, + "updatedPaymentMethod": { + "message": "Updated payment method." + }, + "purchasePremium": { + "message": "Purchase Premium" + }, + "licenseFile": { + "message": "License File" + }, + "licenseFileDesc": { + "message": "Your license file will be named something like $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "To upgrade your account to a premium membership you need to upload a valid license file." + }, + "uploadLicenseFileOrg": { + "message": "To create an on-premises hosted organization you need to upload a valid license file." + }, + "accountEmailMustBeVerified": { + "message": "Your account's email address must be verified." + }, + "newOrganizationDesc": { + "message": "Organizations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company." + }, + "generalInformation": { + "message": "General Information" + }, + "organizationName": { + "message": "Organization Name" + }, + "accountOwnedBusiness": { + "message": "This account is owned by a business." + }, + "billingEmail": { + "message": "Billing Email" + }, + "businessName": { + "message": "Business Name" + }, + "chooseYourPlan": { + "message": "Choose Your Plan" + }, + "users": { + "message": "Users" + }, + "userSeats": { + "message": "User Seats" + }, + "additionalUserSeats": { + "message": "Additional User Seats" + }, + "userSeatsDesc": { + "message": "# of user seats" + }, + "userSeatsAdditionalDesc": { + "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "How many user seats do you need? You can also add additional seats later if needed." + }, + "planNameFree": { + "message": "Free", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing or personal users to share with $COUNT$ other user.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Families" + }, + "planDescFamilies": { + "message": "For personal use, to share with family & friends." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "For businesses and other team organizations." + }, + "planNameEnterprise": { + "message": "Enterprise" + }, + "planDescEnterprise": { + "message": "For businesses and other large organizations." + }, + "freeForever": { + "message": "Free Forever" + }, + "includesXUsers": { + "message": "includes $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Additional Users" + }, + "costPerUser": { + "message": "$COST$ per user", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limited to $COUNT$ users (including you)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limited to $COUNT$ collections", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Add and share with up to $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Add and share with unlimited users" + }, + "createUnlimitedCollections": { + "message": "Create unlimited Collections" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ encrypted file storage", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "On-premise hosting (optional)" + }, + "usersGetPremium": { + "message": "Users get access to Premium Features" + }, + "controlAccessWithGroups": { + "message": "Control user access with Groups" + }, + "syncUsersFromDirectory": { + "message": "Sync your users and Groups from a directory" + }, + "trackAuditLogs": { + "message": "Track user actions with audit logs" + }, + "enforce2faDuo": { + "message": "Enforce 2FA with Duo" + }, + "priorityCustomerSupport": { + "message": "Priority customer support" + }, + "xDayFreeTrial": { + "message": "$COUNT$ day free trial, cancel anytime", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Monthly" + }, + "annually": { + "message": "Annually" + }, + "basePrice": { + "message": "Base Price" + }, + "organizationCreated": { + "message": "Organization Created" + }, + "organizationReadyToGo": { + "message": "Your new organization is ready to go!" + }, + "organizationUpgraded": { + "message": "Your organization has been upgraded." + }, + "leave": { + "message": "Leave" + }, + "leaveOrganizationConfirmation": { + "message": "Are you sure you want to leave this organization?" + }, + "leftOrganization": { + "message": "You have left the organization." + }, + "defaultCollection": { + "message": "Default Collection" + }, + "getHelp": { + "message": "Get Help" + }, + "getApps": { + "message": "Get the Apps" + }, + "loggedInAs": { + "message": "Logged in as" + }, + "eventLogs": { + "message": "Event Logs" + }, + "people": { + "message": "People" + }, + "policies": { + "message": "Policies" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Edit Policy" + }, + "groups": { + "message": "Groups" + }, + "newGroup": { + "message": "New Group" + }, + "addGroup": { + "message": "Add Group" + }, + "editGroup": { + "message": "Edit Group" + }, + "deleteGroupConfirmation": { + "message": "Are you sure you want to delete this group?" + }, + "removeUserConfirmation": { + "message": "Are you sure you want to remove this user?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "External Id" + }, + "externalIdDesc": { + "message": "The external id can be used as a reference or to link this resource to an external system such as a user directory." + }, + "accessControl": { + "message": "Access Control" + }, + "groupAccessAllItems": { + "message": "This group can access and modify all items." + }, + "groupAccessSelectedCollections": { + "message": "This group can access only the selected collections." + }, + "readOnly": { + "message": "Read Only" + }, + "newCollection": { + "message": "New Collection" + }, + "addCollection": { + "message": "Add Collection" + }, + "editCollection": { + "message": "Edit Collection" + }, + "deleteCollectionConfirmation": { + "message": "Are you sure you want to delete this collection?" + }, + "editUser": { + "message": "Edit User" + }, + "inviteUser": { + "message": "Invite User" + }, + "inviteUserDesc": { + "message": "Invite a new user to your organization by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "inviteMultipleEmailDesc": { + "message": "You can invite up to $COUNT$ users at a time by comma separating a list of email addresses.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "This user is using two-step login to protect their account." + }, + "userAccessAllItems": { + "message": "This user can access and modify all items." + }, + "userAccessSelectedCollections": { + "message": "This user can access only the selected collections." + }, + "search": { + "message": "Search" + }, + "invited": { + "message": "Invited" + }, + "accepted": { + "message": "Accepted" + }, + "confirmed": { + "message": "Confirmed" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Owner" + }, + "ownerDesc": { + "message": "The highest access user that can manage all aspects of your organization." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admins can access and manage all items, collections and users in your organization." + }, + "user": { + "message": "User" + }, + "userDesc": { + "message": "A regular user with access to assigned collections in your organization." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managers can access and manage assigned collections in your organization." + }, + "all": { + "message": "All" + }, + "refresh": { + "message": "Refresh" + }, + "timestamp": { + "message": "Timestamp" + }, + "event": { + "message": "Event" + }, + "unknown": { + "message": "Unknown" + }, + "loadMore": { + "message": "Load More" + }, + "mobile": { + "message": "Mobile", + "description": "Mobile app" + }, + "extension": { + "message": "Extension", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Web Vault" + }, + "loggedIn": { + "message": "Logged in." + }, + "changedPassword": { + "message": "Changed account password." + }, + "enabledUpdated2fa": { + "message": "Enabled/updated two-step login." + }, + "disabled2fa": { + "message": "Disabled two-step login." + }, + "recovered2fa": { + "message": "Recovered account from two-step login." + }, + "failedLogin": { + "message": "Login attempt failed with incorrect password." + }, + "failedLogin2fa": { + "message": "Login attempt failed with incorrect two-step login." + }, + "exportedVault": { + "message": "Exported vault." + }, + "exportedOrganizationVault": { + "message": "Exported organization vault." + }, + "editedOrgSettings": { + "message": "Edited organization settings." + }, + "createdItemId": { + "message": "Created item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Edited item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Sent item $ID$ to trash.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Viewed item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Viewed password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Viewed hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Viewed security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Copied password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Copied hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Copied security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Auto-filled item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Created collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Edited collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Deleted collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Edited policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Created group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Edited group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Deleted group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Removed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Created attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Deleted attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Edited collections for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Invited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Confirmed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Edited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Edited groups for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Device" + }, + "view": { + "message": "View" + }, + "invalidDateRange": { + "message": "Invalid date range." + }, + "errorOccurred": { + "message": "An error has occurred." + }, + "userAccess": { + "message": "User Access" + }, + "userType": { + "message": "User Type" + }, + "groupAccess": { + "message": "Group Access" + }, + "groupAccessUserDesc": { + "message": "Edit the groups that this user belongs to." + }, + "invitedUsers": { + "message": "Invited user(s)." + }, + "resendInvitation": { + "message": "Resend Invitation" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ has been reinvited.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirm" + }, + "confirmUser": { + "message": "Confirm User" + }, + "hasBeenConfirmed": { + "message": "$USER$ has been confirmed.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirm Users" + }, + "usersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organization until they are confirmed." + }, + "startDate": { + "message": "Start Date" + }, + "endDate": { + "message": "End Date" + }, + "verifyEmail": { + "message": "Verify Email" + }, + "verifyEmailDesc": { + "message": "Verify your account's email address to unlock access to all features." + }, + "verifyEmailFirst": { + "message": "Your account's email address first must be verified." + }, + "checkInboxForVerification": { + "message": "Check your email inbox for a verification link." + }, + "emailVerified": { + "message": "Your email has been verified." + }, + "emailVerifiedFailed": { + "message": "Unable to verify your email. Try sending a new verification email." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "Update Browser" + }, + "updateBrowserDesc": { + "message": "You are using an unsupported web browser. The web vault may not function properly." + }, + "joinOrganization": { + "message": "Join Organization" + }, + "joinOrganizationDesc": { + "message": "You've been invited to join the organization listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "inviteAccepted": { + "message": "Invitation Accepted" + }, + "inviteAcceptedDesc": { + "message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens." + }, + "inviteAcceptFailed": { + "message": "Unable to accept invitation. Ask an organization admin to send a new invitation." + }, + "inviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Remember email" + }, + "recoverAccountTwoStepDesc": { + "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + }, + "recoverAccountTwoStep": { + "message": "Recover Account Two-Step Login" + }, + "twoStepRecoverDisabled": { + "message": "Two-step login has been disabled on your account." + }, + "learnMore": { + "message": "Learn more" + }, + "deleteRecoverDesc": { + "message": "Enter your email address below to recover and delete your account." + }, + "deleteRecoverEmailSent": { + "message": "If your account exists, we've sent you an email with further instructions." + }, + "deleteRecoverConfirmDesc": { + "message": "You have requested to delete your Bitwarden account. Click the button below to confirm." + }, + "myOrganization": { + "message": "My Organization" + }, + "deleteOrganization": { + "message": "Delete Organization" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organization Deleted" + }, + "organizationDeletedDesc": { + "message": "The organization and all associated data has been deleted." + }, + "organizationUpdated": { + "message": "Organization updated" + }, + "taxInformation": { + "message": "Tax Information" + }, + "taxInformationDesc": { + "message": "For customers within the US, ZIP code is required to satisfy sales tax requirements, for other countries you may optionally provide a tax identification number (VAT/GST) and/or address to appear on your invoices." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Upgrade Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade your account to another plan by providing the information below. Please ensure that you have an active payment method added to the account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Invoice #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "View Invoice" + }, + "downloadInvoice": { + "message": "Download Invoice" + }, + "verifyBankAccount": { + "message": "Verify Bank Account" + }, + "verifyBankAccountDesc": { + "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." + }, + "verifyBankAccountInitialDesc": { + "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organization's billing page to verify the bank account." + }, + "verifyBankAccountFailureWarning": { + "message": "Failure to verify the bank account will result in a missed payment and your subscription being disabled." + }, + "verifiedBankAccount": { + "message": "Bank account has been verified." + }, + "bankAccount": { + "message": "Bank Account" + }, + "amountX": { + "message": "Amount $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Account Number" + }, + "accountHolderName": { + "message": "Account Holder Name" + }, + "bankAccountType": { + "message": "Account Type" + }, + "bankAccountTypeCompany": { + "message": "Company (Business)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Personal)" + }, + "enterInstallationId": { + "message": "Enter your installation id" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Add Seats", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remove Seats", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Your subscription allows for a total of $COUNT$ users.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seats To Add" + }, + "seatsToRemove": { + "message": "Seats To Remove" + }, + "seatsAddNote": { + "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "seatsRemoveNote": { + "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedSeats": { + "message": "Adjusted $AMOUNT$ user seats.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Key Updated" + }, + "updateKeyTitle": { + "message": "Update Key" + }, + "updateEncryptionKey": { + "message": "Update Encryption Key" + }, + "updateEncryptionKeyShortDesc": { + "message": "You are currently using an outdated encryption scheme." + }, + "updateEncryptionKeyDesc": { + "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, however, it may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "Subscription" + }, + "loading": { + "message": "Loading" + }, + "upgrade": { + "message": "Upgrade" + }, + "upgradeOrganization": { + "message": "Upgrade Organization" + }, + "upgradeOrganizationDesc": { + "message": "This feature is not available for free organizations. Switch to a paid plan to unlock more features." + }, + "createOrganizationStep1": { + "message": "Create Organization: Step 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Before creating your organization, you first need to create a free personal account." + }, + "refunded": { + "message": "Refunded" + }, + "nothingSelected": { + "message": "You have not selected anything." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." + }, + "termsOfService": { + "message": "Terms of Service" + }, + "privacyPolicy": { + "message": "Privacy Policy" + }, + "filters": { + "message": "Filters" + }, + "vaultTimeout": { + "message": "Vault Timeout" + }, + "vaultTimeoutDesc": { + "message": "Choose when your vault will timeout and perform the selected action." + }, + "oneMinute": { + "message": "1 minute" + }, + "fiveMinutes": { + "message": "5 minutes" + }, + "fifteenMinutes": { + "message": "15 minutes" + }, + "thirtyMinutes": { + "message": "30 minutes" + }, + "oneHour": { + "message": "1 hour" + }, + "fourHours": { + "message": "4 hours" + }, + "onRefresh": { + "message": "On Browser Refresh" + }, + "dateUpdated": { + "message": "Updated", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Password Updated", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organization is disabled." + }, + "licenseIsExpired": { + "message": "License is expired." + }, + "updatedUsers": { + "message": "Updated users" + }, + "selected": { + "message": "Selected" + }, + "ownership": { + "message": "Ownership" + }, + "whoOwnsThisItem": { + "message": "Who owns this item?" + }, + "strong": { + "message": "Strong", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Good", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Weak", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Very Weak", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Weak Master Password" + }, + "weakMasterPasswordDesc": { + "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + }, + "rotateAccountEncKey": { + "message": "Also rotate my account's encryption key" + }, + "rotateEncKeyTitle": { + "message": "Rotate Encryption Key" + }, + "rotateEncKeyConfirmation": { + "message": "Are you sure you want to rotate your account's encryption key?" + }, + "attachmentsNeedFix": { + "message": "This item has old file attachments that need to be fixed." + }, + "attachmentFixDesc": { + "message": "This is an old file attachment the needs to be fixed. Click to learn more." + }, + "fix": { + "message": "Fix", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key." + }, + "yourAccountsFingerprint": { + "message": "Your account's fingerprint phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Never prompt to verify fingerprint phrases for invited users (Not recommended)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Free", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API Key" + }, + "apiKeyDesc": { + "message": "Your API key can be used to authenticate to the Bitwarden public API." + }, + "apiKeyRotateDesc": { + "message": "Rotating the API key will invalidate the previous key. You can rotate your API key if you believe that the current key is no longer safe to use." + }, + "apiKeyWarning": { + "message": "Your API key has full access to the organization. It should be kept secret." + }, + "userApiKeyDesc": { + "message": "Your API key can be used to authenticate in the Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 Client Credentials", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "View API Key" + }, + "rotateApiKey": { + "message": "Rotate API Key" + }, + "selectOneCollection": { + "message": "You must select at least one collection." + }, + "couldNotChargeCardPayInvoice": { + "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + }, + "inAppPurchase": { + "message": "In-app Purchase" + }, + "cannotPerformInAppPurchase": { + "message": "You cannot perform this action while using an in-app purchase payment method." + }, + "manageSubscriptionFromStore": { + "message": "You must manage your subscription from the store where your in-app purchase was made." + }, + "minLength": { + "message": "Minimum Length" + }, + "clone": { + "message": "Clone" + }, + "masterPassPolicyDesc": { + "message": "Set minimum requirements for master password strength." + }, + "twoStepLoginPolicyDesc": { + "message": "Require users to set up two-step login on their personal accounts." + }, + "twoStepLoginPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and do not have two-step login enabled for their personal account will be removed from the organization and will receive an email notifying them about the change." + }, + "twoStepLoginPolicyUserWarning": { + "message": "You are a member of an organization that requires two-step login to be enabled on your user account. If you disable all two-step login providers you will be automatically removed from these organizations." + }, + "passwordGeneratorPolicyDesc": { + "message": "Set minimum requirements for password generator configuration." + }, + "passwordGeneratorPolicyInEffect": { + "message": "One or more organization policies are affecting your generator settings." + }, + "masterPasswordPolicyInEffect": { + "message": "One or more organization policies require your master password to meet the following requirements:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum complexity score of $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum length of $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contain one or more uppercase characters" + }, + "policyInEffectLowercase": { + "message": "Contain one or more lowercase characters" + }, + "policyInEffectNumbers": { + "message": "Contain one or more numbers" + }, + "policyInEffectSpecial": { + "message": "Contain one or more of the following special characters $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Your new master password does not meet the policy requirements." + }, + "minimumNumberOfWords": { + "message": "Minimum Number of Words" + }, + "defaultType": { + "message": "Default Type" + }, + "userPreference": { + "message": "User Preference" + }, + "vaultTimeoutAction": { + "message": "Vault Timeout Action" + }, + "vaultTimeoutActionLockDesc": { + "message": "A locked vault requires that you re-enter your master password to access it again." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "A logged out vault requires that you re-authenticate to access it again." + }, + "lock": { + "message": "Lock", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Trash", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Search Trash" + }, + "permanentlyDelete": { + "message": "Permanently Delete" + }, + "permanentlyDeleteSelected": { + "message": "Permanently Delete Selected" + }, + "permanentlyDeleteItem": { + "message": "Permanently Delete Item" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Are you sure you want to permanently delete this item?" + }, + "permanentlyDeletedItem": { + "message": "Permanently Deleted item" + }, + "permanentlyDeletedItems": { + "message": "Permanently Deleted items" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Permanently Deleted item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restore" + }, + "restoreSelected": { + "message": "Restore Selected" + }, + "restoreItem": { + "message": "Restore Item" + }, + "restoredItem": { + "message": "Restored Item" + }, + "restoredItems": { + "message": "Restored Items" + }, + "restoreItemConfirmation": { + "message": "Are you sure you want to restore this item?" + }, + "restoreItems": { + "message": "Restore items" + }, + "restoreSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Restored item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout Action Confirmation" + }, + "hidePasswords": { + "message": "Hide Passwords" + }, + "countryPostalCodeRequiredDesc": { + "message": "We require this information for calculating sales tax and financial reporting only." + }, + "includeVAT": { + "message": "Include VAT/GST Information (optional)" + }, + "taxIdNumber": { + "message": "VAT/GST Tax ID" + }, + "taxInfoUpdated": { + "message": "Tax information updated." + }, + "setMasterPassword": { + "message": "Set Master Password" + }, + "ssoCompleteRegistration": { + "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + }, + "identifier": { + "message": "Identifier" + }, + "organizationIdentifier": { + "message": "Organization Identifier" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Log in using your organization's single sign-on portal. Please enter your organization's identifier to begin." + }, + "enterpriseSingleSignOn": { + "message": "Enterprise Single Sign-On" + }, + "ssoHandOff": { + "message": "You may now close this tab and continue in the extension." + }, + "includeAllTeamsFeatures": { + "message": "All Teams features, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO Authentication via SAML2.0 and OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Enterprise Policies" + }, + "ssoValidationFailed": { + "message": "SSO Validation Failed" + }, + "ssoIdentifierRequired": { + "message": "Organization Identifier is required." + }, + "unlinkSso": { + "message": "Unlink SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Link SSO" + }, + "singleOrg": { + "message": "Single Organization" + }, + "singleOrgDesc": { + "message": "Restrict users from being able to join any other organizations." + }, + "singleOrgBlockCreateMessage": { + "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + }, + "singleOrgPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + }, + "requireSso": { + "message": "Single Sign-On Authentication" + }, + "requireSsoPolicyDesc": { + "message": "Require users to log in with the Enterprise Single Sign-On method." + }, + "prerequisite": { + "message": "Prerequisite" + }, + "requireSsoPolicyReq": { + "message": "The Single Organization enterprise policy must be enabled before activating this policy." + }, + "requireSsoPolicyReqError": { + "message": "Single Organization policy not enabled." + }, + "requireSsoExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "sendTypeFile": { + "message": "File" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Create New Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edit Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Created Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Edited Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Deleted Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Delete Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Are you sure you want to delete this Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "What type of Send is this?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Deletion Date" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Expiration Date" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximum Access Count" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Current Access Count" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Disabled" + }, + "sendLink": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copy Send Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remove Password" + }, + "removedPassword": { + "message": "Removed Password" + }, + "removePasswordConfirmation": { + "message": "Are you sure you want to remove the password?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "All Sends" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "expired": { + "message": "Expired" + }, + "searchSends": { + "message": "Search Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "This Send is protected with a password. Please type the password below to continue.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Download File" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "There are no Sends to list.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Emergency Access" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Request Access" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approve" + }, + "reject": { + "message": "Reject" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Disable Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "Estimated tax" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Manage All Collections" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Manage Groups" + }, + "managePolicies": { + "message": "Manage Policies" + }, + "manageSso": { + "message": "Manage SSO" + }, + "manageUsers": { + "message": "Manage Users" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organization users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Learn more about", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Learn more", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "try it now", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "sign up", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "to try it today.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organization policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organization administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/sk/messages.json b/apps/web/src/locales/sk/messages.json new file mode 100644 index 0000000000..43e77edbad --- /dev/null +++ b/apps/web/src/locales/sk/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ webový trezor", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Aký typ položky to je?" + }, + "name": { + "message": "Meno" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Nové URI" + }, + "username": { + "message": "Používateľské meno" + }, + "password": { + "message": "Heslo" + }, + "newPassword": { + "message": "Nové heslo" + }, + "passphrase": { + "message": "Prístupová fráza" + }, + "notes": { + "message": "Poznámky" + }, + "customFields": { + "message": "Vlastné polia" + }, + "cardholderName": { + "message": "Meno vlastníka karty" + }, + "number": { + "message": "Číslo" + }, + "brand": { + "message": "Značka" + }, + "expiration": { + "message": "Exspirácia" + }, + "securityCode": { + "message": "Bezpečnostný kód (CVV)" + }, + "identityName": { + "message": "Názov identity" + }, + "company": { + "message": "Spoločnosť" + }, + "ssn": { + "message": "Číslo poistenca sociálnej poisťovne" + }, + "passportNumber": { + "message": "Číslo pasu" + }, + "licenseNumber": { + "message": "Číslo vodičského preukazu" + }, + "email": { + "message": "Email" + }, + "phone": { + "message": "Telefón" + }, + "january": { + "message": "Január" + }, + "february": { + "message": "Február" + }, + "march": { + "message": "Marec" + }, + "april": { + "message": "Apríl" + }, + "may": { + "message": "Máj" + }, + "june": { + "message": "Jún" + }, + "july": { + "message": "Júl" + }, + "august": { + "message": "August" + }, + "september": { + "message": "September" + }, + "october": { + "message": "Október" + }, + "november": { + "message": "November" + }, + "december": { + "message": "December" + }, + "title": { + "message": "Oslovenie" + }, + "mr": { + "message": "Pán" + }, + "mrs": { + "message": "Pani" + }, + "ms": { + "message": "Slečna" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Mesiac exspirácie" + }, + "expirationYear": { + "message": "Rok exspirácie" + }, + "authenticatorKeyTotp": { + "message": "Kľúč overovateľa (TOTP)" + }, + "folder": { + "message": "Priečinok" + }, + "newCustomField": { + "message": "Nové vlastné pole" + }, + "value": { + "message": "Hodnota" + }, + "dragToSort": { + "message": "Zoradiť presúvaním" + }, + "cfTypeText": { + "message": "Text" + }, + "cfTypeHidden": { + "message": "Skryté" + }, + "cfTypeBoolean": { + "message": "Áno/Nie" + }, + "cfTypeLinked": { + "message": "Prepojené", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Odstrániť" + }, + "unassigned": { + "message": "Nepriradené" + }, + "noneFolder": { + "message": "Žiadny priečinok", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Pridať priečinok" + }, + "editFolder": { + "message": "Upraviť priečinok" + }, + "baseDomain": { + "message": "Základná doména", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Názov domény", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Hostiteľ", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Presný" + }, + "startsWith": { + "message": "Začína na" + }, + "regEx": { + "message": "Regulárny výraz", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Spôsob mapovania", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Predvolené mapovanie", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Nikdy" + }, + "toggleVisibility": { + "message": "Prepnúť viditeľnosť" + }, + "toggleCollapse": { + "message": "Prepnúť zloženie", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generovať heslo" + }, + "checkPassword": { + "message": "Overiť či došlo k úniku hesla." + }, + "passwordExposed": { + "message": "Toto heslo uniklo $VALUE$ krát v dátových únikoch. Mali by ste ho zmeniť.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Heslo nebolo nájdene v žiadnom úniku dát. Malo by byť bezpečné." + }, + "save": { + "message": "Uložiť" + }, + "cancel": { + "message": "Zrušiť" + }, + "canceled": { + "message": "Zrušené" + }, + "close": { + "message": "Zavrieť" + }, + "delete": { + "message": "Odstrániť" + }, + "favorite": { + "message": "Obľúbené" + }, + "unfavorite": { + "message": "Odstrániť z obľúbených" + }, + "edit": { + "message": "Upraviť" + }, + "searchCollection": { + "message": "Hľadať v zbierke" + }, + "searchFolder": { + "message": "Prehľadávať priečinok" + }, + "searchFavorites": { + "message": "Hľadať v obľúbených" + }, + "searchType": { + "message": "Typ vyhľadávania", + "description": "Search item type" + }, + "searchVault": { + "message": "Prehľadávať trezor" + }, + "allItems": { + "message": "Všetky položky" + }, + "favorites": { + "message": "Obľúbené" + }, + "types": { + "message": "Typy" + }, + "typeLogin": { + "message": "Prihlásenie" + }, + "typeCard": { + "message": "Karta" + }, + "typeIdentity": { + "message": "Identita" + }, + "typeSecureNote": { + "message": "Zabezpečená poznámka" + }, + "typeLoginPlural": { + "message": "Prihlásenia" + }, + "typeCardPlural": { + "message": "Karty" + }, + "typeIdentityPlural": { + "message": "Identity" + }, + "typeSecureNotePlural": { + "message": "Zabezpečené poznámky" + }, + "folders": { + "message": "Priečinky" + }, + "collections": { + "message": "Zbierky" + }, + "firstName": { + "message": "Krstné meno" + }, + "middleName": { + "message": "Druhé meno" + }, + "lastName": { + "message": "Priezvisko" + }, + "fullName": { + "message": "Celé meno" + }, + "address1": { + "message": "Adresa 1" + }, + "address2": { + "message": "Adresa 2" + }, + "address3": { + "message": "Adresa 3" + }, + "cityTown": { + "message": "Mesto" + }, + "stateProvince": { + "message": "Región" + }, + "zipPostalCode": { + "message": "PSČ" + }, + "country": { + "message": "Krajina" + }, + "shared": { + "message": "Zdieľané" + }, + "attachments": { + "message": "Prílohy" + }, + "select": { + "message": "Vybrať" + }, + "addItem": { + "message": "Pridať položku" + }, + "editItem": { + "message": "Upraviť položku" + }, + "viewItem": { + "message": "Zobraziť položku" + }, + "ex": { + "message": "napr.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Ostatné" + }, + "share": { + "message": "Zdieľať" + }, + "moveToOrganization": { + "message": "Presunúť do organizácie" + }, + "valueCopied": { + "message": "$VALUE$ skopírované", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Kopírovať hodnotu", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Kopírovať heslo", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Kopírovať používateľské meno", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Kopírovať číslo", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Kopírovať bezpečnostný kód", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Kopírovať URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Môj trezor" + }, + "vault": { + "message": "Trezor" + }, + "moveSelectedToOrg": { + "message": "Presunúť vybraté do organizácie" + }, + "deleteSelected": { + "message": "Odstrániť vybrané" + }, + "moveSelected": { + "message": "Presunúť vybraté" + }, + "selectAll": { + "message": "Vybrať Všetko" + }, + "unselectAll": { + "message": "Zrušiť výber" + }, + "launch": { + "message": "Spustiť" + }, + "newAttachment": { + "message": "Pridať novú prílohu" + }, + "deletedAttachment": { + "message": "Príloha odstránená" + }, + "deleteAttachmentConfirmation": { + "message": "Naozaj chcete odstrániť prílohu?" + }, + "attachmentSaved": { + "message": "Príloha bola uložená." + }, + "file": { + "message": "Súbor" + }, + "selectFile": { + "message": "Vybrať súbor." + }, + "maxFileSize": { + "message": "Maximálna veľkosť súboru je 500 MB." + }, + "updateKey": { + "message": "Túto funkciu nemožno použiť, kým neaktualizujete svoj šifrovací kľúč." + }, + "addedItem": { + "message": "Položka pridaná" + }, + "editedItem": { + "message": "Položka upravená" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ presunuté do $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Vybraté položky boli presunuté do $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Odstrániť položku" + }, + "deleteFolder": { + "message": "Odstrániť priečinok" + }, + "deleteAttachment": { + "message": "Odstrániť prílohu" + }, + "deleteItemConfirmation": { + "message": "Naozaj chcete odstrániť túto položku?" + }, + "deletedItem": { + "message": "Položka odstránená" + }, + "deletedItems": { + "message": "Položky odstránené" + }, + "movedItems": { + "message": "Položky presunuté" + }, + "overwritePasswordConfirmation": { + "message": "Naozaj chcete prepísať aktuálne heslo?" + }, + "editedFolder": { + "message": "Priečinok upravený" + }, + "addedFolder": { + "message": "Priečinok pridaný" + }, + "deleteFolderConfirmation": { + "message": "Naozaj chcete odstrániť tento priečinok?" + }, + "deletedFolder": { + "message": "Priečinok odstránený" + }, + "loggedOut": { + "message": "Odhlásený" + }, + "loginExpired": { + "message": "Platnosť prihlásenia vypršala." + }, + "logOutConfirmation": { + "message": "Naozaj sa chcete odhlásiť?" + }, + "logOut": { + "message": "Odhlásiť sa" + }, + "ok": { + "message": "Potvrdiť" + }, + "yes": { + "message": "Áno" + }, + "no": { + "message": "Nie" + }, + "loginOrCreateNewAccount": { + "message": "Prihláste sa, alebo vytvorte nový účet pre prístup k vášmu bezpečnému trezoru." + }, + "createAccount": { + "message": "Vytvoriť účet" + }, + "logIn": { + "message": "Prihlásiť sa" + }, + "submit": { + "message": "Potvrdiť" + }, + "emailAddressDesc": { + "message": "Použite e-mailovú adresu na prihlásenie." + }, + "yourName": { + "message": "Vaše Meno" + }, + "yourNameDesc": { + "message": "Ako by sme Vás mali volať?" + }, + "masterPass": { + "message": "Hlavné heslo" + }, + "masterPassDesc": { + "message": "Hlavné heslo je heslo, ktoré použijete na prístup k svojmu trezoru. Je veľmi dôležité, aby ste svoje hlavné heslo nezabudli. Neexistuje možnosť, ako heslo obnoviť v prípade, že ho zabudnete." + }, + "masterPassHintDesc": { + "message": "Nápoveď k hlavnému heslu vám môže pomôcť spomenúť si na heslo, ak ho zabudnete." + }, + "reTypeMasterPass": { + "message": "Znovu zadajte hlavné heslo" + }, + "masterPassHint": { + "message": "Nápoveď k hlavnému heslo (voliteľné)" + }, + "masterPassHintLabel": { + "message": "Nápoveď pre hlavné heslo" + }, + "settings": { + "message": "Nastavenia" + }, + "passwordHint": { + "message": "Nápoveď k heslu" + }, + "enterEmailToGetHint": { + "message": "Zadajte emailovú adresu na zaslanie nápovede pre vaše hlavné heslo." + }, + "getMasterPasswordHint": { + "message": "Získať nápoveď k hlavnému heslu" + }, + "emailRequired": { + "message": "Emailová adresa je povinná." + }, + "invalidEmail": { + "message": "Neplatná emailová adresa." + }, + "masterPassRequired": { + "message": "Hlavné heslo je povinné." + }, + "masterPassLength": { + "message": "Hlavné heslo musí obsahovať aspoň 8 znakov." + }, + "masterPassDoesntMatch": { + "message": "Potvrdenie hlavného hesla sa nezhoduje." + }, + "newAccountCreated": { + "message": "Váš nový účet bol vytvorený! Teraz sa môžete prihlásiť." + }, + "masterPassSent": { + "message": "Poslali sme vám email s nápoveďou k hlavnému heslu." + }, + "unexpectedError": { + "message": "Vyskytla sa neočakávaná chyba." + }, + "emailAddress": { + "message": "Emailová adresa" + }, + "yourVaultIsLocked": { + "message": "Váš trezor je uzamknutý. Overte sa hlavným heslom ak chcete pokračovať." + }, + "unlock": { + "message": "Odomknúť" + }, + "loggedInAsEmailOn": { + "message": "Prihlásený ako $EMAIL$ na $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Neplatné hlavné heslo" + }, + "lockNow": { + "message": "Uzamknúť teraz" + }, + "noItemsInList": { + "message": "Neexistujú žiadne položky na zobrazenie." + }, + "noCollectionsInList": { + "message": "Neexistujú žiadne zbierky na zobrazenie." + }, + "noGroupsInList": { + "message": "Neexistujú žiadne skupiny na zobrazenie." + }, + "noUsersInList": { + "message": "Neexistujú žiadni používatelia na zobrazenie." + }, + "noEventsInList": { + "message": "Neexistujú žiadne udalosti na zobrazenie." + }, + "newOrganization": { + "message": "Nová organizácia" + }, + "noOrganizationsList": { + "message": "Nie ste členom žiadnej organizácie. Organizácie umožňujú bezpečne zdieľať položky s ostatnými používateľmi." + }, + "versionNumber": { + "message": "Verzia $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Zadajte 6-miestny verifikačný kód z vašej overovacej aplikácie." + }, + "enterVerificationCodeEmail": { + "message": "Zadajte 6-miestny verifikačný kód, ktorý bol zaslaný emailom na $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Overovací e-mail odoslaný na $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Zapamätaj si ma" + }, + "sendVerificationCodeEmailAgain": { + "message": "Znovu zaslať overovací kód emailom" + }, + "useAnotherTwoStepMethod": { + "message": "Použiť inú dvojstupňovú metódu prihlásenia" + }, + "insertYubiKey": { + "message": "Vložte váš YubiKey do USB portu počítača a stlačte jeho tlačidlo." + }, + "insertU2f": { + "message": "Vložte váš bezpečnostný kľúč do USB portu počítača. Ak má tlačidlo, stlačte ho." + }, + "loginUnavailable": { + "message": "Prihlásenie nedostupné" + }, + "noTwoStepProviders": { + "message": "Tento účet má povolené dvojstupňové prihlásenie, ale žiadny z nakonfigurovaných poskytovateľov nie je podporovaný týmto prehliadačom." + }, + "noTwoStepProviders2": { + "message": "Prosím, použite podporovaný prehliadač (napríklad Chrome) a/alebo pridajte iných poskytovateľov, ktorí sú lepšie podporovaní prehliadačmi (ako napríklad overovacia aplikácia)." + }, + "twoStepOptions": { + "message": "Možnosti dvojstupňového prihlásenia" + }, + "recoveryCodeDesc": { + "message": "Stratili ste prístup ku všetkým vašim dvojstupňovým poskytovateľom? Použite váš záchranný kód pre vypnutie všetkých poskytovateľov vo vašom účte." + }, + "recoveryCodeTitle": { + "message": "Záchranný kód" + }, + "authenticatorAppTitle": { + "message": "Overovacia aplikácia" + }, + "authenticatorAppDesc": { + "message": "Použite overovaciu aplikáciu (napríklad Authy alebo Google Authenticator) na generovanie časovo obmedzených overovacích kódov.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP bezpečnostný kľúč" + }, + "yubiKeyDesc": { + "message": "Použiť YubiKey pre prístup k vášmu účtu. Pracuje s YubiKey 4, 4 Nano, 4C a s NEO zariadeniami." + }, + "duoDesc": { + "message": "Overiť s Duo Security použitím Duo Mobile aplikácie, SMS, telefonátu alebo U2F bezpečnostným kľúčom.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Overiť s Duo Security vašej organizácie použitím Duo Mobile aplikácie, SMS, telefonátu alebo U2F bezpečnostným kľúčom.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Použiť akýkoľvek FIDO U2F bezpečnostný kľúč pre prístup k vášmu účtu." + }, + "u2fTitle": { + "message": "FIDO U2F bezpečnostný kľúč" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Použiť akýkoľvek WebAuthn bezpečnostný kľúč pre prístup k vášmu účtu." + }, + "webAuthnMigrated": { + "message": "(Migrované z FIDO)" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Verifikačné kódy vám budú zaslané emailom." + }, + "continue": { + "message": "Ďalej" + }, + "organization": { + "message": "Organizácia" + }, + "organizations": { + "message": "Organizácie" + }, + "moveToOrgDesc": { + "message": "Vyberte organizáciu, do ktorej chcete presunúť túto položku. Presunom do organizácie sa vlastníctvo položky prenáša na túto organizáciu. Po presunutí už nebudete priamym vlastníkom danej položky." + }, + "moveManyToOrgDesc": { + "message": "Vyberte organizáciu, do ktorej chcete presunúť tieto položky. Presunom do organizácie sa vlastníctvo položky prenáša na túto organizáciu. Po presunutí už nebudete priamym vlastníkom daných položiek." + }, + "collectionsDesc": { + "message": "Upravte zbierky s ktorými bude táto položka zdieľaná. Iba členovia organizácie s prístupom k vybraným zbierkam budú vidieť túto položku." + }, + "deleteSelectedItemsDesc": { + "message": "Vybrali ste $COUNT$ položiek na vymazanie. Ste si istý, že chcete vymazať všetky tieto položky?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Vyberte priečinok do ktorého chcete presunúť $COUNT$ vybraných položiek.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Vybrali ste $COUNT$ položku(iek). $MOVEABLE_COUNT$ položka(iek) môže(u) byť presunuté do organizácie, $NONMOVEABLE_COUNT$ nemôže(u).", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Overovací kód (TOTP)" + }, + "copyVerificationCode": { + "message": "Kopírovať overovací kód" + }, + "warning": { + "message": "Upozornenie" + }, + "confirmVaultExport": { + "message": "Potvrdiť export trezoru" + }, + "exportWarningDesc": { + "message": "Tento export obsahuje vaše dáta v nešifrovanom formáte. Nemali by ste ich ukladať, ani posielať cez nezabezpečené kanály (napr. email). Okamžite ho odstráňte, keď ho prestanete používať." + }, + "encExportKeyWarningDesc": { + "message": "Tento export zašifruje vaše údaje pomocou šifrovacieho kľúča vášho účtu. Ak niekedy budete rotovať šifrovací kľúč svojho účtu, mali by ste exportovať znova, pretože nebudete môcť dešifrovať tento exportovaný súbor." + }, + "encExportAccountWarningDesc": { + "message": "Šifrovacie kľúče účtu sú jedinečné pre každý používateľský účet Bitwarden, takže nemôžete importovať šifrovaný export do iného účtu." + }, + "export": { + "message": "Exportovať" + }, + "exportVault": { + "message": "Export trezoru" + }, + "fileFormat": { + "message": "Formát Súboru" + }, + "exportSuccess": { + "message": "Dáta z vášho trezora boli exportované." + }, + "passwordGenerator": { + "message": "Generátor hesla" + }, + "minComplexityScore": { + "message": "Minimálna úroveň zložitosti" + }, + "minNumbers": { + "message": "Minimum číslic" + }, + "minSpecial": { + "message": "Minimum špec. znakov", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Vyhnúť sa zameniteľným znakom" + }, + "regeneratePassword": { + "message": "Vygenerovať nové heslo" + }, + "length": { + "message": "Dĺžka" + }, + "numWords": { + "message": "Počet slov" + }, + "wordSeparator": { + "message": "Oddeľovač slov" + }, + "capitalize": { + "message": "Prvé písmeno veľkým", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Zahrnúť číslo" + }, + "passwordHistory": { + "message": "História hesla" + }, + "noPasswordsInList": { + "message": "Neboli nájdené žiadne heslá." + }, + "clear": { + "message": "Vyčistiť", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Účet bol Aktualizovaný" + }, + "changeEmail": { + "message": "Zmeniť email" + }, + "changeEmailTwoFactorWarning": { + "message": "Pokračovaním sa zmení e-mailová adresa vášho účtu. Nezmení sa e-mailová adresa používaná na dvojstupňové overovanie. Túto e-mailovú adresu môžete zmeniť v nastaveniach dvojfázového prihlásenia." + }, + "newEmail": { + "message": "Nový e-mail" + }, + "code": { + "message": "Kód" + }, + "changeEmailDesc": { + "message": "Zaslali sme overovací kód na $EMAIL$. Prosím skontrolujte vašu schránku a zadajte zaslaný kód nižšie pre potvrdenie zmeny vašej e-mailovej adresy.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Ak budete pokračovať, budete odhlásený a budete sa musieť opäť prihlásiť. Aktívne sedenia na iných zariadeniach môžu byť aktívne ešte hodinu." + }, + "emailChanged": { + "message": "E-mail bol zmenený" + }, + "logBackIn": { + "message": "Prosím, opäť sa prihláste." + }, + "logBackInOthersToo": { + "message": "Prosím odhláste sa. Ak používate iné Bitwarden aplikácie, odhláste sa a opäť sa prihláste aj v nich." + }, + "changeMasterPassword": { + "message": "Zmeniť hlavné heslo" + }, + "masterPasswordChanged": { + "message": "Hlavné heslo zmenené" + }, + "currentMasterPass": { + "message": "Súčasné hlavné heslo" + }, + "newMasterPass": { + "message": "Nové hlavné heslo" + }, + "confirmNewMasterPass": { + "message": "Potvrďte nové hlavné heslo" + }, + "encKeySettings": { + "message": "Nastavenia šifrovacieho kľúča" + }, + "kdfAlgorithm": { + "message": "KDF algoritmus" + }, + "kdfIterations": { + "message": "KDF iterácií" + }, + "kdfIterationsDesc": { + "message": "Vyšší počet iterácií KDF môže pomôcť chrániť vaše hlavné heslo pri brute force útoku. Odporúčame hodnotu $VALUE$ alebo viac.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Ak nastavíte KDF iterácie príliš vysoko, môže to viesť k zníženému výkonu pri prihlasovaní do Bitwardenu (a pri jeho odomykaní) na zariadeniach s pomalšimi procesormi. Odporúčame navyšovať túto hodnotu po $INCREMENT$ inkrementoch a následne otestovať na všetkých vašich zariadeniach.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Zmeniť KDF" + }, + "encKeySettingsChanged": { + "message": "Nastavenia šifrovacieho kľúča zmenené" + }, + "dangerZone": { + "message": "Riziková zóna" + }, + "dangerZoneDesc": { + "message": "Opatrne, tieto zmeny nemožno vrátiť späť!" + }, + "deauthorizeSessions": { + "message": "Odhlásiť sedenia" + }, + "deauthorizeSessionsDesc": { + "message": "Obávate sa, že vaše konto ostalo prihlásené na inom zariadení? Pokračujte nižšie a odhláste sedenia na všetkých počítačoch a zariadeniach, ktoré ste predtým použili. Tento krok je odporúčaný ak ste použili verejný počítač, alebo omylom uložili heslo na zariadení ktoré nie je vaše. Tento krok zmaže aj všetky dvojstupňové prihlásenia ktoré ste predtým použili." + }, + "deauthorizeSessionsWarning": { + "message": "Ak budete pokračovať, budete tiež odhlásený z vášho súčasného sedenia a budete sa musieť opäť prihlásiť. Tiež budete opäť požiadaný o dvojstupňové prihlásenie ak ho máte zapnuté. Aktívne sedenia na iných zariadeniach môžu ostať aktívne až po dobu jednej hodiny." + }, + "sessionsDeauthorized": { + "message": "Všetky sedenia odhlásené" + }, + "purgeVault": { + "message": "Vyprázdniť trezor" + }, + "purgedOrganizationVault": { + "message": "Trezor organizácie bol vyprázdnený." + }, + "vaultAccessedByProvider": { + "message": "Trezor sprístupnený poskytovateľom." + }, + "purgeVaultDesc": { + "message": "Pokračujte ďalej ak chcete odstrániť všetky položky a priečinky vo vašom trezore. Položky, ktoré ste zdieľali a patria k organizácii sa neodstránia." + }, + "purgeOrgVaultDesc": { + "message": "Pokračujte ďalej ak chcete odstrániť všetky položky v trezore organizácie." + }, + "purgeVaultWarning": { + "message": "Vyprázdnenie trezoru je trvalé. Operáciu nie je možné vrátiť späť." + }, + "vaultPurged": { + "message": "Dáta z vášho trezora boli vymazané." + }, + "deleteAccount": { + "message": "Odstrániť účet" + }, + "deleteAccountDesc": { + "message": "Pokračujte, ak chcete odstrániť konto a všetky súvisiace dáta." + }, + "deleteAccountWarning": { + "message": "Odstránenie účtu je trvalé. Operáciu nie je možné vrátiť späť." + }, + "accountDeleted": { + "message": "Účet bol odstránený" + }, + "accountDeletedDesc": { + "message": "Váš účet bol uzavretý a všetky súvisiace dáta vymazané." + }, + "myAccount": { + "message": "Môj účet" + }, + "tools": { + "message": "Nástroje" + }, + "importData": { + "message": "Import dát" + }, + "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." + }, + "importSuccess": { + "message": "Dáta boli úspešne importované do trezora." + }, + "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 znova." + }, + "importNothingError": { + "message": "Nič na importovanie." + }, + "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." + }, + "selectFormat": { + "message": "Vyberte formát súboru importu" + }, + "selectImportFile": { + "message": "Vybrať súbor na import" + }, + "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)" + } + } + }, + "options": { + "message": "Možnosti" + }, + "optionsDesc": { + "message": "Prispôsobte si svoj webový trezor." + }, + "optionsUpdated": { + "message": "Nastavenia aktualizované" + }, + "language": { + "message": "Jazyk" + }, + "languageDesc": { + "message": "Zmeňte východzí jazyk pre webový trezor." + }, + "disableIcons": { + "message": "Nezobrazovať ikony stránok" + }, + "disableIconsDesc": { + "message": "Ikony stránok poskytujú rozoznateľný obrázok vedľa každého prihlasovacieho údaju vo webovom trezore." + }, + "enableGravatars": { + "message": "Povoliť Gravatar", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Použiť avatar obrázky načítané z gravatar.com." + }, + "enableFullWidth": { + "message": "Zapnúť vzhľad na celú šírku strany", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Povoliť webovému trezoru roztiahnúť sa na celú šírku okna." + }, + "default": { + "message": "Predvolené" + }, + "domainRules": { + "message": "Pravidlá pre domény" + }, + "domainRulesDesc": { + "message": "Ak máte rovnaké prihlasovacie údaje naprieč rôznymi doménami, môžete stránky označiť ako \"ekvivalentné\". \"Globálne\" domény sú tie, ktoré pre vás vopred nastavil Bitwarden." + }, + "globalEqDomains": { + "message": "Globálne Ekvivalentné Domény" + }, + "customEqDomains": { + "message": "Vlastné Ekvivalentné Domény" + }, + "exclude": { + "message": "Vylúčiť" + }, + "include": { + "message": "Vrátane" + }, + "customize": { + "message": "Prispôsobiť" + }, + "newCustomDomain": { + "message": "Vlastná doména" + }, + "newCustomDomainDesc": { + "message": "Zadajte zoznam domén oddelených čiarkou. Povolené sú iba \"základné\" domény. Nezadávajte subdomény. Napríklad zadajte \"google.com\" namiesto \"www.google.com\". Môžete tiež zadať \"androidapp://package.name\" ak chcete priradiť Android aplikáciu k iným doménam." + }, + "customDomainX": { + "message": "Vlastná doména $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domény boli aktualizované" + }, + "twoStepLogin": { + "message": "Dvojstupňové prihlásenie" + }, + "twoStepLoginDesc": { + "message": "Zabezpečte svoj účet požadovaním ďalšieho kroku pri prihlasovaní." + }, + "twoStepLoginOrganizationDesc": { + "message": "Vynúťte dvojstupňové prihlásenie pre členov organizácie nastavením poskytovateľov na úrovni organizácie." + }, + "twoStepLoginRecoveryWarning": { + "message": "Zapnutie dvojstupňového prihlásenia vás môže natrvalo vymknúť z vášho Bitwarden účtu. Záchranný kód umožňuje prístup k vášmu kontu v prípade že už nemôžete použiť svoj normálny dvojstupňový spôsob overenia. (napríklad ak stratíte zariadenie) Zákaznícka podpora nebude schopná pomôcť vám ak stratíte prístup k účtu. Preto vám odporúčame zapísať si, alebo si vytlačiť záchranný kód a uložiť ho na bezpečnom mieste." + }, + "viewRecoveryCode": { + "message": "Zobraziť záchranný kód" + }, + "providers": { + "message": "Poskytovatelia", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Povoliť" + }, + "enabled": { + "message": "Povolené" + }, + "premium": { + "message": "Prémium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Prémiové členstvo" + }, + "premiumRequired": { + "message": "Vyžaduje prémiový účet" + }, + "premiumRequiredDesc": { + "message": "Pre použitie tejto funkcie je potrebné prémiové členstvo." + }, + "youHavePremiumAccess": { + "message": "Máte premium prístup" + }, + "alreadyPremiumFromOrg": { + "message": "Už máte prístup k prémiovým funkciám vďaka organizácii ktorej ste členom." + }, + "manage": { + "message": "Spravovať" + }, + "disable": { + "message": "Vypnúť" + }, + "twoStepLoginProviderEnabled": { + "message": "Tento poskytovateľ overenia je povolený pre váš účet." + }, + "twoStepLoginAuthDesc": { + "message": "Zadajte vaše hlavné heslo ak chcete zmeniť nastavenia dvojstupňového prihlásenia." + }, + "twoStepAuthenticatorDesc": { + "message": "Nasledujte tieto kroky ak chcete nastaviť dvojstupňové prihlásenie s autentifikačnou aplikáciou:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Stiahnite si autentifikačnú aplikáciu" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Potrebujete dvojstupňovú autentifikačnú aplikáciu? Stiahnite si následujúcu" + }, + "iosDevices": { + "message": "Zariadenia so systémom iOS" + }, + "androidDevices": { + "message": "Android zariadenia" + }, + "windowsDevices": { + "message": "Zariadenia so systémom Windows" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Odporúčame použiť tieto aplikácie, avšak aj iné autentifikačné aplikácie by mali fungovať." + }, + "twoStepAuthenticatorScanCode": { + "message": "Oskenujte QR kód s vašou autentifikačnou aplikáciou" + }, + "key": { + "message": "Kľúč" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Zadajte výsledný 6 miestny overovací kód z aplikácie" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "AK chcete pridať účet do ďalšieho zariadenia, nižšie je QR kód (alebo kľúč) ktorý požaduje vaša autentifikačná aplikácia." + }, + "twoStepDisableDesc": { + "message": "Naozaj chcete zakázať tohto poskytovateľa dvojstupňového prihlásenia?" + }, + "twoStepDisabled": { + "message": "Poskytovateľ dvojstupňového prihlásenia zakázaný." + }, + "twoFactorYubikeyAdd": { + "message": "Do svojho účtu pridať nový YubiKey" + }, + "twoFactorYubikeyPlugIn": { + "message": "Zapojte YubiKey do USB portu počítača." + }, + "twoFactorYubikeySelectKey": { + "message": "Nižšie zvoľte prvé voľné pole na vašom YubiKey." + }, + "twoFactorYubikeyTouchButton": { + "message": "Stlačte YubiKey tlačidlo." + }, + "twoFactorYubikeySaveForm": { + "message": "Ulož formulár." + }, + "twoFactorYubikeyWarning": { + "message": "Vzhľadom na obmedzenia platform, YubiKey nemôže byť použitý vo všetkých Bitwarden aplikáciách. Mali by ste povoliť inú formu dvojitého overenia, aby ste sa mohli prihlásiť k svojmu účtu ak nie je možné použiť YubiKey. Podporované platformy:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Webový trezor, desktopová aplikácia, CLI aplikácia a všetky rozšírenia pre browser na zariadení s USB portom akceptujúcim váš YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobilné aplikácie na zariadení s NFC alebo USB portom, ktoré akceptuje váš YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F kľúč $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "Podpora NFC" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Jeden z mojich kľúčov podporuje NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Ak jeden z vašich kľúčov podporuje NFC (napríklad YubiKey NEO), budete požiadaní o overenie na mobilných zariadeniach, kde bola detekovaná podpora NFC." + }, + "yubikeysUpdated": { + "message": "YubiKey kľúče aktualizované" + }, + "disableAllKeys": { + "message": "Zakázať všetky hardvérové kľúče" + }, + "twoFactorDuoDesc": { + "message": "Zadajte informácie pre Bitwarden z vášho DUO Admin panelu." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integračný kľúč" + }, + "twoFactorDuoSecretKey": { + "message": "Tajný kľúč" + }, + "twoFactorDuoApiHostname": { + "message": "Adresa hostiteľa API" + }, + "twoFactorEmailDesc": { + "message": "Nasledujte tieto kroky ak chcete nastaviť dvojstupňové prihlásenie prostredníctvom e-mailu:" + }, + "twoFactorEmailEnterEmail": { + "message": "Zadajte e-mail, ktorý chcete použiť na prijatie overovacích kódov" + }, + "twoFactorEmailEnterCode": { + "message": "Zadajte výsledný 6 miestny overovací kód z e-mailu" + }, + "sendEmail": { + "message": "Odoslať email" + }, + "twoFactorU2fAdd": { + "message": "Pridajte FIDO U2F kľúč k vášmu účtu" + }, + "removeU2fConfirmation": { + "message": "Naozaj chcete odstrániť tento bezpečnostný kľúč?" + }, + "twoFactorWebAuthnAdd": { + "message": "Pridať bezpečnostný kľúč WebAuthn do vášho účtu" + }, + "readKey": { + "message": "Načítať kľúč" + }, + "keyCompromised": { + "message": "Kľúč bol kompromitovaný." + }, + "twoFactorU2fGiveName": { + "message": "Zadajte názov pre bezpečnostný kľúč pre jeho ľahšiu identifikáciu." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Zasuňte bezpečnostný kľúč do USB portu na vašom počítači a kliknite na tlačidlo \"Načítať kľúč\"." + }, + "twoFactorU2fTouchButton": { + "message": "Ak má kľúč na sebe tlačidlo, stlačte ho." + }, + "twoFactorU2fSaveForm": { + "message": "Ulož formulár." + }, + "twoFactorU2fWarning": { + "message": "Vzhľadom na obmedzenia platform, FIDO U2F nemôže byť použitý vo všetkých Bitwarden aplikáciách. Mali by ste povoliť inú formu dvojitého overenia, aby ste sa mohli prihlásiť k svojmu účtu ak nie je možné použiť FIDO U2F. Podporované platformy:" + }, + "twoFactorU2fSupportWeb": { + "message": "Webový trezor a rozšírenia prehliadača na pracovnej stanici s prehliadačom podporujúcim U2F (Chrome, Opera, Vivaldi, alebo Firefox so zapnutou podporou FIDO U2F)." + }, + "twoFactorU2fWaiting": { + "message": "Čaká sa na stlačenie tlačidla na vašom kľúči" + }, + "twoFactorU2fClickSave": { + "message": "Kliknite na tlačidlo \"Uložiť\" pre povolenie bezpečnostného kľúča pre dvojstupňové prihlásenie." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Problém pri čítaní bezpečnostného kľúča. Skúste to znova." + }, + "twoFactorWebAuthnWarning": { + "message": "Vzhľadom na obmedzenia platform, WebAuthn nemôže byť použitý vo všetkých Bitwarden aplikáciách. Mali by ste povoliť inú formu dvojitého overenia, aby ste sa mohli prihlásiť k svojmu účtu ak nie je možné použiť WebAuthn. Podporované platformy:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Webový trezor a rozšírenia prehliadača na pracovnej stanici s prehliadačom podporujúcim WebAuthn (Chrome, Opera, Vivaldi, alebo Firefox so zapnutou podporou FIDO U2F)." + }, + "twoFactorRecoveryYourCode": { + "message": "Váš Bitwarden záchranný kód pre dvojstupňové overovanie" + }, + "twoFactorRecoveryNoCode": { + "message": "Zatiaľ ste nepovolili žiadneho poskytovateľa dvojstupňového overenia. Po tom, čo ste nejakého poskytovateľa povolili, môžete sa sem vrátiť pre získanie záchranného kódu." + }, + "printCode": { + "message": "Vytlačiť kód", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Reporty" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Nezabezpečené stránky" + }, + "unsecuredWebsitesReportDesc": { + "message": "Používať nezabezpečené stránky s protokolom http:// môže byť nebezpečné. Ak to stránka umožňuje, mali by ste vždy používať protokol https:// aby bolo vaše pripojenie šifrované." + }, + "unsecuredWebsitesFound": { + "message": "Našli sa nezabezpečené stránky" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Našli sme $COUNT$ položky vo vašom trezore s nezabezpečenými URI. Ak to stránka podporuje, môžete zmeniť schému URI na https://.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Vo vašom trezore nemáte nezabezpečené URI." + }, + "inactive2faReport": { + "message": "Neaktívne 2FA" + }, + "inactive2faReportDesc": { + "message": "Dvojstupňové prihlásenie (2FA) je dôležité nastavenie ktoré vám pomôže zabezpečiť vaše kontá. Ak to stránka umožňuje, mali by ste 2FA použiť." + }, + "inactive2faFound": { + "message": "Našli sa prihlásenia bez dvojstupňového overenia" + }, + "inactive2faFoundDesc": { + "message": "Našli sme $COUNT$ stránok vo vašom trezore ktoré nie sú nastavené na použitie dvojstupňového overenia. (na základe údajov z twofactorauth.org) Aby ste vylepšili zabezpečenie týchto účtov, mali by ste povoliť dvojstupňové prihlásenie.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Vo vašom trezore sme nenašli účty bez dvojstupňového overenia." + }, + "instructions": { + "message": "Pokyny" + }, + "exposedPasswordsReport": { + "message": "Správa o uniknutých heslách" + }, + "exposedPasswordsReportDesc": { + "message": "Uniknuté heslá sú heslá ktoré boli odhalené v známych únikoch dát, alebo boli predávané hackermi na čiernom trhu." + }, + "exposedPasswordsFound": { + "message": "Našli sme uniknuté heslá" + }, + "exposedPasswordsFoundDesc": { + "message": "Našli sme $COUNT$ položiek vo vašom trezore ktoré používajú uniknuté heslá. Mali by ste ich zmeniť aby používali nové heslá.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Žiadne položky vo vašom trezore nemajú heslá, ktoré boli vystavené v známych únikoch." + }, + "checkExposedPasswords": { + "message": "Overiť uniknuté heslá" + }, + "exposedXTimes": { + "message": "Uniklo $COUNT$ krát", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Správa o slabých heslách" + }, + "weakPasswordsReportDesc": { + "message": "Slabé heslá sa dajú ľahko uhádnuť alebo prelomiť nástrojmi. Generátor hesiel Bitwarden vám pomôže vytvoríť silné heslá." + }, + "weakPasswordsFound": { + "message": "Našli sa slabé heslá" + }, + "weakPasswordsFoundDesc": { + "message": "Našli sme $COUNT$ položiek vo vašom trezore, ktoré nepoužívajú silné heslá. Mali by ste ich aktualizovať a použiť silnejšie heslá.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Žiadne položky vo vašom hesle nepoužívajú slabé heslá." + }, + "reusedPasswordsReport": { + "message": "Správa o viacnásobne použitých heslách" + }, + "reusedPasswordsReportDesc": { + "message": "Ak je stránka ktorú používate prelomená a používate to isté heslo aj inde, môže útočník získať prístup k viacerým vaším účtom. Mali by ste používať unikátne heslo pre každú stránku." + }, + "reusedPasswordsFound": { + "message": "Našli sa viacnásobne použité heslá" + }, + "reusedPasswordsFoundDesc": { + "message": "Vo vašom trezore sme našli $COUNT$ hesiel, ktoré sú použité na viacerých stránkach. Mali by ste ich zmeniť aby každá stránka mala unikátne heslo.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Vo vašom trezore nie sú žiadne heslá ktoré sú používané na viacerých stránkach." + }, + "reusedXTimes": { + "message": "Použité $COUNT$ krát", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Report o úniku dát" + }, + "breachDesc": { + "message": "\"Únik\" je incident kde údaje zo stránky boli ilegálne odcudzené hackermi a následne zverejnené. Overte si typ dát ktoré boli zverejnené (emaily, heslá, čísla kariet, atď.) a adekvátne reagujte - napríklad si zmeňte heslo." + }, + "breachCheckUsernameEmail": { + "message": "Overte všetky emaily alebo použivateľské mená, ktoré používate." + }, + "checkBreaches": { + "message": "Overte úniky" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ nebolo nájdené v Žiadnom zo známych únikov.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Dobré správy", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ bolo nájdene v $COUNT$ únikoch online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Nájdené zverejnené kontá" + }, + "compromisedData": { + "message": "Kompromitované údaje" + }, + "website": { + "message": "Webstránka" + }, + "affectedUsers": { + "message": "Postihnutí používatelia" + }, + "breachOccurred": { + "message": "K úniku došlo" + }, + "breachReported": { + "message": "Nahlásený únik informácii" + }, + "reportError": { + "message": "Chyba pri načítavaní reportu, skúste znova" + }, + "billing": { + "message": "Fakturácia" + }, + "accountCredit": { + "message": "Kredit na konte", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Zostatok na účte", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Pridať kredit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Čiastka", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Pridaný kredit sa zobrazí na vašom účte po tom ako je platba plne spracovaná. Spracovanie niektorých spôsobov platby je pomalšie a môže trvať dlhšie." + }, + "makeSureEnoughCredit": { + "message": "Prosím uistite sa, že váš účet má k dispozícii dostatok kreditu pre tento nákup. Ak konto nemá k dispozícii dostatok kreditu, rozdiel sa zaplatí vašou predvolenou platobnou metódou. Kredit si môžete pridať na stránke fakturácie." + }, + "creditAppliedDesc": { + "message": "Kredit na vašom účte sa dá použiť na nákupy. Akýkoľvek dostupný kredit bude automaticky použitý na zaplatenie faktúr pre tento účet." + }, + "goPremium": { + "message": "Prejsť na Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Povýšili ste na prémium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Povýšte svoj účet na prémium a odomknite skvelé extra funkcie." + }, + "premiumSignUpStorage": { + "message": "1 GB šifrovaného úložiska pre prílohy." + }, + "premiumSignUpTwoStep": { + "message": "Ďalšie možnosti dvojstupňového prihlásenia ako YubiKey, FIDO U2F a Duo." + }, + "premiumSignUpEmergency": { + "message": "Núdzový prístup" + }, + "premiumSignUpReports": { + "message": "Správy o sile hesla, zabezpečení účtov a únikoch dát ktoré vám pomôžu udržať vaše kontá v bezpečí." + }, + "premiumSignUpTotp": { + "message": "Generátor TOTP verifikačného kódu (2FA) pre kontá vo vašom trezore." + }, + "premiumSignUpSupport": { + "message": "Prioritná zákaznícka podpora." + }, + "premiumSignUpFuture": { + "message": "Všetky budúce prémiové funkcie. Viac už čoskoro!" + }, + "premiumPrice": { + "message": "Všetko len za $PRICE$ /rok!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Doplnky" + }, + "premiumAccess": { + "message": "Prémium prístup" + }, + "premiumAccessDesc": { + "message": "Môžete pridať prémium prístup všetkým členom organizácie za $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Dodatočné úložisko (GB)" + }, + "additionalStorageGbDesc": { + "message": "množstvo dodatočných GB" + }, + "additionalStorageIntervalDesc": { + "message": "Váš plán zahŕňa $SIZE$ šifrovaného úložiska. Môžete si dokúpiť dodatočné miesto za $PRICE$/GB / $INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Súhrn" + }, + "total": { + "message": "Celkom" + }, + "year": { + "message": "rok" + }, + "month": { + "message": "mesiac" + }, + "monthAbbr": { + "message": "mes.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Prostredníctvom vašej platobnej metódy bude okamžite zaplatená suma za tento rok a následne sa nastaví automatická ročná platba. Platbu môžete kedykoľvek zrušiť." + }, + "paymentCharged": { + "message": "Prostredníctvom vašej platobnej metódy bude okamžite zaplatená suma za toto obdobie a následne sa nastaví automatická $INTERVAL$ platba. Platbu môžete kedykoľvek zrušiť.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Váš plán ponúka 7-dňovú skúšobnú dobu zadarmo. Z vašej platobnej metódy nebude stiahnutý poplatok, kým sa neskončí skúšobná doba. Plán môžete kedykoľvek zrušiť." + }, + "paymentInformation": { + "message": "Informácie o platbe" + }, + "billingInformation": { + "message": "Fakturačné údaje" + }, + "creditCard": { + "message": "Kreditná Karta" + }, + "paypalClickSubmit": { + "message": "Kliknite na tlačidlo PayPal a prihláste sa do vášho PayPal účtu, potom stlačte tlačidlo Odoslať a pokračujte." + }, + "cancelSubscription": { + "message": "Zrušiť predplatné" + }, + "subscriptionCanceled": { + "message": "Predplatné bolo zrušené." + }, + "pendingCancellation": { + "message": "Prebieha rušenie" + }, + "subscriptionPendingCanceled": { + "message": "Predplatné je označené na zrušenie na konci súčasného účtovacieho obdobia." + }, + "reinstateSubscription": { + "message": "Obnoviť predplatné" + }, + "reinstateConfirmation": { + "message": "Naozaj chcete zrušiť požiadavku na ukončenie predplatného a obnoviť predplatné?" + }, + "reinstated": { + "message": "Predplatné bolo obnovené." + }, + "cancelConfirmation": { + "message": "Naozaj chcete zrušiť? Stratíte prístup k všetkým funkciám, ktoré vám predplatné ponúka na konci fakturačného obdobia." + }, + "canceledSubscription": { + "message": "Predplatné bolo zrušené." + }, + "neverExpires": { + "message": "Nikdy neexpirovať" + }, + "status": { + "message": "Stav" + }, + "nextCharge": { + "message": "Ďalšia platba" + }, + "details": { + "message": "Podrobnosti" + }, + "downloadLicense": { + "message": "Stiahnuť licenciu" + }, + "updateLicense": { + "message": "Aktualizovať licenciu" + }, + "updatedLicense": { + "message": "Licencia aktualizovaná" + }, + "manageSubscription": { + "message": "Spravovať predplatné" + }, + "storage": { + "message": "Ukladací priestor" + }, + "addStorage": { + "message": "Pridať ukladací priestor" + }, + "removeStorage": { + "message": "Odstránené úložisko" + }, + "subscriptionStorage": { + "message": "Vaše predplatné zahŕňa $MAX_STORAGE$ GB šifrovaného úložiska, Momentálne používate $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Spôsob platby" + }, + "noPaymentMethod": { + "message": "Nie je vybratý žiadny spôsob platby." + }, + "addPaymentMethod": { + "message": "Pridajte spôsob platby" + }, + "changePaymentMethod": { + "message": "Zmeniť spôsob platby" + }, + "invoices": { + "message": "Faktúry" + }, + "noInvoices": { + "message": "Žiadne faktúry." + }, + "paid": { + "message": "Zaplatené", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Nezaplatené", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transakcie", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Žiadne transakcie." + }, + "chargeNoun": { + "message": "Dobiť", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Refundovať", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Platby s objavia na výpise z banky ako $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "Pridať GB" + }, + "gbStorageRemove": { + "message": "Odobrať GB" + }, + "storageAddNote": { + "message": "Pridaním úložiska sa zmení účtovaná suma a okamžite sa vykoná platba prostredníctvom nastavenej platobnej metódy. Prvá platba bude proporcionálna zvyšku súčasného fakturačného obdobia." + }, + "storageRemoveNote": { + "message": "Odstránením úložiska sa zmení účtovaná suma. Suma ktorú ste zaplatili navyše bude refundovaná vo forme kreditu v následujúcom fakturačnom období." + }, + "adjustedStorage": { + "message": "Úložisko upravené o $AMOUNT$ GB.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Kontaktujte zákaznícku podporu" + }, + "updatedPaymentMethod": { + "message": "Aktualizovať spôsob platby." + }, + "purchasePremium": { + "message": "Zakúpiť Prémium" + }, + "licenseFile": { + "message": "Licenčný súbor" + }, + "licenseFileDesc": { + "message": "Váš licenčný súbor bude mať názov $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Aby ste povýšili svoj účet na prémium, musíte nahrať licenčný súbor." + }, + "uploadLicenseFileOrg": { + "message": "Aby ste vytvorili organizáciu v systéme prevádzkovanom na vlastnom hardvéri, musíte nahrať licenčný súbor." + }, + "accountEmailMustBeVerified": { + "message": "Emailová adresa vášho účtu musí byť overená." + }, + "newOrganizationDesc": { + "message": "Organizácie vám umožňujú zdieľať časti trezora s ostatnými a tiež spravovať používateľov určitej skupiny ako napríklad rodiny, malého tímu alebo veľkej spoločnosti." + }, + "generalInformation": { + "message": "Všeobecné informácie" + }, + "organizationName": { + "message": "Názov organizácie" + }, + "accountOwnedBusiness": { + "message": "Tento účet je vo vlastníctve firmy." + }, + "billingEmail": { + "message": "Fakturačný e-mail" + }, + "businessName": { + "message": "Obchodné meno" + }, + "chooseYourPlan": { + "message": "Vyberte váš plán" + }, + "users": { + "message": "Používatelia" + }, + "userSeats": { + "message": "Používateľské licencie" + }, + "additionalUserSeats": { + "message": "Ďalší používatelia" + }, + "userSeatsDesc": { + "message": "počet používateľských licencií" + }, + "userSeatsAdditionalDesc": { + "message": "Plán zahŕňa $BASE_SEATS$ používateľských licencií. Dodatočných používateľov môžete pridať za $SEAT_PRICE$/mesačne za používateľa.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Koľko používateľských licencií potrebujete? Ďalšie licencie môžete pridať neskôr." + }, + "planNameFree": { + "message": "Zadarmo", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Na testovanie alebo osobné použitie do $COUNT$ používateľov.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Rodiny" + }, + "planDescFamilies": { + "message": "Pre osobné použitie a zdieľanie s rodinou a priateľmi." + }, + "planNameTeams": { + "message": "Tímy" + }, + "planDescTeams": { + "message": "Pre firmy a iné organizácie." + }, + "planNameEnterprise": { + "message": "Spoločnosť" + }, + "planDescEnterprise": { + "message": "Pre firmy a veľké organizácie." + }, + "freeForever": { + "message": "Navždy zadarmo" + }, + "includesXUsers": { + "message": "zahŕňa $COUNT$ používateľov", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Ďalší používatelia" + }, + "costPerUser": { + "message": "$COST$ za používateľa", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Obmedzené na $COUNT$ používateľov (vrátane vás)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Obmedzené na $COUNT$ zbierok", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Pridajte a zdieľajte až s $COUNT$ používateľmi", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Pridajte a zdieľajte až s neobmedzeným počtom používateľov" + }, + "createUnlimitedCollections": { + "message": "Vytvoriť neobmedzené množstvo zbierok" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ šifrovaného úložiska", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Prevádzka na vlastnom systéme (voliteľné)" + }, + "usersGetPremium": { + "message": "Používatelia získajú prístup k prémiovým funkciám" + }, + "controlAccessWithGroups": { + "message": "Kontrola prístupu používateľov prostredníctvom skupín" + }, + "syncUsersFromDirectory": { + "message": "Synchronizovať používateľov a skupiny s adresárom" + }, + "trackAuditLogs": { + "message": "Sledujte aktivity používateľov prostredníctvom auditných záznamov" + }, + "enforce2faDuo": { + "message": "Vynútiť 2FA s Duo" + }, + "priorityCustomerSupport": { + "message": "Prioritná zákaznícka podpora" + }, + "xDayFreeTrial": { + "message": "$COUNT$ dní na vyskúšanie zadarmo, môžete kedykoľvek prerušiť", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Mesačne" + }, + "annually": { + "message": "Ročne" + }, + "basePrice": { + "message": "Základná cena" + }, + "organizationCreated": { + "message": "Organizácia vytvorená" + }, + "organizationReadyToGo": { + "message": "Vaša nová organizácia je pripravená!" + }, + "organizationUpgraded": { + "message": "Vaša organizácia bola povýšená." + }, + "leave": { + "message": "Opustiť" + }, + "leaveOrganizationConfirmation": { + "message": "Ste si istý, že chcete opustiť túto organizáciu?" + }, + "leftOrganization": { + "message": "Opustili ste organizáciu." + }, + "defaultCollection": { + "message": "Predvolená kolekcia" + }, + "getHelp": { + "message": "Získať pomoc" + }, + "getApps": { + "message": "Stiahni si aplikácie" + }, + "loggedInAs": { + "message": "Prihlásený ako" + }, + "eventLogs": { + "message": "Denník udalostí" + }, + "people": { + "message": "Ľudia" + }, + "policies": { + "message": "Pravidlá" + }, + "singleSignOn": { + "message": "Prihlásenie cez prihlasovací formulár" + }, + "editPolicy": { + "message": "Upraviť pravidlá" + }, + "groups": { + "message": "Skupiny" + }, + "newGroup": { + "message": "Nová skupina" + }, + "addGroup": { + "message": "Pridať skupinu" + }, + "editGroup": { + "message": "Upraviť skupinu" + }, + "deleteGroupConfirmation": { + "message": "Naozaj chcete odstrániť túto skupinu?" + }, + "removeUserConfirmation": { + "message": "Skutočne chcete odobrať tohto užívateľa?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Upozornenie! Tento používateľ potrebuje na správu svojho šifrovania aplikáciu Key Connector. Odstránením tohto používateľa z vašej organizácie sa jeho účet natrvalo deaktivuje. Túto akciu nie je možné vrátiť späť. Chcete pokračovať?" + }, + "externalId": { + "message": "Externá id" + }, + "externalIdDesc": { + "message": "Externé Id sa môže použiť na previazanie tohto zdroja s externým systémom - napríklad s užívateľským adresárom." + }, + "accessControl": { + "message": "Riadenie prístupu" + }, + "groupAccessAllItems": { + "message": "Táto skupina môže upravovať a pristupovať k všetkým položkám." + }, + "groupAccessSelectedCollections": { + "message": "Táto skupina môže upravovať a pristupovať len k položkám ktoré sú vo vybraných zbierkach." + }, + "readOnly": { + "message": "Iba na čítanie" + }, + "newCollection": { + "message": "Nová zbierka" + }, + "addCollection": { + "message": "Pridať zbierku" + }, + "editCollection": { + "message": "Upraviť zbierku" + }, + "deleteCollectionConfirmation": { + "message": "Naozaj chcete odstrániť túto zbierku?" + }, + "editUser": { + "message": "Upraviť používateľa" + }, + "inviteUser": { + "message": "Pozvať používateľa" + }, + "inviteUserDesc": { + "message": "Pozvite používateľov do vašej organizácie zadaním emailovej adresy ich Bitwarden účtu nižšie. Ak ešte nemajú Bitwarden účet, obdržia požiadavku na jeho vytvorenie." + }, + "inviteMultipleEmailDesc": { + "message": "Môžete pozvať až $COUNT$ používateľov naraz tak, že zadáte zoznam emailových adries oddelených čiarkou.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Tento používateľ používa dvojstupňové overovanie aby si zabezpečil konto." + }, + "userAccessAllItems": { + "message": "Tento používateľ môže upravovať a pristupovať k všetkým položkám." + }, + "userAccessSelectedCollections": { + "message": "Tento používateľ môže upravovať a pristupovať len k položkám ktoré sú vo vybraných zbierkach." + }, + "search": { + "message": "Hľadať" + }, + "invited": { + "message": "Pozvaný" + }, + "accepted": { + "message": "Akceptované" + }, + "confirmed": { + "message": "Potvrdený" + }, + "clientOwnerEmail": { + "message": "E-mail klienta" + }, + "owner": { + "message": "Vlastník" + }, + "ownerDesc": { + "message": "Používateľ s najvyššími oprávneniami, môže spravovať všetky aspekty organizácie." + }, + "clientOwnerDesc": { + "message": "Tento používateľ by mal byť nezávislý od poskytovateľa. Ak sa poskytovateľ odpojí od organizácie, tento používateľ si zachová vlastníctvo organizácie." + }, + "admin": { + "message": "Administrátor" + }, + "adminDesc": { + "message": "Administrátori môžu pristupovať k a spravovať všetky položky a používateľov organizácie." + }, + "user": { + "message": "Používateľ" + }, + "userDesc": { + "message": "Obyčajný používateľ s prístupom k zbierkam organizácie." + }, + "manager": { + "message": "Manažér" + }, + "managerDesc": { + "message": "Manažéri môžu pristupovať k a spravovať pridelené zbierky v organizácii." + }, + "all": { + "message": "Všetky" + }, + "refresh": { + "message": "Obnoviť" + }, + "timestamp": { + "message": "Časová pečiatka" + }, + "event": { + "message": "Udalosť" + }, + "unknown": { + "message": "Neznáme" + }, + "loadMore": { + "message": "Načítať ďalšie" + }, + "mobile": { + "message": "Mobil", + "description": "Mobile app" + }, + "extension": { + "message": "Rozšírenie", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Počítač", + "description": "Desktop app" + }, + "webVault": { + "message": "Webový trezor" + }, + "loggedIn": { + "message": "Prihlásený." + }, + "changedPassword": { + "message": "Zmenené heslo k účtu." + }, + "enabledUpdated2fa": { + "message": "Dvojstupňové prihlasovanie zapnuté/aktualizované." + }, + "disabled2fa": { + "message": "Dvojstupňové prihlasovanie vypnuté." + }, + "recovered2fa": { + "message": "Účet uvoľnený z dvojstupňového prihlásenia." + }, + "failedLogin": { + "message": "Prihlásenie zlyhalo pre nesprávne heslu." + }, + "failedLogin2fa": { + "message": "Prihlásenie zlyhalo pre nesprávnu dvojstupňovú autorizáciu." + }, + "exportedVault": { + "message": "Trezor exportovaný." + }, + "exportedOrganizationVault": { + "message": "Trezor organizácie bol exportovaný." + }, + "editedOrgSettings": { + "message": "Nastavenia organizácie upravené." + }, + "createdItemId": { + "message": "Položka $ID$ vytvorená.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Položka $ID$ upravená.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Položka $ID$ odstránená.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Položka $ID$ presunutá do organizácie.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Položka $ID$ zobrazená.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Zobrazené heslo položky $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Zobrazené skryté pole položky $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Zobrazený bezpečnostný kód položky $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Skopírované heslo položky $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Skopírované skryté pole položky $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Skopírovaný bezpečnostný kód položky $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Automaticky vyplnené s položkou $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Zbierka $ID$ vytvorená.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Zbierka $ID$ upravená.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Zbierka $ID$ odstránená.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Upravené pravidlo $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Skupina $ID$ vytvorená.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Skupina $ID$ upravená.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Skupina $ID$ odstránená.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Používateľ $ID$ odstránený.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Vytvorená príloha k položke $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Odstránená príloha z položky $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Zbierky pre položku $ID$ boli upravené.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Používateľ $ID$ pozvaný.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Používateľ $ID$ potvrdený.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Používateľ $ID$ upravený.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Skupiny používateľa $ID$ upravené.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "SSO odpojené pre používateľa $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Vytvorená organizácia $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Pridaná organizácia $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Odstránená organizácia $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Prístup k trezoru organizácie $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Zariadenie" + }, + "view": { + "message": "Zobraziť" + }, + "invalidDateRange": { + "message": "Neplatný časový rozsah." + }, + "errorOccurred": { + "message": "Vyskytla sa chyba." + }, + "userAccess": { + "message": "Používateľský prístup" + }, + "userType": { + "message": "Typ používateľa" + }, + "groupAccess": { + "message": "Skupinový prístup" + }, + "groupAccessUserDesc": { + "message": "Upraviť skupiny, do ktorých patrí používateľ." + }, + "invitedUsers": { + "message": "Používatelia pozvaní." + }, + "resendInvitation": { + "message": "Znovu poslať pozvánku" + }, + "resendEmail": { + "message": "Znovu poslať e-mail" + }, + "hasBeenReinvited": { + "message": "$USER$ bol znovu pozvaný.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Potvrdiť" + }, + "confirmUser": { + "message": "Potvrdiť používateľa" + }, + "hasBeenConfirmed": { + "message": "$USER$ bol potvrdený.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Potvrdiť používateľov" + }, + "usersNeedConfirmed": { + "message": "Máte používateľov, ktorí prijali pozvanie, ale ešte ich musíte potvrdiť. Používatelia nebudú mať prístup k organizácii, kým nebudú potvrdení." + }, + "startDate": { + "message": "Počiatočný Dátum" + }, + "endDate": { + "message": "Dátum ukončenia" + }, + "verifyEmail": { + "message": "Overiť email" + }, + "verifyEmailDesc": { + "message": "Overte váš e-mail aby ste získali prístup k dodatočným funkciám." + }, + "verifyEmailFirst": { + "message": "Emailová adresa vášho účtu musí byť overená." + }, + "checkInboxForVerification": { + "message": "Skontrolujte si doručenú poštu, mali by ste obdržať odkaz pre verifikáciu." + }, + "emailVerified": { + "message": "Vaša emailová adresa bola overená." + }, + "emailVerifiedFailed": { + "message": "Overovanie zlyhalo. Skúste si odoslať nový verifikačný e-mail." + }, + "emailVerificationRequired": { + "message": "Vyžaduje sa overenie e-mailu" + }, + "emailVerificationRequiredDesc": { + "message": "Na používanie tejto funkcie musíte overiť svoj e-mail." + }, + "updateBrowser": { + "message": "Aktualizovať prehliadač" + }, + "updateBrowserDesc": { + "message": "Používate nepodporovaný prehliadač. Webový trezor nemusí úplne fungovať." + }, + "joinOrganization": { + "message": "Pripojte sa k organizácii" + }, + "joinOrganizationDesc": { + "message": "Obdržali ste pozvánku do vyššie menovanej Organizácie. Ak chcete pozvánku prijať, musíte sa prihlásiť alebo si vytvoriť nový Bitwarden účet." + }, + "inviteAccepted": { + "message": "Pozvánka prijatá" + }, + "inviteAcceptedDesc": { + "message": "Prístup k organizácii získate keď administrátor potvrdí vaše členstvo. Keď sa tak stane, pošleme vám email." + }, + "inviteAcceptFailed": { + "message": "Prijatie pozvánky zlyhalo. Požiadajte administrátora organizácie, aby vám poslal novú pozvánku." + }, + "inviteAcceptFailedShort": { + "message": "Nepodarilo sa prijať pozvánku. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Zapamätať si e-mail" + }, + "recoverAccountTwoStepDesc": { + "message": "Ak sa nemôžete dostať k svojmu účtu prostredníctvom normálneho dvojstupňového prihlásenia, môžete použiť záchranný kód a vypnúť dvojstupňové prihlasovanie do vášho účtu." + }, + "recoverAccountTwoStep": { + "message": "Získať prístup k účtu s dvojstupňovým prihlásením" + }, + "twoStepRecoverDisabled": { + "message": "Dvojstupňové prihlasovanie k vašemu účtu bolo vypnuté." + }, + "learnMore": { + "message": "Zistiť viac" + }, + "deleteRecoverDesc": { + "message": "Zadajte vašu emailovú adresu ak chcete obnoviť a zrušiť vaše konto." + }, + "deleteRecoverEmailSent": { + "message": "Ak váš účet existuje, zaslali sme vám email s ďalšími inštrukciami." + }, + "deleteRecoverConfirmDesc": { + "message": "Požiadali ste o zrušenie vášho Bitwarden účtu. Pre potvrdenie operácie kliknite nižšie." + }, + "myOrganization": { + "message": "Moja organizácia" + }, + "deleteOrganization": { + "message": "Odstrániť organizáciu" + }, + "deletingOrganizationContentWarning": { + "message": "Zadaním hlavného hesla potvrďte odstránenie položky $ORGANIZATION$ a všetkých súvisiacich údajov. Údaje trezora v položke $ORGANIZATION$ zahŕňajú:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Používateľské účty zostanú aktívne aj po odstránení, ale už nebudú spojené s touto organizáciou." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Odstránenie $ORGANIZATION$ je trvalé a nezvratné.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organizácia odstránená" + }, + "organizationDeletedDesc": { + "message": "Organizácia a všetky súvisiace dáta boli vymazané." + }, + "organizationUpdated": { + "message": "Organizácia aktualizovaná" + }, + "taxInformation": { + "message": "Daňové informácie" + }, + "taxInformationDesc": { + "message": "Prosím kontaktujte zákaznícku podporu ak chcete poskytnúť (alebo aktualizovať) daňové informácie pre potreby fakturácie." + }, + "billingPlan": { + "message": "Plán", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Navýšiť plán", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade your account to another plan be providing the information below. Please ensure that you have an active payment method added to the account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Faktúra #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Zobraziť Faktúru" + }, + "downloadInvoice": { + "message": "Stiahnuť Faktúru" + }, + "verifyBankAccount": { + "message": "Overenie bankového účtu" + }, + "verifyBankAccountDesc": { + "message": "Urobili sme dva mikro-vklady na váš bankový účet (môže to trvať 1-2 pracovné dni než sa objavia na účte). Zadajte tieto čiastky na overenie bankového účtu." + }, + "verifyBankAccountInitialDesc": { + "message": "Platba prostredníctvom bankového konta je dostupná len pre zákazníkov v Spojených štátoch. Budete musieť overiť svoj bankový účet. Urobíme dva mikro-vklady v najbližších 1-2 pracovných dňoch. Zadajte tieto čiastky na fakturačnej stránke organizácie pre overenie bankového účtu." + }, + "verifyBankAccountFailureWarning": { + "message": "Ak sa nepodarí overiť bankový účet, platba zlyhá a vaše predplatné bude zrušené." + }, + "verifiedBankAccount": { + "message": "Bankový účet overený." + }, + "bankAccount": { + "message": "Bankový účet" + }, + "amountX": { + "message": "Suma $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Smerovacie číslo", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Číslo účtu" + }, + "accountHolderName": { + "message": "Majiteľ účtu" + }, + "bankAccountType": { + "message": "Typ účtu" + }, + "bankAccountTypeCompany": { + "message": "Spoločnosť (firma)" + }, + "bankAccountTypeIndividual": { + "message": "Individuálne (osobné)" + }, + "enterInstallationId": { + "message": "Zadajte ID vašej inštalácie" + }, + "limitSubscriptionDesc": { + "message": "Nastavte limit počtu používateľov predplatného. Po jeho dosiahnutí nebudete môcť pozvať nových používateľov." + }, + "maxSeatLimit": { + "message": "Maximálny počet miest (voliteľné)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Maximálne náklady na miesto" + }, + "addSeats": { + "message": "Pridať licencie", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Odobrať licencie", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Úprava predplatného bude mať za následok proporcionálnu zmenu celkového účtu. Ak počet nových odporúčaných používateľov presiahne počet miest vo vašom predplatnom, okamžite dostanete primeraný poplatok za ďalších používateľov." + }, + "subscriptionUserSeats": { + "message": "Vaše predplatné zahŕňa $COUNT$ používateľov.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Obmedziť predplatné (voliteľné)" + }, + "subscriptionSeats": { + "message": "Predplatené miesta" + }, + "subscriptionUpdated": { + "message": "Predplatené bolo aktualizované" + }, + "additionalOptions": { + "message": "Ďalšie možnosti" + }, + "additionalOptionsDesc": { + "message": "Ak chcete získať ďalšiu pomoc pri správe svojho predplatného, obráťte sa na zákaznícku podporu." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Úprava predplatného bude mať za následok proporcionálnu zmenu celkového účtu. Ak počet nových odporúčaných používateľov presiahne počet miest vo vašom predplatnom, okamžite dostanete primeraný poplatok za ďalších používateľov." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Úprava predplatného bude mať za následok proporcionálnu zmenu celkového účtu. Ak počet nových odporúčaných používateľov presiahne počet miest vo vašom predplatnom, okamžite dostanete primeraný poplatok za ďalších používateľov, kým sa naplní obmedzenie $MAX$ miest.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Nemôžete pozvať viac ako $COUNT$ používateľov bez navýšenia vášho plánu.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Nemôžete pozvať viac ako $COUNT$ používateľov bez navýšenia vášho plánu. Pre navýšenie plánu kontaktujte zákaznícku podporu.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Úprava predplatného bude mať za následok proporcionálnu zmenu celkového účtu. Bez zvýšenia počtu miest na predplatné nemôžete pozvať viac ako $COUNT$ používateľov.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Pridať licencií" + }, + "seatsToRemove": { + "message": "Odobrať licencií" + }, + "seatsAddNote": { + "message": "Pridaním používateľských licencií sa zmení účtovaná suma a okamžite sa vykoná platba prostredníctvom nastavenej platobnej metódy. Prvá platba bude proporcionálna zvyšku súčasného fakturačného obdobia." + }, + "seatsRemoveNote": { + "message": "Odstránením užívateľských licencií sa zmení účtovaná suma. Suma ktorú ste zaplatili navyše bude refundovaná vo forme kreditu v následujúcom fakturačnom období." + }, + "adjustedSeats": { + "message": "Upravené o $AMOUNT$ používateľských licencií.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Kľúč aktualizovaný" + }, + "updateKeyTitle": { + "message": "Aktualizovať kľúč" + }, + "updateEncryptionKey": { + "message": "Aktualizovať šifrovací kľúč" + }, + "updateEncryptionKeyShortDesc": { + "message": "Stále používate starý šifrovací systém." + }, + "updateEncryptionKeyDesc": { + "message": "Prešli sme na väčšie šifrovacie kľúče, ktoré poskytujú lepšiu bezpečnosť a prístup k novým funkciám. Aktualizácia šifrovacieho kľúča je rýchla a jednoduchá. Jednoducho zadajte vaše hlavné heslo nižšie. Táto aktualizácia bude po nejakom čase povinná." + }, + "updateEncryptionKeyWarning": { + "message": "Po aktualizácii šifrovacieho kľúča budete požiadaní o opätovné prihlásenie do všetkých Bitwarden aplikácii ktoré momentálne používate (napríklad mobilné aplikácie, alebo rozšírenia v prehliadači). Ak sa opätovne neprihlásite (touto operáciou sa stiahnu nové šifrovacie kľúče), mohlo by to viesť k poškodeniu uložených dát. Pokúsime sa odhlásiť vás automaticky, ale môže to chvíľu trvať." + }, + "updateEncryptionKeyExportWarning": { + "message": "Všetky uložené šifrované exporty sa tiež stanú neplatnými." + }, + "subscription": { + "message": "Predplatné" + }, + "loading": { + "message": "Načítavanie" + }, + "upgrade": { + "message": "Aktualizovať" + }, + "upgradeOrganization": { + "message": "Aktualizovať organizáciu" + }, + "upgradeOrganizationDesc": { + "message": "Táto funkcia nie je dostupná pre bezplatné organizácie. Prejdite na platený plán a odomknite ďalšie funkcie." + }, + "createOrganizationStep1": { + "message": "Vytvoriť organizáciu: Krok 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Pred tým, než vytvoríte organizáciu, musíte si vytvoriť bezplatný osobný účet." + }, + "refunded": { + "message": "Vrátené" + }, + "nothingSelected": { + "message": "Nič ste nevybrali." + }, + "acceptPolicies": { + "message": "Označením tohto políčka súhlasíte s nasledovným:" + }, + "acceptPoliciesError": { + "message": "Neboli akceptované Podmienky používania a zásady Ochrany osobných údajov." + }, + "termsOfService": { + "message": "Podmienky používania" + }, + "privacyPolicy": { + "message": "Zásady ochrany osobných údajov" + }, + "filters": { + "message": "Filtre" + }, + "vaultTimeout": { + "message": "Časový limit pre trezor" + }, + "vaultTimeoutDesc": { + "message": "Vyberte kedy vyprší časový limit trezora a vykoná sa zvolená akcia." + }, + "oneMinute": { + "message": "1 minúta" + }, + "fiveMinutes": { + "message": "5 minút" + }, + "fifteenMinutes": { + "message": "15 minút" + }, + "thirtyMinutes": { + "message": "30 minút" + }, + "oneHour": { + "message": "1 hodina" + }, + "fourHours": { + "message": "4 hodiny" + }, + "onRefresh": { + "message": "Pri obnovení stránky" + }, + "dateUpdated": { + "message": "Aktualizované", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Heslo bolo aktualizované", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organizácia je vypnutá." + }, + "licenseIsExpired": { + "message": "Licencia vypršala." + }, + "updatedUsers": { + "message": "Používatelia aktualizovaní" + }, + "selected": { + "message": "Vybraté" + }, + "ownership": { + "message": "Vlastníctvo" + }, + "whoOwnsThisItem": { + "message": "Kto vlastní túto položku?" + }, + "strong": { + "message": "Silné", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Dobré", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Slabé", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Veľmi slabé", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Slabé hlavné heslo" + }, + "weakMasterPasswordDesc": { + "message": "Hlavné heslo ktoré ste zadali je slabé. Mali by ste použiť silné heslo (alebo frázu) aby ste spoľahlivo ochránili váš Bitwarden účet. Naozaj chcete použiť toto heslo?" + }, + "rotateAccountEncKey": { + "message": "Obnoviť aj môj šifrovací kľúč k účtu" + }, + "rotateEncKeyTitle": { + "message": "Obnoviť šifrovací kľúč" + }, + "rotateEncKeyConfirmation": { + "message": "Naozaj chcete obnoviť váš šifrovací kľúč k účtu?" + }, + "attachmentsNeedFix": { + "message": "Táto položka má staré prílohy, ktoré je potrebné opraviť." + }, + "attachmentFixDesc": { + "message": "Táto stará príloha musí byť opravená. Kliknite ak sa chcete dozvedieť viac." + }, + "fix": { + "message": "Opraviť", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "V trezore máte staré prílohy ktoré musia byť opravené pred tým, než budete môcť obnoviť šifrovací kľúč k účtu." + }, + "yourAccountsFingerprint": { + "message": "Fráza odtlačku vašeho účtu", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Na zabezpečenie integrity šifrovacích kľúčov, skontrolujte frázu odtlačku používateľa pred tým než budete pokračovať.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Nepýtať sa pozvaných používateľov na overenie frázy odtlačku. (neodporúča sa)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Zadarmo", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API kľúč" + }, + "apiKeyDesc": { + "message": "Váš API kľúč je možné použiť na autentifikáciu do verejného API Bitwardenu." + }, + "apiKeyRotateDesc": { + "message": "Obnovením kľúča API zneplatníte predchádzajúci API kľúč. API kľúč môžete obnoviť ak si myslíte že súčasný kľúč už nie je bezpečný." + }, + "apiKeyWarning": { + "message": "API kľúč má plný prístup k organizácii. To by by ste ho udržať v bezpečí." + }, + "userApiKeyDesc": { + "message": "Váš API kľúč je možné použiť na autentifikáciu v API Bitwardenu." + }, + "userApiKeyWarning": { + "message": "Váš API kľúč je alternatívnym autentifikačným mechanizmom. Mali by ste si ho udržať v tajnosti." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 klientské poverenia", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Zobraziť API kľúč" + }, + "rotateApiKey": { + "message": "Obnoviť API kľúč" + }, + "selectOneCollection": { + "message": "Musíte vybrať aspoň jednu zbierku." + }, + "couldNotChargeCardPayInvoice": { + "message": "Nepodarilo sa nám vykonať platbu pomocou vašej karty. Prosím pozrite si a zaplaťte neuhradenú faktúru nižšie." + }, + "inAppPurchase": { + "message": "Nákupy v aplikácii" + }, + "cannotPerformInAppPurchase": { + "message": "Tato akcia sa nedá vykonať ak používate platbu pomocou nákupu v aplikácii." + }, + "manageSubscriptionFromStore": { + "message": "Predplatné musíte spravovať v obchode kde ste vykonali nákup cez aplikáciu." + }, + "minLength": { + "message": "Minimálna dĺžka" + }, + "clone": { + "message": "Klonovať" + }, + "masterPassPolicyDesc": { + "message": "Nastavte minimálne požiadavky pre silu hlavného hesla." + }, + "twoStepLoginPolicyDesc": { + "message": "Požadujte dvojstupňové prihlásenie pre osobné účty." + }, + "twoStepLoginPolicyWarning": { + "message": "Členovia organizácie, ktorí nie su vlastníci alebo administratori a ktorí nemajú zapnuté dvojstupňové prihlásenie budú odstranení z organizácie a obdržia email s informáciou o tejto zmene." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Ste členom organizácie, ktorá vyžaduje dvojstupňové prihlásenie do vášho použivateľského účtu. Ak zakážete všetky formy dvojstupňového prihlasovania, budete automaticky odstránený z týchto organizácií." + }, + "passwordGeneratorPolicyDesc": { + "message": "Zvoľte minimálne požiadavky pre nastavenie generátora hesiel." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Jedno alebo viac nastavení organizácie ovplyvňujú vaše nastavenia generátora." + }, + "masterPasswordPolicyInEffect": { + "message": "Jedno alebo viac pravidiel organizácie požadujú aby vaše hlavné heslo spĺňalo nasledujúce požiadavky:" + }, + "policyInEffectMinComplexity": { + "message": "Minimálna úroveň zložitosti $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimálna dĺžka $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Obsahuje aspoň jedno veľké písmeno" + }, + "policyInEffectLowercase": { + "message": "Obsahuje aspoň jedno malé písmeno" + }, + "policyInEffectNumbers": { + "message": "Obsahuje aspoň jednu číslicu" + }, + "policyInEffectSpecial": { + "message": "Obsahuje aspoň jeden z následujúcich špeciálnych znakov $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Vaše nové heslo nespĺňa pravidlá." + }, + "minimumNumberOfWords": { + "message": "Minimálny počet slov" + }, + "defaultType": { + "message": "Východzí typ" + }, + "userPreference": { + "message": "Nastaví používateľ" + }, + "vaultTimeoutAction": { + "message": "Akcia pri vypršaní času pre trezor" + }, + "vaultTimeoutActionLockDesc": { + "message": "Uzamknutý trezor sa dá odomknúť opätovným zadaním hlavného hesla." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Odlhásený trezor bude vyžadovať opätovné prihlásenie aby ste k nemu mohli pristupovať." + }, + "lock": { + "message": "Uzamknúť", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Kôš", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Hľadať v koši" + }, + "permanentlyDelete": { + "message": "Natrvalo Odstrániť" + }, + "permanentlyDeleteSelected": { + "message": "Natrvalo odstrániť vybrané položky" + }, + "permanentlyDeleteItem": { + "message": "Natrvalo odstrániť položku" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Naozaj chcete natrvalo odstrániť túto položku?" + }, + "permanentlyDeletedItem": { + "message": "Položka natrvalo odstránená" + }, + "permanentlyDeletedItems": { + "message": "Položky natrvalo odstránené" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Vybrali ste $COUNT$ položiek na trvalé odstránenie. Ste si istý, že chcete natrvalo odstrániť všetky tieto položky?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Položka $ID$ natrvalo odstránená.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Obnoviť" + }, + "restoreSelected": { + "message": "Obnoviť zvolené" + }, + "restoreItem": { + "message": "Obnoviť položku" + }, + "restoredItem": { + "message": "Obnovená položka" + }, + "restoredItems": { + "message": "Obnovené položky" + }, + "restoreItemConfirmation": { + "message": "Naozaj chcete obnoviť tieto položky?" + }, + "restoreItems": { + "message": "Obnoviť položky" + }, + "restoreSelectedItemsDesc": { + "message": "Vybrali ste $COUNT$ položiek na obnovenie. Ste si istý, že chcete obnoviť všetky tieto položky?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Položka $ID$ obnovená.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Odhlásenie bude vyžadovať online prihlásenie po vypršaní časového limitu. Naozaj chcete použiť toto nastavenie?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Potvrdenie akcie pre vypršaný časový limit" + }, + "hidePasswords": { + "message": "Skryť heslá" + }, + "countryPostalCodeRequiredDesc": { + "message": "Tieto informácie potrebujeme iba pre výpočet dane a pre finančné reporty." + }, + "includeVAT": { + "message": "Zahrnúť informáciu o DPH (voliteľné)" + }, + "taxIdNumber": { + "message": "Číslo ID pre DPH" + }, + "taxInfoUpdated": { + "message": "Daňové informácie aktualizované." + }, + "setMasterPassword": { + "message": "Nastaviť hlavné heslo" + }, + "ssoCompleteRegistration": { + "message": "Aby ste dokončili nastavenie prihlasovacieho portálu (SSO), prosím nastavte hlavné heslo na prístup a ochranu vášho trezora." + }, + "identifier": { + "message": "Identifikátor" + }, + "organizationIdentifier": { + "message": "Identifikátor organizácie" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Prihláste sa prostredníctvom jednotného prihlasovania (SSO) vašej organizácie. Najskôr zadajte identifikátor vašej organizácie." + }, + "enterpriseSingleSignOn": { + "message": "Prihlásenie cez prihlasovací formulár spoločnosti (SSO)" + }, + "ssoHandOff": { + "message": "Teraz môžete zavrieť túto kartu a pokračovať v rozšírení." + }, + "includeAllTeamsFeatures": { + "message": "Všetky funkcie verzie pre Tímy, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO prihlásenie cez SAML2.0 a OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Pravidlá spoločnosti" + }, + "ssoValidationFailed": { + "message": "Overenie cez prihlasovací portál (SSO) zlyhalo" + }, + "ssoIdentifierRequired": { + "message": "Pole identifikátora organizácie je povinné." + }, + "unlinkSso": { + "message": "Odpojiť SSO" + }, + "unlinkSsoConfirmation": { + "message": "Ste si istý, že chcete odpojiť SSO pre túto organizáciu?" + }, + "linkSso": { + "message": "Prepojiť SSO" + }, + "singleOrg": { + "message": "Jedna organizácia" + }, + "singleOrgDesc": { + "message": "Zakázať používateľom stať sa členmi inej organizácie." + }, + "singleOrgBlockCreateMessage": { + "message": "Vaša súčasná organizácia má pravidlo, ktoré vám nedovoľuje pripojiť sa k viac než jednej organizácii. Kontaktujte, prosím, administrátorov vašej organizácie alebo sa prihláste prostredníctvom iného Bitwarden účtu." + }, + "singleOrgPolicyWarning": { + "message": "Členovia organizácie, ktorí nie sú vlastníkmi alebo administrátormi a už sú členmi inej organizácie, budú odstránení z vašej organizácie." + }, + "requireSso": { + "message": "Overovanie prostredníctvom jednotného prihlasovania (SSO)" + }, + "requireSsoPolicyDesc": { + "message": "Vyžadovať od používateľov prihlásenie prostredníctvom jednotného prihlasovania (SSO) spoločnosti." + }, + "prerequisite": { + "message": "Predpoklad" + }, + "requireSsoPolicyReq": { + "message": "Pravidlá spoločnosti o jednej organizácii musia byť povolené pred aktivovaním tohto pravidla." + }, + "requireSsoPolicyReqError": { + "message": "Pravidlo jednej organizácie nie je povolené." + }, + "requireSsoExemption": { + "message": "Vlastníci a administrátori organizácie sú vyňatí z uplatnenia tohto pravidla." + }, + "sendTypeFile": { + "message": "Súbor" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Vytvoriť nový Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Upraviť Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send vytvorený", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Send upravený", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send zmazaný", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Zmazať Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Naozaj chcete odstrániť tento Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Aký typ Send to je?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Dátum vymazania" + }, + "deletionDateDesc": { + "message": "Odoslanie bude natrvalo odstránené v zadaný dátum a čas.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Dátum exspirácie" + }, + "expirationDateDesc": { + "message": "Ak je nastavené, prístup k tomuto Odoslaniu vyprší v zadaný dátum a čas.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximálny počet prístupov" + }, + "maxAccessCountDesc": { + "message": "Ak je nastavené, používatelia už nebudú mať prístup k tomuto Sendu po dosiahnutí maximálneho počtu prístupov.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Súčasný počet prístupov" + }, + "sendPasswordDesc": { + "message": "Voliteľne môžete vyžadovať heslo pre používateľov na prístup k tomuto odoslaniu.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Zabezpečená poznámka o tomto Odoslaní.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Vypnuté" + }, + "sendLink": { + "message": "Odkaz na Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Kopírovať odkaz na Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Odstrániť Heslo" + }, + "removedPassword": { + "message": "Heslo odstránené" + }, + "removePasswordConfirmation": { + "message": "Naozaj chcete odstrániť heslo?" + }, + "hideEmail": { + "message": "Skryť moju emailovú adresu pred príjemcami." + }, + "disableThisSend": { + "message": "Vypnúť toto Odoslanie, aby k nemu nikto nemal prístup.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Všetky Sendy" + }, + "maxAccessCountReached": { + "message": "Bol dosiahnutý maximálny počet prístupov", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Čakajúce odstránenie" + }, + "expired": { + "message": "Expirované" + }, + "searchSends": { + "message": "Hľadať Sendy", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Tento Send je chránený heslom. Pre pokračovanie zadajte prosím heslo.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Neviete heslo? Požiadajte odosielateľa o heslo potrebné k prístupu k tomuto Sendu.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Tento Send je normálne skrytý. Tlačidlom nižšie môžete prepnúť jeho viditeľnosť.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Stiahnuť súbor" + }, + "sendAccessUnavailable": { + "message": "Odoslanie, ku ktorému sa pokúšate získať prístup, neexistuje alebo už nie je k dispozícii.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Súbor asociovaný s funkciou Send sa nenašiel.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Neexistujú žiadne Sendy na zobrazenie.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Núdzový prístup" + }, + "emergencyAccessDesc": { + "message": "Udeľujte a spravujte núdzový prístup pre dôveryhodné kontakty. Dôveryhodné kontakty môžu v prípade núdze požadovať prístup k zobrazeniu alebo prevzatiu vášho účtu. Navštívte našu stránku pomoci, kde nájdete ďalšie informácie a podrobnosti o tom, ako funguje zdieľanie zero knowledge." + }, + "emergencyAccessOwnerWarning": { + "message": "Ste vlastníkom jednej alebo viacerých organizácií. Ak poskytnete prístup na prevzatie núdzového kontaktu, bude môcť po prevzatí využiť všetky vaše povolenia ako vlastník." + }, + "trustedEmergencyContacts": { + "message": "Dôveryhodné núdzové kontakty" + }, + "noTrustedContacts": { + "message": "Ešte nemáte pridaný žiadny núdzový kontakt, na začiatok pozvite dôveryhodný kontakt." + }, + "addEmergencyContact": { + "message": "Pridať núdzový kontakt" + }, + "designatedEmergencyContacts": { + "message": "Označený ako núdzový kontakt" + }, + "noGrantedAccess": { + "message": "Ešte vás nikto neoznačil ako núdzový kontakt." + }, + "inviteEmergencyContact": { + "message": "Pozvať núdzový kontakt" + }, + "editEmergencyContact": { + "message": "Upraviť núdzový kontakt" + }, + "inviteEmergencyContactDesc": { + "message": "Pozvite nový núdzový kontakt zadaním jej e-mailovej adresy účtu Bitwarden nižšie. Ak už nemajú konto Bitwarden, zobrazí sa výzva na vytvorenie nového účtu." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Núdzový prístup bol iniciovaný" + }, + "emergencyAccessRecoveryApproved": { + "message": "Núdzový prístup schválený" + }, + "viewDesc": { + "message": "Môže zobraziť všetky položky vo vašom trezore." + }, + "takeover": { + "message": "Prevzatie" + }, + "takeoverDesc": { + "message": "Môže resetovať váš účet s novým hlavným heslom." + }, + "waitTime": { + "message": "Čas čakania" + }, + "waitTimeDesc": { + "message": "Čas potrebný na automatické udelenie prístupu." + }, + "oneDay": { + "message": "1 deň" + }, + "days": { + "message": "$DAYS$ dní", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Pozvaný používateľ." + }, + "acceptEmergencyAccess": { + "message": "Boli ste pozvaný, aby ste sa stali núdzovým kontaktom pre používateľa uvedeného vyššie. Ak chcete prijať pozvanie, musíte sa prihlásiť alebo vytvoriť nový účet Bitwarden." + }, + "emergencyInviteAcceptFailed": { + "message": "Nepodarilo sa prijať pozvanie. Požiadajte používateľa o odoslanie novej pozvánky." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Nepodarilo sa prijať pozvanie. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "K núdzovým možnostiam pre tohto používateľa máte prístup po potvrdení vašej totožnosti. Keď sa to stane, pošleme vám e-mail." + }, + "requestAccess": { + "message": "Požiadať o prístup" + }, + "requestAccessConfirmation": { + "message": "Naozaj chcete požiadať o núdzový prístup? Prístup vám bude poskytnutý po $WAITTIME$ dni(dňoch) alebo vždy, keď používateľ schváli žiadosť manuálne.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Núdzový prístup bol vyžiadaný pre $USER$. Keď bude možné pokračovať, upozorníme vás e-mailom.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Schváliť" + }, + "reject": { + "message": "Odmietnuť" + }, + "approveAccessConfirmation": { + "message": "Naozaj chcete schváliť núdzový prístup? To umožní používateľovi $USER$ $ACTION$ váš účet.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Núdzový prístup schválený." + }, + "emergencyRejected": { + "message": "Núdzový prístup odmietnutý" + }, + "passwordResetFor": { + "message": "Resetovanie hesla pre $USER$. Teraz sa môžete prihlásiť s novým heslom.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Osobné vlastníctvo" + }, + "personalOwnershipPolicyDesc": { + "message": "Požadovať, aby používatelia na uloženie položiek trezoru organizácie odstránili osobné vlastníctvo." + }, + "personalOwnershipExemption": { + "message": "Vlastníci a administrátori organizácie sú vyňatí z uplatnenia tohto pravidla." + }, + "personalOwnershipSubmitError": { + "message": "Z dôvodu podnikovej politiky máte obmedzené ukladanie položiek do osobného trezora. Zmeňte možnosť vlastníctvo na organizáciu a vyberte si z dostupných zbierok." + }, + "disableSend": { + "message": "Zakázať Send" + }, + "disableSendPolicyDesc": { + "message": "Nedovoľte používateľom vytvárať alebo upravovať funkciu Bitwarden Send. Odstránenie existujúceho Send je stále povolené.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Používatelia organizácie, ktorí môžu spravovať politiku organizácie, sú vyňatí z uplatňovania týchto zásad." + }, + "sendDisabled": { + "message": "Funkcia Send zakázaná", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Z dôvodu podnikovej politiky môžete odstrániť iba existujúci Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Možnosti Sendu", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Nastavte možnosti pre vytváranie a úpravy Sendov.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Používatelia organizácie, ktorí môžu spravovať politiku organizácie, sú vyňatí z uplatňovania týchto zásad." + }, + "disableHideEmail": { + "message": "Nedovoľte používateľom skryť svoju e-mailovú adresu pred príjemcami pri vytváraní alebo úpravách Sendu.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "V súčasnosti platia nasledujúce pravidlá organizácie:" + }, + "sendDisableHideEmailInEffect": { + "message": "Používatelia nemajú povolené skryť svoju e-mailovú adresu pred príjemcami pri vytváraní alebo úpravách Sendu.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Upravená politika $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Cenník" + }, + "estimatedTax": { + "message": "Odhadovaná daň" + }, + "custom": { + "message": "Vlastné" + }, + "customDesc": { + "message": "Umožňuje podrobnejšiu kontrolu nad povoleniami používateľov pre pokročilé konfigurácie." + }, + "permissions": { + "message": "Povolenia" + }, + "accessEventLogs": { + "message": "Prístup k protokolom udalostí" + }, + "accessImportExport": { + "message": "Prístup k importu/exportu" + }, + "accessReports": { + "message": "Prístup k reportom" + }, + "missingPermissions": { + "message": "Na vykonanie tejto akcie vám chýbajú potrebné povolenia." + }, + "manageAllCollections": { + "message": "Spravovať všetky zbierky" + }, + "createNewCollections": { + "message": "Vytvoriť novú zbierku" + }, + "editAnyCollection": { + "message": "Upraviť ľubovoľnú zbierku" + }, + "deleteAnyCollection": { + "message": "Odstrániť ľubovoľnú zbierku" + }, + "manageAssignedCollections": { + "message": "Spravovať priradené zbierky" + }, + "editAssignedCollections": { + "message": "Upraviť priradené zbierky" + }, + "deleteAssignedCollections": { + "message": "Odstrániť priradené zbierky" + }, + "manageGroups": { + "message": "Spravovať skupiny" + }, + "managePolicies": { + "message": "Spravovať politiky" + }, + "manageSso": { + "message": "Spravovať SSO" + }, + "manageUsers": { + "message": "Spravovať používateľov" + }, + "manageResetPassword": { + "message": "Správa resetovania hesla" + }, + "disableRequiredError": { + "message": "Pred zakázaním tejto zásady musíte ručne vypnúť zásadu $POLICYNAME$.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Politika organizácie ovplyvňuje vaše možnosti vlastníctva." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "Zásady organizácie zakázali importovanie položiek do vášho osobného trezoru." + }, + "personalOwnershipCheckboxDesc": { + "message": "Zakázať osobné vlastníctvo pre používateľov organizácie" + }, + "textHiddenByDefault": { + "message": "Pri prístupe k Odoslaniu, predvolene skryť text", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Priateľský názov pre popísanie tohto Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Text, ktorý chcete odoslať." + }, + "sendFileDesc": { + "message": "Súbor, ktorý chcete odoslať." + }, + "copySendLinkOnSave": { + "message": "Kopírovať odkaz na zdieľanie tohto Send do schránky počas ukladania." + }, + "sendLinkLabel": { + "message": "Odkaz na Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send ľahko a bezpečne prenáša citlivé dočasné informácie ostatným.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Viac informácií o", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Zdieľajte text alebo súbory priamo s kýmkoľvek." + }, + "sendVaultCardLearnMore": { + "message": "Ďalšie informácie", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "pozrite", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "ako to funguje", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "alebo", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "to skúste teraz", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "alebo", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "zaregistrujte", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "skúste to ešte dnes.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden používateľ $USER_IDENTIFIER$ zdieľal nasledujúce s vami", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Používateľ Bitwardenu, ktorý vytvoril tento Send, skryl e-mailové adresy pred príjemcami. Mali by ste zvážiť, či dôverujete zdrojovému odkazu pred jeho použitím alebo stiahnutím jeho obsahu.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Uvedený dátum exspirácie nie je platný." + }, + "deletionDateIsInvalid": { + "message": "Uvedený dátum odstránenia nie je platný." + }, + "expirationDateAndTimeRequired": { + "message": "Vyžaduje sa dátum a čas vypršania platnosti." + }, + "deletionDateAndTimeRequired": { + "message": "Vyžaduje sa dátum a čas odstránenia." + }, + "dateParsingError": { + "message": "Pri ukladaní dátumov odstránenia a vypršania platnosti sa vyskytla chyba." + }, + "webAuthnFallbackMsg": { + "message": "Na overenie 2FA, prosím, kliknite na tlačidlo nižšie." + }, + "webAuthnAuthenticate": { + "message": "Overiť cez WebAuthn" + }, + "webAuthnNotSupported": { + "message": "Tento prehliadač nepodporuje WebAuthn." + }, + "webAuthnSuccess": { + "message": "WebAuthn bol úspešne overený! Túto kartu môžete zavrieť." + }, + "hintEqualsPassword": { + "message": "Nápoveda pre heslo nemôže byť rovnaká ako heslo." + }, + "enrollPasswordReset": { + "message": "Zaregistrovať sa pre obnovu hesla" + }, + "enrolledPasswordReset": { + "message": "Zaregistrovaný pre obnovu hesla" + }, + "withdrawPasswordReset": { + "message": "Odhlásiť sa z obnovy hesla" + }, + "enrollPasswordResetSuccess": { + "message": "Registrácia úspešná!" + }, + "withdrawPasswordResetSuccess": { + "message": "Odhlásenie úspešné!" + }, + "eventEnrollPasswordReset": { + "message": "Používateľ $ID$ sa registroval na pomoc s obnovou hesla.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Používateľ $ID$ sa odhlásil z pomoci obnovy hesla.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Obnoviť hlavné heslo pre používateľa $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Resetovať odkaz SSO pre používateľa $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Obnoviť heslo" + }, + "resetPasswordLoggedOutWarning": { + "message": "Pokračovaním sa $NAME$ odhlási z aktuálnej relácie a bude sa musieť znova prihlásiť. Aktívne relácie na iných zariadeniach môžu zostať aktívne až jednu hodinu.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "tento používateľ" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Jedno alebo viac pravidiel organizácie požadujú, aby hlavné heslo spĺňalo nasledujúce požiadavky:" + }, + "resetPasswordSuccess": { + "message": "Heslo bolo úspešne obnovené!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Registrácia umožní správcom organizácie zmeniť vaše hlavné heslo. Naozaj sa chcete zaregistrovať?" + }, + "resetPasswordPolicy": { + "message": "Hlavné heslo obnovené" + }, + "resetPasswordPolicyDescription": { + "message": "Umožní správcom v organizácii resetovať hlavné heslo používateľov organizácie." + }, + "resetPasswordPolicyWarning": { + "message": "Používatelia v organizácii sa budú musieť sami zaregistrovať alebo byť automaticky zaregistrovaní predtým, ako budú môcť správcovia resetovať ich hlavné heslo." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatická registrácia" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Všetci používatelia budú po prijatí pozvánky automaticky zaregistrovaní na obnovenie hesla." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Používatelia, ktorí už v organizácii sú, nebudú spätne zaregistrovaní na obnovenie hesla. Budú sa musieť sami zaregistrovať predtým, ako im administrátori obnovia hlavné heslo." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Automaticky zaregistrovať nových používateľov" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Táto organizácia má podnikovú politiku, ktorá vás automaticky zaregistruje na obnovenie hesla. Registrácia umožní správcom organizácie zmeniť vaše hlavné heslo." + }, + "resetPasswordOrgKeysError": { + "message": "Prázdná odpoveď Organization Keys" + }, + "resetPasswordDetailsError": { + "message": "Odpoveď na obnovenie hesla je prázdna" + }, + "trashCleanupWarning": { + "message": "Položky ktoré boli v Koši viac ako 30 dní budú automaticky vymazané." + }, + "trashCleanupWarningSelfHosted": { + "message": "Položky v Koši budú po nejakej dobe automaticky vymazané." + }, + "passwordPrompt": { + "message": "Znova zadajte hlavné heslo" + }, + "passwordConfirmation": { + "message": "Potvrdenie hlavného hesla" + }, + "passwordConfirmationDesc": { + "message": "Táto akcia je chránená. Ak chcete pokračovať, znova zadajte hlavné heslo a overte svoju totožnosť." + }, + "reinviteSelected": { + "message": "Znovu poslať pozvánky" + }, + "noSelectedUsersApplicable": { + "message": "Táto akcia sa nevzťahuje na žiadneho z vybraných používateľov." + }, + "removeUsersWarning": { + "message": "Naozaj chcete odstrániť týchto používateľov? Dokončenie procesu môže trvať niekoľko sekúnd a nie je možné ho prerušiť ani zrušiť." + }, + "theme": { + "message": "Motív" + }, + "themeDesc": { + "message": "Zvoľte motív pre webový trezor." + }, + "themeSystem": { + "message": "Použiť systémový motív" + }, + "themeDark": { + "message": "Tmavý" + }, + "themeLight": { + "message": "Svetlý" + }, + "confirmSelected": { + "message": "Potvrdiť vybrané" + }, + "bulkConfirmStatus": { + "message": "Stav hromadnej akcie" + }, + "bulkConfirmMessage": { + "message": "Úspešne potvrdené." + }, + "bulkReinviteMessage": { + "message": "Opätovné pozvanie úspešné." + }, + "bulkRemovedMessage": { + "message": "Odstránenie úspešné" + }, + "bulkFilteredMessage": { + "message": "Vylúčené, neplatí pre túto akciu." + }, + "fingerprint": { + "message": "Odtlačok prsta" + }, + "removeUsers": { + "message": "Odstrániť používateľov" + }, + "error": { + "message": "Chyba" + }, + "resetPasswordManageUsers": { + "message": "Správa používateľov musí byť povolená aj s oprávnením spravovať obnovenie hesla" + }, + "setupProvider": { + "message": "Nastavenie poskytovateľa" + }, + "setupProviderLoginDesc": { + "message": "Boli ste pozvaný, aby ste nastavili nového poskytovateľa. Ak chcete pokračovať, musíte sa prihlásiť alebo si vytvoriť nový Bitwarden účet." + }, + "setupProviderDesc": { + "message": "Na dokončenie nastavenia poskytovateľa zadajte nižšie uvedené údaje. V prípade akýchkoľvek otázok kontaktujte zákaznícku podporu." + }, + "providerName": { + "message": "Názov poskytovateľa" + }, + "providerSetup": { + "message": "Poskytovateľ bol nastavený." + }, + "clients": { + "message": "Klienti" + }, + "providerAdmin": { + "message": "Správca poskytovateľa" + }, + "providerAdminDesc": { + "message": "Používateľ s najvyšším prístupom, ktorý môže spravovať všetky aspekty vášho poskytovateľa, ako aj prístup a správu klientskych organizácií." + }, + "serviceUser": { + "message": "Používateľ služby" + }, + "serviceUserDesc": { + "message": "Používatelia služby môžu pristupovať a spravovať všetky klientske organizácie." + }, + "providerInviteUserDesc": { + "message": "Pozvite používateľov k vášmu poskytovateľovi zadaním emailovej adresy ich Bitwarden účtu nižšie. Ak ešte nemajú Bitwarden účet, budú vyzvaní na jeho vytvorenie." + }, + "joinProvider": { + "message": "Pripojte sa k poskytovateľovi" + }, + "joinProviderDesc": { + "message": "Boli ste pozvaný, aby ste sa pridali k poskytovateľovi uvedenému vyššie. Ak chcete pozvánku prijať, musíte sa prihlásiť alebo si vytvoriť nový Bitwarden účet." + }, + "providerInviteAcceptFailed": { + "message": "Nie je možné prijať pozvanie. Požiadajte správcu poskytovateľa o zaslanie novej pozvánky." + }, + "providerInviteAcceptedDesc": { + "message": "Prístup k poskytovateľovi získate, keď administrátor potvrdí vaše členstvo. Keď sa tak stane, pošleme vám e-mail." + }, + "providerUsersNeedConfirmed": { + "message": "Máte používateľov, ktorí prijali pozvanie, ale ešte ich musíte potvrdiť. Používatelia nebudú mať prístup k poskytovateľovi, kým nebudú potvrdení." + }, + "provider": { + "message": "Poskytovateľ" + }, + "newClientOrganization": { + "message": "Nová klientská organizácia" + }, + "newClientOrganizationDesc": { + "message": "Vytvorí novú klientsku organizáciu, ktorá bude s vami spojená ako poskytovateľ. K tejto organizácii budete mať prístup a budete ju môcť spravovať." + }, + "addExistingOrganization": { + "message": "Pridať existujúcu organizáciu" + }, + "myProvider": { + "message": "Môj poskytovateľ" + }, + "addOrganizationConfirmation": { + "message": "Naozaj chcete pridať $ORGANIZATION$ ako klienta $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organizácia bola úspešne pridaná k poskytovateľovi" + }, + "accessingUsingProvider": { + "message": "Prístup k organizácii pomocou poskytovateľa $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Poskytovateľ je zakázaný." + }, + "providerUpdated": { + "message": "Poskytovateľ aktualizovaný" + }, + "yourProviderIs": { + "message": "Váš poskytovateľ je $PROVIDER$. Má administratívne a fakturačné práva pre vašu organizáciu.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "Organizácia $ORGANIZATION$ bola odpojená od vášho poskytovateľa.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Naozaj chcete túto organizáciu odpojiť? Organizácia bude naďalej existovať, ale už nebude spravovaná poskytovateľom." + }, + "add": { + "message": "Pridať" + }, + "updatedMasterPassword": { + "message": "Hlavné heslo aktualizované" + }, + "updateMasterPassword": { + "message": "Aktualizovať hlavné heslo" + }, + "updateMasterPasswordWarning": { + "message": "Vaše hlavné heslo nedávno zmenil správca vo vašej organizácii. Ak chcete získať prístup k trezoru, musíte aktualizovať vaše hlavné heslo teraz. Pokračovaním sa odhlásite z aktuálnej relácie a budete sa musieť znova prihlásiť. Aktívne relácie na iných zariadeniach môžu zostať aktívne až jednu hodinu." + }, + "masterPasswordInvalidWarning": { + "message": "Vaše hlavné heslo nespĺňa pravidlá tejto organizácie. Ak sa chcete pripojiť k tejto organizácii, musíte teraz aktualizovať vaše hlavné heslo. Pokračovaním sa odhlásite z aktuálnej relácie a budete sa musieť znova prihlásiť. Aktívne relácie na iných zariadeniach môžu zostať aktívne až jednu hodinu." + }, + "maximumVaultTimeout": { + "message": "Časový limit pre trezor" + }, + "maximumVaultTimeoutDesc": { + "message": "Nastaviť maximálny časový limit trezora pre všetkých používateľov." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximálny časový limit pre trezor" + }, + "invalidMaximumVaultTimeout": { + "message": "Neplatný maximálny časový limit pre trezor." + }, + "hours": { + "message": "Hodiny" + }, + "minutes": { + "message": "Minúty" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Zásady vašej organizácie ovplyvňujú časový limit trezoru. Maximálny povolený časový limit trezoru je $HOURS$ h a $MINUTES$ m", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Vlastný časový limit pre trezor" + }, + "vaultTimeoutToLarge": { + "message": "Časový limit vášho trezora prekračuje obmedzenia nastavené vašou organizáciou." + }, + "disablePersonalVaultExport": { + "message": "Zakázať export osobného trezora" + }, + "disablePersonalVaultExportDesc": { + "message": "Zakazuje používateľom exportovať údaje zo súkromného trezora." + }, + "vaultExportDisabled": { + "message": "Export trezoru je zakázaný" + }, + "personalVaultExportPolicyInEffect": { + "message": "Jedna alebo viacero zásad organizácie vám bráni exportovať váš osobný trezor." + }, + "selectType": { + "message": "Vyberte typ SSO" + }, + "type": { + "message": "Typ" + }, + "openIdConnectConfig": { + "message": "Konfigurácia OpenID Connect" + }, + "samlSpConfig": { + "message": "Konfigurácia poskytovateľa služieb SAML" + }, + "samlIdpConfig": { + "message": "Konfigurácia poskytovateľa identít SAML" + }, + "callbackPath": { + "message": "Cesta spätného volania" + }, + "signedOutCallbackPath": { + "message": "Cesta spätného volania na odhlásenie" + }, + "authority": { + "message": "Autorita" + }, + "clientId": { + "message": "ID klienta" + }, + "clientSecret": { + "message": "Tajný kľúč klienta" + }, + "metadataAddress": { + "message": "Adresa metadát" + }, + "oidcRedirectBehavior": { + "message": "Správanie pri presmerovaní OIDC" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Získanie žiadostí z koncového bodu informácií o používateľovi" + }, + "additionalScopes": { + "message": "Vlastné rozsahy" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "ID subjektu SP" + }, + "spMetadataUrl": { + "message": "URL metadát SAML 2.0" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Formát názvu ID" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Overiť certifikáty" + }, + "idpEntityId": { + "message": "ID subjektu" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "Verejný certifikát X509" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Poslať overovací kód na váš e-mail" + }, + "sendCode": { + "message": "Odoslať kód" + }, + "codeSent": { + "message": "Kód bol odoslaný" + }, + "verificationCode": { + "message": "Overovací kód" + }, + "confirmIdentity": { + "message": "Ak chcete pokračovať, potvrďte svoju identitu." + }, + "verificationCodeRequired": { + "message": "Overovací kód je povinný." + }, + "invalidVerificationCode": { + "message": "Neplatný verifikačný kód" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ používa SSO s vlastným kľúčovým serverom. Na prihlásenie členov tejto organizácie už nie je potrebné hlavné heslo.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Opustiť organizáciu" + }, + "removeMasterPassword": { + "message": "Odstrániť hlavné heslo" + }, + "removedMasterPassword": { + "message": "Hlavné heslo bolo odstránené." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "SSO povolené" + }, + "disabledSso": { + "message": "SSO zakázané" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Úspešné! Key Connector je dostupný." + }, + "keyConnectorTestFail": { + "message": "Key Connector je nedostupný. Skontrolujte adresu URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Vaša relácia vypršala. Vráťte sa späť a skúste sa prihlásiť znova." + }, + "exportingPersonalVaultTitle": { + "message": "Exportovanie osobného trezora" + }, + "exportingOrganizationVaultTitle": { + "message": "Exportovanie trezora organizácie" + }, + "exportingPersonalVaultDescription": { + "message": "Exportované budú iba položy osobného trezora spojené s $EMAIL$. Položky trezora organizácie nebudú zahrnuté.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Exportované budú iba položky trezora organizácie spojené s $ORGANIZATION$. Položky osobného trezora a položky z iných organizácií nebudú zahrnuté.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generátor" + }, + "whatWouldYouLikeToGenerate": { + "message": "Čo by ste chceli vygenerovať?" + }, + "passwordType": { + "message": "Typ hesla" + }, + "regenerateUsername": { + "message": "Vygenerovať nové používateľské meno" + }, + "generateUsername": { + "message": "Vygenerovať používateľské meno" + }, + "usernameType": { + "message": "Typ používateľského mena" + }, + "plusAddressedEmail": { + "message": "E-mail s plusovým aliasom", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Použiť možnosti subadresovania svojho poskytovateľa e-mailu." + }, + "catchallEmail": { + "message": "Catch-all e-mail" + }, + "catchallEmailDesc": { + "message": "Použiť doručenú poštu typu catch-all nastavenú na doméne." + }, + "random": { + "message": "Náhodné" + }, + "randomWord": { + "message": "Náhodné slovo" + }, + "service": { + "message": "Služba" + } +} diff --git a/apps/web/src/locales/sl/messages.json b/apps/web/src/locales/sl/messages.json new file mode 100644 index 0000000000..1df7f9f0e6 --- /dev/null +++ b/apps/web/src/locales/sl/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Spletni sef", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Kakšne vrste vnos je to?" + }, + "name": { + "message": "Ime" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Nov URI" + }, + "username": { + "message": "Uporabniško ime" + }, + "password": { + "message": "Geslo" + }, + "newPassword": { + "message": "Novo geslo" + }, + "passphrase": { + "message": "Šifrirna fraza" + }, + "notes": { + "message": "Zapiski" + }, + "customFields": { + "message": "Polja po meri" + }, + "cardholderName": { + "message": "Ime imetnika kartice" + }, + "number": { + "message": "Številka" + }, + "brand": { + "message": "Znamka" + }, + "expiration": { + "message": "Potek" + }, + "securityCode": { + "message": "Varnostna koda (CVV)" + }, + "identityName": { + "message": "Ime identitete" + }, + "company": { + "message": "Podjetje" + }, + "ssn": { + "message": "EMŠO" + }, + "passportNumber": { + "message": "Številka potnega lista" + }, + "licenseNumber": { + "message": "Številka dovoljenja" + }, + "email": { + "message": "E-pošta" + }, + "phone": { + "message": "Telefon" + }, + "january": { + "message": "Januar" + }, + "february": { + "message": "Februar" + }, + "march": { + "message": "Marec" + }, + "april": { + "message": "April" + }, + "may": { + "message": "Maj" + }, + "june": { + "message": "Junij" + }, + "july": { + "message": "Julij" + }, + "august": { + "message": "Avgust" + }, + "september": { + "message": "September" + }, + "october": { + "message": "Oktober" + }, + "november": { + "message": "November" + }, + "december": { + "message": "December" + }, + "title": { + "message": "Naziv" + }, + "mr": { + "message": "G" + }, + "mrs": { + "message": "Ga" + }, + "ms": { + "message": "Gdč" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Mesec poteka" + }, + "expirationYear": { + "message": "Leto poteka" + }, + "authenticatorKeyTotp": { + "message": "Ključ avtentikatorja (TOTP)" + }, + "folder": { + "message": "Mapa" + }, + "newCustomField": { + "message": "Novo polje po meri" + }, + "value": { + "message": "Vrednost" + }, + "dragToSort": { + "message": "Povleci za sortiranje" + }, + "cfTypeText": { + "message": "Besedilo" + }, + "cfTypeHidden": { + "message": "Skrito" + }, + "cfTypeBoolean": { + "message": "Logična vrednost" + }, + "cfTypeLinked": { + "message": "Povezano", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Odstrani" + }, + "unassigned": { + "message": "Nedodeljeno" + }, + "noneFolder": { + "message": "Brez mape", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Dodaj mapo" + }, + "editFolder": { + "message": "Uredi mapo" + }, + "baseDomain": { + "message": "Domena", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Gostitelj", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Točno" + }, + "startsWith": { + "message": "Začne se z" + }, + "regEx": { + "message": "Regularni izraz", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Način ujemanja", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Privzet način ujemanja", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Nikoli" + }, + "toggleVisibility": { + "message": "Preklopi vidljivost" + }, + "toggleCollapse": { + "message": "Skrči/Razširi", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generiraj geslo" + }, + "checkPassword": { + "message": "Preveri izpostavljenost gesla." + }, + "passwordExposed": { + "message": "To geslo je bilo med ukradenimi podatki izpostavljeno $VALUE$ krat. Morali bi ga zamenjati.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "To geslo ni bilo najdeno med do sedaj znanimi krajami podatkov. Njegova uporaba bi morala biti varna." + }, + "save": { + "message": "Shrani" + }, + "cancel": { + "message": "Prekliči" + }, + "canceled": { + "message": "Preklicano" + }, + "close": { + "message": "Zapri" + }, + "delete": { + "message": "Izbriši" + }, + "favorite": { + "message": "Priljubljeni" + }, + "unfavorite": { + "message": "Odstrani iz priljubljenih" + }, + "edit": { + "message": "Uredi" + }, + "searchCollection": { + "message": "Preišči zbirko" + }, + "searchFolder": { + "message": "Preišči mapo" + }, + "searchFavorites": { + "message": "Preišči priljubljene" + }, + "searchType": { + "message": "Način iskanja", + "description": "Search item type" + }, + "searchVault": { + "message": "Preišči trezor" + }, + "allItems": { + "message": "Vsi elementi" + }, + "favorites": { + "message": "Priljubljeno" + }, + "types": { + "message": "Vrste" + }, + "typeLogin": { + "message": "Prijava" + }, + "typeCard": { + "message": "Kartica" + }, + "typeIdentity": { + "message": "Identiteta" + }, + "typeSecureNote": { + "message": "Varni zapisek" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "Mape" + }, + "collections": { + "message": "Zbirke" + }, + "firstName": { + "message": "Ime" + }, + "middleName": { + "message": "Srednje ime" + }, + "lastName": { + "message": "Priimek" + }, + "fullName": { + "message": "Polno ime" + }, + "address1": { + "message": "Naslov 1" + }, + "address2": { + "message": "Naslov 2" + }, + "address3": { + "message": "Naslov 3" + }, + "cityTown": { + "message": "Mesto / naselje" + }, + "stateProvince": { + "message": "Regija / provinca" + }, + "zipPostalCode": { + "message": "Poštna številka" + }, + "country": { + "message": "Država" + }, + "shared": { + "message": "Deljeno" + }, + "attachments": { + "message": "Priponke" + }, + "select": { + "message": "Izberi" + }, + "addItem": { + "message": "Dodaj vnos" + }, + "editItem": { + "message": "Uredi vnos" + }, + "viewItem": { + "message": "Ogled vnosa" + }, + "ex": { + "message": "npr.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Drugo" + }, + "share": { + "message": "Deli" + }, + "moveToOrganization": { + "message": "Premakni v organizacijo" + }, + "valueCopied": { + "message": "$VALUE$ kopirana", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Kopiraj vrednost", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Kopiraj geslo", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Kopiraj uporabniško ime", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Kopiraj številko", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Kopiraj varnostno kodo", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Kopiraj URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Moj sef" + }, + "vault": { + "message": "Sef" + }, + "moveSelectedToOrg": { + "message": "Premakni označeno v organizacijo" + }, + "deleteSelected": { + "message": "Izbriši izbrano" + }, + "moveSelected": { + "message": "Premakni izbrano" + }, + "selectAll": { + "message": "Izberi vse" + }, + "unselectAll": { + "message": "Odizberi vse" + }, + "launch": { + "message": "Zaženi" + }, + "newAttachment": { + "message": "Dodaj novo priponko" + }, + "deletedAttachment": { + "message": "Izbriši priponko" + }, + "deleteAttachmentConfirmation": { + "message": "Ste prepričani, da želite izbrisati to prilogo?" + }, + "attachmentSaved": { + "message": "Ta priloga je bila shranjena." + }, + "file": { + "message": "Datoteka" + }, + "selectFile": { + "message": "Izberite datoteko." + }, + "maxFileSize": { + "message": "Največja velikost datoteke je 500 MB." + }, + "updateKey": { + "message": "Te funkcije ne morete koristiti, dokler dokler ne posodobite vašega ključa za šifriranje." + }, + "addedItem": { + "message": "Dodaj vnos" + }, + "editedItem": { + "message": "Uredi vnos" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ premaknjen v $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Označeni vnosi premaknjeni v $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Izbriši vnos" + }, + "deleteFolder": { + "message": "Izbriši mapo" + }, + "deleteAttachment": { + "message": "Izbriši priponoko" + }, + "deleteItemConfirmation": { + "message": "Ali ste prepričani, da želite izbrisati?" + }, + "deletedItem": { + "message": "Vnos poslan v smeti" + }, + "deletedItems": { + "message": "Vnosi poslani v smeti" + }, + "movedItems": { + "message": "Premaknjeni vnosi" + }, + "overwritePasswordConfirmation": { + "message": "Ste prepričani, da želite povoziti obstoječe geslo?" + }, + "editedFolder": { + "message": "Mapa je bila urejena" + }, + "addedFolder": { + "message": "Mapa je bila dodana" + }, + "deleteFolderConfirmation": { + "message": "Ste prepričani, da želite izbrisati to mapo?" + }, + "deletedFolder": { + "message": "Mapa je bila izbrisana" + }, + "loggedOut": { + "message": "Odjavljen" + }, + "loginExpired": { + "message": "Vaša seja je potekla." + }, + "logOutConfirmation": { + "message": "Ste prepričani, da se želite odjaviti?" + }, + "logOut": { + "message": "Odjavi se" + }, + "ok": { + "message": "V redu" + }, + "yes": { + "message": "Da" + }, + "no": { + "message": "Ne" + }, + "loginOrCreateNewAccount": { + "message": "Prijavite se ali ustvarite nov račun za dostop do vašega varnega trezorja." + }, + "createAccount": { + "message": "Ustvari račun" + }, + "logIn": { + "message": "Prijava" + }, + "submit": { + "message": "Potrdi" + }, + "emailAddressDesc": { + "message": "Za prijavo boste uporabili vaš e-poštni naslov." + }, + "yourName": { + "message": "Vaše ime" + }, + "yourNameDesc": { + "message": "Kako vas naj kličemo?" + }, + "masterPass": { + "message": "Glavno geslo" + }, + "masterPassDesc": { + "message": "Glavno geslo je geslo, ki ga uporabljate za dostop do vašega trezorja. Zelo pomembno je, da ne pozabite vaše glavno geslo. Gesla ni mogoče obnoviti v primeru, če ga pozabite." + }, + "masterPassHintDesc": { + "message": "Namig glavnega gesla vam lahko pomaga, da se spomnite vašega gesla, če ga pozabite." + }, + "reTypeMasterPass": { + "message": "Ponovno vnesite glavno geslo" + }, + "masterPassHint": { + "message": "Namig za glavno geslo (neobvezno)" + }, + "masterPassHintLabel": { + "message": "Namig za glavno geslo" + }, + "settings": { + "message": "Nastavitve" + }, + "passwordHint": { + "message": "Namig za geslo" + }, + "enterEmailToGetHint": { + "message": "Vnesite e-poštni naslov vašega računa, da prejmete namig za vaše glavno geslo." + }, + "getMasterPasswordHint": { + "message": "Pridobi namig za glavno geslo" + }, + "emailRequired": { + "message": "E-poštni naslov je obvezen." + }, + "invalidEmail": { + "message": "Neveljaven e-poštni naslov." + }, + "masterPassRequired": { + "message": "Glavno geslo je obvezno." + }, + "masterPassLength": { + "message": "Glavno geslo mora biti dolgo najmanj 8 znakov." + }, + "masterPassDoesntMatch": { + "message": "Potrditev glavnega gesla se ne ujema." + }, + "newAccountCreated": { + "message": "Vaš nov račun je bil ustvarjen! Sedaj se lahko prijavite." + }, + "masterPassSent": { + "message": "Poslali smo vam epoštno spročilo z namigom za vaše glavno geslo." + }, + "unexpectedError": { + "message": "Prišlo je do nepričakovane napake." + }, + "emailAddress": { + "message": "E-poštni naslov" + }, + "yourVaultIsLocked": { + "message": "Vaš trezor je zaklenjen. Potrdite vaše glavno geslo za nadaljevanje." + }, + "unlock": { + "message": "Odkleni" + }, + "loggedInAsEmailOn": { + "message": "Prijavljeni kot $EMAIL$ na $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Napačno glavno geslo" + }, + "lockNow": { + "message": "Zakleni zdaj" + }, + "noItemsInList": { + "message": "Ni vnosov za prikaz." + }, + "noCollectionsInList": { + "message": "Ni zbirk za prikaz." + }, + "noGroupsInList": { + "message": "Ni skupin za prikaz." + }, + "noUsersInList": { + "message": "Ni uporabnikov za prikaz." + }, + "noEventsInList": { + "message": "Ni dogodkov za prikaz." + }, + "newOrganization": { + "message": "Nova organizacija" + }, + "noOrganizationsList": { + "message": "Ne pripadate nobeni organizaciji. Organizacije omogočajo varno deljenje vnosov med uporabniki." + }, + "versionNumber": { + "message": "Različica $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Vnesite 6-mestno potrditveno kodo iz vaše avtorizacijske aplikacije." + }, + "enterVerificationCodeEmail": { + "message": "Vnesite 6-mestno potrditveno kodo, poslano na e-poštni naslov $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Potrditveno sporočilo poslano na $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Zapomni si me" + }, + "sendVerificationCodeEmailAgain": { + "message": "Ponovno posreduj potrditveno kodo na e-poštni naslov" + }, + "useAnotherTwoStepMethod": { + "message": "Uporabi drug dvostopenjski način vpisa" + }, + "insertYubiKey": { + "message": "Svoj YubiKey ključek vstavite v USB režo in pritisnite na njegovo tipko." + }, + "insertU2f": { + "message": "Svoj varnostni USB ključek vstavite v USB režo. Če ima gumb, ga sedaj pritisnite." + }, + "loginUnavailable": { + "message": "Prijava ni na voljo" + }, + "noTwoStepProviders": { + "message": "Ta račun ima omogočemo prijavo v dveh korakih, ampak nobena izmed konfiguriranih ni podprta v tem spletnem brskalniku." + }, + "noTwoStepProviders2": { + "message": "Uporabite enega izmed podprtih spletnih brskalnikov (npr. Chrome) in/ali dodajte ponudnika, ki je bolje podprt na različnih brskalnikih (npr. aplikacija za avtentikacijo)." + }, + "twoStepOptions": { + "message": "Možnosti dvostopenjske prijave" + }, + "recoveryCodeDesc": { + "message": "Ste izgubili dostop do vseh vaših ponudnikov dvostopenjse prijave? Uporabite svoje kode za obnovitev in tako onemogočite dvostopenjsko prijavo v svoj račun." + }, + "recoveryCodeTitle": { + "message": "Koda za obnovitev" + }, + "authenticatorAppTitle": { + "message": "Aplikacija za avtentikacijo" + }, + "authenticatorAppDesc": { + "message": "Upoabite aplikacijo za avtentikacijo (npr. Authy ali Google Authenticator), ki za vas ustvarja kode z omejenim časom veljavnosti.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey varnostni ključ za enkratna gesla" + }, + "yubiKeyDesc": { + "message": "Uporabite YubiKey za dostop do svojega računa. Podprti so YubiKey serije 4, serije 5 in naprave NEO." + }, + "duoDesc": { + "message": "Preverjajte z uporabo Duo Security, ki omogoča prijavo z Duo Mobile aplikacijo, SMS sporočilom, telefonskim klicem ali U2F varnostnim ključem.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Preverjajte z Duo Security za vašo organizacijo, ki omogoča prijavo z Duo Mobile aplikacijo, SMS sporočilom, telefonskim klicem ali U2F varnostnim ključem.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Za dostop do vašega računa uporabite katerikoli FIDO U2F varnostni ključ." + }, + "u2fTitle": { + "message": "FIDO U2F varnostni ključ" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Za dostop do vašega računa uporabite katerikoli WebAuthn varnostni ključ." + }, + "webAuthnMigrated": { + "message": "(Preseljeno iz FIDO)" + }, + "emailTitle": { + "message": "E-pošta" + }, + "emailDesc": { + "message": "Potrditvene kode vam bodo posredovane po e-pošti." + }, + "continue": { + "message": "Nadaljuj" + }, + "organization": { + "message": "Organizacija" + }, + "organizations": { + "message": "Organizacije" + }, + "moveToOrgDesc": { + "message": "Izberi organizacijo s katero želite deliti ta vnos. Delitev prenese lasništvo vnosa na organizacijo. Po delitvi ne boste več direktni lastnik tega vnosa." + }, + "moveManyToOrgDesc": { + "message": "Izberi organizacijo s katero želite deliti ta vnos. Delitev prenese lasništvo vnosa na organizacijo. Po delitvi ne boste več direktni lastnik tega vnosa." + }, + "collectionsDesc": { + "message": "Uredite zbirke s katerimi želite deliti ta predmet. Predmet bodo lahko videli le uporabniki orgnanizacije, ki bodo imajo dostop do teh zbirk." + }, + "deleteSelectedItemsDesc": { + "message": "Izbrali ste $COUNT$ vnos(ov) za izbris. Ali ste prepričani, da želite izbrisati vse izbrane vnose?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Choose a folder that you would like to move the $COUNT$ selected item(s) to.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organization, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Verifikacijska koda (TOTP)" + }, + "copyVerificationCode": { + "message": "Kopiraj verifikacijsko kodo" + }, + "warning": { + "message": "Opozorilo" + }, + "confirmVaultExport": { + "message": "Potrdite izvoz trezorja" + }, + "exportWarningDesc": { + "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Izvozi" + }, + "exportVault": { + "message": "Izvozi sef" + }, + "fileFormat": { + "message": "Format datoteke" + }, + "exportSuccess": { + "message": "Podatki vašega sefa so bili izvoženi." + }, + "passwordGenerator": { + "message": "Ustvarjalnik gesel" + }, + "minComplexityScore": { + "message": "Najnižja ocena kompleksnosti" + }, + "minNumbers": { + "message": "Najmanj števil" + }, + "minSpecial": { + "message": "Najmanj posebnih znakov", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Izogibaj se dvoumnim znakom" + }, + "regeneratePassword": { + "message": "Regeneriraj geslo" + }, + "length": { + "message": "Dolžina" + }, + "numWords": { + "message": "Število besed" + }, + "wordSeparator": { + "message": "Ločilo besed" + }, + "capitalize": { + "message": "Zapiši z veliko začetnico", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Vključi številko" + }, + "passwordHistory": { + "message": "Zgodovina gesla" + }, + "noPasswordsInList": { + "message": "Ni gesel za prikaz." + }, + "clear": { + "message": "Počisti", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Račun posodobljen" + }, + "changeEmail": { + "message": "Spremeni e-poštni naslov" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "Novi e-poštni naslov" + }, + "code": { + "message": "Koda" + }, + "changeEmailDesc": { + "message": "We have emailed a verification code to $EMAIL$. Please check your email for this code and enter it below to finalize the email address change.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "emailChanged": { + "message": "E-poštni naslov spremenjen" + }, + "logBackIn": { + "message": "Prosimo, ponovno se prijavite." + }, + "logBackInOthersToo": { + "message": "Prosimo, ponovno se prijavite. Če uporabljate druge Bitwarden aplikacije, se odjavite in ponovno prijavite tudi tam." + }, + "changeMasterPassword": { + "message": "Spremeni glavno geslo" + }, + "masterPasswordChanged": { + "message": "Glavno geslo je bilo spremenjeno" + }, + "currentMasterPass": { + "message": "Aktualno glavno geslo" + }, + "newMasterPass": { + "message": "Nastavite glavno geslo" + }, + "confirmNewMasterPass": { + "message": "Potrdite novo geslo" + }, + "encKeySettings": { + "message": "Nastavitve kodirnega ključa" + }, + "kdfAlgorithm": { + "message": "KDF algoritem" + }, + "kdfIterations": { + "message": "KDF iteracije" + }, + "kdfIterationsDesc": { + "message": "Higher KDF iterations can help protect your master password from being brute forced by an attacker. We recommend a value of $VALUE$ or more.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Setting your KDF iterations too high could result in poor performance when logging into (and unlocking) Bitwarden on devices with slower CPUs. We recommend that you increase the value in increments of $INCREMENT$ and then test all of your devices.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Spremeni KDF" + }, + "encKeySettingsChanged": { + "message": "Encryption Key Settings Changed" + }, + "dangerZone": { + "message": "Danger Zone" + }, + "dangerZoneDesc": { + "message": "Careful, these actions are not reversible!" + }, + "deauthorizeSessions": { + "message": "Deauthorize Sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Concerned your account is logged in on another device? Proceed below to deauthorize all computers or devices that you have previously used. This security step is recommended if you previously used a public computer or accidentally saved your password on a device that isn't yours. This step will also clear all previously remembered two-step login sessions." + }, + "deauthorizeSessionsWarning": { + "message": "Proceeding will also log you out of your current session, requiring you to log back in. You will also be prompted for two-step login again, if enabled. Active sessions on other devices may continue to remain active for up to one hour." + }, + "sessionsDeauthorized": { + "message": "All Sessions Deauthorized" + }, + "purgeVault": { + "message": "Počisti trezor" + }, + "purgedOrganizationVault": { + "message": "Trezor organizacije je bil počiščen." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Proceed below to delete all items and folders in your vault. Items that belong to an organization that you share with will not be deleted." + }, + "purgeOrgVaultDesc": { + "message": "Proceed below to delete all items in the organization's vault." + }, + "purgeVaultWarning": { + "message": "Purging your vault is permanent. It cannot be undone." + }, + "vaultPurged": { + "message": "Vaš trezor je bil počiščen." + }, + "deleteAccount": { + "message": "Izbriši račun" + }, + "deleteAccountDesc": { + "message": "Proceed below to delete your account and all associated data." + }, + "deleteAccountWarning": { + "message": "Deleting your account is permanent. It cannot be undone." + }, + "accountDeleted": { + "message": "Account Deleted" + }, + "accountDeletedDesc": { + "message": "Your account has been closed and all associated data has been deleted." + }, + "myAccount": { + "message": "Moj račun" + }, + "tools": { + "message": "Orodja" + }, + "importData": { + "message": "Uvoz podatkov" + }, + "importError": { + "message": "Napaka pri uvozu" + }, + "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." + }, + "importSuccess": { + "message": "Data has been successfully imported into your vault." + }, + "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": "Ničesar ni bilo uvoženo." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "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)" + } + } + }, + "options": { + "message": "Options" + }, + "optionsDesc": { + "message": "Customize your web vault experience." + }, + "optionsUpdated": { + "message": "Options updated" + }, + "language": { + "message": "Jezik" + }, + "languageDesc": { + "message": "Change the language used by the web vault." + }, + "disableIcons": { + "message": "Onemogoči ikone spletnih mest" + }, + "disableIconsDesc": { + "message": "Website Icons provide a recognizable image next to each login item in your vault." + }, + "enableGravatars": { + "message": "Enable Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use avatar images loaded from gravatar.com." + }, + "enableFullWidth": { + "message": "Enable Full Width Layout", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Allow the web vault to expand the full width of the browser window." + }, + "default": { + "message": "Default" + }, + "domainRules": { + "message": "Domain Rules" + }, + "domainRulesDesc": { + "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + }, + "globalEqDomains": { + "message": "Global Equivalent Domains" + }, + "customEqDomains": { + "message": "Custom Equivalent Domains" + }, + "exclude": { + "message": "Exclude" + }, + "include": { + "message": "Include" + }, + "customize": { + "message": "Prilagodi" + }, + "newCustomDomain": { + "message": "Nova domena po meri" + }, + "newCustomDomainDesc": { + "message": "Enter a list of domains separated by commas. Only \"base\" domains are allowed. Do not enter subdomains. For example, enter \"google.com\" instead of \"www.google.com\". You can also enter \"androidapp://package.name\" to associate an android app with other website domains." + }, + "customDomainX": { + "message": "Custom Domain $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domene posodobljene" + }, + "twoStepLogin": { + "message": "Prijava v dveh korakih" + }, + "twoStepLoginDesc": { + "message": "Secure your account by requiring an additional step when logging in." + }, + "twoStepLoginOrganizationDesc": { + "message": "Require two-step login for your organization's users by configuring providers at the organization level." + }, + "twoStepLoginRecoveryWarning": { + "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (ex. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + }, + "viewRecoveryCode": { + "message": "View Recovery Code" + }, + "providers": { + "message": "Ponudniki", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Omogoči" + }, + "enabled": { + "message": "Omogočeno" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium Membership" + }, + "premiumRequired": { + "message": "Premium Required" + }, + "premiumRequiredDesc": { + "message": "A premium membership is required to use this feature." + }, + "youHavePremiumAccess": { + "message": "You have premium access" + }, + "alreadyPremiumFromOrg": { + "message": "You already have access to premium features because of an organization you are a member of." + }, + "manage": { + "message": "Upravljaj" + }, + "disable": { + "message": "Onemogočeno" + }, + "twoStepLoginProviderEnabled": { + "message": "This two-step login provider is enabled on your account." + }, + "twoStepLoginAuthDesc": { + "message": "Enter your master password to modify two-step login settings." + }, + "twoStepAuthenticatorDesc": { + "message": "Follow these steps to set up two-step login with an authenticator app:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Download a two-step authenticator app" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Need a two-step authenticator app? Download one of the following" + }, + "iosDevices": { + "message": "iOS naprave" + }, + "androidDevices": { + "message": "Android naprave" + }, + "windowsDevices": { + "message": "Windows naprave" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "These apps are recommended, however, other authenticator apps will also work." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scan this QR code with your authenticator app" + }, + "key": { + "message": "Key" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Enter the resulting 6 digit verification code from the app" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app." + }, + "twoStepDisableDesc": { + "message": "Are you sure you want to disable this two-step login provider?" + }, + "twoStepDisabled": { + "message": "Two-step login provider disabled." + }, + "twoFactorYubikeyAdd": { + "message": "Add a new YubiKey to your account" + }, + "twoFactorYubikeyPlugIn": { + "message": "Plug the YubiKey into your computer's USB port." + }, + "twoFactorYubikeySelectKey": { + "message": "Select the first empty YubiKey input field below." + }, + "twoFactorYubikeyTouchButton": { + "message": "Touch the YubiKey's button." + }, + "twoFactorYubikeySaveForm": { + "message": "Save the form." + }, + "twoFactorYubikeyWarning": { + "message": "Due to platform limitations, YubiKeys cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when YubiKeys cannot be used. Supported platforms:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile apps on a device with NFC capabilities or a data port that can accept your YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC Support" + }, + "twoFactorYubikeySupportsNfc": { + "message": "One of my keys supports NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "If one of your YubiKeys supports NFC (such as a YubiKey NEO), you will be prompted on mobile devices whenever NFC availability is detected." + }, + "yubikeysUpdated": { + "message": "YubiKeys updated" + }, + "disableAllKeys": { + "message": "Disable All Keys" + }, + "twoFactorDuoDesc": { + "message": "Enter the Bitwarden application information from your Duo Admin panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration Key" + }, + "twoFactorDuoSecretKey": { + "message": "Secret Key" + }, + "twoFactorDuoApiHostname": { + "message": "API Hostname" + }, + "twoFactorEmailDesc": { + "message": "Follow these steps to set up two-step login with email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enter the email that you wish to receive verification codes" + }, + "twoFactorEmailEnterCode": { + "message": "Enter the resulting 6 digit verification code from the email" + }, + "sendEmail": { + "message": "Send Email" + }, + "twoFactorU2fAdd": { + "message": "Add a FIDO U2F security key to your account" + }, + "removeU2fConfirmation": { + "message": "Are you sure you want to remove this security key?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Read Key" + }, + "keyCompromised": { + "message": "Key is compromised." + }, + "twoFactorU2fGiveName": { + "message": "Give the security key a friendly name to identify it." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Plug the security key into your computer's USB port and click the \"Read Key\" button." + }, + "twoFactorU2fTouchButton": { + "message": "If the security key has a button, touch it." + }, + "twoFactorU2fSaveForm": { + "message": "Save the form." + }, + "twoFactorU2fWarning": { + "message": "Due to platform limitations, FIDO U2F cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when FIDO U2F cannot be used. Supported platforms:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorU2fWaiting": { + "message": "Waiting for you to touch the button on your security key" + }, + "twoFactorU2fClickSave": { + "message": "Click the \"Save\" button below to enable this security key for two-step login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Your Bitwarden two-step login recovery code" + }, + "twoFactorRecoveryNoCode": { + "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + }, + "printCode": { + "message": "Print Code", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Reports" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Unsecure Websites" + }, + "unsecuredWebsitesReportDesc": { + "message": "URLs that start with http:// don’t use the best available encryption. Change the Login URIs for these accounts to https:// for safer browsing." + }, + "unsecuredWebsitesFound": { + "message": "Unsecured Websites Found" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Inactive Two-step Login" + }, + "inactive2faReportDesc": { + "message": "Two-step Login adds a layer of protection to your accounts. Turn on Two-Step Login using Bitwarden Authenticator for these accounts or use an alternative method." + }, + "inactive2faFound": { + "message": "Logins Without 2FA Found" + }, + "inactive2faFoundDesc": { + "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to 2fa.directory). To further protect these accounts, you should enable two-factor authentication.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No websites were found in your vault with a missing two-factor authentication configuration." + }, + "instructions": { + "message": "Instructions" + }, + "exposedPasswordsReport": { + "message": "Exposed Passwords" + }, + "exposedPasswordsReportDesc": { + "message": "Passwords exposed in a data breach are easy targets for attackers. Change these passwords to prevent potential break-ins." + }, + "exposedPasswordsFound": { + "message": "Exposed Passwords Found" + }, + "exposedPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No items in your vault have passwords that have been exposed in known data breaches." + }, + "checkExposedPasswords": { + "message": "Check Exposed Passwords" + }, + "exposedXTimes": { + "message": "Exposed $COUNT$ time(s)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Weak Passwords" + }, + "weakPasswordsReportDesc": { + "message": "Weak passwords can be easily guessed by attackers. Change these passwords to strong ones using the Password Generator." + }, + "weakPasswordsFound": { + "message": "Weak Passwords Found" + }, + "weakPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "No items in your vault have weak passwords." + }, + "reusedPasswordsReport": { + "message": "Reused Passwords" + }, + "reusedPasswordsReportDesc": { + "message": "Reusing passwords makes it easier for attackers to break into multiple accounts. Change these passwords so that each is unique." + }, + "reusedPasswordsFound": { + "message": "Reused Passwords Found" + }, + "reusedPasswordsFoundDesc": { + "message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "No logins in your vault have passwords that are being reused." + }, + "reusedXTimes": { + "message": "Reused $COUNT$ times", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Data Breach" + }, + "breachDesc": { + "message": "Breached accounts can expose your personal information. Secure breached accounts by enabling 2FA or creating a stronger password." + }, + "breachCheckUsernameEmail": { + "message": "Check any usernames or email addresses that you use." + }, + "checkBreaches": { + "message": "Check Breaches" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ was not found in any known data breaches.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Good News", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Breached Accounts Found" + }, + "compromisedData": { + "message": "Compromised data" + }, + "website": { + "message": "Website" + }, + "affectedUsers": { + "message": "Affected Users" + }, + "breachOccurred": { + "message": "Breach Occurred" + }, + "breachReported": { + "message": "Breach Reported" + }, + "reportError": { + "message": "An error occurred trying to load the report. Try again" + }, + "billing": { + "message": "Billing" + }, + "accountCredit": { + "message": "Account Credit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Account Balance", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Add Credit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Amount", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Added credit will appear on your account after the payment has been fully processed. Some payment methods are delayed and can take longer to process than others." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + }, + "goPremium": { + "message": "Go Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "You've upgraded to premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Upgrade your account to a premium membership and unlock some great additional features." + }, + "premiumSignUpStorage": { + "message": "1 GB encrypted storage for file attachments." + }, + "premiumSignUpTwoStep": { + "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + }, + "premiumSignUpTotp": { + "message": "TOTP verification code (2FA) generator for logins in your vault." + }, + "premiumSignUpSupport": { + "message": "Priority customer support." + }, + "premiumSignUpFuture": { + "message": "All future premium features. More coming soon!" + }, + "premiumPrice": { + "message": "All for just $PRICE$ /year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Addons" + }, + "premiumAccess": { + "message": "Premium Access" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organization for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Additional Storage (GB)" + }, + "additionalStorageGbDesc": { + "message": "# of additional GB" + }, + "additionalStorageIntervalDesc": { + "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Summary" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "year" + }, + "month": { + "message": "month" + }, + "monthAbbr": { + "message": "mo.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Your payment method will be charged immediately and then on a recurring basis each year. You may cancel at any time." + }, + "paymentCharged": { + "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Your plan comes with a free 7 day trial. Your payment method will not be charged until the trial has ended. You may cancel at any time." + }, + "paymentInformation": { + "message": "Payment Information" + }, + "billingInformation": { + "message": "Billing Information" + }, + "creditCard": { + "message": "Credit Card" + }, + "paypalClickSubmit": { + "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + }, + "cancelSubscription": { + "message": "Cancel Subscription" + }, + "subscriptionCanceled": { + "message": "The subscription has been canceled." + }, + "pendingCancellation": { + "message": "Pending Cancellation" + }, + "subscriptionPendingCanceled": { + "message": "The subscription has been marked for cancellation at the end of the current billing period." + }, + "reinstateSubscription": { + "message": "Reinstate Subscription" + }, + "reinstateConfirmation": { + "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + }, + "reinstated": { + "message": "The subscription has been reinstated." + }, + "cancelConfirmation": { + "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + }, + "canceledSubscription": { + "message": "The subscription has been canceled." + }, + "neverExpires": { + "message": "Never Expires" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Next Charge" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "Download License" + }, + "updateLicense": { + "message": "Update License" + }, + "updatedLicense": { + "message": "Updated license" + }, + "manageSubscription": { + "message": "Manage Subscription" + }, + "storage": { + "message": "Storage" + }, + "addStorage": { + "message": "Add Storage" + }, + "removeStorage": { + "message": "Remove Storage" + }, + "subscriptionStorage": { + "message": "Your subscription has a total of $MAX_STORAGE$ GB of encrypted file storage. You are currently using $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Payment Method" + }, + "noPaymentMethod": { + "message": "No payment method on file." + }, + "addPaymentMethod": { + "message": "Add Payment Method" + }, + "changePaymentMethod": { + "message": "Change Payment Method" + }, + "invoices": { + "message": "Invoices" + }, + "noInvoices": { + "message": "No invoices." + }, + "paid": { + "message": "Paid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Unpaid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transactions", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "No transactions." + }, + "chargeNoun": { + "message": "Charge", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Refund", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Any charges will appear on your statement as $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB of Storage To Add" + }, + "gbStorageRemove": { + "message": "GB of Storage To Remove" + }, + "storageAddNote": { + "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "storageRemoveNote": { + "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedStorage": { + "message": "Adjusted $AMOUNT$ GB of storage.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contact Customer Support" + }, + "updatedPaymentMethod": { + "message": "Updated payment method." + }, + "purchasePremium": { + "message": "Purchase Premium" + }, + "licenseFile": { + "message": "License File" + }, + "licenseFileDesc": { + "message": "Your license file will be named something like $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "To upgrade your account to a premium membership you need to upload a valid license file." + }, + "uploadLicenseFileOrg": { + "message": "To create an on-premises hosted organization you need to upload a valid license file." + }, + "accountEmailMustBeVerified": { + "message": "Your account's email address must be verified." + }, + "newOrganizationDesc": { + "message": "Organizations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company." + }, + "generalInformation": { + "message": "General Information" + }, + "organizationName": { + "message": "Organization Name" + }, + "accountOwnedBusiness": { + "message": "This account is owned by a business." + }, + "billingEmail": { + "message": "Billing Email" + }, + "businessName": { + "message": "Business Name" + }, + "chooseYourPlan": { + "message": "Choose Your Plan" + }, + "users": { + "message": "Users" + }, + "userSeats": { + "message": "User Seats" + }, + "additionalUserSeats": { + "message": "Additional User Seats" + }, + "userSeatsDesc": { + "message": "# of user seats" + }, + "userSeatsAdditionalDesc": { + "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "How many user seats do you need? You can also add additional seats later if needed." + }, + "planNameFree": { + "message": "Free", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing or personal users to share with $COUNT$ other user.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Families" + }, + "planDescFamilies": { + "message": "For personal use, to share with family & friends." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "For businesses and other team organizations." + }, + "planNameEnterprise": { + "message": "Enterprise" + }, + "planDescEnterprise": { + "message": "For businesses and other large organizations." + }, + "freeForever": { + "message": "Free Forever" + }, + "includesXUsers": { + "message": "includes $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Additional Users" + }, + "costPerUser": { + "message": "$COST$ per user", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limited to $COUNT$ users (including you)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limited to $COUNT$ collections", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Add and share with up to $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Add and share with unlimited users" + }, + "createUnlimitedCollections": { + "message": "Create unlimited Collections" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ encrypted file storage", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "On-premise hosting (optional)" + }, + "usersGetPremium": { + "message": "Users get access to Premium Features" + }, + "controlAccessWithGroups": { + "message": "Control user access with Groups" + }, + "syncUsersFromDirectory": { + "message": "Sync your users and Groups from a directory" + }, + "trackAuditLogs": { + "message": "Track user actions with audit logs" + }, + "enforce2faDuo": { + "message": "Enforce 2FA with Duo" + }, + "priorityCustomerSupport": { + "message": "Priority customer support" + }, + "xDayFreeTrial": { + "message": "$COUNT$ day free trial, cancel anytime", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Monthly" + }, + "annually": { + "message": "Annually" + }, + "basePrice": { + "message": "Base Price" + }, + "organizationCreated": { + "message": "Organization Created" + }, + "organizationReadyToGo": { + "message": "Your new organization is ready to go!" + }, + "organizationUpgraded": { + "message": "Your organization has been upgraded." + }, + "leave": { + "message": "Leave" + }, + "leaveOrganizationConfirmation": { + "message": "Are you sure you want to leave this organization?" + }, + "leftOrganization": { + "message": "You have left the organization." + }, + "defaultCollection": { + "message": "Default Collection" + }, + "getHelp": { + "message": "Get Help" + }, + "getApps": { + "message": "Get the Apps" + }, + "loggedInAs": { + "message": "Logged in as" + }, + "eventLogs": { + "message": "Event Logs" + }, + "people": { + "message": "People" + }, + "policies": { + "message": "Policies" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Edit Policy" + }, + "groups": { + "message": "Groups" + }, + "newGroup": { + "message": "New Group" + }, + "addGroup": { + "message": "Add Group" + }, + "editGroup": { + "message": "Edit Group" + }, + "deleteGroupConfirmation": { + "message": "Are you sure you want to delete this group?" + }, + "removeUserConfirmation": { + "message": "Are you sure you want to remove this user?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "External Id" + }, + "externalIdDesc": { + "message": "The external id can be used as a reference or to link this resource to an external system such as a user directory." + }, + "accessControl": { + "message": "Access Control" + }, + "groupAccessAllItems": { + "message": "This group can access and modify all items." + }, + "groupAccessSelectedCollections": { + "message": "This group can access only the selected collections." + }, + "readOnly": { + "message": "Read Only" + }, + "newCollection": { + "message": "New Collection" + }, + "addCollection": { + "message": "Add Collection" + }, + "editCollection": { + "message": "Edit Collection" + }, + "deleteCollectionConfirmation": { + "message": "Are you sure you want to delete this collection?" + }, + "editUser": { + "message": "Edit User" + }, + "inviteUser": { + "message": "Invite User" + }, + "inviteUserDesc": { + "message": "Invite a new user to your organization by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "inviteMultipleEmailDesc": { + "message": "You can invite up to $COUNT$ users at a time by comma separating a list of email addresses.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "This user is using two-step login to protect their account." + }, + "userAccessAllItems": { + "message": "This user can access and modify all items." + }, + "userAccessSelectedCollections": { + "message": "This user can access only the selected collections." + }, + "search": { + "message": "Search" + }, + "invited": { + "message": "Invited" + }, + "accepted": { + "message": "Accepted" + }, + "confirmed": { + "message": "Confirmed" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Owner" + }, + "ownerDesc": { + "message": "The highest access user that can manage all aspects of your organization." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admins can access and manage all items, collections and users in your organization." + }, + "user": { + "message": "User" + }, + "userDesc": { + "message": "A regular user with access to assigned collections in your organization." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managers can access and manage assigned collections in your organization." + }, + "all": { + "message": "All" + }, + "refresh": { + "message": "Refresh" + }, + "timestamp": { + "message": "Timestamp" + }, + "event": { + "message": "Event" + }, + "unknown": { + "message": "Unknown" + }, + "loadMore": { + "message": "Load More" + }, + "mobile": { + "message": "Mobile", + "description": "Mobile app" + }, + "extension": { + "message": "Extension", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Web Vault" + }, + "loggedIn": { + "message": "Logged in." + }, + "changedPassword": { + "message": "Changed account password." + }, + "enabledUpdated2fa": { + "message": "Enabled/updated two-step login." + }, + "disabled2fa": { + "message": "Disabled two-step login." + }, + "recovered2fa": { + "message": "Recovered account from two-step login." + }, + "failedLogin": { + "message": "Login attempt failed with incorrect password." + }, + "failedLogin2fa": { + "message": "Login attempt failed with incorrect two-step login." + }, + "exportedVault": { + "message": "Exported vault." + }, + "exportedOrganizationVault": { + "message": "Exported organization vault." + }, + "editedOrgSettings": { + "message": "Edited organization settings." + }, + "createdItemId": { + "message": "Created item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Edited item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Sent item $ID$ to trash.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Viewed item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Viewed password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Viewed hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Viewed security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Copied password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Copied hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Copied security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Auto-filled item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Created collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Edited collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Deleted collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Edited policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Created group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Edited group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Deleted group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Removed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Created attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Deleted attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Edited collections for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Invited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Confirmed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Edited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Edited groups for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Device" + }, + "view": { + "message": "View" + }, + "invalidDateRange": { + "message": "Invalid date range." + }, + "errorOccurred": { + "message": "An error has occurred." + }, + "userAccess": { + "message": "User Access" + }, + "userType": { + "message": "User Type" + }, + "groupAccess": { + "message": "Group Access" + }, + "groupAccessUserDesc": { + "message": "Edit the groups that this user belongs to." + }, + "invitedUsers": { + "message": "Invited user(s)." + }, + "resendInvitation": { + "message": "Resend Invitation" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ has been reinvited.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirm" + }, + "confirmUser": { + "message": "Confirm User" + }, + "hasBeenConfirmed": { + "message": "$USER$ has been confirmed.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirm Users" + }, + "usersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organization until they are confirmed." + }, + "startDate": { + "message": "Start Date" + }, + "endDate": { + "message": "End Date" + }, + "verifyEmail": { + "message": "Verify Email" + }, + "verifyEmailDesc": { + "message": "Verify your account's email address to unlock access to all features." + }, + "verifyEmailFirst": { + "message": "Your account's email address first must be verified." + }, + "checkInboxForVerification": { + "message": "Check your email inbox for a verification link." + }, + "emailVerified": { + "message": "Your email has been verified." + }, + "emailVerifiedFailed": { + "message": "Unable to verify your email. Try sending a new verification email." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "Update Browser" + }, + "updateBrowserDesc": { + "message": "You are using an unsupported web browser. The web vault may not function properly." + }, + "joinOrganization": { + "message": "Join Organization" + }, + "joinOrganizationDesc": { + "message": "You've been invited to join the organization listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "inviteAccepted": { + "message": "Invitation Accepted" + }, + "inviteAcceptedDesc": { + "message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens." + }, + "inviteAcceptFailed": { + "message": "Unable to accept invitation. Ask an organization admin to send a new invitation." + }, + "inviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Remember email" + }, + "recoverAccountTwoStepDesc": { + "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + }, + "recoverAccountTwoStep": { + "message": "Recover Account Two-Step Login" + }, + "twoStepRecoverDisabled": { + "message": "Two-step login has been disabled on your account." + }, + "learnMore": { + "message": "Learn more" + }, + "deleteRecoverDesc": { + "message": "Enter your email address below to recover and delete your account." + }, + "deleteRecoverEmailSent": { + "message": "If your account exists, we've sent you an email with further instructions." + }, + "deleteRecoverConfirmDesc": { + "message": "You have requested to delete your Bitwarden account. Click the button below to confirm." + }, + "myOrganization": { + "message": "My Organization" + }, + "deleteOrganization": { + "message": "Delete Organization" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organization Deleted" + }, + "organizationDeletedDesc": { + "message": "The organization and all associated data has been deleted." + }, + "organizationUpdated": { + "message": "Organization updated" + }, + "taxInformation": { + "message": "Tax Information" + }, + "taxInformationDesc": { + "message": "For customers within the US, ZIP code is required to satisfy sales tax requirements, for other countries you may optionally provide a tax identification number (VAT/GST) and/or address to appear on your invoices." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Upgrade Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade your account to another plan by providing the information below. Please ensure that you have an active payment method added to the account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Invoice #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "View Invoice" + }, + "downloadInvoice": { + "message": "Download Invoice" + }, + "verifyBankAccount": { + "message": "Verify Bank Account" + }, + "verifyBankAccountDesc": { + "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." + }, + "verifyBankAccountInitialDesc": { + "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organization's billing page to verify the bank account." + }, + "verifyBankAccountFailureWarning": { + "message": "Failure to verify the bank account will result in a missed payment and your subscription being disabled." + }, + "verifiedBankAccount": { + "message": "Bank account has been verified." + }, + "bankAccount": { + "message": "Bank Account" + }, + "amountX": { + "message": "Amount $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Account Number" + }, + "accountHolderName": { + "message": "Account Holder Name" + }, + "bankAccountType": { + "message": "Account Type" + }, + "bankAccountTypeCompany": { + "message": "Company (Business)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Personal)" + }, + "enterInstallationId": { + "message": "Enter your installation id" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Add Seats", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remove Seats", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Your subscription allows for a total of $COUNT$ users.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seats To Add" + }, + "seatsToRemove": { + "message": "Seats To Remove" + }, + "seatsAddNote": { + "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "seatsRemoveNote": { + "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedSeats": { + "message": "Adjusted $AMOUNT$ user seats.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Key Updated" + }, + "updateKeyTitle": { + "message": "Update Key" + }, + "updateEncryptionKey": { + "message": "Update Encryption Key" + }, + "updateEncryptionKeyShortDesc": { + "message": "You are currently using an outdated encryption scheme." + }, + "updateEncryptionKeyDesc": { + "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, however, it may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "Subscription" + }, + "loading": { + "message": "Loading" + }, + "upgrade": { + "message": "Upgrade" + }, + "upgradeOrganization": { + "message": "Upgrade Organization" + }, + "upgradeOrganizationDesc": { + "message": "This feature is not available for free organizations. Switch to a paid plan to unlock more features." + }, + "createOrganizationStep1": { + "message": "Create Organization: Step 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Before creating your organization, you first need to create a free personal account." + }, + "refunded": { + "message": "Refunded" + }, + "nothingSelected": { + "message": "You have not selected anything." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." + }, + "termsOfService": { + "message": "Terms of Service" + }, + "privacyPolicy": { + "message": "Privacy Policy" + }, + "filters": { + "message": "Filters" + }, + "vaultTimeout": { + "message": "Vault Timeout" + }, + "vaultTimeoutDesc": { + "message": "Choose when your vault will timeout and perform the selected action." + }, + "oneMinute": { + "message": "1 minute" + }, + "fiveMinutes": { + "message": "5 minutes" + }, + "fifteenMinutes": { + "message": "15 minutes" + }, + "thirtyMinutes": { + "message": "30 minutes" + }, + "oneHour": { + "message": "1 hour" + }, + "fourHours": { + "message": "4 hours" + }, + "onRefresh": { + "message": "On Browser Refresh" + }, + "dateUpdated": { + "message": "Updated", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Password Updated", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organization is disabled." + }, + "licenseIsExpired": { + "message": "License is expired." + }, + "updatedUsers": { + "message": "Updated users" + }, + "selected": { + "message": "Selected" + }, + "ownership": { + "message": "Ownership" + }, + "whoOwnsThisItem": { + "message": "Who owns this item?" + }, + "strong": { + "message": "Strong", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Good", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Weak", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Very Weak", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Weak Master Password" + }, + "weakMasterPasswordDesc": { + "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + }, + "rotateAccountEncKey": { + "message": "Also rotate my account's encryption key" + }, + "rotateEncKeyTitle": { + "message": "Rotate Encryption Key" + }, + "rotateEncKeyConfirmation": { + "message": "Are you sure you want to rotate your account's encryption key?" + }, + "attachmentsNeedFix": { + "message": "This item has old file attachments that need to be fixed." + }, + "attachmentFixDesc": { + "message": "This is an old file attachment the needs to be fixed. Click to learn more." + }, + "fix": { + "message": "Fix", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key." + }, + "yourAccountsFingerprint": { + "message": "Your account's fingerprint phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Never prompt to verify fingerprint phrases for invited users (Not recommended)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Free", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API Key" + }, + "apiKeyDesc": { + "message": "Your API key can be used to authenticate to the Bitwarden public API." + }, + "apiKeyRotateDesc": { + "message": "Rotating the API key will invalidate the previous key. You can rotate your API key if you believe that the current key is no longer safe to use." + }, + "apiKeyWarning": { + "message": "Your API key has full access to the organization. It should be kept secret." + }, + "userApiKeyDesc": { + "message": "Your API key can be used to authenticate in the Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 Client Credentials", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "View API Key" + }, + "rotateApiKey": { + "message": "Rotate API Key" + }, + "selectOneCollection": { + "message": "You must select at least one collection." + }, + "couldNotChargeCardPayInvoice": { + "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + }, + "inAppPurchase": { + "message": "In-app Purchase" + }, + "cannotPerformInAppPurchase": { + "message": "You cannot perform this action while using an in-app purchase payment method." + }, + "manageSubscriptionFromStore": { + "message": "You must manage your subscription from the store where your in-app purchase was made." + }, + "minLength": { + "message": "Minimum Length" + }, + "clone": { + "message": "Clone" + }, + "masterPassPolicyDesc": { + "message": "Set minimum requirements for master password strength." + }, + "twoStepLoginPolicyDesc": { + "message": "Require users to set up two-step login on their personal accounts." + }, + "twoStepLoginPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and do not have two-step login enabled for their personal account will be removed from the organization and will receive an email notifying them about the change." + }, + "twoStepLoginPolicyUserWarning": { + "message": "You are a member of an organization that requires two-step login to be enabled on your user account. If you disable all two-step login providers you will be automatically removed from these organizations." + }, + "passwordGeneratorPolicyDesc": { + "message": "Set minimum requirements for password generator configuration." + }, + "passwordGeneratorPolicyInEffect": { + "message": "One or more organization policies are affecting your generator settings." + }, + "masterPasswordPolicyInEffect": { + "message": "One or more organization policies require your master password to meet the following requirements:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum complexity score of $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum length of $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contain one or more uppercase characters" + }, + "policyInEffectLowercase": { + "message": "Contain one or more lowercase characters" + }, + "policyInEffectNumbers": { + "message": "Contain one or more numbers" + }, + "policyInEffectSpecial": { + "message": "Contain one or more of the following special characters $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Your new master password does not meet the policy requirements." + }, + "minimumNumberOfWords": { + "message": "Minimum Number of Words" + }, + "defaultType": { + "message": "Default Type" + }, + "userPreference": { + "message": "User Preference" + }, + "vaultTimeoutAction": { + "message": "Vault Timeout Action" + }, + "vaultTimeoutActionLockDesc": { + "message": "A locked vault requires that you re-enter your master password to access it again." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "A logged out vault requires that you re-authenticate to access it again." + }, + "lock": { + "message": "Lock", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Trash", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Search Trash" + }, + "permanentlyDelete": { + "message": "Permanently Delete" + }, + "permanentlyDeleteSelected": { + "message": "Permanently Delete Selected" + }, + "permanentlyDeleteItem": { + "message": "Permanently Delete Item" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Are you sure you want to permanently delete this item?" + }, + "permanentlyDeletedItem": { + "message": "Permanently Deleted item" + }, + "permanentlyDeletedItems": { + "message": "Permanently Deleted items" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Permanently Deleted item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restore" + }, + "restoreSelected": { + "message": "Restore Selected" + }, + "restoreItem": { + "message": "Restore Item" + }, + "restoredItem": { + "message": "Restored Item" + }, + "restoredItems": { + "message": "Restored Items" + }, + "restoreItemConfirmation": { + "message": "Are you sure you want to restore this item?" + }, + "restoreItems": { + "message": "Restore items" + }, + "restoreSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Restored item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout Action Confirmation" + }, + "hidePasswords": { + "message": "Hide Passwords" + }, + "countryPostalCodeRequiredDesc": { + "message": "We require this information for calculating sales tax and financial reporting only." + }, + "includeVAT": { + "message": "Include VAT/GST Information (optional)" + }, + "taxIdNumber": { + "message": "VAT/GST Tax ID" + }, + "taxInfoUpdated": { + "message": "Tax information updated." + }, + "setMasterPassword": { + "message": "Set Master Password" + }, + "ssoCompleteRegistration": { + "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + }, + "identifier": { + "message": "Identifier" + }, + "organizationIdentifier": { + "message": "Organization Identifier" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Log in using your organization's single sign-on portal. Please enter your organization's identifier to begin." + }, + "enterpriseSingleSignOn": { + "message": "Enterprise Single Sign-On" + }, + "ssoHandOff": { + "message": "You may now close this tab and continue in the extension." + }, + "includeAllTeamsFeatures": { + "message": "All Teams features, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO Authentication via SAML2.0 and OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Enterprise Policies" + }, + "ssoValidationFailed": { + "message": "SSO Validation Failed" + }, + "ssoIdentifierRequired": { + "message": "Organization Identifier is required." + }, + "unlinkSso": { + "message": "Unlink SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Link SSO" + }, + "singleOrg": { + "message": "Single Organization" + }, + "singleOrgDesc": { + "message": "Restrict users from being able to join any other organizations." + }, + "singleOrgBlockCreateMessage": { + "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + }, + "singleOrgPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + }, + "requireSso": { + "message": "Single Sign-On Authentication" + }, + "requireSsoPolicyDesc": { + "message": "Require users to log in with the Enterprise Single Sign-On method." + }, + "prerequisite": { + "message": "Prerequisite" + }, + "requireSsoPolicyReq": { + "message": "The Single Organization enterprise policy must be enabled before activating this policy." + }, + "requireSsoPolicyReqError": { + "message": "Single Organization policy not enabled." + }, + "requireSsoExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "sendTypeFile": { + "message": "File" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Create New Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Edit Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Created Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Edited Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Deleted Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Delete Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Are you sure you want to delete this Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "What type of Send is this?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Deletion Date" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Expiration Date" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximum Access Count" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Current Access Count" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Disabled" + }, + "sendLink": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copy Send Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remove Password" + }, + "removedPassword": { + "message": "Removed Password" + }, + "removePasswordConfirmation": { + "message": "Are you sure you want to remove the password?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "All Sends" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "expired": { + "message": "Expired" + }, + "searchSends": { + "message": "Search Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "This Send is protected with a password. Please type the password below to continue.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Download File" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "There are no Sends to list.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Emergency Access" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Request Access" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approve" + }, + "reject": { + "message": "Reject" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Disable Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "Estimated tax" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Manage All Collections" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Manage Groups" + }, + "managePolicies": { + "message": "Manage Policies" + }, + "manageSso": { + "message": "Manage SSO" + }, + "manageUsers": { + "message": "Manage Users" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organization users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Learn more about", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Learn more", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "try it now", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "or", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "sign up", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "to try it today.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organization policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organization administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/sr/messages.json b/apps/web/src/locales/sr/messages.json new file mode 100644 index 0000000000..a6dccc1c59 --- /dev/null +++ b/apps/web/src/locales/sr/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ Veb Trezor", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Kog je tipa ovaj unos?" + }, + "name": { + "message": "Naziv" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Novi URI" + }, + "username": { + "message": "Korisničko ime" + }, + "password": { + "message": "Lozinka" + }, + "newPassword": { + "message": "Nova lozinka" + }, + "passphrase": { + "message": "Frazna lozinka" + }, + "notes": { + "message": "Beleške" + }, + "customFields": { + "message": "Prilagođena Polja" + }, + "cardholderName": { + "message": "Ime vlasnika kartice" + }, + "number": { + "message": "Broj" + }, + "brand": { + "message": "Brend" + }, + "expiration": { + "message": "Datum isteka" + }, + "securityCode": { + "message": "Sigurnosni Kod (CVV)" + }, + "identityName": { + "message": "Naziv Isprave" + }, + "company": { + "message": "Kompanija" + }, + "ssn": { + "message": "Broj Socijalnog Osiguranja" + }, + "passportNumber": { + "message": "Broj Pasoša" + }, + "licenseNumber": { + "message": "Broj Vozačke Dozvole" + }, + "email": { + "message": "Imejl" + }, + "phone": { + "message": "Telefon" + }, + "january": { + "message": "Januar" + }, + "february": { + "message": "Februar" + }, + "march": { + "message": "Mart" + }, + "april": { + "message": "April" + }, + "may": { + "message": "Maj" + }, + "june": { + "message": "Jun" + }, + "july": { + "message": "Jul" + }, + "august": { + "message": "Avgust" + }, + "september": { + "message": "Septembar" + }, + "october": { + "message": "Oktobar" + }, + "november": { + "message": "Novembar" + }, + "december": { + "message": "Decembar" + }, + "title": { + "message": "Zvanje" + }, + "mr": { + "message": "Gospodin" + }, + "mrs": { + "message": "Gospođa" + }, + "ms": { + "message": "Gospođica" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Mesec Isteka" + }, + "expirationYear": { + "message": "Godina Isteka" + }, + "authenticatorKeyTotp": { + "message": "Autentifikacioni Ključ (TOTP)" + }, + "folder": { + "message": "Fascikla" + }, + "newCustomField": { + "message": "Novo Prilagođeno Polje" + }, + "value": { + "message": "Vrednost" + }, + "dragToSort": { + "message": "Sortiraj prevlačenjem" + }, + "cfTypeText": { + "message": "Tekst" + }, + "cfTypeHidden": { + "message": "Sakriveno" + }, + "cfTypeBoolean": { + "message": "Logički Operator" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Ukloni" + }, + "unassigned": { + "message": "Nedodeljeno" + }, + "noneFolder": { + "message": "Bez fascikle", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Dodaj fasciklu" + }, + "editFolder": { + "message": "Urеdi fasciklu" + }, + "baseDomain": { + "message": "Osnovni domen", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Host", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Tačno" + }, + "startsWith": { + "message": "Počinje sa" + }, + "regEx": { + "message": "Regularni izraz", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Match Detection", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Default match detection", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Nikada" + }, + "toggleVisibility": { + "message": "Toggle Visibility" + }, + "toggleCollapse": { + "message": "Toggle Collapse", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Generiši lozinku" + }, + "checkPassword": { + "message": "Check if password has been exposed." + }, + "passwordExposed": { + "message": "This password has been exposed $VALUE$ time(s) in data breaches. You should change it.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "This password was not found in any known data breaches. It should be safe to use." + }, + "save": { + "message": "Sačuvaj" + }, + "cancel": { + "message": "Odustani" + }, + "canceled": { + "message": "Otkazano" + }, + "close": { + "message": "Zatvori" + }, + "delete": { + "message": "Obriši" + }, + "favorite": { + "message": "Omiljeni" + }, + "unfavorite": { + "message": "Izbaci iz Omiljenih" + }, + "edit": { + "message": "Uredi" + }, + "searchCollection": { + "message": "Pretraži Kolekciju" + }, + "searchFolder": { + "message": "Pretraži fasciklu" + }, + "searchFavorites": { + "message": "Pratraži Omiljene" + }, + "searchType": { + "message": "Pretraži Tip", + "description": "Search item type" + }, + "searchVault": { + "message": "Pretraži trezor" + }, + "allItems": { + "message": "Sve stavke" + }, + "favorites": { + "message": "Omiljene stavke" + }, + "types": { + "message": "Tipovi" + }, + "typeLogin": { + "message": "Prijava" + }, + "typeCard": { + "message": "Kartica" + }, + "typeIdentity": { + "message": "Identitet" + }, + "typeSecureNote": { + "message": "Zaštićena beleška" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "Fascikle" + }, + "collections": { + "message": "Kolekcije" + }, + "firstName": { + "message": "Ime" + }, + "middleName": { + "message": "Srednje Ime" + }, + "lastName": { + "message": "Prezime" + }, + "fullName": { + "message": "Full Name" + }, + "address1": { + "message": "Adresa 1" + }, + "address2": { + "message": "Adresa 2" + }, + "address3": { + "message": "Adresa 3" + }, + "cityTown": { + "message": "Grad" + }, + "stateProvince": { + "message": "Država / Okrug" + }, + "zipPostalCode": { + "message": "Zip / Poštanski Broj" + }, + "country": { + "message": "Država" + }, + "shared": { + "message": "Podeljeno" + }, + "attachments": { + "message": "Priloženi Fajlovi" + }, + "select": { + "message": "Izabеri" + }, + "addItem": { + "message": "Dodaj stavku" + }, + "editItem": { + "message": "Uredi stavku" + }, + "viewItem": { + "message": "View Item" + }, + "ex": { + "message": "npr.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Drugo" + }, + "share": { + "message": "Podeli" + }, + "moveToOrganization": { + "message": "Move to Organization" + }, + "valueCopied": { + "message": "$VALUE$ kopiran", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Kopiraj Vrednost", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Kopiraj lozinku", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Kopiraj Korisničko Ime", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Kopiraj Broj", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Kopiraj Sigurnosni Kod", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Kopiraj URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Moj trezor" + }, + "vault": { + "message": "Trezor" + }, + "moveSelectedToOrg": { + "message": "Move Selected to Organization" + }, + "deleteSelected": { + "message": "Obriši izabrane stavke" + }, + "moveSelected": { + "message": "Premesti izabrane stavke" + }, + "selectAll": { + "message": "Odaberi sve" + }, + "unselectAll": { + "message": "Poništi Izbor" + }, + "launch": { + "message": "Pokreni" + }, + "newAttachment": { + "message": "Priloži Novi Fajl" + }, + "deletedAttachment": { + "message": "Obrisan priloženi fajl" + }, + "deleteAttachmentConfirmation": { + "message": "Da li ste sigurni da želite da obrišete ovaj priloženi fajl?" + }, + "attachmentSaved": { + "message": "Priloženi fajl je sačuvan." + }, + "file": { + "message": "Fajl" + }, + "selectFile": { + "message": "Izaberi fajl." + }, + "maxFileSize": { + "message": "Maksimalna veličina fajla je 500 MB." + }, + "updateKey": { + "message": "Ne možete da koristite ovu uslugu dok ne ažurirate Vaš enkripcioni ključ." + }, + "addedItem": { + "message": "Stavka je dodata" + }, + "editedItem": { + "message": "Stavka je izmenjena" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ moved to $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Selected items moved to $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Obriši stavku" + }, + "deleteFolder": { + "message": "Obriši fasciklu" + }, + "deleteAttachment": { + "message": "Obriši Priloženi Fajl" + }, + "deleteItemConfirmation": { + "message": "Da li zaista želite da obrišete ovu stavku?" + }, + "deletedItem": { + "message": "Stavka poslata u kantu" + }, + "deletedItems": { + "message": "Stavke poslate u kantu" + }, + "movedItems": { + "message": "Stavke su premeštene" + }, + "overwritePasswordConfirmation": { + "message": "Da li zaista želite da izmenite aktuelnu lozinku?" + }, + "editedFolder": { + "message": "Fascikla je izmenjena" + }, + "addedFolder": { + "message": "Fascikla je dodata" + }, + "deleteFolderConfirmation": { + "message": "Da li zaista želite da obrišete ovu fasciklu?" + }, + "deletedFolder": { + "message": "Fascikla je obrisana" + }, + "loggedOut": { + "message": "Odjavljeni ste" + }, + "loginExpired": { + "message": "Vaša sesija je istekla." + }, + "logOutConfirmation": { + "message": "Da li ste sigurni da želite da se odjavite?" + }, + "logOut": { + "message": "Odjava" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Da" + }, + "no": { + "message": "Ne" + }, + "loginOrCreateNewAccount": { + "message": "Ulogujte se ili napravite novi nalog kako biste pristupili Vašem trezoru." + }, + "createAccount": { + "message": "Napravi Nalog" + }, + "logIn": { + "message": "Prijavi Se" + }, + "submit": { + "message": "Pošalji" + }, + "emailAddressDesc": { + "message": "Koristićete Vašu imejl adresu prilikom prijavljivanja." + }, + "yourName": { + "message": "Vaše Ime" + }, + "yourNameDesc": { + "message": "Kako želite da Vas oslovljavamo?" + }, + "masterPass": { + "message": "Glavna lozinka" + }, + "masterPassDesc": { + "message": "Glavna šifra je šifra koju koristite kako biste pristupili svom trezoru. Veoma je važno da ne zaboravite svoju glavnu šifru. Ukoliko je zaboravite, ne postoji način da je dobijete nazad." + }, + "masterPassHintDesc": { + "message": "A master password hint can help you remember your password if you forget it." + }, + "reTypeMasterPass": { + "message": "Re-type Master Password" + }, + "masterPassHint": { + "message": "Master Password Hint (optional)" + }, + "masterPassHintLabel": { + "message": "Master Password Hint" + }, + "settings": { + "message": "Podešavanja" + }, + "passwordHint": { + "message": "Password Hint" + }, + "enterEmailToGetHint": { + "message": "Enter your account email address to receive your master password hint." + }, + "getMasterPasswordHint": { + "message": "Get master password hint" + }, + "emailRequired": { + "message": "Email adresa je neophodna." + }, + "invalidEmail": { + "message": "Invalid email address." + }, + "masterPassRequired": { + "message": "Master password is required." + }, + "masterPassLength": { + "message": "Master password must be at least 8 characters long." + }, + "masterPassDoesntMatch": { + "message": "Master password confirmation does not match." + }, + "newAccountCreated": { + "message": "Your new account has been created! You may now log in." + }, + "masterPassSent": { + "message": "We've sent you an email with your master password hint." + }, + "unexpectedError": { + "message": "An unexpected error has occurred." + }, + "emailAddress": { + "message": "Imejl Adresa" + }, + "yourVaultIsLocked": { + "message": "Vaš trezor je zaključan. Unesite glavnu lozinku da biste nastavili." + }, + "unlock": { + "message": "Otključaj" + }, + "loggedInAsEmailOn": { + "message": "Logged in as $EMAIL$ on $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Invalid master password" + }, + "lockNow": { + "message": "Lock Now" + }, + "noItemsInList": { + "message": "Nema stavki u listi." + }, + "noCollectionsInList": { + "message": "Nema stavki u listi." + }, + "noGroupsInList": { + "message": "There are no groups to list." + }, + "noUsersInList": { + "message": "There are no users to list." + }, + "noEventsInList": { + "message": "There are no events to list." + }, + "newOrganization": { + "message": "Nova organizacija" + }, + "noOrganizationsList": { + "message": "Ne pripadaš ni jednoj organizaciji. Organizacije ti omogućavaju da bezbedno deliš stavke sa ostalim korisnicima." + }, + "versionNumber": { + "message": "Version $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Enter the 6 digit verification code from your authenticator app." + }, + "enterVerificationCodeEmail": { + "message": "Enter the 6 digit verification code that was emailed to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Verification email sent to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Zapamti me" + }, + "sendVerificationCodeEmailAgain": { + "message": "Send verification code email again" + }, + "useAnotherTwoStepMethod": { + "message": "Use another two-step login method" + }, + "insertYubiKey": { + "message": "Povežite Vaš YubiKey preko USB porta na vašem računaru, pa pritisnite dugme na njemu." + }, + "insertU2f": { + "message": "Povežite Vaš sigurnosni ključ preko USB porta na Vaš računar. Ukoliko ima dugme, pritisnite ga." + }, + "loginUnavailable": { + "message": "Servis za Pristup Nije Dostupan" + }, + "noTwoStepProviders": { + "message": "Verifikacija u dva koraka je omogućena na Vašem nalogu, ali nijedan od pružalaca usluge verifikacije u dva koraka nije podržan od strane ovog pretraživača." + }, + "noTwoStepProviders2": { + "message": "Molimo Vas da koristite neki od pretraživača koji su podržani (poput Chrome-a) i/ili dodajte pružaoce usluga čija podrška obuhvata više pretraživača (poput nekih aplikacija za autentifikaciju)." + }, + "twoStepOptions": { + "message": "Two-step Login Options" + }, + "recoveryCodeDesc": { + "message": "Lost access to all of your two-factor providers? Use your recovery code to disable all two-factor providers from your account." + }, + "recoveryCodeTitle": { + "message": "Recovery Code" + }, + "authenticatorAppTitle": { + "message": "Aplikacija za Autentifikaciju" + }, + "authenticatorAppDesc": { + "message": "Use an authenticator app (such as Authy or Google Authenticator) to generate time-based verification codes.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP Security Key" + }, + "yubiKeyDesc": { + "message": "Use a YubiKey to access your account. Works with YubiKey 4 series, 5 series, and NEO devices." + }, + "duoDesc": { + "message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verify with Duo Security for your organization using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Use any FIDO U2F enabled security key to access your account." + }, + "u2fTitle": { + "message": "FIDO U2F Security Key" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Verification codes will be emailed to you." + }, + "continue": { + "message": "Nastavi" + }, + "organization": { + "message": "Organizacija" + }, + "organizations": { + "message": "Organizacije" + }, + "moveToOrgDesc": { + "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organization that you wish to move these items to. Moving to an organization transfers ownership of the items to that organization. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "Edit the collections that this item is being shared with. Only organization users with access to these collections will be able to see this item." + }, + "deleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to delete. Are you sure you want to delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Choose a folder that you would like to move the $COUNT$ selected item(s) to.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organization, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Verification Code (TOTP)" + }, + "copyVerificationCode": { + "message": "Copy Verification Code" + }, + "warning": { + "message": "Upozorenje" + }, + "confirmVaultExport": { + "message": "Confirm Vault Export" + }, + "exportWarningDesc": { + "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "Izvezi trezor" + }, + "fileFormat": { + "message": "File Format" + }, + "exportSuccess": { + "message": "Your vault data has been exported." + }, + "passwordGenerator": { + "message": "Generator lozinke" + }, + "minComplexityScore": { + "message": "Minimalna ocena kompleksnosti" + }, + "minNumbers": { + "message": "Minimalno cifara" + }, + "minSpecial": { + "message": "Minimalno specijalnih", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Avoid Ambiguous Characters" + }, + "regeneratePassword": { + "message": "Regeneriši lozinku" + }, + "length": { + "message": "Dužina" + }, + "numWords": { + "message": "Broj Reči" + }, + "wordSeparator": { + "message": "Word Separator" + }, + "capitalize": { + "message": "Capitalize", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Include Number" + }, + "passwordHistory": { + "message": "Istorija lozinki" + }, + "noPasswordsInList": { + "message": "There are no passwords to list." + }, + "clear": { + "message": "Očisti", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Nalog je Ažuriran" + }, + "changeEmail": { + "message": "Promeni Imejl" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "Novi Imejl" + }, + "code": { + "message": "Kod" + }, + "changeEmailDesc": { + "message": "Poslali smo verifikacioni kod putem imejla na $EMAIL$. Molimo Vas, proverite vaš imejl kako biste pronašli taj kod i uneli ga radi finalizacije procesa promene imejl adrese.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "emailChanged": { + "message": "Email Changed" + }, + "logBackIn": { + "message": "Please log back in." + }, + "logBackInOthersToo": { + "message": "Please log back in. If you are using other Bitwarden applications log out and back in to those as well." + }, + "changeMasterPassword": { + "message": "Promeni glavnu lozinku" + }, + "masterPasswordChanged": { + "message": "Glavna lozinka je promenjena" + }, + "currentMasterPass": { + "message": "Current Master Password" + }, + "newMasterPass": { + "message": "New Master Password" + }, + "confirmNewMasterPass": { + "message": "Confirm New Master Password" + }, + "encKeySettings": { + "message": "Encryption Key Settings" + }, + "kdfAlgorithm": { + "message": "KDF Algorithm" + }, + "kdfIterations": { + "message": "KDF Iterations" + }, + "kdfIterationsDesc": { + "message": "Higher KDF iterations can help protect your master password from being brute forced by an attacker. We recommend a value of $VALUE$ or more.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Setting your KDF iterations too high could result in poor performance when logging into (and unlocking) Bitwarden on devices with slower CPUs. We recommend that you increase the value in increments of $INCREMENT$ and then test all of your devices.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Change KDF" + }, + "encKeySettingsChanged": { + "message": "Encryption Key Settings Changed" + }, + "dangerZone": { + "message": "Opasna zona" + }, + "dangerZoneDesc": { + "message": "Pažljivo, ove odluke se ne mogu poništiti!" + }, + "deauthorizeSessions": { + "message": "Deauthorize Sessions" + }, + "deauthorizeSessionsDesc": { + "message": "Concerned your account is logged in on another device? Proceed below to deauthorize all computers or devices that you have previously used. This security step is recommended if you previously used a public computer or accidentally saved your password on a device that isn't yours. This step will also clear all previously remembered two-step login sessions." + }, + "deauthorizeSessionsWarning": { + "message": "Proceeding will also log you out of your current session, requiring you to log back in. You will also be prompted for two-step login again, if enabled. Active sessions on other devices may continue to remain active for up to one hour." + }, + "sessionsDeauthorized": { + "message": "All Sessions Deauthorized" + }, + "purgeVault": { + "message": "Purge Vault" + }, + "purgedOrganizationVault": { + "message": "Purged organization vault." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Proceed below to delete all items and folders in your vault. Items that belong to an organization that you share with will not be deleted." + }, + "purgeOrgVaultDesc": { + "message": "Proceed below to delete all items in the organization's vault." + }, + "purgeVaultWarning": { + "message": "Purging your vault is permanent. It cannot be undone." + }, + "vaultPurged": { + "message": "Your vault has been purged." + }, + "deleteAccount": { + "message": "Delete Account" + }, + "deleteAccountDesc": { + "message": "Proceed below to delete your account and all associated data." + }, + "deleteAccountWarning": { + "message": "Deleting your account is permanent. It cannot be undone." + }, + "accountDeleted": { + "message": "Nalog je Obrisan" + }, + "accountDeletedDesc": { + "message": "Vaš nalog je zatvoren, a svi povezani podaci su obrisani." + }, + "myAccount": { + "message": "Moj Nalog" + }, + "tools": { + "message": "Alati" + }, + "importData": { + "message": "Uvezi podatke" + }, + "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." + }, + "importSuccess": { + "message": "Podaci su uspešno uvezeni u Vaš trezor." + }, + "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": "Podaci nisu ispravnog formata. Molimo Vas da proverite datoteku koji pokušavate da uvezete i pokušate ponovo." + }, + "importNothingError": { + "message": "Nema podataka za uvoz." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "selectFormat": { + "message": "Izaberite format datoteke za uvoz" + }, + "selectImportFile": { + "message": "Odaberite datoteku za uvoz" + }, + "orCopyPasteFileContents": { + "message": "ili kopirajte/nalepite sadržaj vaše datoteke za uvoz" + }, + "instructionsFor": { + "message": "Instrukcije za $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Opcije" + }, + "optionsDesc": { + "message": "Customize your web vault experience." + }, + "optionsUpdated": { + "message": "Opcije ažurirane" + }, + "language": { + "message": "Jezik" + }, + "languageDesc": { + "message": "Promenite jezik veb trezora." + }, + "disableIcons": { + "message": "Onemogućite Ikonice Vebsajta" + }, + "disableIconsDesc": { + "message": "Vebsajt ikonice predstavljaju prepoznatljivu sliku koja stoji pored svake stavke za prijavljivanje u Vašem trezoru." + }, + "enableGravatars": { + "message": "Omogućite Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use avatar images loaded from gravatar.com." + }, + "enableFullWidth": { + "message": "Enable Full Width Layout", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Allow the web vault to expand the full width of the browser window." + }, + "default": { + "message": "Podrazumevano" + }, + "domainRules": { + "message": "Domain Rules" + }, + "domainRulesDesc": { + "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + }, + "globalEqDomains": { + "message": "Global Equivalent Domains" + }, + "customEqDomains": { + "message": "Custom Equivalent Domains" + }, + "exclude": { + "message": "Izostavi" + }, + "include": { + "message": "Uključi" + }, + "customize": { + "message": "Prilagodi" + }, + "newCustomDomain": { + "message": "New Custom Domain" + }, + "newCustomDomainDesc": { + "message": "Enter a list of domains separated by commas. Only \"base\" domains are allowed. Do not enter subdomains. For example, enter \"google.com\" instead of \"www.google.com\". You can also enter \"androidapp://package.name\" to associate an android app with other website domains." + }, + "customDomainX": { + "message": "Custom Domain $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domeni su ažurirani" + }, + "twoStepLogin": { + "message": "Prijava u dva koraka" + }, + "twoStepLoginDesc": { + "message": "Secure your account by requiring an additional step when logging in." + }, + "twoStepLoginOrganizationDesc": { + "message": "Require two-step login for your organization's users by configuring providers at the organization level." + }, + "twoStepLoginRecoveryWarning": { + "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (ex. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + }, + "viewRecoveryCode": { + "message": "View Recovery Code" + }, + "providers": { + "message": "Providers", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Omogući" + }, + "enabled": { + "message": "Omogućeno" + }, + "premium": { + "message": "Premijum", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium Članstvo" + }, + "premiumRequired": { + "message": "Premium Required" + }, + "premiumRequiredDesc": { + "message": "A premium membership is required to use this feature." + }, + "youHavePremiumAccess": { + "message": "You have premium access" + }, + "alreadyPremiumFromOrg": { + "message": "You already have access to premium features because of an organization you are a member of." + }, + "manage": { + "message": "Upravljaj" + }, + "disable": { + "message": "Disable" + }, + "twoStepLoginProviderEnabled": { + "message": "This two-step login provider is enabled on your account." + }, + "twoStepLoginAuthDesc": { + "message": "Enter your master password to modify two-step login settings." + }, + "twoStepAuthenticatorDesc": { + "message": "Follow these steps to set up two-step login with an authenticator app:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Download a two-step authenticator app" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Need a two-step authenticator app? Download one of the following" + }, + "iosDevices": { + "message": "iOS devices" + }, + "androidDevices": { + "message": "Android devices" + }, + "windowsDevices": { + "message": "Windows devices" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "These apps are recommended, however, other authenticator apps will also work." + }, + "twoStepAuthenticatorScanCode": { + "message": "Scan this QR code with your authenticator app" + }, + "key": { + "message": "Ključ" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Enter the resulting 6 digit verification code from the app" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "In case you need to add it to another device, below is the QR code (or key) required by your authenticator app." + }, + "twoStepDisableDesc": { + "message": "Are you sure you want to disable this two-step login provider?" + }, + "twoStepDisabled": { + "message": "Two-step login provider disabled." + }, + "twoFactorYubikeyAdd": { + "message": "Add a new YubiKey to your account" + }, + "twoFactorYubikeyPlugIn": { + "message": "Plug the YubiKey into your computer's USB port." + }, + "twoFactorYubikeySelectKey": { + "message": "Select the first empty YubiKey input field below." + }, + "twoFactorYubikeyTouchButton": { + "message": "Touch the YubiKey's button." + }, + "twoFactorYubikeySaveForm": { + "message": "Save the form." + }, + "twoFactorYubikeyWarning": { + "message": "Due to platform limitations, YubiKeys cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when YubiKeys cannot be used. Supported platforms:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile apps on a device with NFC capabilities or a data port that can accept your YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC Support" + }, + "twoFactorYubikeySupportsNfc": { + "message": "One of my keys supports NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "If one of your YubiKeys supports NFC (such as a YubiKey NEO), you will be prompted on mobile devices whenever NFC availability is detected." + }, + "yubikeysUpdated": { + "message": "YubiKeys updated" + }, + "disableAllKeys": { + "message": "Disable All Keys" + }, + "twoFactorDuoDesc": { + "message": "Enter the Bitwarden application information from your Duo Admin panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration Key" + }, + "twoFactorDuoSecretKey": { + "message": "Tajni Ključ" + }, + "twoFactorDuoApiHostname": { + "message": "API Hostname" + }, + "twoFactorEmailDesc": { + "message": "Follow these steps to set up two-step login with email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enter the email that you wish to receive verification codes" + }, + "twoFactorEmailEnterCode": { + "message": "Enter the resulting 6 digit verification code from the email" + }, + "sendEmail": { + "message": "Pošalji email" + }, + "twoFactorU2fAdd": { + "message": "Add a FIDO U2F security key to your account" + }, + "removeU2fConfirmation": { + "message": "Are you sure you want to remove this security key?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Read Key" + }, + "keyCompromised": { + "message": "Ključ je kompromitovan." + }, + "twoFactorU2fGiveName": { + "message": "Give the security key a friendly name to identify it." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Plug the security key into your computer's USB port and click the \"Read Key\" button." + }, + "twoFactorU2fTouchButton": { + "message": "If the security key has a button, touch it." + }, + "twoFactorU2fSaveForm": { + "message": "Save the form." + }, + "twoFactorU2fWarning": { + "message": "Due to platform limitations, FIDO U2F cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when FIDO U2F cannot be used. Supported platforms:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorU2fWaiting": { + "message": "Waiting for you to touch the button on your security key" + }, + "twoFactorU2fClickSave": { + "message": "Click the \"Save\" button below to enable this security key for two-step login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Your Bitwarden two-step login recovery code" + }, + "twoFactorRecoveryNoCode": { + "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + }, + "printCode": { + "message": "Print Code", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Izveštaji" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Unsecure Websites" + }, + "unsecuredWebsitesReportDesc": { + "message": "URLs that start with http:// don’t use the best available encryption. Change the Login URIs for these accounts to https:// for safer browsing." + }, + "unsecuredWebsitesFound": { + "message": "Unsecured Websites Found" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Inactive Two-step Login" + }, + "inactive2faReportDesc": { + "message": "Two-step Login adds a layer of protection to your accounts. Turn on Two-Step Login using Bitwarden Authenticator for these accounts or use an alternative method." + }, + "inactive2faFound": { + "message": "Logins Without 2FA Found" + }, + "inactive2faFoundDesc": { + "message": "We found $COUNT$ website(s) in your vault that may not be configured with two-factor authentication (according to 2fa.directory). To further protect these accounts, you should enable two-factor authentication.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "No websites were found in your vault with a missing two-factor authentication configuration." + }, + "instructions": { + "message": "Uputstvo" + }, + "exposedPasswordsReport": { + "message": "Exposed Passwords" + }, + "exposedPasswordsReportDesc": { + "message": "Passwords exposed in a data breach are easy targets for attackers. Change these passwords to prevent potential break-ins." + }, + "exposedPasswordsFound": { + "message": "Exposed Passwords Found" + }, + "exposedPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No items in your vault have passwords that have been exposed in known data breaches." + }, + "checkExposedPasswords": { + "message": "Check Exposed Passwords" + }, + "exposedXTimes": { + "message": "Exposed $COUNT$ time(s)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Weak Passwords" + }, + "weakPasswordsReportDesc": { + "message": "Weak passwords can be easily guessed by attackers. Change these passwords to strong ones using the Password Generator." + }, + "weakPasswordsFound": { + "message": "Weak Passwords Found" + }, + "weakPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "No items in your vault have weak passwords." + }, + "reusedPasswordsReport": { + "message": "Reused Passwords" + }, + "reusedPasswordsReportDesc": { + "message": "Reusing passwords makes it easier for attackers to break into multiple accounts. Change these passwords so that each is unique." + }, + "reusedPasswordsFound": { + "message": "Reused Passwords Found" + }, + "reusedPasswordsFoundDesc": { + "message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "No logins in your vault have passwords that are being reused." + }, + "reusedXTimes": { + "message": "Reused $COUNT$ times", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Data Breach" + }, + "breachDesc": { + "message": "Breached accounts can expose your personal information. Secure breached accounts by enabling 2FA or creating a stronger password." + }, + "breachCheckUsernameEmail": { + "message": "Check any usernames or email addresses that you use." + }, + "checkBreaches": { + "message": "Check Breaches" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ was not found in any known data breaches.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Dobre Vesti", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Breached Accounts Found" + }, + "compromisedData": { + "message": "Kompromitovani podaci" + }, + "website": { + "message": "Web stranica" + }, + "affectedUsers": { + "message": "Affected Users" + }, + "breachOccurred": { + "message": "Breach Occurred" + }, + "breachReported": { + "message": "Breach Reported" + }, + "reportError": { + "message": "An error occurred trying to load the report. Try again" + }, + "billing": { + "message": "Naplata" + }, + "accountCredit": { + "message": "Account Credit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Account Balance", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Dodaj Kredit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Iznos", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Added credit will appear on your account after the payment has been fully processed. Some payment methods are delayed and can take longer to process than others." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + }, + "goPremium": { + "message": "Pređi na Premijum", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Unapredili ste svoj nalog na premijum." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Upgrade your account to a premium membership and unlock some great additional features." + }, + "premiumSignUpStorage": { + "message": "1 GB encrypted storage for file attachments." + }, + "premiumSignUpTwoStep": { + "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + }, + "premiumSignUpTotp": { + "message": "TOTP verification code (2FA) generator for logins in your vault." + }, + "premiumSignUpSupport": { + "message": "Priority customer support." + }, + "premiumSignUpFuture": { + "message": "All future premium features. More coming soon!" + }, + "premiumPrice": { + "message": "All for just $PRICE$ /year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Dodaci" + }, + "premiumAccess": { + "message": "Premium Access" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organization for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Additional Storage (GB)" + }, + "additionalStorageGbDesc": { + "message": "# of additional GB" + }, + "additionalStorageIntervalDesc": { + "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Summary" + }, + "total": { + "message": "Ukupno" + }, + "year": { + "message": "godina" + }, + "month": { + "message": "mesec" + }, + "monthAbbr": { + "message": "mj.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Your payment method will be charged immediately and then on a recurring basis each year. You may cancel at any time." + }, + "paymentCharged": { + "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Your plan comes with a free 7 day trial. Your payment method will not be charged until the trial has ended. You may cancel at any time." + }, + "paymentInformation": { + "message": "Payment Information" + }, + "billingInformation": { + "message": "Billing Information" + }, + "creditCard": { + "message": "Credit Card" + }, + "paypalClickSubmit": { + "message": "Click the PayPal button to log into your PayPal account, then click the Submit button below to continue." + }, + "cancelSubscription": { + "message": "Cancel Subscription" + }, + "subscriptionCanceled": { + "message": "The subscription has been canceled." + }, + "pendingCancellation": { + "message": "Pending Cancellation" + }, + "subscriptionPendingCanceled": { + "message": "The subscription has been marked for cancellation at the end of the current billing period." + }, + "reinstateSubscription": { + "message": "Reinstate Subscription" + }, + "reinstateConfirmation": { + "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + }, + "reinstated": { + "message": "The subscription has been reinstated." + }, + "cancelConfirmation": { + "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + }, + "canceledSubscription": { + "message": "The subscription has been canceled." + }, + "neverExpires": { + "message": "Never Expires" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Sledeće Plaćanje" + }, + "details": { + "message": "Detalji" + }, + "downloadLicense": { + "message": "Download License" + }, + "updateLicense": { + "message": "Update License" + }, + "updatedLicense": { + "message": "Updated license" + }, + "manageSubscription": { + "message": "Manage Subscription" + }, + "storage": { + "message": "Storage" + }, + "addStorage": { + "message": "Add Storage" + }, + "removeStorage": { + "message": "Remove Storage" + }, + "subscriptionStorage": { + "message": "Your subscription has a total of $MAX_STORAGE$ GB of encrypted file storage. You are currently using $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Način plaćanja" + }, + "noPaymentMethod": { + "message": "No payment method on file." + }, + "addPaymentMethod": { + "message": "Add Payment Method" + }, + "changePaymentMethod": { + "message": "Change Payment Method" + }, + "invoices": { + "message": "Invoices" + }, + "noInvoices": { + "message": "No invoices." + }, + "paid": { + "message": "Plaćeno", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Neplaćeno", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transakcije", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Nema transakcija." + }, + "chargeNoun": { + "message": "Charge", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Povrat novca", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Any charges will appear on your statement as $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB of Storage To Add" + }, + "gbStorageRemove": { + "message": "GB of Storage To Remove" + }, + "storageAddNote": { + "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "storageRemoveNote": { + "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedStorage": { + "message": "Adjusted $AMOUNT$ GB of storage.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contact Customer Support" + }, + "updatedPaymentMethod": { + "message": "Updated payment method." + }, + "purchasePremium": { + "message": "Purchase Premium" + }, + "licenseFile": { + "message": "License File" + }, + "licenseFileDesc": { + "message": "Your license file will be named something like $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "To upgrade your account to a premium membership you need to upload a valid license file." + }, + "uploadLicenseFileOrg": { + "message": "To create an on-premises hosted organization you need to upload a valid license file." + }, + "accountEmailMustBeVerified": { + "message": "Your account's email address must be verified." + }, + "newOrganizationDesc": { + "message": "Organizations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company." + }, + "generalInformation": { + "message": "General Information" + }, + "organizationName": { + "message": "Organization Name" + }, + "accountOwnedBusiness": { + "message": "This account is owned by a business." + }, + "billingEmail": { + "message": "Billing Email" + }, + "businessName": { + "message": "Business Name" + }, + "chooseYourPlan": { + "message": "Choose Your Plan" + }, + "users": { + "message": "Korisnici" + }, + "userSeats": { + "message": "User Seats" + }, + "additionalUserSeats": { + "message": "Additional User Seats" + }, + "userSeatsDesc": { + "message": "# of user seats" + }, + "userSeatsAdditionalDesc": { + "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "How many user seats do you need? You can also add additional seats later if needed." + }, + "planNameFree": { + "message": "Free", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing or personal users to share with $COUNT$ other user.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Families" + }, + "planDescFamilies": { + "message": "For personal use, to share with family & friends." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "For businesses and other team organizations." + }, + "planNameEnterprise": { + "message": "Enterprise" + }, + "planDescEnterprise": { + "message": "For businesses and other large organizations." + }, + "freeForever": { + "message": "Free Forever" + }, + "includesXUsers": { + "message": "includes $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Dodatni Korisnici" + }, + "costPerUser": { + "message": "$COST$ po korisniku", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limited to $COUNT$ users (including you)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limited to $COUNT$ collections", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Add and share with up to $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Add and share with unlimited users" + }, + "createUnlimitedCollections": { + "message": "Create unlimited Collections" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ encrypted file storage", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "On-premise hosting (optional)" + }, + "usersGetPremium": { + "message": "Users get access to Premium Features" + }, + "controlAccessWithGroups": { + "message": "Control user access with Groups" + }, + "syncUsersFromDirectory": { + "message": "Sync your users and Groups from a directory" + }, + "trackAuditLogs": { + "message": "Track user actions with audit logs" + }, + "enforce2faDuo": { + "message": "Enforce 2FA with Duo" + }, + "priorityCustomerSupport": { + "message": "Priority customer support" + }, + "xDayFreeTrial": { + "message": "$COUNT$ day free trial, cancel anytime", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Monthly" + }, + "annually": { + "message": "Annually" + }, + "basePrice": { + "message": "Base Price" + }, + "organizationCreated": { + "message": "Organization Created" + }, + "organizationReadyToGo": { + "message": "Your new organization is ready to go!" + }, + "organizationUpgraded": { + "message": "Your organization has been upgraded." + }, + "leave": { + "message": "Leave" + }, + "leaveOrganizationConfirmation": { + "message": "Are you sure you want to leave this organization?" + }, + "leftOrganization": { + "message": "You have left the organization." + }, + "defaultCollection": { + "message": "Default Collection" + }, + "getHelp": { + "message": "Get Help" + }, + "getApps": { + "message": "Get the Apps" + }, + "loggedInAs": { + "message": "Logged in as" + }, + "eventLogs": { + "message": "Event Logs" + }, + "people": { + "message": "People" + }, + "policies": { + "message": "Policies" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Edit Policy" + }, + "groups": { + "message": "Grupe" + }, + "newGroup": { + "message": "Nova Grupa" + }, + "addGroup": { + "message": "Dodaj Grupu" + }, + "editGroup": { + "message": "Uredi Grupu" + }, + "deleteGroupConfirmation": { + "message": "Are you sure you want to delete this group?" + }, + "removeUserConfirmation": { + "message": "Are you sure you want to remove this user?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "External Id" + }, + "externalIdDesc": { + "message": "The external id can be used as a reference or to link this resource to an external system such as a user directory." + }, + "accessControl": { + "message": "Kontrola Pristupa" + }, + "groupAccessAllItems": { + "message": "This group can access and modify all items." + }, + "groupAccessSelectedCollections": { + "message": "This group can access only the selected collections." + }, + "readOnly": { + "message": "Read Only" + }, + "newCollection": { + "message": "New Collection" + }, + "addCollection": { + "message": "Add Collection" + }, + "editCollection": { + "message": "Edit Collection" + }, + "deleteCollectionConfirmation": { + "message": "Are you sure you want to delete this collection?" + }, + "editUser": { + "message": "Edit User" + }, + "inviteUser": { + "message": "Invite User" + }, + "inviteUserDesc": { + "message": "Invite a new user to your organization by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "inviteMultipleEmailDesc": { + "message": "You can invite up to $COUNT$ users at a time by comma separating a list of email addresses.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "This user is using two-step login to protect their account." + }, + "userAccessAllItems": { + "message": "This user can access and modify all items." + }, + "userAccessSelectedCollections": { + "message": "This user can access only the selected collections." + }, + "search": { + "message": "Search" + }, + "invited": { + "message": "Invited" + }, + "accepted": { + "message": "Accepted" + }, + "confirmed": { + "message": "Confirmed" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Owner" + }, + "ownerDesc": { + "message": "The highest access user that can manage all aspects of your organization." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admins can access and manage all items, collections and users in your organization." + }, + "user": { + "message": "User" + }, + "userDesc": { + "message": "A regular user with access to assigned collections in your organization." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managers can access and manage assigned collections in your organization." + }, + "all": { + "message": "All" + }, + "refresh": { + "message": "Refresh" + }, + "timestamp": { + "message": "Timestamp" + }, + "event": { + "message": "Event" + }, + "unknown": { + "message": "Unknown" + }, + "loadMore": { + "message": "Učitaj Još" + }, + "mobile": { + "message": "Mobile", + "description": "Mobile app" + }, + "extension": { + "message": "Extension", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Web Vault" + }, + "loggedIn": { + "message": "Logged in." + }, + "changedPassword": { + "message": "Changed account password." + }, + "enabledUpdated2fa": { + "message": "Enabled/updated two-step login." + }, + "disabled2fa": { + "message": "Disabled two-step login." + }, + "recovered2fa": { + "message": "Recovered account from two-step login." + }, + "failedLogin": { + "message": "Login attempt failed with incorrect password." + }, + "failedLogin2fa": { + "message": "Login attempt failed with incorrect two-step login." + }, + "exportedVault": { + "message": "Exported vault." + }, + "exportedOrganizationVault": { + "message": "Exported organization vault." + }, + "editedOrgSettings": { + "message": "Edited organization settings." + }, + "createdItemId": { + "message": "Created item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Edited item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Sent item $ID$ to trash.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Viewed item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Viewed password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Viewed hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Viewed security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Copied password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Copied hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Copied security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Auto-filled item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Created collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Edited collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Deleted collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Edited policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Created group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Edited group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Deleted group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Removed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Created attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Deleted attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Edited collections for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Invited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Confirmed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Edited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Edited groups for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Device" + }, + "view": { + "message": "View" + }, + "invalidDateRange": { + "message": "Invalid date range." + }, + "errorOccurred": { + "message": "An error has occurred." + }, + "userAccess": { + "message": "User Access" + }, + "userType": { + "message": "User Type" + }, + "groupAccess": { + "message": "Group Access" + }, + "groupAccessUserDesc": { + "message": "Edit the groups that this user belongs to." + }, + "invitedUsers": { + "message": "Invited user(s)." + }, + "resendInvitation": { + "message": "Resend Invitation" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ has been reinvited.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirm" + }, + "confirmUser": { + "message": "Confirm User" + }, + "hasBeenConfirmed": { + "message": "$USER$ has been confirmed.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirm Users" + }, + "usersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organization until they are confirmed." + }, + "startDate": { + "message": "Start Date" + }, + "endDate": { + "message": "End Date" + }, + "verifyEmail": { + "message": "Verify Email" + }, + "verifyEmailDesc": { + "message": "Verify your account's email address to unlock access to all features." + }, + "verifyEmailFirst": { + "message": "Your account's email address first must be verified." + }, + "checkInboxForVerification": { + "message": "Check your email inbox for a verification link." + }, + "emailVerified": { + "message": "Your email has been verified." + }, + "emailVerifiedFailed": { + "message": "Unable to verify your email. Try sending a new verification email." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "Update Browser" + }, + "updateBrowserDesc": { + "message": "You are using an unsupported web browser. The web vault may not function properly." + }, + "joinOrganization": { + "message": "Join Organization" + }, + "joinOrganizationDesc": { + "message": "You've been invited to join the organization listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "inviteAccepted": { + "message": "Invitation Accepted" + }, + "inviteAcceptedDesc": { + "message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens." + }, + "inviteAcceptFailed": { + "message": "Unable to accept invitation. Ask an organization admin to send a new invitation." + }, + "inviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Remember email" + }, + "recoverAccountTwoStepDesc": { + "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + }, + "recoverAccountTwoStep": { + "message": "Recover Account Two-Step Login" + }, + "twoStepRecoverDisabled": { + "message": "Two-step login has been disabled on your account." + }, + "learnMore": { + "message": "Saznaj više" + }, + "deleteRecoverDesc": { + "message": "Enter your email address below to recover and delete your account." + }, + "deleteRecoverEmailSent": { + "message": "If your account exists, we've sent you an email with further instructions." + }, + "deleteRecoverConfirmDesc": { + "message": "You have requested to delete your Bitwarden account. Click the button below to confirm." + }, + "myOrganization": { + "message": "My Organization" + }, + "deleteOrganization": { + "message": "Delete Organization" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organization Deleted" + }, + "organizationDeletedDesc": { + "message": "The organization and all associated data has been deleted." + }, + "organizationUpdated": { + "message": "Organization updated" + }, + "taxInformation": { + "message": "Tax Information" + }, + "taxInformationDesc": { + "message": "For customers within the US, ZIP code is required to satisfy sales tax requirements, for other countries you may optionally provide a tax identification number (VAT/GST) and/or address to appear on your invoices." + }, + "billingPlan": { + "message": "Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Upgrade Plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade your account to another plan by providing the information below. Please ensure that you have an active payment method added to the account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Invoice #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "View Invoice" + }, + "downloadInvoice": { + "message": "Download Invoice" + }, + "verifyBankAccount": { + "message": "Verify Bank Account" + }, + "verifyBankAccountDesc": { + "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." + }, + "verifyBankAccountInitialDesc": { + "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organization's billing page to verify the bank account." + }, + "verifyBankAccountFailureWarning": { + "message": "Failure to verify the bank account will result in a missed payment and your subscription being disabled." + }, + "verifiedBankAccount": { + "message": "Bank account has been verified." + }, + "bankAccount": { + "message": "Bank Account" + }, + "amountX": { + "message": "Amount $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Account Number" + }, + "accountHolderName": { + "message": "Account Holder Name" + }, + "bankAccountType": { + "message": "Account Type" + }, + "bankAccountTypeCompany": { + "message": "Company (Business)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Personal)" + }, + "enterInstallationId": { + "message": "Enter your installation id" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Add Seats", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remove Seats", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Your subscription allows for a total of $COUNT$ users.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seats To Add" + }, + "seatsToRemove": { + "message": "Seats To Remove" + }, + "seatsAddNote": { + "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "seatsRemoveNote": { + "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedSeats": { + "message": "Adjusted $AMOUNT$ user seats.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Key Updated" + }, + "updateKeyTitle": { + "message": "Update Key" + }, + "updateEncryptionKey": { + "message": "Update Encryption Key" + }, + "updateEncryptionKeyShortDesc": { + "message": "You are currently using an outdated encryption scheme." + }, + "updateEncryptionKeyDesc": { + "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, however, it may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "Subscription" + }, + "loading": { + "message": "Loading" + }, + "upgrade": { + "message": "Upgrade" + }, + "upgradeOrganization": { + "message": "Upgrade Organization" + }, + "upgradeOrganizationDesc": { + "message": "This feature is not available for free organizations. Switch to a paid plan to unlock more features." + }, + "createOrganizationStep1": { + "message": "Create Organization: Step 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Before creating your organization, you first need to create a free personal account." + }, + "refunded": { + "message": "Refunded" + }, + "nothingSelected": { + "message": "You have not selected anything." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." + }, + "termsOfService": { + "message": "Terms of Service" + }, + "privacyPolicy": { + "message": "Privacy Policy" + }, + "filters": { + "message": "Filteri" + }, + "vaultTimeout": { + "message": "Vault Timeout" + }, + "vaultTimeoutDesc": { + "message": "Choose when your vault will timeout and perform the selected action." + }, + "oneMinute": { + "message": "1 minute" + }, + "fiveMinutes": { + "message": "5 minutes" + }, + "fifteenMinutes": { + "message": "15 minutes" + }, + "thirtyMinutes": { + "message": "30 minutes" + }, + "oneHour": { + "message": "1 hour" + }, + "fourHours": { + "message": "4 hours" + }, + "onRefresh": { + "message": "On Browser Refresh" + }, + "dateUpdated": { + "message": "Updated", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Password Updated", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organization is disabled." + }, + "licenseIsExpired": { + "message": "License is expired." + }, + "updatedUsers": { + "message": "Updated users" + }, + "selected": { + "message": "Selected" + }, + "ownership": { + "message": "Ownership" + }, + "whoOwnsThisItem": { + "message": "Who owns this item?" + }, + "strong": { + "message": "Strong", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Good", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Weak", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Very Weak", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Weak Master Password" + }, + "weakMasterPasswordDesc": { + "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + }, + "rotateAccountEncKey": { + "message": "Also rotate my account's encryption key" + }, + "rotateEncKeyTitle": { + "message": "Rotate Encryption Key" + }, + "rotateEncKeyConfirmation": { + "message": "Are you sure you want to rotate your account's encryption key?" + }, + "attachmentsNeedFix": { + "message": "This item has old file attachments that need to be fixed." + }, + "attachmentFixDesc": { + "message": "This is an old file attachment the needs to be fixed. Click to learn more." + }, + "fix": { + "message": "Fix", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key." + }, + "yourAccountsFingerprint": { + "message": "Your account's fingerprint phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Never prompt to verify fingerprint phrases for invited users (Not recommended)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Free", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API Key" + }, + "apiKeyDesc": { + "message": "Your API key can be used to authenticate to the Bitwarden public API." + }, + "apiKeyRotateDesc": { + "message": "Rotating the API key will invalidate the previous key. You can rotate your API key if you believe that the current key is no longer safe to use." + }, + "apiKeyWarning": { + "message": "Your API key has full access to the organization. It should be kept secret." + }, + "userApiKeyDesc": { + "message": "Your API key can be used to authenticate in the Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 Client Credentials", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "View API Key" + }, + "rotateApiKey": { + "message": "Rotate API Key" + }, + "selectOneCollection": { + "message": "You must select at least one collection." + }, + "couldNotChargeCardPayInvoice": { + "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + }, + "inAppPurchase": { + "message": "In-app Purchase" + }, + "cannotPerformInAppPurchase": { + "message": "You cannot perform this action while using an in-app purchase payment method." + }, + "manageSubscriptionFromStore": { + "message": "You must manage your subscription from the store where your in-app purchase was made." + }, + "minLength": { + "message": "Minimalna dužina" + }, + "clone": { + "message": "Clone" + }, + "masterPassPolicyDesc": { + "message": "Set minimum requirements for master password strength." + }, + "twoStepLoginPolicyDesc": { + "message": "Require users to set up two-step login on their personal accounts." + }, + "twoStepLoginPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and do not have two-step login enabled for their personal account will be removed from the organization and will receive an email notifying them about the change." + }, + "twoStepLoginPolicyUserWarning": { + "message": "You are a member of an organization that requires two-step login to be enabled on your user account. If you disable all two-step login providers you will be automatically removed from these organizations." + }, + "passwordGeneratorPolicyDesc": { + "message": "Set minimum requirements for password generator configuration." + }, + "passwordGeneratorPolicyInEffect": { + "message": "One or more organization policies are affecting your generator settings." + }, + "masterPasswordPolicyInEffect": { + "message": "One or more organization policies require your master password to meet the following requirements:" + }, + "policyInEffectMinComplexity": { + "message": "Minimalna ocena kompleksnosti od $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimalna dužina od $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contain one or more uppercase characters" + }, + "policyInEffectLowercase": { + "message": "Contain one or more lowercase characters" + }, + "policyInEffectNumbers": { + "message": "Contain one or more numbers" + }, + "policyInEffectSpecial": { + "message": "Contain one or more of the following special characters $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Your new master password does not meet the policy requirements." + }, + "minimumNumberOfWords": { + "message": "Minimalan broj reči" + }, + "defaultType": { + "message": "Default Type" + }, + "userPreference": { + "message": "User Preference" + }, + "vaultTimeoutAction": { + "message": "Vault Timeout Action" + }, + "vaultTimeoutActionLockDesc": { + "message": "A locked vault requires that you re-enter your master password to access it again." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "A logged out vault requires that you re-authenticate to access it again." + }, + "lock": { + "message": "Lock", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Kanta", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Search Trash" + }, + "permanentlyDelete": { + "message": "Permanently Delete" + }, + "permanentlyDeleteSelected": { + "message": "Permanently Delete Selected" + }, + "permanentlyDeleteItem": { + "message": "Permanently Delete Item" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Are you sure you want to permanently delete this item?" + }, + "permanentlyDeletedItem": { + "message": "Permanently Deleted item" + }, + "permanentlyDeletedItems": { + "message": "Permanently Deleted items" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Permanently Deleted item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Restore" + }, + "restoreSelected": { + "message": "Restore Selected" + }, + "restoreItem": { + "message": "Restore Item" + }, + "restoredItem": { + "message": "Restored Item" + }, + "restoredItems": { + "message": "Restored Items" + }, + "restoreItemConfirmation": { + "message": "Are you sure you want to restore this item?" + }, + "restoreItems": { + "message": "Restore items" + }, + "restoreSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Restored item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout Action Confirmation" + }, + "hidePasswords": { + "message": "Hide Passwords" + }, + "countryPostalCodeRequiredDesc": { + "message": "We require this information for calculating sales tax and financial reporting only." + }, + "includeVAT": { + "message": "Include VAT/GST Information (optional)" + }, + "taxIdNumber": { + "message": "VAT/GST Tax ID" + }, + "taxInfoUpdated": { + "message": "Tax information updated." + }, + "setMasterPassword": { + "message": "Set Master Password" + }, + "ssoCompleteRegistration": { + "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + }, + "identifier": { + "message": "Identifier" + }, + "organizationIdentifier": { + "message": "Organization Identifier" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Log in using your organization's single sign-on portal. Please enter your organization's identifier to begin." + }, + "enterpriseSingleSignOn": { + "message": "Enterprise Single Sign-On" + }, + "ssoHandOff": { + "message": "You may now close this tab and continue in the extension." + }, + "includeAllTeamsFeatures": { + "message": "All Teams features, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO Authentication via SAML2.0 and OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Enterprise Policies" + }, + "ssoValidationFailed": { + "message": "SSO Validation Failed" + }, + "ssoIdentifierRequired": { + "message": "Organization Identifier is required." + }, + "unlinkSso": { + "message": "Unlink SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Link SSO" + }, + "singleOrg": { + "message": "Single Organization" + }, + "singleOrgDesc": { + "message": "Restrict users from being able to join any other organizations." + }, + "singleOrgBlockCreateMessage": { + "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + }, + "singleOrgPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + }, + "requireSso": { + "message": "Single Sign-On Authentication" + }, + "requireSsoPolicyDesc": { + "message": "Require users to log in with the Enterprise Single Sign-On method." + }, + "prerequisite": { + "message": "Prerequisite" + }, + "requireSsoPolicyReq": { + "message": "The Single Organization enterprise policy must be enabled before activating this policy." + }, + "requireSsoPolicyReqError": { + "message": "Single Organization policy not enabled." + }, + "requireSsoExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "sendTypeFile": { + "message": "File" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Napravi novo slanje", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Izmeni slanje", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Napravljena slanja", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Izmenjena slanja", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Obrisana slanja", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Obriši slanje", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Are you sure you want to delete this Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "What type of Send is this?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Deletion Date" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Expiration Date" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximum Access Count" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Current Access Count" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Disabled" + }, + "sendLink": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copy Send Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remove Password" + }, + "removedPassword": { + "message": "Removed Password" + }, + "removePasswordConfirmation": { + "message": "Are you sure you want to remove the password?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Sva slanja" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "expired": { + "message": "Expired" + }, + "searchSends": { + "message": "Search Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "This Send is protected with a password. Please type the password below to continue.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Download File" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "There are no Sends to list.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Emergency Access" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 day" + }, + "days": { + "message": "$DAYS$ days", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Request Access" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Approve" + }, + "reject": { + "message": "Reject" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Disable Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "Estimated tax" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Manage All Collections" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Manage Groups" + }, + "managePolicies": { + "message": "Manage Policies" + }, + "manageSso": { + "message": "Manage SSO" + }, + "manageUsers": { + "message": "Manage Users" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organization users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "The text you want to send." + }, + "sendFileDesc": { + "message": "The file you want to send." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Pošalji vezu", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Slanje", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Learn more about", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Saznaj više", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "ili", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "try it now", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "ili", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "sign up", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "to try it today.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organization policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organization administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Stavke koje su bile u Kanti više od 30 dana će automatski biti obrisane." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/sv/messages.json b/apps/web/src/locales/sv/messages.json new file mode 100644 index 0000000000..bfae38634a --- /dev/null +++ b/apps/web/src/locales/sv/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ webbvalv", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Vilken typ av objekt är detta?" + }, + "name": { + "message": "Namn" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Ny URI" + }, + "username": { + "message": "Användarnamn" + }, + "password": { + "message": "Lösenord" + }, + "newPassword": { + "message": "Nytt lösenord" + }, + "passphrase": { + "message": "Lösenordsfras" + }, + "notes": { + "message": "Anteckningar" + }, + "customFields": { + "message": "Anpassade fält" + }, + "cardholderName": { + "message": "Kortinnehavarens namn" + }, + "number": { + "message": "Nummer" + }, + "brand": { + "message": "Märke" + }, + "expiration": { + "message": "Utgång" + }, + "securityCode": { + "message": "Säkerhetskod (CVV)" + }, + "identityName": { + "message": "Identitetsnamn" + }, + "company": { + "message": "Företag" + }, + "ssn": { + "message": "Personnummer" + }, + "passportNumber": { + "message": "Passnummer" + }, + "licenseNumber": { + "message": "Körkortsnummer" + }, + "email": { + "message": "E-post" + }, + "phone": { + "message": "Telefon" + }, + "january": { + "message": "Januari" + }, + "february": { + "message": "Februari" + }, + "march": { + "message": "Mars" + }, + "april": { + "message": "April" + }, + "may": { + "message": "Maj" + }, + "june": { + "message": "Juni" + }, + "july": { + "message": "Juli" + }, + "august": { + "message": "Augusti" + }, + "september": { + "message": "September" + }, + "october": { + "message": "Oktober" + }, + "november": { + "message": "November" + }, + "december": { + "message": "December" + }, + "title": { + "message": "Titel" + }, + "mr": { + "message": "Herr" + }, + "mrs": { + "message": "Fru" + }, + "ms": { + "message": "Fröken" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Utgångsmånad" + }, + "expirationYear": { + "message": "Utgångsår" + }, + "authenticatorKeyTotp": { + "message": "Autentiseringsnyckel (TOTP)" + }, + "folder": { + "message": "Mapp" + }, + "newCustomField": { + "message": "Nytt anpassat fält" + }, + "value": { + "message": "Värde" + }, + "dragToSort": { + "message": "Dra för att sortera" + }, + "cfTypeText": { + "message": "Text" + }, + "cfTypeHidden": { + "message": "Dold" + }, + "cfTypeBoolean": { + "message": "Booleskt värde" + }, + "cfTypeLinked": { + "message": "Länkad", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Ta bort" + }, + "unassigned": { + "message": "Ej tilldelad" + }, + "noneFolder": { + "message": "Ingen mapp", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Lägg till mapp" + }, + "editFolder": { + "message": "Redigera mapp" + }, + "baseDomain": { + "message": "Basdomän", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domännamn", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Värd", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Exakt" + }, + "startsWith": { + "message": "Börjar med" + }, + "regEx": { + "message": "Reguljärt uttryck", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Matchning", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Standardmatchning", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Aldrig" + }, + "toggleVisibility": { + "message": "Växla synlighet" + }, + "toggleCollapse": { + "message": "Växla synlig/dold", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Skapa lösenord" + }, + "checkPassword": { + "message": "Kontrollera om lösenordet har avslöjats." + }, + "passwordExposed": { + "message": "Detta lösenord har avslöjats $VALUE$ gång(er) i dataintrång. Du bör ändra det.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Detta lösenord hittades inte i några kända dataintrång. Det bör vara säkert att använda." + }, + "save": { + "message": "Spara" + }, + "cancel": { + "message": "Avbryt" + }, + "canceled": { + "message": "Avbruten" + }, + "close": { + "message": "Stäng" + }, + "delete": { + "message": "Radera" + }, + "favorite": { + "message": "Favorit" + }, + "unfavorite": { + "message": "Ta bort favorit" + }, + "edit": { + "message": "Redigera" + }, + "searchCollection": { + "message": "Sök i samling" + }, + "searchFolder": { + "message": "Sök i mapp" + }, + "searchFavorites": { + "message": "Sök i favoriter" + }, + "searchType": { + "message": "Sök efter typ", + "description": "Search item type" + }, + "searchVault": { + "message": "Sök i valvet" + }, + "allItems": { + "message": "Alla objekt" + }, + "favorites": { + "message": "Favoriter" + }, + "types": { + "message": "Typer" + }, + "typeLogin": { + "message": "Inloggning" + }, + "typeCard": { + "message": "Kort" + }, + "typeIdentity": { + "message": "Identitet" + }, + "typeSecureNote": { + "message": "Säker anteckning" + }, + "typeLoginPlural": { + "message": "Inloggningar" + }, + "typeCardPlural": { + "message": "Kort" + }, + "typeIdentityPlural": { + "message": "Identiteter" + }, + "typeSecureNotePlural": { + "message": "Säkra anteckningar" + }, + "folders": { + "message": "Mappar" + }, + "collections": { + "message": "Samlingar" + }, + "firstName": { + "message": "Förnamn" + }, + "middleName": { + "message": "Mellannamn" + }, + "lastName": { + "message": "Efternamn" + }, + "fullName": { + "message": "Fullständigt namn" + }, + "address1": { + "message": "Adress 1" + }, + "address2": { + "message": "Adress 2" + }, + "address3": { + "message": "Adress 3" + }, + "cityTown": { + "message": "Ort" + }, + "stateProvince": { + "message": "Län" + }, + "zipPostalCode": { + "message": "Postnummer" + }, + "country": { + "message": "Land" + }, + "shared": { + "message": "Delad" + }, + "attachments": { + "message": "Bilagor" + }, + "select": { + "message": "Välj" + }, + "addItem": { + "message": "Lägg till objekt" + }, + "editItem": { + "message": "Redigera objekt" + }, + "viewItem": { + "message": "Visa objekt" + }, + "ex": { + "message": "t.ex.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Annat" + }, + "share": { + "message": "Dela" + }, + "moveToOrganization": { + "message": "Flytta till organisation" + }, + "valueCopied": { + "message": "$VALUE$ kopierades", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Kopiera värde", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Kopiera lösenord", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Kopiera användarnamn", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Kopiera nummer", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Kopiera säkerhetskod", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Kopiera URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Mitt valv" + }, + "vault": { + "message": "Valv" + }, + "moveSelectedToOrg": { + "message": "Flytta valda till organisation" + }, + "deleteSelected": { + "message": "Radera markerade" + }, + "moveSelected": { + "message": "Flytta markerade" + }, + "selectAll": { + "message": "Markera alla" + }, + "unselectAll": { + "message": "Avmarkera alla" + }, + "launch": { + "message": "Öppna" + }, + "newAttachment": { + "message": "Lägg till ny bilaga" + }, + "deletedAttachment": { + "message": "Raderade bilaga" + }, + "deleteAttachmentConfirmation": { + "message": "Är du säker på att du vill radera denna bilaga?" + }, + "attachmentSaved": { + "message": "Bilagan har sparats." + }, + "file": { + "message": "Fil" + }, + "selectFile": { + "message": "Välj en fil." + }, + "maxFileSize": { + "message": "Maximal filstorlek är 500 MB." + }, + "updateKey": { + "message": "Du kan inte använda denna funktion förrän du uppdaterar din krypteringsnyckel." + }, + "addedItem": { + "message": "Lade till objekt" + }, + "editedItem": { + "message": "Redigerade objekt" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ flyttades till $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "De valda objekten flyttades till $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Radera objekt" + }, + "deleteFolder": { + "message": "Radera mapp" + }, + "deleteAttachment": { + "message": "Radera bilaga" + }, + "deleteItemConfirmation": { + "message": "Är du säker på att du vill skicka detta objekt till papperskorgen?" + }, + "deletedItem": { + "message": "Skickade objekt till papperskorgen" + }, + "deletedItems": { + "message": "Skickade objekt till papperskorgen" + }, + "movedItems": { + "message": "Flyttade objekt" + }, + "overwritePasswordConfirmation": { + "message": "Är du säker på att du vill skriva över det nuvarande lösenordet?" + }, + "editedFolder": { + "message": "Redigerade mapp" + }, + "addedFolder": { + "message": "Lade till mapp" + }, + "deleteFolderConfirmation": { + "message": "Är du säker på att du vill radera denna mapp?" + }, + "deletedFolder": { + "message": "Raderade mapp" + }, + "loggedOut": { + "message": "Utloggad" + }, + "loginExpired": { + "message": "Din inloggningssession har löpt ut." + }, + "logOutConfirmation": { + "message": "Är du säker på att du vill logga ut?" + }, + "logOut": { + "message": "Logga ut" + }, + "ok": { + "message": "OK" + }, + "yes": { + "message": "Ja" + }, + "no": { + "message": "Nej" + }, + "loginOrCreateNewAccount": { + "message": "Logga in eller skapa ett nytt konto för att komma åt ditt valv." + }, + "createAccount": { + "message": "Skapa konto" + }, + "logIn": { + "message": "Logga in" + }, + "submit": { + "message": "Skicka" + }, + "emailAddressDesc": { + "message": "Din e-postadress används för att logga in." + }, + "yourName": { + "message": "Ditt namn" + }, + "yourNameDesc": { + "message": "Vad ska vi kalla dig?" + }, + "masterPass": { + "message": "Huvudlösenord" + }, + "masterPassDesc": { + "message": "Huvudlösenordet är det lösenord som du använder för att komma åt ditt valv. Det är väldigt viktigt att du inte glömmer bort ditt huvudlösenord, eftersom det inte går att återställa lösenordet ifall du skulle glömma bort det." + }, + "masterPassHintDesc": { + "message": "En huvudlösenordsledtråd kan hjälpa dig att komma ihåg ditt lösenord om du glömmer bort det." + }, + "reTypeMasterPass": { + "message": "Ange huvudlösenordet igen" + }, + "masterPassHint": { + "message": "Huvudlösenordsledtråd (valfri)" + }, + "masterPassHintLabel": { + "message": "Huvudlösenordsledtråd" + }, + "settings": { + "message": "Inställningar" + }, + "passwordHint": { + "message": "Lösenordsledtråd" + }, + "enterEmailToGetHint": { + "message": "Ange din e-postadress för att få din huvudlösenordsledtråd skickad till dig." + }, + "getMasterPasswordHint": { + "message": "Hämta huvudlösenordsledtråd" + }, + "emailRequired": { + "message": "E-postadress krävs." + }, + "invalidEmail": { + "message": "Ogiltig e-postadress." + }, + "masterPassRequired": { + "message": "Huvudlösenord krävs." + }, + "masterPassLength": { + "message": "Huvudlösenordet måste vara minst 8 tecken långt." + }, + "masterPassDoesntMatch": { + "message": "Huvudlösenorden stämmer inte överens." + }, + "newAccountCreated": { + "message": "Ditt nya konto har skapats! Du kan nu logga in." + }, + "masterPassSent": { + "message": "Vi har skickat ett e-postmeddelande till dig med din huvudlösenordsledtråd." + }, + "unexpectedError": { + "message": "Ett oväntat fel har inträffat." + }, + "emailAddress": { + "message": "E-postadress" + }, + "yourVaultIsLocked": { + "message": "Valvet är låst. Bekräfta ditt huvudlösenord för att fortsätta." + }, + "unlock": { + "message": "Lås upp" + }, + "loggedInAsEmailOn": { + "message": "Inloggad som $EMAIL$ på $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Ogiltigt huvudlösenord" + }, + "lockNow": { + "message": "Lås nu" + }, + "noItemsInList": { + "message": "Det finns inga objekt att visa." + }, + "noCollectionsInList": { + "message": "Det finns inga samlingar att visa." + }, + "noGroupsInList": { + "message": "Det finns inga grupper att visa." + }, + "noUsersInList": { + "message": "Det finns inga användare att visa." + }, + "noEventsInList": { + "message": "Det finns inga händelser att visa." + }, + "newOrganization": { + "message": "Ny organisation" + }, + "noOrganizationsList": { + "message": "Du tillhör inte några organisationer. Organisationer möjliggör säker delning av objekt med andra användare." + }, + "versionNumber": { + "message": "Version $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Ange den 6-siffriga verifieringskoden från din autentiseringsapp." + }, + "enterVerificationCodeEmail": { + "message": "Ange den 6-siffriga verifieringskoden som har skickats till $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Verifieringsmeddelande har skickats till $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Kom ihåg mig" + }, + "sendVerificationCodeEmailAgain": { + "message": "Skicka e-postmeddelandet med verifieringskoden igen" + }, + "useAnotherTwoStepMethod": { + "message": "Använd en annan metod för tvåstegsverifiering" + }, + "insertYubiKey": { + "message": "Anslut din YubiKey till datorns USB-port och tryck sedan på dess knapp." + }, + "insertU2f": { + "message": "Anslut din säkerhetsnyckel till datorns USB-port. Om den har en knapp, tryck på den." + }, + "loginUnavailable": { + "message": "Inloggning ej tillgänglig" + }, + "noTwoStepProviders": { + "message": "Detta konto har tvåstegsverifiering aktiverat, men ingen av de konfigurerade metoderna stöds av den här webbläsaren." + }, + "noTwoStepProviders2": { + "message": "Vänligen använd en webbläsare som stöds (t.ex. Chrome) och/eller lägg till fler metoder som har bättre stöd bland webbläsare (t.ex. en autentiseringsapp)." + }, + "twoStepOptions": { + "message": "Alternativ för tvåstegsverifiering" + }, + "recoveryCodeDesc": { + "message": "Förlorat åtkomst till alla dina metoder för tvåstegsverifiering? Använd din återställningskod för att inaktivera tvåstegsverifiering på ditt konto." + }, + "recoveryCodeTitle": { + "message": "Återställningskod" + }, + "authenticatorAppTitle": { + "message": "Autentiseringsapp" + }, + "authenticatorAppDesc": { + "message": "Använd en autentiseringsapp (t.ex. Authy eller Google Authenticator) för att skapa tidsbaserade verifieringskoder.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP-säkerhetsnyckel" + }, + "yubiKeyDesc": { + "message": "Använd en YubiKey för att komma åt ditt konto. Fungerar med YubiKey 4-serien, 5-serien och NEO-enheter." + }, + "duoDesc": { + "message": "Verifiera med Duo Security genom att använda Duo Mobile-appen, SMS, telefonsamtal eller en U2F-säkerhetsnyckel.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verifiera med Duo Security för din organisation genom att använda Duo Mobile-appen, SMS, telefonsamtal eller en U2F-säkerhetsnyckel.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Använd en FIDO U2F-aktiverad säkerhetsnyckel för att komma åt ditt konto." + }, + "u2fTitle": { + "message": "FIDO U2F-säkerhetsnyckel" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Använd en WebAuthn-aktiverad säkerhetsnyckel för att komma åt ditt konto." + }, + "webAuthnMigrated": { + "message": "(Migrerad från FIDO)" + }, + "emailTitle": { + "message": "E-post" + }, + "emailDesc": { + "message": "Verifieringskoder kommer skickas till dig via e-post." + }, + "continue": { + "message": "Fortsätt" + }, + "organization": { + "message": "Organisation" + }, + "organizations": { + "message": "Organisationer" + }, + "moveToOrgDesc": { + "message": "Välj en organisation som du vill flytta detta objektet till. Flytt till en organisation överför ägandet av objektet till den organisationen. Du kommer inte längre att vara direkt ägare till detta objekt när det har flyttats." + }, + "moveManyToOrgDesc": { + "message": "Välj en organisation som du vill flytta dessa objekt till. Flytt till en organisation överför ägandet av objekten till den organisationen. Du kommer inte längre att vara direkt ägare till dessa objekt när de har flyttats." + }, + "collectionsDesc": { + "message": "Redigera de samlingar som detta objekt delas med. Endast organisationsanvändare med tillgång till dessa samlingar kommer att kunna se detta objekt." + }, + "deleteSelectedItemsDesc": { + "message": "Du har markerat $COUNT$ objekt att radera. Är du säker på att du vill radera alla dessa objekt?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Välj en mapp som du vill flytta de $COUNT$ markerade objekten till.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Du har valt $COUNT$ objekt. $MOVEABLE_COUNT$ objekt kan flyttas till en organisation, $NONMOVEABLE_COUNT$ kan det inte.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Verifieringskod (TOTP)" + }, + "copyVerificationCode": { + "message": "Kopiera verifieringskod" + }, + "warning": { + "message": "Varning" + }, + "confirmVaultExport": { + "message": "Bekräfta export av valv" + }, + "exportWarningDesc": { + "message": "Denna export innehåller ditt valv i ett okrypterat format. Du bör inte lagra eller skicka den exporterade filen över osäkra kanaler (t.ex. e-post). Radera den omedelbart när du är färdig med den." + }, + "encExportKeyWarningDesc": { + "message": "Denna export krypterar dina data med kontots krypteringsnyckel. Om du någonsin roterar kontots krypteringsnyckel bör du exportera igen eftersom du inte kommer att kunna dekryptera denna exportfil." + }, + "encExportAccountWarningDesc": { + "message": "Kypteringsnycklar är unika för varje Bitwarden-konto, så du kan inte importera en krypterad export till ett annat konto." + }, + "export": { + "message": "Exportera" + }, + "exportVault": { + "message": "Exportera valv" + }, + "fileFormat": { + "message": "Filformat" + }, + "exportSuccess": { + "message": "Ditt valv har exporterats." + }, + "passwordGenerator": { + "message": "Lösenordsgenerator" + }, + "minComplexityScore": { + "message": "Minsta komplexitetspoäng" + }, + "minNumbers": { + "message": "Minsta antal siffror" + }, + "minSpecial": { + "message": "Minsta antal speciella tecken", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Undvik tvetydiga tecken" + }, + "regeneratePassword": { + "message": "Skapa nytt lösenord" + }, + "length": { + "message": "Längd" + }, + "numWords": { + "message": "Antal ord" + }, + "wordSeparator": { + "message": "Ordavgränsare" + }, + "capitalize": { + "message": "Versalisera", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Inkludera siffra" + }, + "passwordHistory": { + "message": "Lösenordshistorik" + }, + "noPasswordsInList": { + "message": "Det finns inga lösenord att visa." + }, + "clear": { + "message": "Rensa", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Kontot uppdaterades" + }, + "changeEmail": { + "message": "Ändra e-postadress" + }, + "changeEmailTwoFactorWarning": { + "message": "Fortsätter du så kommer din e-postadress att ändras för ditt konto. Det kommer inte att ändra e-postadressen som används för tvåfaktorsautentisering. Du kan ändra denna e-postadress i inställningarna för tvåstegsverifiering." + }, + "newEmail": { + "message": "Ny e-postadress" + }, + "code": { + "message": "Kod" + }, + "changeEmailDesc": { + "message": "Vi har skickat ett e-postmeddelande med en verifieringskod till $EMAIL$. Vänligen kolla din inkorg och ange koden i e-postmeddelandet nedan för att slutföra ändringen av e-postadress.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Om du fortsätter kommer du loggas ut från sin nuvarande session vilket kräver att du loggar in igen. Aktiva sessioner på andra enheter kan fortsätta vara aktiva i upp till en timme." + }, + "emailChanged": { + "message": "E-postadressen ändrades" + }, + "logBackIn": { + "message": "Vänligen logga in igen." + }, + "logBackInOthersToo": { + "message": "Vänligen logga in igen. Om du använder andra Bitwarden-applikationer, logga ut och in igen i dem också." + }, + "changeMasterPassword": { + "message": "Ändra huvudlösenord" + }, + "masterPasswordChanged": { + "message": "Huvudlösenordet ändrades" + }, + "currentMasterPass": { + "message": "Nuvarande huvudlösenord" + }, + "newMasterPass": { + "message": "Nytt huvudlösenord" + }, + "confirmNewMasterPass": { + "message": "Bekräfta nytt huvudlösenord" + }, + "encKeySettings": { + "message": "Inställningar för krypteringsnyckel" + }, + "kdfAlgorithm": { + "message": "KDF-algoritm" + }, + "kdfIterations": { + "message": "KDF-iterationer" + }, + "kdfIterationsDesc": { + "message": "Högre KDF-iterationer kan skydda ditt huvudlösenord från att knäckas av en angripare via \"brute forcing\". Vi rekommenderar ett värde på $VALUE$ eller mer.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Att ställa in dina KDF-iterationer för högt kan resultera i dålig prestanda när du loggar in (och låser upp) Bitwarden på enheter med långsammare processorer. Vi rekommenderar att du ökar värdet i steg om $INCREMENT$ och sedan testar alla dina enheter.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Ändra KDF" + }, + "encKeySettingsChanged": { + "message": "Inställningarna för krypteringsnyckel ändrades" + }, + "dangerZone": { + "message": "Farozon" + }, + "dangerZoneDesc": { + "message": "Var försiktig, dessa åtgärder går inte att ångra!" + }, + "deauthorizeSessions": { + "message": "Avauktorisera sessioner" + }, + "deauthorizeSessionsDesc": { + "message": "Orolig att ditt konto är inloggat på en annan enhet? Fortsätt nedan för att avauktorisera alla datorer eller enheter som du har använt tidigare. Detta rekommenderas om du har använt en offentlig dator eller av misstag sparat ditt lösenord på en enhet som inte är din. Detta steg kommer också att rensa alla tidigare ihågkomna sessioner med tvåstegsverifiering." + }, + "deauthorizeSessionsWarning": { + "message": "Om du fortsätter kommer du loggas ut från sin nuvarande session vilket kräver att du loggar in igen. Du kommer även behöva verifiera med tvåstegsverifiering om det är aktiverat. Aktiva sessioner på andra enheter kan fortsätta vara aktiva i upp till en timme." + }, + "sessionsDeauthorized": { + "message": "Alla sessioner avauktoriserades" + }, + "purgeVault": { + "message": "Rensa valv" + }, + "purgedOrganizationVault": { + "message": "Rensade organisationsvalv." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Fortsätt nedan för att radera alla objekt och mappar i ditt valv. Objekt som tillhör en organisation som du delar med kommer inte raderas." + }, + "purgeOrgVaultDesc": { + "message": "Fortsätt nedan för att radera alla objekt i organisationens valv." + }, + "purgeVaultWarning": { + "message": "Rensning av ditt valv är permanent. Det går inte att ångra." + }, + "vaultPurged": { + "message": "Ditt valv har rensats." + }, + "deleteAccount": { + "message": "Radera konto" + }, + "deleteAccountDesc": { + "message": "Fortsätt nedan för att radera ditt konto och all tillhörande data." + }, + "deleteAccountWarning": { + "message": "Att radera ditt konto är permanent. Det går inte att ångra." + }, + "accountDeleted": { + "message": "Kontot raderades" + }, + "accountDeletedDesc": { + "message": "Ditt konto har stängts och all tillhörande data har raderats." + }, + "myAccount": { + "message": "Mitt konto" + }, + "tools": { + "message": "Verktyg" + }, + "importData": { + "message": "Importera data" + }, + "importError": { + "message": "Fel vid import" + }, + "importErrorDesc": { + "message": "Det uppstod ett problem med datan du försökte importera. Lös nedanstående fel i källfilen och försök igen." + }, + "importSuccess": { + "message": "Data har importerats till ditt valv." + }, + "importWarning": { + "message": "Du importerar data till $ORGANIZATION$. Din data kan komma att delas med medlemmar i den här organisationen. Vill du fortsätta?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Datan är inte korrekt formaterad. Vänligen kontrollera din importerade fil och försök igen." + }, + "importNothingError": { + "message": "Ingenting importerades." + }, + "importEncKeyError": { + "message": "Ett fel uppstod vid dekryptering av den exporterade filen. Din krypteringsnyckel matchar inte krypteringsnyckeln som användes för att exportera datan." + }, + "selectFormat": { + "message": "Välj importfilens format" + }, + "selectImportFile": { + "message": "Välj importfilen" + }, + "orCopyPasteFileContents": { + "message": "eller kopiera och klistra in innehållet från filen" + }, + "instructionsFor": { + "message": "Instruktioner för $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Alternativ" + }, + "optionsDesc": { + "message": "Anpassa din upplevelse i webbvalvet." + }, + "optionsUpdated": { + "message": "Alternativen uppdaterades" + }, + "language": { + "message": "Språk" + }, + "languageDesc": { + "message": "Ändra språket som används i webbvalvet." + }, + "disableIcons": { + "message": "Inaktivera webbplatsikoner" + }, + "disableIconsDesc": { + "message": "Webbplatsikoner ger en igenkännbar ikon bredvid varje inloggningsobjekt i ditt valv." + }, + "enableGravatars": { + "message": "Aktivera gravatarer", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Använd avatarbilder hämtade från gravatar.com." + }, + "enableFullWidth": { + "message": "Aktivera layout med full bredd", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Tillåt webbvalvet att utökas till webbläsarfönstrets fulla bredd." + }, + "default": { + "message": "Standard" + }, + "domainRules": { + "message": "Domänregler" + }, + "domainRulesDesc": { + "message": "Om du har samma inloggningsinformation på flera olika domäner kan du markera webbplatsen som \"motsvarande\". \"Globala\" domäner är de som redan skapats åt dig av Bitwarden." + }, + "globalEqDomains": { + "message": "Globala motsvarande domäner" + }, + "customEqDomains": { + "message": "Anpassade motsvarande domäner" + }, + "exclude": { + "message": "Exkludera" + }, + "include": { + "message": "Inkludera" + }, + "customize": { + "message": "Anpassa" + }, + "newCustomDomain": { + "message": "Ny anpassad domän" + }, + "newCustomDomainDesc": { + "message": "Ange en lista av domäner separerade med kommatecken. Endast basdomäner är tillåtna. Ange inte underdomäner. Ange till exempel \"google.com\" istället för \"www.google.com\". Du kan också ange \"androidapp://package.name\" för att associera en Android-app med andra webbplatsdomäner." + }, + "customDomainX": { + "message": "Anpassad domän $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Domänerna uppdaterades" + }, + "twoStepLogin": { + "message": "Tvåstegsverifiering" + }, + "twoStepLoginDesc": { + "message": "Säkra ditt konto genom att kräva ett ytterligare steg vid inloggning." + }, + "twoStepLoginOrganizationDesc": { + "message": "Kräv tvåstegsverifiering för din organisations användare genom att konfigurera metoder på organisationsnivå." + }, + "twoStepLoginRecoveryWarning": { + "message": "Att aktivera tvåstegsverifiering kan låsa ute dig från ditt Bitwarden-konto permanent. En återställningskod låter dig komma åt ditt konto om du inte längre kan använda din vanliga metod för tvåstegsverifiering (t.ex. om du förlorar din enhet). Bitwardens kundservice kommer inte att kunna hjälpa dig om du förlorar åtkomst till ditt konto. Vi rekommenderar att du skriver ner eller skriver ut återställningskoden och förvarar den på ett säkert ställe." + }, + "viewRecoveryCode": { + "message": "Visa återställningskod" + }, + "providers": { + "message": "Metoder", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Aktivera" + }, + "enabled": { + "message": "Aktiverad" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium-medlemskap" + }, + "premiumRequired": { + "message": "Premium krävs" + }, + "premiumRequiredDesc": { + "message": "Ett premium-medlemskap krävs för att använda den här funktionen." + }, + "youHavePremiumAccess": { + "message": "Du har premiumåtkomst" + }, + "alreadyPremiumFromOrg": { + "message": "Du har redan tillgång till premium-funktioner på grund av en organisation som du är medlem i." + }, + "manage": { + "message": "Hantera" + }, + "disable": { + "message": "Inaktivera" + }, + "twoStepLoginProviderEnabled": { + "message": "Denna metod för tvåstegsverifiering är aktiverad på ditt konto." + }, + "twoStepLoginAuthDesc": { + "message": "Ange ditt huvudlösenord för att ändra inställningarna för tvåstegsverifiering." + }, + "twoStepAuthenticatorDesc": { + "message": "Följ dessa steg för att konfigurera tvåstegsverifiering med en autentiseringsapp:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Hämta en tvåstegsverifieringsapp" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Behöver du en tvåstegsverifieringsapp? Hämta en av följande" + }, + "iosDevices": { + "message": "iOS-enheter" + }, + "androidDevices": { + "message": "Android-enheter" + }, + "windowsDevices": { + "message": "Windows-enheter" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Dessa appar rekommenderas, men även andra autentiseringsappar fungerar." + }, + "twoStepAuthenticatorScanCode": { + "message": "Skanna denna QR-kod med din autentiseringsapp" + }, + "key": { + "message": "Nyckel" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Ange den 6-siffriga verifieringskoden från appen" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Om du behöver lägga till den på en annan enhet, finns QR-koden (eller nyckeln) som krävs av din autentiseringsapp nedan." + }, + "twoStepDisableDesc": { + "message": "Är du säker på att du vill inaktivera denna metod för tvåstegsverifiering?" + }, + "twoStepDisabled": { + "message": "Metod för tvåstegsverifiering inaktiverad." + }, + "twoFactorYubikeyAdd": { + "message": "Lägg till en ny YubiKey till ditt konto" + }, + "twoFactorYubikeyPlugIn": { + "message": "Anslut din YubiKey till datorns USB-port." + }, + "twoFactorYubikeySelectKey": { + "message": "Välj det första tomma YubiKey-inmatningsfältet nedan." + }, + "twoFactorYubikeyTouchButton": { + "message": "Tryck på YubiKey:ns knapp." + }, + "twoFactorYubikeySaveForm": { + "message": "Spara formuläret." + }, + "twoFactorYubikeyWarning": { + "message": "På grund av plattformsbegränsningar kan YubiKeys inte användas i alla Bitwarden-applikationer. Du bör aktivera en annan metod för tvåstegsverifiering så att du kan komma åt ditt konto när YubiKeys inte kan användas. Plattformar som stöds:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Webbvalvet, skrivbordsprogrammet, CLI:n och alla webbläsartillägg på en enhet med en USB-port som kan acceptera din YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobilappar på en enhet med NFC-stöd eller en USB-port som kan acceptera din YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F-nyckel $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn-nyckel $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC-stöd" + }, + "twoFactorYubikeySupportsNfc": { + "message": "En av mina nycklar stödjer NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Om en av dina YubiKeys stöder NFC (till exempel en YubiKey NEO), kommer du tillfrågas på på mobila enheter när NFC är tillgängligt." + }, + "yubikeysUpdated": { + "message": "YubiKeys uppdaterades" + }, + "disableAllKeys": { + "message": "Inaktivera alla nycklar" + }, + "twoFactorDuoDesc": { + "message": "Ange Bitwardens applikationsinformation från din Duo Admin-panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integreringsnyckel" + }, + "twoFactorDuoSecretKey": { + "message": "Hemlig nyckel" + }, + "twoFactorDuoApiHostname": { + "message": "API-värdnamn" + }, + "twoFactorEmailDesc": { + "message": "Följ dessa steg för att konfigurera tvåstegsverifiering med e-post:" + }, + "twoFactorEmailEnterEmail": { + "message": "Ange den e-postadress som du vill ta emot verifieringskoder till" + }, + "twoFactorEmailEnterCode": { + "message": "Ange den 6-siffriga verifieringskoden från e-postmeddelandet" + }, + "sendEmail": { + "message": "Skicka e-postmeddelande" + }, + "twoFactorU2fAdd": { + "message": "Lägg till en FIDO U2F-säkerhetsnyckel till ditt konto" + }, + "removeU2fConfirmation": { + "message": "Är du säker på att du vill ta bort denna säkerhetsnyckel?" + }, + "twoFactorWebAuthnAdd": { + "message": "Lägg till en WebAuthn säkerhetsnyckel till ditt konto" + }, + "readKey": { + "message": "Läs nyckel" + }, + "keyCompromised": { + "message": "Nyckeln har äventyrats." + }, + "twoFactorU2fGiveName": { + "message": "Ge säkerhetsnyckeln ett namn för att kunna identifiera den." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Anslut säkerhetsnyckeln till din dators USB-port och klicka på knappen \"Läs nyckel\"." + }, + "twoFactorU2fTouchButton": { + "message": "Om säkerhetsnyckeln har en knapp, tryck på den." + }, + "twoFactorU2fSaveForm": { + "message": "Spara formuläret." + }, + "twoFactorU2fWarning": { + "message": "På grund av plattformsbegränsningar kan FIDO U2F inte användas i alla Bitwarden-applikationer. Du bör aktivera en annan metod för tvåstegsverifiering så att du kan komma åt ditt konto när FIDO U2F inte kan användas. Plattformar som stöds:" + }, + "twoFactorU2fSupportWeb": { + "message": "Webbvalvet och webbläsartillägg på en stationär eller bärbar dator med en U2F-aktiverad webbläsare (Chrome, Opera, Vivaldi eller Firefox med FIDO U2F aktiverat)." + }, + "twoFactorU2fWaiting": { + "message": "Väntar på att du ska trycka på knappen på din säkerhetsnyckel" + }, + "twoFactorU2fClickSave": { + "message": "Klicka på \"Spara\"-knappen nedan för att aktivera denna säkerhetsnyckel för tvåstegsverifiering." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Det gick inte att läsa säkerhetsnyckeln. Försök igen." + }, + "twoFactorWebAuthnWarning": { + "message": "På grund av plattformsbegränsningar kan WebAuthn inte användas i alla Bitwarden-applikationer. Du bör aktivera en annan metod för tvåstegsverifiering så att du kan komma åt ditt konto när WebAuthn inte kan användas. Plattformar som stöds:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Webbvalvet och webbläsartillägg på en stationär eller bärbar dator med en WebAuthn-aktiverad webbläsare (Chrome, Opera, Vivaldi eller Firefox med FIDO U2F aktiverat)." + }, + "twoFactorRecoveryYourCode": { + "message": "Din återställningskod för tvåstegsverifiering" + }, + "twoFactorRecoveryNoCode": { + "message": "Du har inte aktiverat några metoder för tvåstegsverifiering ännu. När du har aktiverat en metod för tvåstegsverifiering kan du återvända hit för att se din återställningskod." + }, + "printCode": { + "message": "Skriv ut kod", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Rapporter" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Rapport om osäkra webbplatser" + }, + "unsecuredWebsitesReportDesc": { + "message": "Att använda osäkra webbplatser med http://-protokollet kan vara farligt. Om webbplatsen stödjer det, bör du alltid ansluta med https://-protokollet så att anslutningen är krypterad." + }, + "unsecuredWebsitesFound": { + "message": "Osäkra webbplatser hittades" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Vi hittade $COUNT$ objekt i ditt valv med osäkra URI:er. Om webbplatsen stödjer det bör du ändra deras URI-protokoll till https://.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Inga objekt i ditt valv har osäkra URI:er." + }, + "inactive2faReport": { + "message": "Rapport om inaktiv 2FA" + }, + "inactive2faReportDesc": { + "message": "Tvåstegsverifiering (2FA) är en viktig säkerhetsinställning som hjälper dig att säkra dina konton. Om en webbplats erbjuder det bör du alltid aktivera tvåstegsverifiering." + }, + "inactive2faFound": { + "message": "Inloggningar utan 2FA hittades" + }, + "inactive2faFoundDesc": { + "message": "Vi hittade $COUNT$ webbplats(er) i ditt valv som kanske inte har tvåstegsverifiering konfigurerat (enligt 2fa.directory). För att skydda dessa konton ytterligare bör du aktivera tvåstegsverifiering.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Inga webbplatser utan tvåstegsverifiering hittades i ditt valv." + }, + "instructions": { + "message": "Instruktioner" + }, + "exposedPasswordsReport": { + "message": "Rapport om avslöjade lösenord" + }, + "exposedPasswordsReportDesc": { + "message": "Avslöjade lösenord är lösenord som har äventyrats i kända dataintrång som släppts offentligt eller sålts av hackare på \"dark web\"." + }, + "exposedPasswordsFound": { + "message": "Avslöjade lösenord hittades" + }, + "exposedPasswordsFoundDesc": { + "message": "Vi hittade $COUNT$ objekt i ditt valv med lösenord som har äventyrats i kända dataintrång. Du bör ändra dessa till att använda nya lösenord.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Inga objekt i ditt valv har lösenord som har avslöjats i kända dataintrång." + }, + "checkExposedPasswords": { + "message": "Kontrollera avslöjade lösenord" + }, + "exposedXTimes": { + "message": "Avslöjad $COUNT$ gång(er)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Rapport om svaga lösenord" + }, + "weakPasswordsReportDesc": { + "message": "Svaga lösenord kan enkelt gissas av hackare och automatiserade verktyg som används för att knäcka lösenord. Bitwardens lösenordsgenerator kan hjälpa dig att skapa starka lösenord." + }, + "weakPasswordsFound": { + "message": "Svaga lösenord hittades" + }, + "weakPasswordsFoundDesc": { + "message": "Vi hittade $COUNT$ objekt i ditt valv med lösenord som inte är starka. Du bör ändra dessa till att använda starkare lösenord.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Inga objekt i ditt valv har svaga lösenord." + }, + "reusedPasswordsReport": { + "message": "Rapport om återanvända lösenord" + }, + "reusedPasswordsReportDesc": { + "message": "Om en tjänst som du använder äventyras, kan återanvändning av samma lösenord på andra ställen göra det möjligt för hackare att enkelt få åtkomst till fler av dina online-konton. Du bör använda ett unikt lösenord för varje konto eller tjänst." + }, + "reusedPasswordsFound": { + "message": "Återanvända lösenord hittades" + }, + "reusedPasswordsFoundDesc": { + "message": "Vi hittade $COUNT$ lösenord som återanvänds i ditt valv. Du bör ändra dessa till unika lösenord.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Inga inloggningar i ditt valv har lösenord som återanvänds." + }, + "reusedXTimes": { + "message": "Återanvänt $COUNT$ gånger", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Rapport om dataintrång" + }, + "breachDesc": { + "message": "Ett \"intrång\" är en incident där data olovligen har stulits från en webbplats av hackare och sedan släppts till allmänheten. Gå igenom och granska informationen som äventyrats (e-postadresser, lösenord, kreditkort osv.) och vidta lämpliga åtgärder, t.ex. att ändra lösenord." + }, + "breachCheckUsernameEmail": { + "message": "Kontrollera alla användarnamn eller e-postadresser som du använder." + }, + "checkBreaches": { + "message": "Kontrollera intrång" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ hittades inte i några kända dataintrång.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Goda nyheter", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ hittades i $COUNT$ olika dataintrång på internet.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Äventyrade konton hittades" + }, + "compromisedData": { + "message": "Äventyrad data" + }, + "website": { + "message": "Webbplats" + }, + "affectedUsers": { + "message": "Berörda användare" + }, + "breachOccurred": { + "message": "Intrånget inträffade" + }, + "breachReported": { + "message": "Intrånget rapporterades" + }, + "reportError": { + "message": "Ett fel inträffade när rapporten skulle läsas in. Försök igen" + }, + "billing": { + "message": "Fakturering" + }, + "accountCredit": { + "message": "Kontokredit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Kontosaldo", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Lägg till kredit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Belopp", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Tillagd kredit visas på ditt konto efter att betalningen har bearbetats fullständigt. Vissa betalningsmetoder är fördröjda och kan ta längre tid att behandla än andra." + }, + "makeSureEnoughCredit": { + "message": "Se till att ditt konto har tillräckligt mycket tillgänglig kredit för detta köp. Om ditt konto inte har tillräckligt med tillgänglig kredit, kommer din sparade standardbetalningsmetod användas för skillnaden. Du kan lägga till kredit till ditt konto från faktureringssidan." + }, + "creditAppliedDesc": { + "message": "Kontots kredit kan användas för att göra köp. Tillgänglig kredit kommer automatiskt tillämpas mot fakturor som genereras för detta konto." + }, + "goPremium": { + "message": "Skaffa Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Du har uppgraderat till Premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Uppgradera ditt konto till ett premiummedlemskap för att låsa upp ytterligare funktioner." + }, + "premiumSignUpStorage": { + "message": "1 GB krypterad lagring." + }, + "premiumSignUpTwoStep": { + "message": "Ytterligare alternativ för tvåstegsverifiering såsom YubiKey, FIDO U2F och Duo." + }, + "premiumSignUpEmergency": { + "message": "Nödåtkomst" + }, + "premiumSignUpReports": { + "message": "Lösenordshygien, kontohälsa och dataintrångsrapporter för att skydda ditt valv." + }, + "premiumSignUpTotp": { + "message": "TOTP-verifieringskodgenerator (2FA) för inloggningar i ditt valv." + }, + "premiumSignUpSupport": { + "message": "Prioriterad kundservice." + }, + "premiumSignUpFuture": { + "message": "Alla framtida premium-funktioner. Mer kommer snart!" + }, + "premiumPrice": { + "message": "Allt för endast $PRICE$/år!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Tillägg" + }, + "premiumAccess": { + "message": "Premium-åtkomst" + }, + "premiumAccessDesc": { + "message": "Du kan lägga till premium-åtkomst till alla medlemmar i din organisation för $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Ytterligare lagring (GB)" + }, + "additionalStorageGbDesc": { + "message": "Antal ytterligare GB" + }, + "additionalStorageIntervalDesc": { + "message": "Ditt abonnemang kommer med $SIZE$ krypterad lagring. Du kan lägga till ytterligare lagring för $PRICE$ per GB/$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Sammanfattning" + }, + "total": { + "message": "Totalt" + }, + "year": { + "message": "år" + }, + "month": { + "message": "månad" + }, + "monthAbbr": { + "message": "mån.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Din betalningsmetod kommer att debiteras omedelbart och sedan återkommande varje år. Du kan säga upp din prenumeration när som helst." + }, + "paymentCharged": { + "message": "Din betalningsmetod kommer debiteras omedelbart och sedan på en återkommande basis varje $INTERVAL$. Du kan avsluta när som helst.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Din plan kommer med en kostnadsfri 7-dagars provperiod. Din betalningsmetod kommer inte att debiteras förrän provperioden har upphört. Du kan avbryta när som helst." + }, + "paymentInformation": { + "message": "Betalningsinformation" + }, + "billingInformation": { + "message": "Faktureringsuppgifter" + }, + "creditCard": { + "message": "Kreditkort" + }, + "paypalClickSubmit": { + "message": "Klicka på PayPal-knappen för att logga in på ditt PayPal-konto, tryck sedan på \"Skicka\"-knappen nedan för att fortsätta." + }, + "cancelSubscription": { + "message": "Avbryt prenumeration" + }, + "subscriptionCanceled": { + "message": "Abonnemanget har avslutats." + }, + "pendingCancellation": { + "message": "Väntar på att avslutas" + }, + "subscriptionPendingCanceled": { + "message": "Abonnemanget har markerats för avslutning vid slutet av den nuvarande faktureringsperioden." + }, + "reinstateSubscription": { + "message": "Återuppta abonnemang" + }, + "reinstateConfirmation": { + "message": "Är du säker att du vill ta bort den väntande avslutningsförfrågan och återuppta ditt abonnemang?" + }, + "reinstated": { + "message": "Abonnemanget har återupptagits." + }, + "cancelConfirmation": { + "message": "Är du säker på att du vill avsluta? Du kommer förlora tillgång till alla funktioner som abonnemanget erbjuder vid slutet av den nuvarande faktureringsperioden." + }, + "canceledSubscription": { + "message": "Abonnemanget har avslutats." + }, + "neverExpires": { + "message": "Går aldrig ut" + }, + "status": { + "message": "Status" + }, + "nextCharge": { + "message": "Nästa debitering" + }, + "details": { + "message": "Detaljer" + }, + "downloadLicense": { + "message": "Hämta licens" + }, + "updateLicense": { + "message": "Uppdatera licens" + }, + "updatedLicense": { + "message": "Uppdaterade licens" + }, + "manageSubscription": { + "message": "Hantera prenumeration" + }, + "storage": { + "message": "Lagring" + }, + "addStorage": { + "message": "Lägg till lagring" + }, + "removeStorage": { + "message": "Ta bort lagring" + }, + "subscriptionStorage": { + "message": "Ditt abonnemang har totalt $MAX_STORAGE$ GB krypterad lagring. Du använder för närvarande $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Betalningsmetod" + }, + "noPaymentMethod": { + "message": "Ingen sparad betalningsmetod." + }, + "addPaymentMethod": { + "message": "Lägg till betalningsmetod" + }, + "changePaymentMethod": { + "message": "Ändra betalningsmetod" + }, + "invoices": { + "message": "Fakturor" + }, + "noInvoices": { + "message": "Inga fakturor." + }, + "paid": { + "message": "Betald", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Obetald", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transaktioner", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Inga transaktioner." + }, + "chargeNoun": { + "message": "Debitering", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Återbetalning", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Debiteringar kommer visas som $STATEMENT_NAME$ på ditt kontoutdrag.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB lagring att lägga till" + }, + "gbStorageRemove": { + "message": "GB lagring att ta bort" + }, + "storageAddNote": { + "message": "Att lägga till lagringsutrymme kommer att resultera i justeringar av ditt totala debiteringsbelopp och omedelbart debitera din betalningsmetod. Den första debiteringen kommer att fördelas proportionellt för den återstående delen av den nuvarande faktureringscykeln." + }, + "storageRemoveNote": { + "message": "Att ta bort lagringsutrymme kommer resultera i justeringar av ditt totala debiteringsbelopp som kommer läggas till som kredit mot din nästa debitering." + }, + "adjustedStorage": { + "message": "Justerade $AMOUNT$ GB lagringsutrymme.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Kontakta kundservice" + }, + "updatedPaymentMethod": { + "message": "Betalningsmetod uppdaterades." + }, + "purchasePremium": { + "message": "Köp Premium" + }, + "licenseFile": { + "message": "Licensfil" + }, + "licenseFileDesc": { + "message": "Din licensfil kommer namnges i stil med $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "För att uppgradera ditt konto till ett premium-medlemskap måste du ladda upp en giltig licensfil." + }, + "uploadLicenseFileOrg": { + "message": "För att skapa en \"on-premise\"-hostad organisation måste du ladda upp en giltig licensfil." + }, + "accountEmailMustBeVerified": { + "message": "Ditt kontos e-postadress måste verifieras." + }, + "newOrganizationDesc": { + "message": "Organisationer tillåter dig att dela objekt i ditt valv med andra samt hantera relaterade användare för en specifik entitet, t.ex en familj, ett litet team, eller ett stort företag." + }, + "generalInformation": { + "message": "Allmän information" + }, + "organizationName": { + "message": "Organisationsnamn" + }, + "accountOwnedBusiness": { + "message": "Detta konto ägs av ett företag." + }, + "billingEmail": { + "message": "E-postadress för fakturering" + }, + "businessName": { + "message": "Företagsnamn" + }, + "chooseYourPlan": { + "message": "Välj din plan" + }, + "users": { + "message": "Användare" + }, + "userSeats": { + "message": "Användarplatser" + }, + "additionalUserSeats": { + "message": "Ytterligare användarplatser" + }, + "userSeatsDesc": { + "message": "Antal användarplatser" + }, + "userSeatsAdditionalDesc": { + "message": "Ditt abonnemang kommer med $BASE_SEATS$ användarplatser. Du kan lägga till ytterligare användare för $SEAT_PRICE$ per användare/månad.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Hur många användarplatser behöver du? Du kan även lägga till ytterligare platser senare om det behövs." + }, + "planNameFree": { + "message": "Gratis", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "För testning eller enskilda användare att dela med $COUNT$ andra användare.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Familjer" + }, + "planDescFamilies": { + "message": "För personligt bruk, att dela med familj & vänner." + }, + "planNameTeams": { + "message": "Team" + }, + "planDescTeams": { + "message": "För företag och andra organisationer med team." + }, + "planNameEnterprise": { + "message": "Företag" + }, + "planDescEnterprise": { + "message": "För företag och andra stora organisationer." + }, + "freeForever": { + "message": "Gratis för alltid" + }, + "includesXUsers": { + "message": "inkluderar $COUNT$ användare", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Ytterligare användare" + }, + "costPerUser": { + "message": "$COST$ per användare", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Begränsad till $COUNT$ användare (inklusive dig)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Begränsad till $COUNT$ samlingar", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Lägg till och dela med upp till $COUNT$ användare", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Lägg till och dela med ett obegränsat antal användare" + }, + "createUnlimitedCollections": { + "message": "Skapa ett obegränsat antal samlingar" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ krypterad lagring", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "\"On-premise\"-hosting (valfri)" + }, + "usersGetPremium": { + "message": "Användare får tillgång till premium-funktioner" + }, + "controlAccessWithGroups": { + "message": "Reglera användaråtkomst med grupper" + }, + "syncUsersFromDirectory": { + "message": "Synkronisera användare och grupper från en katalog" + }, + "trackAuditLogs": { + "message": "Spåra användaråtgärder med granskningsloggar" + }, + "enforce2faDuo": { + "message": "Kräv 2FA med Duo" + }, + "priorityCustomerSupport": { + "message": "Prioriterad kundservice" + }, + "xDayFreeTrial": { + "message": "$COUNT$ dagars gratis provperiod, avbryt när som helst", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Månadsvis" + }, + "annually": { + "message": "Årligen" + }, + "basePrice": { + "message": "Baspris" + }, + "organizationCreated": { + "message": "Organisationen skapades" + }, + "organizationReadyToGo": { + "message": "Din nya organisation är redo!" + }, + "organizationUpgraded": { + "message": "Din organisation har uppgraderats." + }, + "leave": { + "message": "Lämna" + }, + "leaveOrganizationConfirmation": { + "message": "Är du säker på att du vill lämna denna organisation?" + }, + "leftOrganization": { + "message": "Du har lämnat organisationen." + }, + "defaultCollection": { + "message": "Standardsamling" + }, + "getHelp": { + "message": "Få hjälp" + }, + "getApps": { + "message": "Hämta apparna" + }, + "loggedInAs": { + "message": "Inloggad som" + }, + "eventLogs": { + "message": "Händelselogg" + }, + "people": { + "message": "Personer" + }, + "policies": { + "message": "Policyer" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Redigera policy" + }, + "groups": { + "message": "Grupper" + }, + "newGroup": { + "message": "Ny grupp" + }, + "addGroup": { + "message": "Lägg till grupp" + }, + "editGroup": { + "message": "Redigera grupp" + }, + "deleteGroupConfirmation": { + "message": "Är du säker på att du vill radera denna grupp?" + }, + "removeUserConfirmation": { + "message": "Är du säker på att du vill ta bort denna användare?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "Externt ID" + }, + "externalIdDesc": { + "message": "Det externa id:t kan användas som referens eller för att länka denna resurs till ett externt system såsom en användarkatalog." + }, + "accessControl": { + "message": "Åtkomstkontroll" + }, + "groupAccessAllItems": { + "message": "Denna grupp kan komma åt och ändra alla objekt." + }, + "groupAccessSelectedCollections": { + "message": "Denna grupp kan endast komma åt de markerade samlingarna." + }, + "readOnly": { + "message": "Skrivskyddad" + }, + "newCollection": { + "message": "Ny samling" + }, + "addCollection": { + "message": "Lägg till samling" + }, + "editCollection": { + "message": "Redigera samling" + }, + "deleteCollectionConfirmation": { + "message": "Är du säker på att du vill radera denna samling?" + }, + "editUser": { + "message": "Redigera användare" + }, + "inviteUser": { + "message": "Bjud in användare" + }, + "inviteUserDesc": { + "message": "Bjud in en ny användare till din organisation genom att ange e-postadressen som tillhör deras Bitwarden-konto nedan. Om de inte redan har ett Bitwarden-konto kommer de uppmanas att skapa ett." + }, + "inviteMultipleEmailDesc": { + "message": "Du kan bjuda in upp till $COUNT$ användare samtidigt med en kommaseparerad lista av e-postadresser.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Denna användare använder tvåstegsverifiering för att skydda sitt konto." + }, + "userAccessAllItems": { + "message": "Denna användare kan komma åt och ändra alla objekt." + }, + "userAccessSelectedCollections": { + "message": "Denna användare kan endast komma åt de markerade samlingarna." + }, + "search": { + "message": "Sök" + }, + "invited": { + "message": "Inbjuden" + }, + "accepted": { + "message": "Accepterad" + }, + "confirmed": { + "message": "Bekräftad" + }, + "clientOwnerEmail": { + "message": "E-post för klientägare" + }, + "owner": { + "message": "Ägare" + }, + "ownerDesc": { + "message": "Användaren med den högsta åtkomsten som kan hantera alla aspekter av din organisation." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Administratör" + }, + "adminDesc": { + "message": "Administratörer kan komma åt och hantera alla objekt, samlingar och användare i din organisation." + }, + "user": { + "message": "Användare" + }, + "userDesc": { + "message": "En vanlig användare med tillgång till de samlingar i din organisation som den har tilldelats." + }, + "manager": { + "message": "Hanterare" + }, + "managerDesc": { + "message": "Hanterare kan komma åt och hantera de samlingar i din organisation som de har blivit tilldelade." + }, + "all": { + "message": "Alla" + }, + "refresh": { + "message": "Uppdatera" + }, + "timestamp": { + "message": "Tidsstämpel" + }, + "event": { + "message": "Händelse" + }, + "unknown": { + "message": "Okänd" + }, + "loadMore": { + "message": "Ladda mer" + }, + "mobile": { + "message": "Mobil", + "description": "Mobile app" + }, + "extension": { + "message": "Tillägg", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Skrivbord", + "description": "Desktop app" + }, + "webVault": { + "message": "Webbvalv" + }, + "loggedIn": { + "message": "Loggade in." + }, + "changedPassword": { + "message": "Ändrade kontolösenord." + }, + "enabledUpdated2fa": { + "message": "Aktiverade/uppdaterade tvåstegsverifiering." + }, + "disabled2fa": { + "message": "Inaktiverade tvåstegsverifiering." + }, + "recovered2fa": { + "message": "Återställde kontot från tvåstegsverifiering." + }, + "failedLogin": { + "message": "Inloggningsförsöket misslyckades med felaktigt lösenord." + }, + "failedLogin2fa": { + "message": "Inloggningsförsöket misslyckades med felaktig tvåstegsverifiering." + }, + "exportedVault": { + "message": "Exporterade valv." + }, + "exportedOrganizationVault": { + "message": "Exporterade organisationsvalv." + }, + "editedOrgSettings": { + "message": "Redigerade organisationsinställningar." + }, + "createdItemId": { + "message": "Skapade objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Redigerade objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Skickade objektet $ID$ till papperskorgen.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Flyttade objektet $ID$ till en organisation.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Visade objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Visade lösenord för objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Visade dolt fält för objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Visade säkerhetskod för objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Kopierade lösenord för objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Kopierade dolt fält för objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Kopierade säkerhetskod för objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Fyllde i objektet $ID$ automatiskt.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Skapade samlingen $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Redigerade samlingen $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Raderade samlingen $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Redigerade policyn $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Skapade gruppen $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Redigerade gruppen $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Raderade gruppen $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Tog bort användaren $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Skapade bilaga för objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Raderade bilaga för objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Redigerade samlingar för objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Bjöd in användaren $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Bekräftade användaren $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Redigerade användaren $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Redigerade grupper för användaren $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Olänkad SSO för användare $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Skapade organisation $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Skapade organisation $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Tog bort organisation $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Enhet" + }, + "view": { + "message": "Visa" + }, + "invalidDateRange": { + "message": "Ogiltigt datumintervall." + }, + "errorOccurred": { + "message": "Ett fel har inträffat." + }, + "userAccess": { + "message": "Användaråtkomst" + }, + "userType": { + "message": "Användartyp" + }, + "groupAccess": { + "message": "Gruppåtkomst" + }, + "groupAccessUserDesc": { + "message": "Redigera vilka grupper den här användaren tillhör." + }, + "invitedUsers": { + "message": "Bjöd in användare." + }, + "resendInvitation": { + "message": "Skicka inbjudan igen" + }, + "resendEmail": { + "message": "Skicka e-postmeddelande igen" + }, + "hasBeenReinvited": { + "message": "$USER$ har bjudits in igen.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Bekräfta" + }, + "confirmUser": { + "message": "Bekräfta användare" + }, + "hasBeenConfirmed": { + "message": "$USER$ har bekräftats.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Bekräfta användare" + }, + "usersNeedConfirmed": { + "message": "Du har användare som har accepterat sin inbjudan, men fortfarande måste bekräftas. Användarna har inte åtkomst till organisationen förrän de är bekräftade." + }, + "startDate": { + "message": "Startdatum" + }, + "endDate": { + "message": "Slutdatum" + }, + "verifyEmail": { + "message": "Verifiera e-postadress" + }, + "verifyEmailDesc": { + "message": "Verifiera din e-postadress för att få tillgång till alla funktioner." + }, + "verifyEmailFirst": { + "message": "Ditt kontos e-postadress måste verifieras först." + }, + "checkInboxForVerification": { + "message": "Kolla din inkorg för en verifieringslänk." + }, + "emailVerified": { + "message": "Din e-postadress har verifierats." + }, + "emailVerifiedFailed": { + "message": "Det gick inte att verifiera din e-postadress. Prova att skicka ett nytt verifieringsmeddelande." + }, + "emailVerificationRequired": { + "message": "E-postverifiering krävs" + }, + "emailVerificationRequiredDesc": { + "message": "Du måste verifiera din e-post för att använda den här funktionen." + }, + "updateBrowser": { + "message": "Uppdatera webbläsaren" + }, + "updateBrowserDesc": { + "message": "Du använder en webbläsare som inte stöds. Webbvalvet kanske inte fungerar som det ska." + }, + "joinOrganization": { + "message": "Gå med i organisation" + }, + "joinOrganizationDesc": { + "message": "Du har bjudits in att gå med i organisationen ovan. För att acceptera inbjudan måste du logga in eller skapa ett nytt Bitwarden-konto." + }, + "inviteAccepted": { + "message": "Inbjudan accepterades" + }, + "inviteAcceptedDesc": { + "message": "Du kan komma åt denna organisation när en administratör har bekräftat ditt medlemskap. Vi skickar ett e-postmeddelande till dig när det sker." + }, + "inviteAcceptFailed": { + "message": "Det gick inte att acceptera inbjudan. Be en administratör för organisationen att skicka en ny inbjudan." + }, + "inviteAcceptFailedShort": { + "message": "Det gick inte att acceptera inbjudan. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Kom ihåg e-postadress" + }, + "recoverAccountTwoStepDesc": { + "message": "Om du inte kan komma åt ditt konto genom dina vanliga metoder för tvåstegsverifiering kan du använda din återställningskod för att inaktivera alla metoder för tvåstegsverifiering på ditt konto." + }, + "recoverAccountTwoStep": { + "message": "Återställ kontots tvåstegsverifiering" + }, + "twoStepRecoverDisabled": { + "message": "Tvåstegsverifiering har inaktiverats på ditt konto." + }, + "learnMore": { + "message": "Läs mer" + }, + "deleteRecoverDesc": { + "message": "Ange din e-postadress nedan för att återställa och radera ditt konto." + }, + "deleteRecoverEmailSent": { + "message": "Om ditt konto finns så har vi skickat ett e-postmeddelande till dig med vidare instruktioner." + }, + "deleteRecoverConfirmDesc": { + "message": "Du har begärt att radera ditt Bitwarden-konto. Klicka på knappen nedan för att bekräfta." + }, + "myOrganization": { + "message": "Min organisation" + }, + "deleteOrganization": { + "message": "Radera organisation" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organisationen raderades" + }, + "organizationDeletedDesc": { + "message": "Organisationen och all tillhörande data har raderats." + }, + "organizationUpdated": { + "message": "Organisationen uppdaterades" + }, + "taxInformation": { + "message": "Skatteinformation" + }, + "taxInformationDesc": { + "message": "För kunder i USA krävs postnummer för att uppfylla momskrav. För kunder i andra länder har du möjlighet att ange momsregistreringsnummer (VAT/GST) och/eller adress som ska synas på dina fakturor." + }, + "billingPlan": { + "message": "Abonnemang", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Uppgradera plan", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Uppgradera ditt konto till en annan plan genom att ange informationen nedan. Se till att du har en aktiv betalningsmetod på kontot.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Faktura #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Visa faktura" + }, + "downloadInvoice": { + "message": "Hämta faktura" + }, + "verifyBankAccount": { + "message": "Verifiera bankkonto" + }, + "verifyBankAccountDesc": { + "message": "Vi har gjort två mikro-insättningar på ditt bankkonto (det kan ta 1-2 arbetsdagar innan de syns). Ange beloppen för att verifiera bankkontot." + }, + "verifyBankAccountInitialDesc": { + "message": "Betalning via bankkonto är endast tillgängligt för kunder i USA. Du måste också verifiera ditt bankkonto. Vi kommer göra två mikro-insättningar inom de närmaste 1-2 arbetsdagarna. Ange dessa belopp på organisationens faktureringssida för att verifiera bankkontot." + }, + "verifyBankAccountFailureWarning": { + "message": "Om du inte verifierar bankkontot kommer det att resultera i en missad betalning och ditt abonnemang kommer inaktiveras." + }, + "verifiedBankAccount": { + "message": "Bankkontot har verifierats." + }, + "bankAccount": { + "message": "Bankkonto" + }, + "amountX": { + "message": "Belopp $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routningsnummer", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Kontonummer" + }, + "accountHolderName": { + "message": "Kontoinnehavarens namn" + }, + "bankAccountType": { + "message": "Kontotyp" + }, + "bankAccountTypeCompany": { + "message": "Företag" + }, + "bankAccountTypeIndividual": { + "message": "Individuell (personlig)" + }, + "enterInstallationId": { + "message": "Ange ditt installations-id" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Lägg till platser", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Ta bort platser", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Ditt abonnemang tillåter totalt $COUNT$ användare.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Ytterligare alternativ" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Du kan inte bjuda in fler än $COUNT$ användare utan att uppgradera din plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Platser att lägga till" + }, + "seatsToRemove": { + "message": "Platser att ta bort" + }, + "seatsAddNote": { + "message": "Att lägga till användarplatser kommer att resultera i justeringar av ditt totala debiteringsbelopp och omedelbart debitera din betalningsmetod. Den första debiteringen kommer att fördelas proportionellt för den återstående delen av den nuvarande faktureringscykeln." + }, + "seatsRemoveNote": { + "message": "Att ta bort användarplatser kommer resultera i justeringar av ditt totala debiteringsbelopp som kommer läggas till som kredit mot din nästa debitering." + }, + "adjustedSeats": { + "message": "Justerade $AMOUNT$ användarplatser.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Nyckeln uppdaterades" + }, + "updateKeyTitle": { + "message": "Uppdatera nyckel" + }, + "updateEncryptionKey": { + "message": "Uppdatera krypteringsnyckel" + }, + "updateEncryptionKeyShortDesc": { + "message": "Du använder för närvarande ett föråldrat krypteringssystem." + }, + "updateEncryptionKeyDesc": { + "message": "Vi har övergått till större krypteringsnycklar som ger bättre säkerhet och tillgång till nyare funktioner. Att uppdatera din krypteringsnyckel är snabbt och smidigt. Skriv bara in ditt huvudlösenord nedan. Denna uppdatering kommer så småningom bli obligatorisk." + }, + "updateEncryptionKeyWarning": { + "message": "Efter att ha uppdaterat din krypteringsnyckel, måste du logga ut och in igen i alla Bitwarden-program som du använder (t.ex. mobilappen och webbläsartillägget). Att inte logga ut och in igen (vilket hämtar din nya krypteringsnyckel) kan resultera i datakorruption. Vi kommer försöka logga ut dig automatiskt, men det kan vara fördröjt." + }, + "updateEncryptionKeyExportWarning": { + "message": "Alla krypterade exporter som du har sparat kommer också bli ogiltiga." + }, + "subscription": { + "message": "Prenumeration" + }, + "loading": { + "message": "Laddar" + }, + "upgrade": { + "message": "Uppgradera" + }, + "upgradeOrganization": { + "message": "Uppgradera organisation" + }, + "upgradeOrganizationDesc": { + "message": "Denna funktion är inte tillgänglig för gratisorganisationer. Byt till ett betalt abonnemang för att låsa upp fler funktioner." + }, + "createOrganizationStep1": { + "message": "Skapa organisation: Steg 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Innan du skapar din organisation, måste du först skapa ett personligt gratiskonto." + }, + "refunded": { + "message": "Återbetald" + }, + "nothingSelected": { + "message": "Du har inte markerat något." + }, + "acceptPolicies": { + "message": "Genom att markera denna ruta godkänner du följande:" + }, + "acceptPoliciesError": { + "message": "Användarvillkoren och Integritetspolicyn har inte accepterats." + }, + "termsOfService": { + "message": "Användarvillkor" + }, + "privacyPolicy": { + "message": "Integritetspolicy" + }, + "filters": { + "message": "Filter" + }, + "vaultTimeout": { + "message": "Valvets tidsgräns" + }, + "vaultTimeoutDesc": { + "message": "Välj när valvets tidsgräns överskrids och den valda åtgärden utförs." + }, + "oneMinute": { + "message": "1 minut" + }, + "fiveMinutes": { + "message": "5 minuter" + }, + "fifteenMinutes": { + "message": "15 minuter" + }, + "thirtyMinutes": { + "message": "30 minuter" + }, + "oneHour": { + "message": "1 timme" + }, + "fourHours": { + "message": "4 timmar" + }, + "onRefresh": { + "message": "Vid omstart" + }, + "dateUpdated": { + "message": "Uppdaterades", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Lösenordet uppdaterades", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organisationen är inaktiverad." + }, + "licenseIsExpired": { + "message": "License is expired." + }, + "updatedUsers": { + "message": "Uppdaterade användare" + }, + "selected": { + "message": "Markerade" + }, + "ownership": { + "message": "Ägarskap" + }, + "whoOwnsThisItem": { + "message": "Vem äger detta objekt?" + }, + "strong": { + "message": "Stark", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Bra", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Svagt", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Mycket svagt", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Svagt huvudlösenord" + }, + "weakMasterPasswordDesc": { + "message": "Huvudlösenordet du har valt är svagt. Du bör använda ett starkt huvudlösenord (eller en lösenordsfras) för att skydda ditt Bitwarden-konto ordentligt. Är du säker på att du vill använda detta huvudlösenord?" + }, + "rotateAccountEncKey": { + "message": "Rotera även mitt kontos krypteringsnyckel" + }, + "rotateEncKeyTitle": { + "message": "Rotera krypteringsnyckel" + }, + "rotateEncKeyConfirmation": { + "message": "Är du säker på att du vill rotera ditt kontos krypteringsnyckel?" + }, + "attachmentsNeedFix": { + "message": "Detta objekt har gamla bilagor som behöver åtgärdas." + }, + "attachmentFixDesc": { + "message": "Detta är en gammal bilaga som behöver åtgärdas. Klicka för att läsa mer." + }, + "fix": { + "message": "Åtgärda", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Det finns gamla bilagor i ditt valv som behöver åtgärdas innan du kan rotera ditt kontos krypteringsnyckel." + }, + "yourAccountsFingerprint": { + "message": "Ditt kontos fingeravtrycksfras", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "För att säkerställa dina krypteringsnycklars integritet, vänligen verifiera användarens fingeravtrycksfras innan du fortsätter.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Never prompt to verify fingerprint phrases for invited users (Not recommended)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Gratis", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API-nyckel" + }, + "apiKeyDesc": { + "message": "Din API-nyckel kan användas för att autentisera mot Bitwardens publika API." + }, + "apiKeyRotateDesc": { + "message": "Genom att rotera API-nyckeln ogiltigförklarar du den tidigare nyckeln. Du kan rotera din API-nyckel om du tror att din nuvarande nyckel inte längre är säker att använda." + }, + "apiKeyWarning": { + "message": "Din API-nyckel har full tillgång till organisationen. Den bör hållas hemlig." + }, + "userApiKeyDesc": { + "message": "Din API-nyckel kan användas för att autentisera i Bitwardens CLI." + }, + "userApiKeyWarning": { + "message": "Din API-nyckel är en alternativ autentiseringsmekanism. Den bör hållas hemlig." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 Klientautentiseringsuppgifter", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Visa API-nyckel" + }, + "rotateApiKey": { + "message": "Rotera API-nyckel" + }, + "selectOneCollection": { + "message": "Du måste markera minst en samling." + }, + "couldNotChargeCardPayInvoice": { + "message": "Det gick inte att debitera ditt kort. Vänligen granska och betala den obetalda fakturan som visas nedan." + }, + "inAppPurchase": { + "message": "Köp i appen" + }, + "cannotPerformInAppPurchase": { + "message": "Du kan inte utföra denna åtgärd när du använder köp i appen som betalningsmetod." + }, + "manageSubscriptionFromStore": { + "message": "Du måste hantera ditt abonnemang från butiken där ditt köp i appen gjordes." + }, + "minLength": { + "message": "Minsta längd" + }, + "clone": { + "message": "Klona" + }, + "masterPassPolicyDesc": { + "message": "Ange minimikrav för huvudlösenordsstyrka." + }, + "twoStepLoginPolicyDesc": { + "message": "Kräv att användare konfigurerar tvåstegsverifiering för sina personliga konton." + }, + "twoStepLoginPolicyWarning": { + "message": "Medlemmar som inte har tvåstegsverifiering aktiverat för sina personliga konton kommer tas bort från organisationen och få ett e-postmeddelande om ändringen." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Du är medlem i en organisation som kräver att tvåstegsverifiering är aktiverat för ditt användarkonto. Om du inaktiverar alla metoder för tvåstegsverifiering kommer du automatiskt tas bort från dessa organisationer." + }, + "passwordGeneratorPolicyDesc": { + "message": "Ange minimikrav för lösenordsgeneratorn." + }, + "passwordGeneratorPolicyInEffect": { + "message": "En eller flera organisationspolicyer påverkar dina generatorinställningar." + }, + "masterPasswordPolicyInEffect": { + "message": "En eller flera organisationspolicyer kräver att ditt huvudlösenord uppfyller följande krav:" + }, + "policyInEffectMinComplexity": { + "message": "Minsta komplexitetspoäng på $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minsta längd på $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Innehålla en eller flera versaler" + }, + "policyInEffectLowercase": { + "message": "Innehålla en eller flera gemener" + }, + "policyInEffectNumbers": { + "message": "Innehålla en eller flera siffror" + }, + "policyInEffectSpecial": { + "message": "Innehålla ett eller flera av följande specialtecken: $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Ditt nya huvudlösenord uppfyller inte kraven i policyn." + }, + "minimumNumberOfWords": { + "message": "Minsta antal ord" + }, + "defaultType": { + "message": "Standardtyp" + }, + "userPreference": { + "message": "Användarpreferens" + }, + "vaultTimeoutAction": { + "message": "Åtgärd när valvets tidsgräns överskrids" + }, + "vaultTimeoutActionLockDesc": { + "message": "Ett låst valv kräver att du anger ditt huvudlösenord för att komma åt det igen." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Ett utloggat valv kräver att du autentiserar för att komma åt det igen." + }, + "lock": { + "message": "Lås", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Papperskorg", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Sök i papperskorgen" + }, + "permanentlyDelete": { + "message": "Radera permanent" + }, + "permanentlyDeleteSelected": { + "message": "Radera markerade permanent" + }, + "permanentlyDeleteItem": { + "message": "Radera objekt permanent" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Är du säker på att du vill radera detta objekt permanent?" + }, + "permanentlyDeletedItem": { + "message": "Raderade objekt permanent" + }, + "permanentlyDeletedItems": { + "message": "Raderade objekt permanent" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Du har markerat $COUNT$ objekt att radera permanent. Är du säker på att du vill radera alla dessa objekt permanent?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Raderade objektet $ID$ permanent.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Återställ" + }, + "restoreSelected": { + "message": "Återställ markerade" + }, + "restoreItem": { + "message": "Återställ objekt" + }, + "restoredItem": { + "message": "Återställde objekt" + }, + "restoredItems": { + "message": "Återställde objekt" + }, + "restoreItemConfirmation": { + "message": "Är du säker på att du vill återställa detta objekt?" + }, + "restoreItems": { + "message": "Återställ objekt" + }, + "restoreSelectedItemsDesc": { + "message": "Du har markerat $COUNT$ objekt att återställa. Är du säker på att du vill återställa alla dessa objekt?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Återställde objektet $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Genom att logga ut upphör all åtkomst till valvet och onlineautentisering krävs efter att tidsgränsen överskridits. Är du säker på att du vill använda denna inställning?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Bekräftelse av åtgärd när valvets tidsgräns överskrids" + }, + "hidePasswords": { + "message": "Dölj lösenord" + }, + "countryPostalCodeRequiredDesc": { + "message": "Vi behöver denna information endast för att beräkna moms och finansiell rapportering." + }, + "includeVAT": { + "message": "Inkludera momsinformation (valfri)" + }, + "taxIdNumber": { + "message": "Momsregistreringsnummer (VAT/GST)" + }, + "taxInfoUpdated": { + "message": "Momsinformationen uppdaterades." + }, + "setMasterPassword": { + "message": "Ange huvudlösenord" + }, + "ssoCompleteRegistration": { + "message": "För att slutföra inloggning med SSO, ange ett huvudlösenord för att komma åt och skydda ditt valv." + }, + "identifier": { + "message": "Identifierare" + }, + "organizationIdentifier": { + "message": "Organisationens Identifierare" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Logga in genom organisationens inloggningsportal. Ange organisationens identifierare för att börja." + }, + "enterpriseSingleSignOn": { + "message": "Single Sign-On för företag" + }, + "ssoHandOff": { + "message": "Du kan nu stänga denna flik och fortsätta i tillägget." + }, + "includeAllTeamsFeatures": { + "message": "Alla funktioner för team, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO-autentisering via SAML2.0 och OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Företagets policyer" + }, + "ssoValidationFailed": { + "message": "Validering med SSO misslyckades" + }, + "ssoIdentifierRequired": { + "message": "Organisationens identifierare krävs." + }, + "unlinkSso": { + "message": "Avlänka SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Länka SSO" + }, + "singleOrg": { + "message": "En organisation" + }, + "singleOrgDesc": { + "message": "Hindra användare från att gå med i några andra organisationer." + }, + "singleOrgBlockCreateMessage": { + "message": "Din nuvarande organisation har en policy som hindrar dig från att gå med i fler än en organisation. Vänligen kontakta din organisations administratörer eller registrera ett annat Bitwarden-konto." + }, + "singleOrgPolicyWarning": { + "message": "Medlemmar som inte är ägare eller administratörer och redan är med i en annan organisation kommer att tas bort från organisationen." + }, + "requireSso": { + "message": "Autentisering med Single Sign-On" + }, + "requireSsoPolicyDesc": { + "message": "Kräv att användare loggar in med Single Sign-On för företag." + }, + "prerequisite": { + "message": "Förutsättning" + }, + "requireSsoPolicyReq": { + "message": "Policyn \"En organisation\" måste vara aktiverad innan denna policy kan aktiveras." + }, + "requireSsoPolicyReqError": { + "message": "Policyn \"En organisation\" är inte aktiverad." + }, + "requireSsoExemption": { + "message": "Organisationens ägare och administratörer är undantagna från denna policy." + }, + "sendTypeFile": { + "message": "Fil" + }, + "sendTypeText": { + "message": "Text" + }, + "createSend": { + "message": "Skapa ny Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Redigera Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Created Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Edited Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Deleted Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Radera Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Är du säker på att du vill radera denna Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Vilken typ av Send är detta?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Raderingsdatum" + }, + "deletionDateDesc": { + "message": "The Send will be permanently deleted on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Utgångsdatum" + }, + "expirationDateDesc": { + "message": "If set, access to this Send will expire on the specified date and time.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximalt antal åtkomster" + }, + "maxAccessCountDesc": { + "message": "If set, users will no longer be able to access this Send once the maximum access count is reached.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Nuvarande antal åtkomster" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Inaktiverad" + }, + "sendLink": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Copy Send Link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Ta bort lösenord" + }, + "removedPassword": { + "message": "Tog bort lösenord" + }, + "removePasswordConfirmation": { + "message": "Är du säker på att du vill ta bort lösenordet?" + }, + "hideEmail": { + "message": "Dölj min e-postadress för mottagare." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "All Sends" + }, + "maxAccessCountReached": { + "message": "Det maximala antalet åtkomster har uppnåtts", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Väntar på radering" + }, + "expired": { + "message": "Utgången" + }, + "searchSends": { + "message": "Search Sends", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "This Send is protected with a password. Please type the password below to continue.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Ladda ner fil" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "There are no Sends to list.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Nödåtkomst" + }, + "emergencyAccessDesc": { + "message": "Bevilja och hantera åtkomst för betrodda kontakter i nödsituationer. Betrodda kontakter kan begära att antingen visa eller ta över ditt konto vid en nödsituation. Besök vår hjälpsida för mer information och information om hur delning utan kännedom fungerar." + }, + "emergencyAccessOwnerWarning": { + "message": "Du är ägare till en eller flera organisationer. Om du ger tillgång till en nödkontakt kommer de att kunna använda alla dina behörigheter som ägare efter ett övertagande." + }, + "trustedEmergencyContacts": { + "message": "Betrodda nödkontakter" + }, + "noTrustedContacts": { + "message": "Du har inte lagt till några nödkontakter än, bjud in en betrodd kontakt för att komma igång." + }, + "addEmergencyContact": { + "message": "Lägg till nödkontakt" + }, + "designatedEmergencyContacts": { + "message": "Utsedd till nödkontakt" + }, + "noGrantedAccess": { + "message": "Du har inte utsetts till någon annans nödkontakt än." + }, + "inviteEmergencyContact": { + "message": "Bjud in nödkontakt" + }, + "editEmergencyContact": { + "message": "Redigera nödkontakt" + }, + "inviteEmergencyContactDesc": { + "message": "Bjud in en nödkontakt genom att ange e-postadressen som tillhör deras Bitwarden-konto nedan. Om de inte redan har ett Bitwarden-konto kommer de uppmanas att skapa ett." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Nödåtkomst initierad" + }, + "emergencyAccessRecoveryApproved": { + "message": "Nödåtkomst godkänd" + }, + "viewDesc": { + "message": "Kan visa alla objekt i ditt valv." + }, + "takeover": { + "message": "Ta över" + }, + "takeoverDesc": { + "message": "Kan återställa ditt konto med ett nytt huvudlösenord." + }, + "waitTime": { + "message": "Väntetid" + }, + "waitTimeDesc": { + "message": "Tid som krävs innan åtkomst beviljas automatiskt." + }, + "oneDay": { + "message": "1 dag" + }, + "days": { + "message": "$DAYS$ dagar", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Bjöd in användare." + }, + "acceptEmergencyAccess": { + "message": "Du har blivit inbjuden att bli nödkontakt åt användaren ovan. För att acceptera inbjudan måste du logga in eller skapa ett nytt Bitwarden-konto." + }, + "emergencyInviteAcceptFailed": { + "message": "Det gick inte att acceptera inbjudan. Be användaren att skicka en ny inbjudan." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Det gick inte att acceptera inbjudan. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Du kan komma åt nödalternativen för den här användaren efter att din identitet har bekräftats. Vi skickar dig ett e-postmeddelande när det händer." + }, + "requestAccess": { + "message": "Begär åtkomst" + }, + "requestAccessConfirmation": { + "message": "Är du säker på att du vill begära nödåtkomst? Du kommer att få åtkomst efter $WAITTIME$ dag(ar) eller när användaren manuellt godkänner begäran.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Nödåtkomst begärd för $USER$. Vi meddelar dig via e-post när det är möjligt att fortsätta.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Godkänn" + }, + "reject": { + "message": "Neka" + }, + "approveAccessConfirmation": { + "message": "Är du säker på att du vill godkänna nödåtkomst? Detta tillåter $USER$ att $ACTION$ ditt konto.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Nödåtkomst godkänd." + }, + "emergencyRejected": { + "message": "Nödåtkomst nekad" + }, + "passwordResetFor": { + "message": "Lösenordet för $USER$ återställdes. Du kan nu logga in med det nya lösenordet.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personligt ägarskap" + }, + "personalOwnershipPolicyDesc": { + "message": "Kräv att användare sparar objekt till en organisation genom att ta bort det personliga ägarskapsalternativet." + }, + "personalOwnershipExemption": { + "message": "Organisationens ägare och administratörer är undantagna från denna policy." + }, + "personalOwnershipSubmitError": { + "message": "På grund av en av företagets policyer är du begränsad från att spara objekt till ditt personliga valv. Ändra ägarskap till en organisation och välj från tillgängliga samlingar." + }, + "disableSend": { + "message": "Inaktivera Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Användare som kan hantera organisationens policyer är berörs inte av den här policyn." + }, + "sendDisabled": { + "message": "Send disabled", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Due to an enterprise policy, you are only able to delete an existing Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Alternativ för Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Ange alternativ för att skapa och redigera Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organisationsanvändare som kan hantera organisationens policyer berörs inte av den här policyn." + }, + "disableHideEmail": { + "message": "Tillåt inte användare att dölja sin e-postadress från mottagare när de skapar eller redigerar en Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Följande organisationspolicyer är aktiva just nu:" + }, + "sendDisableHideEmailInEffect": { + "message": "Användare får inte dölja sin e-postadress för mottagare när de skapar eller redigerar en Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Ändrade policyn $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Abonnemangets pris" + }, + "estimatedTax": { + "message": "Uppskattad moms" + }, + "custom": { + "message": "Anpassad" + }, + "customDesc": { + "message": "Tillåter mer detaljerad kontroll av användarbehörigheter för avancerade konfigurationer." + }, + "permissions": { + "message": "Behörigheter" + }, + "accessEventLogs": { + "message": "Åtkomst till händelseloggar" + }, + "accessImportExport": { + "message": "Åtkomst till import/export" + }, + "accessReports": { + "message": "Åtkomst till rapporter" + }, + "missingPermissions": { + "message": "Du har inte tillstånd att utföra den här åtgärden." + }, + "manageAllCollections": { + "message": "Hantera alla samlingar" + }, + "createNewCollections": { + "message": "Skapa ny samling" + }, + "editAnyCollection": { + "message": "Ändra samling" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Hantera tilldelade samlingar" + }, + "editAssignedCollections": { + "message": "Redigera tilldelade samlingar" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Hantera grupper" + }, + "managePolicies": { + "message": "Hantera policyer" + }, + "manageSso": { + "message": "Hantera SSO" + }, + "manageUsers": { + "message": "Hantera användare" + }, + "manageResetPassword": { + "message": "Hantera lösenordsåterställning" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "En organisationspolicy påverkar dina ägarskapsalternativ." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Inaktivera personligt ägarskap för organisationens användare" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "A friendly name to describe this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Texten du vill skicka." + }, + "sendFileDesc": { + "message": "Filen du vill skicka." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Läs mer om", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Dela text eller filer direkt med vem som helst." + }, + "sendVaultCardLearnMore": { + "message": "Läs mer", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "se", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "hur det fungerar", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "eller", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "prova det nu", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "eller", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "registrera dig", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "att prova det idag.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden-användaren $USER_IDENTIFIER$ delade följande med dig", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Bitwarden-användaren som skapade denna Send har valt att dölja sin e-postadress. Du bör se till att du litar på källan till denna länk innan du använder eller hämtar innehållet.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Det angivna utgångsdatumet är inte giltigt." + }, + "deletionDateIsInvalid": { + "message": "Det angivna raderingsdatumet är inte giltigt." + }, + "expirationDateAndTimeRequired": { + "message": "Ett utgångsdatum och tid krävs." + }, + "deletionDateAndTimeRequired": { + "message": "Ett raderingsdatum och tid krävs." + }, + "dateParsingError": { + "message": "Det gick inte att spara raderings- och utgångsdatum." + }, + "webAuthnFallbackMsg": { + "message": "Klicka på knappen nedan för att verifiera din 2FA." + }, + "webAuthnAuthenticate": { + "message": "Autentisera WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn stöds inte i denna webbläsare." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Din lösenordsledtråd får inte vara samma som ditt lösenord." + }, + "enrollPasswordReset": { + "message": "Delta i lösenordsåterställning" + }, + "enrolledPasswordReset": { + "message": "Deltar ​i lösenordsåterställning" + }, + "withdrawPasswordReset": { + "message": "Utträd från lösenordsåterställning" + }, + "enrollPasswordResetSuccess": { + "message": "Deltagandet lyckades!" + }, + "withdrawPasswordResetSuccess": { + "message": "Utträdet lyckades!" + }, + "eventEnrollPasswordReset": { + "message": "Användare $ID$ anmälde sig till hjälp för återställning av lösenord.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Användaren $ID$ drog sig tillbaka från hjälp med återställning av lösenord.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Huvudlösenordet återställdes för användaren $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Återställ lösenord" + }, + "resetPasswordLoggedOutWarning": { + "message": "Om du fortsätter kommer $NAME$ loggas ut från sin nuvarande session vilket kräver att de loggar in igen. Aktiva sessioner på andra enheter kan fortsätta vara aktiva i upp till en timme.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "denna användare" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "En eller flera organisationspolicyer kräver att huvudlösenordet uppfyller följande krav:" + }, + "resetPasswordSuccess": { + "message": "Lösenordsåterställningen lyckades!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Deltagande tillåter organisationsadministratörer att ändra ditt huvudlösenord. Är du säker på att du vill delta?" + }, + "resetPasswordPolicy": { + "message": "Återställning av huvudlösenord" + }, + "resetPasswordPolicyDescription": { + "message": "Tillåt administratörer i organisationen att återställa organisationens användares huvudlösenord." + }, + "resetPasswordPolicyWarning": { + "message": "Användare i organisationen måste själva delta eller delta automatiskt innan administratörer kan återställa deras huvudlösenord." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatiskt deltagande" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Användare som redan är med i organisationen kommer inte att retroaktivt delta i lösenordsåterställning. De kommer behöva delta själva innan administratörer kan återställa sitt huvudlösenord." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Denna organisation har en företagspolicy som automatiskt registrerar dig för lösenordsåterställning. Deltagandet gör det möjligt för organisationsadministratörer att ändra ditt huvudlösenord." + }, + "resetPasswordOrgKeysError": { + "message": "Svaret om organisationnycklar är null" + }, + "resetPasswordDetailsError": { + "message": "Svaret om detaljer om lösenordsåterställning är null" + }, + "trashCleanupWarning": { + "message": "Objekt som har legat i papperskorgen i mer än 30 dagar raderas automatiskt." + }, + "trashCleanupWarningSelfHosted": { + "message": "Objekt som har legat i papperskorgen ett tag raderas automatiskt." + }, + "passwordPrompt": { + "message": "Återupprepa huvudlösenord" + }, + "passwordConfirmation": { + "message": "Bekräfta huvudlösenord" + }, + "passwordConfirmationDesc": { + "message": "Denna åtgärd är skyddad. För att fortsätta, ange ditt huvudlösenord igen för att verifiera din identitet." + }, + "reinviteSelected": { + "message": "Skicka inbjudningar igen" + }, + "noSelectedUsersApplicable": { + "message": "Denna åtgärd är inte tillämplig på någon av de valda användarna." + }, + "removeUsersWarning": { + "message": "Är du säker på att du vill ta bort följande användare? Processen kan ta några sekunder att slutföra och kan inte pausas eller avbrytas." + }, + "theme": { + "message": "Tema" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Använd systemtema" + }, + "themeDark": { + "message": "Mörkt" + }, + "themeLight": { + "message": "Ljust" + }, + "confirmSelected": { + "message": "Bekräfta valda" + }, + "bulkConfirmStatus": { + "message": "Status för massåtgärd" + }, + "bulkConfirmMessage": { + "message": "Bekräftade." + }, + "bulkReinviteMessage": { + "message": "Bjöd in igen." + }, + "bulkRemovedMessage": { + "message": "Tog bort" + }, + "bulkFilteredMessage": { + "message": "Exkluderad, inte tillämplig för denna åtgärd." + }, + "fingerprint": { + "message": "Fingeravtryck" + }, + "removeUsers": { + "message": "Ta bort användare" + }, + "error": { + "message": "Fel" + }, + "resetPasswordManageUsers": { + "message": "Hantera användare måste också aktiveras med rättigheten Hantera lösenordsåterställning" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Klienter" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Lägg till befintlig organisation" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Lägg till" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Timmar" + }, + "minutes": { + "message": "Minuter" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Typ" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Lös in" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Välj den organisation som du vill sponsra" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Återkalla konto $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Lös in nu" + }, + "recipient": { + "message": "Mottagare" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Återkalla" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Skicka en verifieringskod till din e-postadress" + }, + "sendCode": { + "message": "Skicka kod" + }, + "codeSent": { + "message": "Kod har skickats" + }, + "verificationCode": { + "message": "Verifieringskod" + }, + "confirmIdentity": { + "message": "Bekräfta din identitet för att fortsätta." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Ogiltig verifieringskod" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Lämna organisation" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Tillbaka till Rapporter" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/tr/messages.json b/apps/web/src/locales/tr/messages.json new file mode 100644 index 0000000000..e392f2634b --- /dev/null +++ b/apps/web/src/locales/tr/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ web kasası", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Bu kaydın türü nedir?" + }, + "name": { + "message": "Ad" + }, + "uri": { + "message": "URl" + }, + "uriPosition": { + "message": "URL $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Yeni URI" + }, + "username": { + "message": "Kullanıcı adı" + }, + "password": { + "message": "Parola" + }, + "newPassword": { + "message": "Yeni parola" + }, + "passphrase": { + "message": "Uzun söz" + }, + "notes": { + "message": "Notlar" + }, + "customFields": { + "message": "Özel alanlar" + }, + "cardholderName": { + "message": "Kart sahibinin adı" + }, + "number": { + "message": "Numara" + }, + "brand": { + "message": "Marka" + }, + "expiration": { + "message": "Son kullanma tarihi" + }, + "securityCode": { + "message": "Güvenlik kodu (CVV)" + }, + "identityName": { + "message": "Kimlik adı" + }, + "company": { + "message": "Şirket" + }, + "ssn": { + "message": "Sosyal güvenlik numarası" + }, + "passportNumber": { + "message": "Pasaport numarası" + }, + "licenseNumber": { + "message": "Ehliyet numarası" + }, + "email": { + "message": "E-posta" + }, + "phone": { + "message": "Telefon" + }, + "january": { + "message": "Ocak" + }, + "february": { + "message": "Şubat" + }, + "march": { + "message": "Mart" + }, + "april": { + "message": "Nisan" + }, + "may": { + "message": "Mayıs" + }, + "june": { + "message": "Haziran" + }, + "july": { + "message": "Temmuz" + }, + "august": { + "message": "Ağustos" + }, + "september": { + "message": "Eylül" + }, + "october": { + "message": "Ekim" + }, + "november": { + "message": "Kasım" + }, + "december": { + "message": "Aralık" + }, + "title": { + "message": "Unvan" + }, + "mr": { + "message": "Bay" + }, + "mrs": { + "message": "Mrs" + }, + "ms": { + "message": "Ms" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Son Kullanma Ayı" + }, + "expirationYear": { + "message": "Son Kullanma Yılı" + }, + "authenticatorKeyTotp": { + "message": "Kimlik doğrulama anahtarı (TOTP)" + }, + "folder": { + "message": "Klasör" + }, + "newCustomField": { + "message": "Yeni Özel Alan" + }, + "value": { + "message": "Değer" + }, + "dragToSort": { + "message": "Sıralamak için sürükleyin" + }, + "cfTypeText": { + "message": "Metin" + }, + "cfTypeHidden": { + "message": "Gizli" + }, + "cfTypeBoolean": { + "message": "Boolean" + }, + "cfTypeLinked": { + "message": "Bağlantılı", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Kaldır" + }, + "unassigned": { + "message": "Atanmamış" + }, + "noneFolder": { + "message": "Klasör yok", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Klasör ekle" + }, + "editFolder": { + "message": "Klasörü düzenle" + }, + "baseDomain": { + "message": "Ana alan adı", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Alan adı", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Sunucu", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Tam" + }, + "startsWith": { + "message": "URI başlangıcı" + }, + "regEx": { + "message": "Düzenli ifade", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Eşleşme tespiti", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Varsayılan eşleşme tespiti", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Asla" + }, + "toggleVisibility": { + "message": "Görünürlüğü aç/kapat" + }, + "toggleCollapse": { + "message": "Daraltmayı aç/kapat", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Parola oluştur" + }, + "checkPassword": { + "message": "Parolanız ele geçirilip geçirilmediğini kontrol edin." + }, + "passwordExposed": { + "message": "Bu parola, veri ihlallerinde $VALUE$ kere açığa çıkmış. Değiştirmenizi tavsiye ederiz.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Bilinen veri ihlallerinde bu parola bulunamadı. Güvenle kullanabilirsiniz." + }, + "save": { + "message": "Kaydet" + }, + "cancel": { + "message": "İptal" + }, + "canceled": { + "message": "İptal edildi" + }, + "close": { + "message": "Kapat" + }, + "delete": { + "message": "Sil" + }, + "favorite": { + "message": "Favori" + }, + "unfavorite": { + "message": "Favorilerden çıkar" + }, + "edit": { + "message": "Düzenle" + }, + "searchCollection": { + "message": "Koleksiyonda ara" + }, + "searchFolder": { + "message": "Klasörde ara" + }, + "searchFavorites": { + "message": "Favorilerde ara" + }, + "searchType": { + "message": "Arama türü", + "description": "Search item type" + }, + "searchVault": { + "message": "Kasada ara" + }, + "allItems": { + "message": "Tüm kayıtlar" + }, + "favorites": { + "message": "Favoriler" + }, + "types": { + "message": "Türler" + }, + "typeLogin": { + "message": "Hesap" + }, + "typeCard": { + "message": "Kart" + }, + "typeIdentity": { + "message": "Kimlik" + }, + "typeSecureNote": { + "message": "Güvenli not" + }, + "typeLoginPlural": { + "message": "Hesaplar" + }, + "typeCardPlural": { + "message": "Kartlar" + }, + "typeIdentityPlural": { + "message": "Kimlikler" + }, + "typeSecureNotePlural": { + "message": "Güvenli Notlar" + }, + "folders": { + "message": "Klasörler" + }, + "collections": { + "message": "Koleksiyonlar" + }, + "firstName": { + "message": "Ad" + }, + "middleName": { + "message": "İkinci ad" + }, + "lastName": { + "message": "Soyadı" + }, + "fullName": { + "message": "Ad, Soyad" + }, + "address1": { + "message": "Adres 1" + }, + "address2": { + "message": "Adres 2" + }, + "address3": { + "message": "Adres 3" + }, + "cityTown": { + "message": "İlçe" + }, + "stateProvince": { + "message": "İl / eyalet" + }, + "zipPostalCode": { + "message": "Posta kodu" + }, + "country": { + "message": "Ülke" + }, + "shared": { + "message": "Paylaşılan" + }, + "attachments": { + "message": "Ekler" + }, + "select": { + "message": "Seç" + }, + "addItem": { + "message": "Kayıt ekle" + }, + "editItem": { + "message": "Kaydı düzenle" + }, + "viewItem": { + "message": "Kaydı göster" + }, + "ex": { + "message": "örn.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Diğer" + }, + "share": { + "message": "Paylaş" + }, + "moveToOrganization": { + "message": "Kuruluşa taşı" + }, + "valueCopied": { + "message": "$VALUE$ kopyalandı", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Değeri kopyala", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Parolayı kopyala", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Kullanıcı adını kopyala", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Numarayı kopyala", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Güvenlik kodunu kopyala", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "URI'yi kopyala", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Kasam" + }, + "vault": { + "message": "Kasa" + }, + "moveSelectedToOrg": { + "message": "Seçilenleri kuruluşa taşı" + }, + "deleteSelected": { + "message": "Seçilenleri sil" + }, + "moveSelected": { + "message": "Seçilenleri taşı" + }, + "selectAll": { + "message": "Tümünü seç" + }, + "unselectAll": { + "message": "Seçimi iptal et" + }, + "launch": { + "message": "Aç" + }, + "newAttachment": { + "message": "Yeni dosya ekle" + }, + "deletedAttachment": { + "message": "Dosya silindi" + }, + "deleteAttachmentConfirmation": { + "message": "Bu dosyayı silmek istediğinizden emin misiniz?" + }, + "attachmentSaved": { + "message": "Dosya kaydedildi." + }, + "file": { + "message": "Dosya" + }, + "selectFile": { + "message": "Bir dosya seçin." + }, + "maxFileSize": { + "message": "Maksimum dosya boyutu 500 MB'dir." + }, + "updateKey": { + "message": "Şifreleme anahtarınızı güncellemeden bu özelliği kullanamazsınız." + }, + "addedItem": { + "message": "Kayıt eklendi" + }, + "editedItem": { + "message": "Kayıt düzenlendi" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ $ORGNAME$ kuruluşuna taşındı", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Seçilen kayıtlar $ORGNAME$ kuruluşuna taşındı", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Kaydı sil" + }, + "deleteFolder": { + "message": "Klasörü sil" + }, + "deleteAttachment": { + "message": "Dosyayı sil" + }, + "deleteItemConfirmation": { + "message": "Çöp kutusuna göndermek istediğinizden emin misiniz?" + }, + "deletedItem": { + "message": "Kayıt çöp kutusuna gönderildi" + }, + "deletedItems": { + "message": "Kayıtlar çöp kutusuna gönderildi" + }, + "movedItems": { + "message": "Kayıtlar taşındı" + }, + "overwritePasswordConfirmation": { + "message": "Mevcut parolanın üzerine kaydetmek istediğinizden emin misiniz?" + }, + "editedFolder": { + "message": "Klasör düzenlendi" + }, + "addedFolder": { + "message": "Klasör eklendi" + }, + "deleteFolderConfirmation": { + "message": "Bu klasörü silmek istediğinizden emin misiniz?" + }, + "deletedFolder": { + "message": "Klasör silindi" + }, + "loggedOut": { + "message": "Çıkış yapıldı" + }, + "loginExpired": { + "message": "Oturumunuz zaman aşımına uğradı." + }, + "logOutConfirmation": { + "message": "Çıkmak istediğinizden emin misiniz?" + }, + "logOut": { + "message": "Çıkış yap" + }, + "ok": { + "message": "Tamam" + }, + "yes": { + "message": "Evet" + }, + "no": { + "message": "Hayır" + }, + "loginOrCreateNewAccount": { + "message": "Güvenli kasanıza ulaşmak için giriş yapın veya yeni bir hesap oluşturun." + }, + "createAccount": { + "message": "Hesap aç" + }, + "logIn": { + "message": "Giriş yap" + }, + "submit": { + "message": "Gönder" + }, + "emailAddressDesc": { + "message": "Giriş yapmak için e-posta adresinizi kullanacaksınız." + }, + "yourName": { + "message": "Adınız" + }, + "yourNameDesc": { + "message": "Size nasıl hitap edelim?" + }, + "masterPass": { + "message": "Ana parola" + }, + "masterPassDesc": { + "message": "Ana parola, kasanıza ulaşmak için kullanacağınız paroladır. Ana parolanızı unutmamanız çok önemlidir. Unutursanız parolalarınızı asla kurtaramazsınız." + }, + "masterPassHintDesc": { + "message": "Ana parolanızı unutursanız bu ipucuna bakınca size ana parolanızı hatırlatacak bir şey yazabilirsiniz." + }, + "reTypeMasterPass": { + "message": "Ana parolayı tekrar yazın" + }, + "masterPassHint": { + "message": "Ana parola ipucu (isteğe bağlı)" + }, + "masterPassHintLabel": { + "message": "Ana parola ipucu" + }, + "settings": { + "message": "Ayarlar" + }, + "passwordHint": { + "message": "Parola ipucu" + }, + "enterEmailToGetHint": { + "message": "Ana parola ipucunu almak için hesabınızın e-posta adresini girin." + }, + "getMasterPasswordHint": { + "message": "Ana parola ipucunu al" + }, + "emailRequired": { + "message": "E-posta adresi gereklidir." + }, + "invalidEmail": { + "message": "Geçersiz e-posta adresi." + }, + "masterPassRequired": { + "message": "Ana parola gerekli." + }, + "masterPassLength": { + "message": "Ana parola en az 8 karakter uzunluğunda olmalıdır." + }, + "masterPassDoesntMatch": { + "message": "Ana parola onayı eşleşmiyor." + }, + "newAccountCreated": { + "message": "Yeni hesabınız oluşturuldu! Şimdi giriş yapabilirsiniz." + }, + "masterPassSent": { + "message": "Size ana parolanızın ipucunu içeren bir e-posta gönderdik." + }, + "unexpectedError": { + "message": "Beklenmedik bir hata oluştu." + }, + "emailAddress": { + "message": "E-posta adresi" + }, + "yourVaultIsLocked": { + "message": "Kasanız kilitli. Devam etmek için ana parolanızı doğrulayın." + }, + "unlock": { + "message": "Kilidi aç" + }, + "loggedInAsEmailOn": { + "message": "$HOSTNAME$ üzerinde $EMAIL$ adresiyle oturum açtınız.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Geçersiz ana parola" + }, + "lockNow": { + "message": "Şimdi kilitle" + }, + "noItemsInList": { + "message": "Listelenecek kayıt yok." + }, + "noCollectionsInList": { + "message": "Listelenecek koleksiyon yok." + }, + "noGroupsInList": { + "message": "Listelenecek grup yok." + }, + "noUsersInList": { + "message": "Listelenecek kullanıcı yok." + }, + "noEventsInList": { + "message": "Listelenecek olay yok." + }, + "newOrganization": { + "message": "Yeni kuruluş" + }, + "noOrganizationsList": { + "message": "Herhangi bir kuruluşa dahil değilsiniz. Kuruluşlar, kayıtlarınızı diğer kullanıcılarla güvenli bir şekilde paylaşmanıza olanak verir." + }, + "versionNumber": { + "message": "Sürüm $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Kimlik doğrulama uygulamanızdaki 6 haneli doğrulama kodunu girin." + }, + "enterVerificationCodeEmail": { + "message": "$EMAIL$ adresine e-postayla gönderdiğimiz 6 haneli doğrulama kodunu girin.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Doğrulama e-postası $EMAIL$ adresine gönderildi.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Beni hatırla" + }, + "sendVerificationCodeEmailAgain": { + "message": "Doğrulama kodu e-postasını yeniden gönder" + }, + "useAnotherTwoStepMethod": { + "message": "Başka bir iki aşamalı giriş yöntemini kullan" + }, + "insertYubiKey": { + "message": "YubiKey'inizi bilgisayarınızın USB portuna takın, ardından düğmesine dokunun." + }, + "insertU2f": { + "message": "Güvenlik anahtarınızı bilgisayarınızın USB portuna takın. Düğmesi varsa dokunun." + }, + "loginUnavailable": { + "message": "Giriş yapılamıyor" + }, + "noTwoStepProviders": { + "message": "Bu hesapta iki aşamalı giriş özelliği etkin ama yapılandırdığınız iki aşamalı giriş sağlayıcılarının hiçbiri bu tarayıcıyı desteklemiyor." + }, + "noTwoStepProviders2": { + "message": "Lütfen desteklenen bir web tarayıcısı (örn. Chrome) kullanın ve/veya web tarayıcılarında daha iyi desteklenen sağlayıcılar (örn. kimlik doğrulama uygulaması) ekleyin." + }, + "twoStepOptions": { + "message": "İki aşamalı giriş seçenekleri" + }, + "recoveryCodeDesc": { + "message": "İki aşamalı doğrulama sağlayıcılarınıza ulaşamıyor musunuz? Kurtarma kodunuzu kullanarak hesabınızdaki tüm iki aşamalı giriş sağlayıcılarını devre dışı bırakabilirsiniz." + }, + "recoveryCodeTitle": { + "message": "Kurtarma kodu" + }, + "authenticatorAppTitle": { + "message": "Kimlik doğrulama uygulaması" + }, + "authenticatorAppDesc": { + "message": "Zamana dayalı doğrulama kodları oluşturmak için kimlik doğrulama uygulaması (örn. Authy veya Google Authenticator) kullanın.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP güvenlik anahtarı" + }, + "yubiKeyDesc": { + "message": "Hesabınıza erişmek için YubiKey kullanabilirsiniz. YubiKey 4 serisi, 5 serisi ve NEO cihazlarıyla çalışır." + }, + "duoDesc": { + "message": "Duo Security ile doğrulama için Duo Mobile uygulaması, SMS, telefon araması veya U2F güvenlik anahtarını kullanın.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Kuruluşunuzun Duo Security doğrulaması için Duo Mobile uygulaması, SMS, telefon araması veya U2F güvenlik anahtarını kullanın.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Hesabınıza erişmek için FIDO U2F uyumlu bir güvenlik anahtarı kullanın." + }, + "u2fTitle": { + "message": "FIDO U2F güvenlik anahtarı" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Hesabınıza erişmek için WebAuthn uyumlu bir güvenlik anahtarı kullanın." + }, + "webAuthnMigrated": { + "message": "(FIDO'dan taşındı)" + }, + "emailTitle": { + "message": "E-posta" + }, + "emailDesc": { + "message": "Doğrulama kodları e-posta adresinize gönderilecek." + }, + "continue": { + "message": "Devam" + }, + "organization": { + "message": "Kuruluş" + }, + "organizations": { + "message": "Kuruluşlar" + }, + "moveToOrgDesc": { + "message": "Bu kaydı taşımak istediğiniz kuruluşu seçin. Taşıdığınız kaydın sahipliği seçtiğiniz kuruluşa aktarılacak. Artık bu kaydın doğrudan sahibi olmayacaksınız." + }, + "moveManyToOrgDesc": { + "message": "Bu kayıtları taşımak istediğiniz kuruluşu seçin. Taşıdığınız kayıtların sahipliği seçtiğiniz kuruluşa aktarılacak. Artık bu kayıtların doğrudan sahibi olmayacaksınız." + }, + "collectionsDesc": { + "message": "Bu kaydın şu anda paylaşıldığı koleksiyonları düzenler. Kuruluştaki kullanıcılardan yalnızca bu koleksiyonlara erişimi olanlar bu kaydı görebilir." + }, + "deleteSelectedItemsDesc": { + "message": "Silinmek üzere $COUNT$ kayıt seçtiniz. Bu kayıtların hepsini silmek istediğinizden emin misiniz?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Seçtiğiniz $COUNT$ kaydı taşımak istediğiniz klasörü seçin.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "$COUNT$ kayıt seçtiniz. $MOVEABLE_COUNT$ kayıt bir kuruluşa taşınabilir, $NONMOVEABLE_COUNT$ kayıt taşınamaz.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Doğrulama kodu (TOTP)" + }, + "copyVerificationCode": { + "message": "Doğrulama kodunu kopyala" + }, + "warning": { + "message": "Uyarı" + }, + "confirmVaultExport": { + "message": "Kasayı dışa aktarmayı onaylayın" + }, + "exportWarningDesc": { + "message": "Dışa aktarılan dosyadaki verileriniz şifrelenmemiş olacak. Bu dosyayı güvensiz yöntemlerle (örn. e-posta) göndermemeli ve saklamamalısınız. İşiniz bittikten sonra dosyayı hemen silin." + }, + "encExportKeyWarningDesc": { + "message": "Dışa aktardığınız bu dosyadaki verileriniz, hesabınızın şifreleme anahtarıyla şifrelenir. Hesabınızın şifreleme anahtarını değiştirirseniz bu dosyanın şifresi çözülemez hale gelir, dolayısıyla dosyayı yeniden dışa aktarmanız gerekir." + }, + "encExportAccountWarningDesc": { + "message": "Hesap şifreleme anahtarları her Bitwarden kullanıcı hesabı için farklıdır. Dolayısıyla şifrelenmiş bir dışa aktarmayı başka bir hesapta içe aktaramazsınız." + }, + "export": { + "message": "Dışarı aktar" + }, + "exportVault": { + "message": "Kasayı dışa aktar" + }, + "fileFormat": { + "message": "Dosya biçimi" + }, + "exportSuccess": { + "message": "Kasadaki verileriniz dışa aktarıldı." + }, + "passwordGenerator": { + "message": "Parola oluşturucu" + }, + "minComplexityScore": { + "message": "Minimum karmaşıklık puanı" + }, + "minNumbers": { + "message": "En az rakam" + }, + "minSpecial": { + "message": "En az özel karakter", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Okurken karışabilecek karakterleri kullanma" + }, + "regeneratePassword": { + "message": "Yeni parola oluştur" + }, + "length": { + "message": "Uzunluk" + }, + "numWords": { + "message": "Kelime sayısı" + }, + "wordSeparator": { + "message": "Kelime ayracı" + }, + "capitalize": { + "message": "Baş harfleri büyük yap", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Rakam ekle" + }, + "passwordHistory": { + "message": "Parola geçmişi" + }, + "noPasswordsInList": { + "message": "Listelenecek parola yok." + }, + "clear": { + "message": "Temizle", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Hesap güncellendi" + }, + "changeEmail": { + "message": "E-postayı değiştir" + }, + "changeEmailTwoFactorWarning": { + "message": "Devam ederseniz hesabınızın e-posta adresi değişecek. İki aşamalı doğrulama için kullandığınız e-posta adresiniz değişmeyecek. Onu iki aşamalı doğrulama ayarlarından değiştirebilirsiniz." + }, + "newEmail": { + "message": "Yeni e-posta" + }, + "code": { + "message": "Kod" + }, + "changeEmailDesc": { + "message": "$EMAIL$ adresine bir doğrulama kodu gönderdik. E-posta adresi değişikliğinizi tamamlamak için lütfen gönderdiğimiz kodu aşağıya yazın.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Devam ederseniz geçerli oturumunuz sonlanacak ve yeniden oturum açmanız gerekecek. Diğer cihazlardaki aktif oturumlar bir saate kadar aktif kalabilir." + }, + "emailChanged": { + "message": "E-posta değiştirildi" + }, + "logBackIn": { + "message": "Lütfen yeniden giriş yapın." + }, + "logBackInOthersToo": { + "message": "Lütfen yeniden oturum açın. Diğer Bitwarden uygulamalarını kullanıyorsanız onlarda da oturumunuzu kapatıp yeniden açın." + }, + "changeMasterPassword": { + "message": "Ana parolayı değiştir" + }, + "masterPasswordChanged": { + "message": "Ana parola değiştirildi" + }, + "currentMasterPass": { + "message": "Mevcut ana parola" + }, + "newMasterPass": { + "message": "Yeni ana parola" + }, + "confirmNewMasterPass": { + "message": "Yeni ana parolayı onaylayın" + }, + "encKeySettings": { + "message": "Şifreleme anahtarı ayarları" + }, + "kdfAlgorithm": { + "message": "KDF algoritması" + }, + "kdfIterations": { + "message": "KDF iterasyonu" + }, + "kdfIterationsDesc": { + "message": "KDF iterasyonunun daha yüksek olması ana parolanızın kaba kuvvet yoluyla kırılmasını önleyebilir. $VALUE$ veya üzeri bir değer tavsiye ediyoruz.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "KDF iterasyonunu çok yüksek ayarlamak, işlemcisi yavaş olan cihazlardan Bitwarden'a giriş yaparken (ve kilidi açarken) düşük performansa neden olabilir. Değeri $INCREMENT$ ve katları halinde artırmanızı ve ardından tüm cihazlarınızda test etmenizi öneririz.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "KDF'i değiştir" + }, + "encKeySettingsChanged": { + "message": "Şifreleme anahtarı ayarları değişti" + }, + "dangerZone": { + "message": "Tehlikeli Bölge" + }, + "dangerZoneDesc": { + "message": "Dikkatli olun, bu işlemleri geri alamazsınız!" + }, + "deauthorizeSessions": { + "message": "Oturumları kapat" + }, + "deauthorizeSessionsDesc": { + "message": "Başka bir cihazda oturum açtığınızdan endişeli misiniz? Daha önce kullandığınız tüm cihazlardan oturumu kapatmak için aşağıdan ilerleyin. Bu güvenlik aşaması, halka açık bir bilgisayar kullandıysanız veya sahibi olmadığınız bir cihazda parolanızı kaydettiyseniz önerilir. Bu aşama aynı zamanda iki aşamalı giriş kullanılan oturumları da temizleyecektir." + }, + "deauthorizeSessionsWarning": { + "message": "Devam ederseniz geçerli oturumunuz da sonlanacak ve yeniden oturum açmanız gerekecek. İki aşamalı girişi etkinleştirdiyseniz onu da tamamlamanız gerekecek. Diğer cihazlardaki aktif oturumlar bir saate kadar aktif kalabilir." + }, + "sessionsDeauthorized": { + "message": "Tüm oturumlar kapatıldı" + }, + "purgeVault": { + "message": "Kasayı sil" + }, + "purgedOrganizationVault": { + "message": "Kuruluş kasası silindi." + }, + "vaultAccessedByProvider": { + "message": "Sağlayıcı, kasaya erişti." + }, + "purgeVaultDesc": { + "message": "Kasanızdaki tüm kayıtları ve klasörleri silmek için aşağıdan devam edin. Kuruluşa ait kayıtlar silinmeyecektir." + }, + "purgeOrgVaultDesc": { + "message": "Kuruluş kasasındaki tüm kayıtları silmek için aşağıdaki adımları izleyin." + }, + "purgeVaultWarning": { + "message": "Kasanızı silmek kalıcıdır. Bu işlem geri alınamaz." + }, + "vaultPurged": { + "message": "Kasanız silindi." + }, + "deleteAccount": { + "message": "Hesabı sil" + }, + "deleteAccountDesc": { + "message": "Hesabınızı ve tüm ilişkili verileri silmek için aşağıdan devam edin." + }, + "deleteAccountWarning": { + "message": "Hesabınızı silmek kalıcıdır. Geri alınamaz." + }, + "accountDeleted": { + "message": "Hesap silindi" + }, + "accountDeletedDesc": { + "message": "Hesabınız kapatıldı ve ilişkili tüm veriler silindi." + }, + "myAccount": { + "message": "Hesabım" + }, + "tools": { + "message": "Araçlar" + }, + "importData": { + "message": "Verileri içe aktar" + }, + "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." + }, + "importSuccess": { + "message": "Veriler kasanıza başarıyla aktarıldı." + }, + "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, veri dışa aktarılırken kullanılanla uyuşmuyor." + }, + "selectFormat": { + "message": "İçe aktarma dosyasının biçimini seçin" + }, + "selectImportFile": { + "message": "İçe aktarma dosyasını seçin" + }, + "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)" + } + } + }, + "options": { + "message": "Seçenekler" + }, + "optionsDesc": { + "message": "Web kasası deneyiminizi özelleştirin." + }, + "optionsUpdated": { + "message": "Seçenekler güncellendi" + }, + "language": { + "message": "Dil" + }, + "languageDesc": { + "message": "Web kasasında kullanılan dili değiştirin." + }, + "disableIcons": { + "message": "Site simgelerini devre dışı bırak" + }, + "disableIconsDesc": { + "message": "Web sitesi simgeleri, kasanızdaki her kaydın yanında o siteyi tanımanıza yardımcı olan bir resim sunar." + }, + "enableGravatars": { + "message": "Gravatar'ı etkinleştir", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "gravatar.com adresinden yüklenen avatarları kullan." + }, + "enableFullWidth": { + "message": "Tam genişlik görünümünü etkinleştir", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Web kasasının tarayıcı penceresi genişliğinin tamamını kullanmasına izin ver." + }, + "default": { + "message": "Varsayılan" + }, + "domainRules": { + "message": "Alan adı kuralları" + }, + "domainRulesDesc": { + "message": "Farklı web sitesi alan adlarında aynı hesap bilgisine sahipseniz web sitesini \"eşdeğer\" olarak işaretleyebilirsiniz. \"Global\" alan adları, sizin için Bitwarden tarafından oluşturulmuş olanlardır." + }, + "globalEqDomains": { + "message": "Global eşdeğer alan adları" + }, + "customEqDomains": { + "message": "Özel eşdeğer alan adları" + }, + "exclude": { + "message": "Hariç tut" + }, + "include": { + "message": "Dahil et" + }, + "customize": { + "message": "Özelleştir" + }, + "newCustomDomain": { + "message": "Yeni özel alan adı" + }, + "newCustomDomainDesc": { + "message": "Alan adları listesini virgülle ayırarak girin. Sadece ana alan adlarına izin verilir. Alt alan adları girmeyin. Örneğin, \"www.google.com\" yerine \"google.com\" yazmalısınız. Bir Android uygulamasını diğer web sitesi alan adlarıyla eşleştirmek için \"androiduygulaması://paket.ismi\" girebilirsiniz." + }, + "customDomainX": { + "message": "Özel alan adı: $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Alan adları güncellendi" + }, + "twoStepLogin": { + "message": "İki aşamalı giriş" + }, + "twoStepLoginDesc": { + "message": "Oturum açarken ek bir adım talep ederek hesabınızı güvenceye alabilirsiniz." + }, + "twoStepLoginOrganizationDesc": { + "message": "Kuruluş düzeyinde sağlayıcıları düzenleyerek kuruluşunuzun kullanıcılarına iki aşamalı girişi zorunlu kılabilirsiniz." + }, + "twoStepLoginRecoveryWarning": { + "message": "İki aşamalı girişi etkinleştirmek, Bitwarden hesabınızı kalıcı olarak kilitleyebilir. Kurtarma kodunuz, iki aşamalı giriş sağlayıcınızı kullanamamanız durumunda hesabınıza erişmenize olanak sağlar (ör. cihazınızı kaybedersiniz). Hesabınıza erişiminizi kaybederseniz Bitwarden destek ekibi size yardımcı olamaz. Kurtarma kodunu not almanızı veya yazdırmanızı ve güvenli bir yerde saklamanızı öneririz." + }, + "viewRecoveryCode": { + "message": "Kurtarma kodunu göster" + }, + "providers": { + "message": "Sağlayıcılar", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Etkinleştir" + }, + "enabled": { + "message": "Etkin" + }, + "premium": { + "message": "Premium", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Premium üyelik" + }, + "premiumRequired": { + "message": "Premium gerekli" + }, + "premiumRequiredDesc": { + "message": "Bu özelliği kullanmak için premium üyelik gereklidir." + }, + "youHavePremiumAccess": { + "message": "Premium erişiminiz var" + }, + "alreadyPremiumFromOrg": { + "message": "Üyesi olduğunuz kuruluş sayesinde premium özelliklere zaten erişiminiz var." + }, + "manage": { + "message": "Yönet" + }, + "disable": { + "message": "Devre dışı bırak" + }, + "twoStepLoginProviderEnabled": { + "message": "Bu iki aşamalı giriş sağlayıcısı hesabınızda etkin durumda." + }, + "twoStepLoginAuthDesc": { + "message": "İki aşamalı giriş ayarlarını değiştirmek için ana parolanızı girin." + }, + "twoStepAuthenticatorDesc": { + "message": "Kimlik doğrulama uygulamasıyla iki aşamalı girişi ayarlamak için aşağıdaki adımları izleyin:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "İki aşamalı kimlik doğrulama uygulamalarından birini indirin" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Kimlik doğrulama uygulamasına mı ihtiyacınız var? Aşağıdakilerden birini indirebilirsiniz" + }, + "iosDevices": { + "message": "iOS cihazları" + }, + "androidDevices": { + "message": "Android cihazları" + }, + "windowsDevices": { + "message": "Windows cihazları" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Bunlar bizim önerdiğimiz uygulamalar ama farklı kimlik doğrulama uygulamaları da kullanabilirsiniz." + }, + "twoStepAuthenticatorScanCode": { + "message": "Bu QR kodunu kimlik doğrulama uygulamanızla tarayın" + }, + "key": { + "message": "Anahtar" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Uygulamanın verdiği 6 basamaklı doğrulama kodunu girin" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Başka bir cihaza eklemeniz gerekirse kimlik doğrulama uygulamanıza aşağıdaki QR kodunu (veya anahtarı) verebilirsiniz." + }, + "twoStepDisableDesc": { + "message": "Bu iki aşamalı giriş sağlayıcısını devre dışı bırakmak istediğinize emin misiniz?" + }, + "twoStepDisabled": { + "message": "İki aşamalı giriş sağlayıcısı devre dışı." + }, + "twoFactorYubikeyAdd": { + "message": "Hesabıma yeni bir YubiKey ekle" + }, + "twoFactorYubikeyPlugIn": { + "message": "YubiKey'i bilgisayarınızın USB portuna takın." + }, + "twoFactorYubikeySelectKey": { + "message": "Aşağıdaki ilk boş YubiKey giriş alanını seçin." + }, + "twoFactorYubikeyTouchButton": { + "message": "YubiKey'in düğmesine dokunun." + }, + "twoFactorYubikeySaveForm": { + "message": "Formu kaydedin." + }, + "twoFactorYubikeyWarning": { + "message": "Platform sınırlamaları nedeniyle YubiKey tüm Bitwarden uygulamalarında kullanılamaz. YubiKey kullanılamadığında hesabınıza erişebilmek için başka bir iki aşamalı doğrulama yöntemi ayarlamanız gerekir. Desteklenen platformlar:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web kasası, masaüstü uygulaması, CLI ve YubiKey'inizi kabul edebilecek bir USB bağlantı noktasına sahip bir cihazdaki tüm tarayıcı uzantıları." + }, + "twoFactorYubikeySupportMobile": { + "message": "NFC özellikli bir cihazdaki mobil uygulamalar veya YubiKey'inizi kabul edebilen bir veri bağlantı noktası." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F anahtarı $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Anahtarı $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC desteği" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Anahtarlarımdan biri NFC destekliyor." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "YubiKey'lerinizden biri NFC'yi destekliyorsa (örn. YubiKey NEO) NFC kullanılabilirliği tespit edildiğinde mobil cihazınızdan sizi uyaracağız." + }, + "yubikeysUpdated": { + "message": "YubiKey'ler güncellendi" + }, + "disableAllKeys": { + "message": "Tüm anahtarları devre dışı bırak" + }, + "twoFactorDuoDesc": { + "message": "Duo Yönetici panelinizden Bitwarden uygulama bilgilerini girin." + }, + "twoFactorDuoIntegrationKey": { + "message": "Entegrasyon anahtarı" + }, + "twoFactorDuoSecretKey": { + "message": "Gizli anahtar" + }, + "twoFactorDuoApiHostname": { + "message": "API sunucusu" + }, + "twoFactorEmailDesc": { + "message": "E-posta ile iki aşamalı girişi kurmak için aşağıdaki adımları izleyin:" + }, + "twoFactorEmailEnterEmail": { + "message": "Doğrulama kodlarını almak istediğiniz e-posta adresini girin" + }, + "twoFactorEmailEnterCode": { + "message": "E-postadaki 6 basamaklı doğrulama kodunu girin" + }, + "sendEmail": { + "message": "E-posta gönder" + }, + "twoFactorU2fAdd": { + "message": "Hesabınıza FIDO U2F güvenlik anahtarı ekleyin" + }, + "removeU2fConfirmation": { + "message": "Bu güvenlik anahtarını kaldırmak istediğinizden emin misiniz?" + }, + "twoFactorWebAuthnAdd": { + "message": "Hesabınıza bir WebAuthn güvenlik anahtarı ekleyin" + }, + "readKey": { + "message": "Anahtarı oku" + }, + "keyCompromised": { + "message": "Anahtar ele geçirilmiş." + }, + "twoFactorU2fGiveName": { + "message": "Güvenlik anahtarını tanımlamak için kolay bir isim verin." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Güvenlik anahtarını bilgisayarınızın USB portuna takıp \"Anahtarı oku\" düğmesine tıklayın." + }, + "twoFactorU2fTouchButton": { + "message": "Güvenlik anahtarının düğmesi varsa düğmeye dokunun." + }, + "twoFactorU2fSaveForm": { + "message": "Formu kaydedin." + }, + "twoFactorU2fWarning": { + "message": "Platform sınırlamaları nedeniyle FIDO U2F tüm Bitwarden uygulamalarında kullanılamaz. FIDO U2F kullanılamadığında hesabınıza erişebilmek için başka bir iki aşamalı doğrulama yöntemi ayarlamanız gerekir. Desteklenen platformlar:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web kasası ve U2F uyumlu bir tarayıcıya (FIDO U2F uyumlu Chrome, Opera, Vivaldi veya Firefox) sahip bir bilgisayardaki tarayıcı uzantıları." + }, + "twoFactorU2fWaiting": { + "message": "Güvenlik anahtarınızdaki düğmeye dokunmanız bekleniyor" + }, + "twoFactorU2fClickSave": { + "message": "Bu güvenlik anahtarıyla iki aşamalı girişi etkinleştirmek için aşağıdaki \"Kaydet\" düğmesine tıklayın." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Güvenlik anahtarını okurken bir sorun oluştu. Tekrar deneyin." + }, + "twoFactorWebAuthnWarning": { + "message": "Platform sınırlamaları nedeniyle WebAuthn tüm Bitwarden uygulamalarında kullanılamaz. WebAuthn kullanılamadığında hesabınıza erişebilmek için başka bir iki aşamalı doğrulama yöntemi ayarlamanız gerekir. Desteklenen platformlar:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "WebAuthn uyumlu bir tarayıcıya (FIDO U2F uyumlu Chrome, Opera, Vivaldi veya Firefox) sahip bir bilgisayardaki tarayıcı uzantıları." + }, + "twoFactorRecoveryYourCode": { + "message": "Bitwarden iki aşamalı giriş kurtarma kodunuz" + }, + "twoFactorRecoveryNoCode": { + "message": "Henüz herhangi bir iki aşamalı giriş sağlayıcısını etkinleştirmediniz. İki aşamalı giriş sağlayıcısını etkinleştirdikten sonra kurtarma kodunuzu almak için burayı tekrar kontrol edebilirsiniz." + }, + "printCode": { + "message": "Kodu yazdır", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Raporlar" + }, + "reportsDesc": { + "message": "Aşağıdaki raporlara tıklayarak çevrimiçi hesaplarınızdaki güvenlik açıklarını görün ve kapatın." + }, + "unsecuredWebsitesReport": { + "message": "Güvensiz Web Siteler Raporu" + }, + "unsecuredWebsitesReportDesc": { + "message": "http:// protokolünü kullanan güvenilmez web sitelerini kullanmak tehlikeli olabilir. Web sitesi bunu sunuyorsa bağlantınızın şifrelenmesi için her zaman https:// protokolünü kullanmalısınız." + }, + "unsecuredWebsitesFound": { + "message": "Güvensiz web siteleri bulundu" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Kasanızda güvenli olmayan URI'ye sahip $COUNT$ kayıt bulduk. Web sitesi izin veriyorsa URI şemasını https:// olarak değiştirmelisiniz.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "Kasanızda güvenli olmayan URI'ye sahip hiç kayıt yok." + }, + "inactive2faReport": { + "message": "Pasif 2FA Raporu" + }, + "inactive2faReportDesc": { + "message": "İki aşamalı kimlik doğrulama (2FA), hesaplarınızı güvenceye almanızı sağlayan önemli bir güvenlik ayarıdır. İki aşamalı kimlik doğrulamayı destekleyen sitelerde bu ayarı her zaman etkinleştirmenizi öneririz." + }, + "inactive2faFound": { + "message": "2FA olmayan hesaplar bulundu" + }, + "inactive2faFoundDesc": { + "message": "Kasanızda iki aşamalı kimlik doğrulaması kullanmıyor olabilecek $COUNT$ web sitesi bulduk (2fa.directory’ye göre). Bu hesapları daha iyi korumak için iki aşamalı kimlik doğrulamasını etkinleştirmelisiniz.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Kasanızda iki aşamalı kimlik doğrulama yapılandırması eksik olan web sitesi bulunamadı." + }, + "instructions": { + "message": "Yönergeler" + }, + "exposedPasswordsReport": { + "message": "Açığa Çıkmış Parolalar Raporu" + }, + "exposedPasswordsReportDesc": { + "message": "Açığa çıkmış parolalar, kamuya açık olarak yayınlanan veya bilgisayar korsanları tarafından karanlık ağda satıldığı bilinen parolalardır." + }, + "exposedPasswordsFound": { + "message": "Açığa Çıkmış Parolalar Bulundu" + }, + "exposedPasswordsFoundDesc": { + "message": "Kasanızda, bilinen veri ihlallerine maruz kalmış parolalara sahip $COUNT$ kayıt bulundu. Bu parolaları değiştirmelisiniz.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "Kasanızdaki hiçbir kaydın parolası bilinen veri ihlallerinde ele geçirilmemiş." + }, + "checkExposedPasswords": { + "message": "Açığa Çıkmış Parolaları Kontrol Et" + }, + "exposedXTimes": { + "message": "$COUNT$ kez açığa çıkmış", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Zayıf Parolalar Raporu" + }, + "weakPasswordsReportDesc": { + "message": "Zayıf parolalar bilgisayar korsanları ve parola kırmak için kullanılan otomatik araçlar tarafından kolayca tahmin edilebilir. Bitwarden parola üreticisi, güçlü şifreler oluşturmanıza yardımcı olabilir." + }, + "weakPasswordsFound": { + "message": "Zayıf parolalar pulundu" + }, + "weakPasswordsFoundDesc": { + "message": "Kasanızda zayıf parolalara sahip $COUNT$ kayıt bulduk. Bunları güncelleyip daha güçlü parolalar kullanmalısınız.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "Kasanızdaki hiçbir kaydın parolası zayıf değil." + }, + "reusedPasswordsReport": { + "message": "Yeniden Kullanılmış Parolalar Raporu" + }, + "reusedPasswordsReportDesc": { + "message": "Kullandığınız bir servis ele geçirilirse, aynı parolayı başka yerlerde kullanmanız hacker'ların diğer hesaplarınıza da kolayca erişmesine olanak tanıyabilir. bu yüzden her hesap ve hizmet için farklı bir parola kullanmalısınız." + }, + "reusedPasswordsFound": { + "message": "Yeniden kullanılmış parolalar bulundu" + }, + "reusedPasswordsFoundDesc": { + "message": "Kasanızda tekrar kullanılmakta olan $COUNT$ parola bulduk. Onları benzersiz parolalarla değiştirmelisiniz.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "Kasanızdaki hiçbir hesabın parolası tekrar kullanılmamış." + }, + "reusedXTimes": { + "message": "$COUNT$ kere yeniden kullanılmış", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Veri İhlali Raporu" + }, + "breachDesc": { + "message": "Hacker'ların bir sitenin verilerine yasadışı bir şekilde erişip bunları herkese açık bir şekilde yayımlamalarına \"ihlal\" denir. Ele geçirilen veri türlerini (e-posta adresleri, parolalar, kredi kartları vb.) inceleyin ve gerekli önlemleri alın (örn. parolaları değiştirin)." + }, + "breachCheckUsernameEmail": { + "message": "Kullandığınız kullanıcı adlarını ve e-posta adreslerini kontrol edin." + }, + "checkBreaches": { + "message": "İhlalleri denetle" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ bilinen veri ihlallerinde bulunamadı.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Haberler iyi", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ $COUNT$ farklı çevrimiçi veri ihlalinde bulundu.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Ele geçirilmiş hesaplar bulundu" + }, + "compromisedData": { + "message": "Ele geçirilen veriler" + }, + "website": { + "message": "Web sitesi" + }, + "affectedUsers": { + "message": "Etkilenen kullanıcılar" + }, + "breachOccurred": { + "message": "İhlal tarihi" + }, + "breachReported": { + "message": "Bildirilme tarihi" + }, + "reportError": { + "message": "Rapor yüklenmeye çalışılırken bir hata oluştu. Tekrar deneyin" + }, + "billing": { + "message": "Faturalandırma" + }, + "accountCredit": { + "message": "Hesap kredisi", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Hesap bakiyesi", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Kredi ekle", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Tutar", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Ödeme tamamlandıktan sonra eklenen kredi hesabınızda görünecektir. Bazı ödeme yöntemlerinin işlenmesi diğerlerine göre daha uzun sürebilir." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Hesabınızdaki krediyi satın alımlarda kullanabilirsiniz. Mevcut krediniz bu hesap için oluşturulan faturalardan otomatik olarak düşülecektir." + }, + "goPremium": { + "message": "Premium'a geçin", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Premium'a yükselttiniz." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Hesabınızı premium üyeliğe yükselterek harika ek özelliklere sahip olabilirsiniz." + }, + "premiumSignUpStorage": { + "message": "Dosya ekleri için 1 GB şifrelenmiş depolama." + }, + "premiumSignUpTwoStep": { + "message": "YubiKey, FIDO U2F ve Duo gibi iki aşamalı giriş seçenekleri." + }, + "premiumSignUpEmergency": { + "message": "Acil durum erişimi" + }, + "premiumSignUpReports": { + "message": "Kasanızı güvende tutmak için parola hijyeni, hesap sağlığı ve veri ihlali raporları." + }, + "premiumSignUpTotp": { + "message": "Kasanızdaki hesaplar için TOTP doğrulama kodu (2FA) oluşturucu." + }, + "premiumSignUpSupport": { + "message": "Öncelikli müşteri desteği." + }, + "premiumSignUpFuture": { + "message": "Ve ileride duyuracağımız tüm premium özellikler. Daha fazlası yakında!" + }, + "premiumPrice": { + "message": "Bunların hepsi yıllık sadece $PRICE$!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Eklentiler" + }, + "premiumAccess": { + "message": "Premium erişim" + }, + "premiumAccessDesc": { + "message": "Kuruluşunuzdaki tüm üyelerine $PRICE$ /$INTERVAL$ fiyatla premium erişim ekleyebilirsiniz.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Ek depolama alanı (GB)" + }, + "additionalStorageGbDesc": { + "message": "# ilave GB" + }, + "additionalStorageIntervalDesc": { + "message": "Paketinizde $SIZE$ şifrelenmiş dosya depolama alanı bulunuyor. GB/$INTERVAL$ başına $PRICE$ fiyatla ilave depolama alanı ekleyebilirsiniz.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Özet" + }, + "total": { + "message": "Toplam" + }, + "year": { + "message": "yıl" + }, + "month": { + "message": "ay" + }, + "monthAbbr": { + "message": "ay", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Ödeme yönteminizden hemen şimdi ve ardından her yıl düzenli ödeme alınacaktır. İstediğiniz zaman aboneliğinizi iptal edebilirsiniz." + }, + "paymentCharged": { + "message": "Ödeme yönteminizden hemen şimdi ve ardından her $INTERVAL$ düzenli ödeme alınacaktır. İstediğiniz zaman aboneliğinizi iptal edebilirsiniz.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Paketiniz 7 günlük ücretsiz deneme süresiyle geliyor. Deneme süresi bitene kadar sizden ücret alınmayacak. İstediğiniz zaman aboneliğinizi iptal edebilirsiniz." + }, + "paymentInformation": { + "message": "Ödeme Bilgileri" + }, + "billingInformation": { + "message": "Fatura Bilgileri" + }, + "creditCard": { + "message": "Kredi kartı" + }, + "paypalClickSubmit": { + "message": "PayPal hesabınıza giriş yapmak için PayPal düğmesine tıklayın. Ardından devam etmek için aşağıdaki Gönder düğmesine tıklayın." + }, + "cancelSubscription": { + "message": "Aboneliği iptal et" + }, + "subscriptionCanceled": { + "message": "Aboneliğiniz iptal edildi." + }, + "pendingCancellation": { + "message": "İptal bekleniyor" + }, + "subscriptionPendingCanceled": { + "message": "Aboneliğiniz geçerli fatura dönemi sonunda iptal edilmek üzere işaretlendi." + }, + "reinstateSubscription": { + "message": "Aboneliği sürdür" + }, + "reinstateConfirmation": { + "message": "Bekleyen iptal isteğini kaldırmak ve aboneliğinizi yeniden eski haline getirmek istediğinizden emin misiniz?" + }, + "reinstated": { + "message": "Abonelik sürdürüldü." + }, + "cancelConfirmation": { + "message": "İptal etmek istediğinden emin misin? Bu fatura döneminin sonunda bu aboneliğin tüm özelliklerine erişiminizi kaybedeceksiniz." + }, + "canceledSubscription": { + "message": "Abonelik iptal edildi." + }, + "neverExpires": { + "message": "Zaman aşımı yok" + }, + "status": { + "message": "Durum" + }, + "nextCharge": { + "message": "Sonraki ödeme" + }, + "details": { + "message": "Ayrıntılar" + }, + "downloadLicense": { + "message": "Lisansı indir" + }, + "updateLicense": { + "message": "Lisansı güncelle" + }, + "updatedLicense": { + "message": "Lisans güncellendi" + }, + "manageSubscription": { + "message": "Aboneliğimi yönet" + }, + "storage": { + "message": "Depolama" + }, + "addStorage": { + "message": "Depolama ekle" + }, + "removeStorage": { + "message": "Depolama azalt" + }, + "subscriptionStorage": { + "message": "Aboneliğinizin toplam $MAX_STORAGE$ GB şifrelenmiş dosya depolama alanı var. Şu anda $USED_STORAGE$ kullanıyorsunuz.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Ödeme yöntemi" + }, + "noPaymentMethod": { + "message": "Kayıtlı bir ödeme yöntemi yok." + }, + "addPaymentMethod": { + "message": "Ödeme yöntemi ekle" + }, + "changePaymentMethod": { + "message": "Ödeme yöntemini değiştir" + }, + "invoices": { + "message": "Faturalar" + }, + "noInvoices": { + "message": "Fatura yok." + }, + "paid": { + "message": "Ödendi", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Ödenmedi", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "İşlemler", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "İşlem yok." + }, + "chargeNoun": { + "message": "Ödeme", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "İade", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Ödemeler hesap özetinizde $STATEMENT_NAME$ olarak görünecektir.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "Depolamaya eklenecek GB miktarı" + }, + "gbStorageRemove": { + "message": "Depolamadan çıkarılacak GB miktarı" + }, + "storageAddNote": { + "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "storageRemoveNote": { + "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedStorage": { + "message": "$AMOUNT$ GB depolama alanı ayarlandı.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Müşteri hizmetleriyle iletişime geçin" + }, + "updatedPaymentMethod": { + "message": "Ödeme yöntemi güncellendi." + }, + "purchasePremium": { + "message": "Premium satın al" + }, + "licenseFile": { + "message": "Lisans dosyası" + }, + "licenseFileDesc": { + "message": "Lisans dosyanızın adı şuna benzer olacak: $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Hesabınızı premium üyeliğe yükseltmek için geçerli bir lisans dosyası yüklemelisiniz." + }, + "uploadLicenseFileOrg": { + "message": "Şirket içinde barındırılan bir kuruluş oluşturmak için geçerli bir lisans dosyası yüklemeniz gerekir." + }, + "accountEmailMustBeVerified": { + "message": "Hesabınızın e-posta adresi doğrulanmalıdır." + }, + "newOrganizationDesc": { + "message": "Kuruluşlar, kasanızın belli kısımları başkalarıyla paylaşmanıza ve aile, küçük ekip veya büyük şirket gibi kuruluşların kullanıcılarını yönetmenize olanak tanır." + }, + "generalInformation": { + "message": "Genel bilgiler" + }, + "organizationName": { + "message": "Kuruluş adı" + }, + "accountOwnedBusiness": { + "message": "Bu hesap bir işletmeye aittir." + }, + "billingEmail": { + "message": "Fatura için e-posta" + }, + "businessName": { + "message": "Firma adı" + }, + "chooseYourPlan": { + "message": "Planınızı seçin" + }, + "users": { + "message": "Kullanıcı" + }, + "userSeats": { + "message": "Kullanıcı sayısı" + }, + "additionalUserSeats": { + "message": "Ek kullanıcı sayısı" + }, + "userSeatsDesc": { + "message": "Kullanıcı sayısı" + }, + "userSeatsAdditionalDesc": { + "message": "Abonelik paketiniz $BASE_SEATS$ kullanıcıya izin veriyor. İsterseniz kullanıcı başına aylık $SEAT_PRICE$ fiyatla daha fazla kullanıcı ekleyebilirsiniz.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Kaç kullanıcıya ihtiyacınız var? Gerekirse daha sonra bu sayıyı artırabilirsiniz." + }, + "planNameFree": { + "message": "Ücretsiz", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Test veya kişisel kullanım amacıyla $COUNT$ kullanıcıyla paylaşılması için.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Aile" + }, + "planDescFamilies": { + "message": "Kişisel kullanım için, aileniz ve arkadaşlarınızla paylaşın." + }, + "planNameTeams": { + "message": "Ekip" + }, + "planDescTeams": { + "message": "İşletmeler ve diğer ekipler için." + }, + "planNameEnterprise": { + "message": "Kurumsal" + }, + "planDescEnterprise": { + "message": "İşyerleri ve diğer büyük kuruluşlar için." + }, + "freeForever": { + "message": "Ömür boyu ücretsiz" + }, + "includesXUsers": { + "message": "$COUNT$ kullanıcı içerir", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Ek kullanıcı" + }, + "costPerUser": { + "message": "Kullanıcı başına $COST$", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "$COUNT$ kullanıcıyla sınırlı (siz dahil)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "$COUNT$ koleksiyonla sınırlı", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "$COUNT$ kullanıcı ekleyin ve paylaşın", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Sınırsız kullanıcı ekleyin ve paylaşın" + }, + "createUnlimitedCollections": { + "message": "Sınırsız koleksiyon oluşturma" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ şifrelenmiş dosya depolama", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Şirket içi barındırma (isteğe bağlı)" + }, + "usersGetPremium": { + "message": "Kullanıcılar premium özelliklere erişebilir" + }, + "controlAccessWithGroups": { + "message": "Kullanıcı erişimini gruplarla kontrol etme" + }, + "syncUsersFromDirectory": { + "message": "Kullanıcılarınızı ve gruplarınızı dizinle eşitleme" + }, + "trackAuditLogs": { + "message": "Kullanıcı işlemlerinin günlüklerini izleme" + }, + "enforce2faDuo": { + "message": "Duo ile 2FA uygulaması" + }, + "priorityCustomerSupport": { + "message": "Öncelikli müşteri desteği" + }, + "xDayFreeTrial": { + "message": "$COUNT$ günlük ücretsiz deneme. İstediğiniz zaman iptal edebilirsiniz", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Aylık" + }, + "annually": { + "message": "Yıllık" + }, + "basePrice": { + "message": "Taban fiyat" + }, + "organizationCreated": { + "message": "Kuruluş oluşturuldu" + }, + "organizationReadyToGo": { + "message": "Yeni kuruluşunuz hazır!" + }, + "organizationUpgraded": { + "message": "Kuruluşunuz yükseltildi." + }, + "leave": { + "message": "Ayrıl" + }, + "leaveOrganizationConfirmation": { + "message": "Bu kuruluştan ayrılmak istediğinizden emin misiniz?" + }, + "leftOrganization": { + "message": "Kuruluştan ayrıldınız." + }, + "defaultCollection": { + "message": "Varsayılan koleksiyon" + }, + "getHelp": { + "message": "Yardım al" + }, + "getApps": { + "message": "Uygulamaları indir" + }, + "loggedInAs": { + "message": "Kullanıcı:" + }, + "eventLogs": { + "message": "Olay günlükleri" + }, + "people": { + "message": "Kişiler" + }, + "policies": { + "message": "İlkeler" + }, + "singleSignOn": { + "message": "Tek Oturum Açma" + }, + "editPolicy": { + "message": "İlkeyi düzenle" + }, + "groups": { + "message": "Gruplar" + }, + "newGroup": { + "message": "Yeni grup" + }, + "addGroup": { + "message": "Grup ekle" + }, + "editGroup": { + "message": "Grubu düzenle" + }, + "deleteGroupConfirmation": { + "message": "Bu grubu silmek isteğinizden emin misiniz?" + }, + "removeUserConfirmation": { + "message": "Bu kullanıcıyı silmek istediğinizden emin misiniz?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Uyarı! Bu kullanıcı, şifrelemelerini yönetmek için Anahtar Bağlayıcı'ya ihtiyaç duyuyor. Bu kullanıcıyı kuruluşunuzdan çıkarmak, hesabını kalıcı olarak devre dışı bırakacaktır. Bu işlem geri alınamaz. Devam etmek istiyor musunuz?" + }, + "externalId": { + "message": "Harici kimlik" + }, + "externalIdDesc": { + "message": "Harici kimlik, referans olarak veya bu kaynağı kullanıcı dizini gibi harici bir sisteme bağlamak için kullanılabilir." + }, + "accessControl": { + "message": "Erişim kontrolü" + }, + "groupAccessAllItems": { + "message": "Bu grup tüm kayıtlara erişebilir ve onları değiştirebilir." + }, + "groupAccessSelectedCollections": { + "message": "Bu grup sadece seçili koleksiyonlara erişebilir." + }, + "readOnly": { + "message": "Salt okunur" + }, + "newCollection": { + "message": "Yeni koleksiyon" + }, + "addCollection": { + "message": "Koleksiyon ekle" + }, + "editCollection": { + "message": "Koleksiyonu düzenle" + }, + "deleteCollectionConfirmation": { + "message": "Bu koleksiyonu silmek istediğinizden emin misiniz?" + }, + "editUser": { + "message": "Kullanıcıyı düzenle" + }, + "inviteUser": { + "message": "Kullanıcı davet et" + }, + "inviteUserDesc": { + "message": "Aşağıya Bitwarden hesabının e-posta adresini girerek kuruluşunuza yeni bir kullanıcı davet edin. Halihazırda bir Bitwarden hesabı yoksa yeni bir hesap oluşturması istenecektir." + }, + "inviteMultipleEmailDesc": { + "message": "E-posta listesini virgülle ayırarak bir seferde en fazla $COUNT$ kullanıcıyı davet edebilirsiniz.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Bu kullanıcı hesabını korumak için iki aşamalı giriş kullanıyor." + }, + "userAccessAllItems": { + "message": "Bu kullanıcı tüm kayıtlara erişebilir ve onları değiştirebilir." + }, + "userAccessSelectedCollections": { + "message": "Bu kullanıcı sadece seçili koleksiyonlara erişebilir." + }, + "search": { + "message": "Ara" + }, + "invited": { + "message": "Davet edildi" + }, + "accepted": { + "message": "Kabul etti" + }, + "confirmed": { + "message": "Onaylandı" + }, + "clientOwnerEmail": { + "message": "Müşteri sahibinin e-postası" + }, + "owner": { + "message": "Sahip" + }, + "ownerDesc": { + "message": "Kuruluşunuzun tüm alanlarını yönetebilen en yüksek erişimli kullanıcı." + }, + "clientOwnerDesc": { + "message": "Bu kullanıcı Sağlayıcıdan bağımsız olmalıdır. Sağlayıcının kuruluşla ilişkisi kesilirse, bu kullanıcı kuruluşun sahipliğini sürdürür." + }, + "admin": { + "message": "Yönetici" + }, + "adminDesc": { + "message": "Yöneticiler kuruluşunuzdaki tüm kayıtlara, koleksiyonlara ve kullanıcılara erişebilir ve onları yönetebilir." + }, + "user": { + "message": "Kullanıcı" + }, + "userDesc": { + "message": "Kuruluşunuzda atanmış koleksiyonlara erişimi olan normal bir kullanıcı." + }, + "manager": { + "message": "Yönetici" + }, + "managerDesc": { + "message": "Yetkililer kuruluşunuzdaki kendilerine atanmış koleksiyonlara erişebilir ve onları yönetebilir." + }, + "all": { + "message": "Tümü" + }, + "refresh": { + "message": "Yenile" + }, + "timestamp": { + "message": "Zaman damgası" + }, + "event": { + "message": "Olay" + }, + "unknown": { + "message": "Bilinmeyen" + }, + "loadMore": { + "message": "Devamını yükle" + }, + "mobile": { + "message": "Mobil", + "description": "Mobile app" + }, + "extension": { + "message": "Uzantı", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Masaüstü", + "description": "Desktop app" + }, + "webVault": { + "message": "Web kasası" + }, + "loggedIn": { + "message": "Giriş yapıldı." + }, + "changedPassword": { + "message": "Hesap parolası değiştirildi." + }, + "enabledUpdated2fa": { + "message": "İki aşamalı giriş açıldı/güncellendi." + }, + "disabled2fa": { + "message": "İki aşamalı giriş kapatıldı." + }, + "recovered2fa": { + "message": "İki aşamalı giriş ile hesap kurtarıldı." + }, + "failedLogin": { + "message": "Hatalı parola sebebiyle oturum açma başarısız oldu." + }, + "failedLogin2fa": { + "message": "Hatalı iki aşamalı doğrulama sebebiyle oturum açma başarısız oldu." + }, + "exportedVault": { + "message": "Kasa dışa aktarıldı." + }, + "exportedOrganizationVault": { + "message": "Kuruluş kasası dışa aktarıldı." + }, + "editedOrgSettings": { + "message": "Kuruluş ayarları düzenlendi." + }, + "createdItemId": { + "message": "$ID$ kaydı oluşturuldu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "$ID$ kaydı düzenlendi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "$ID$ kaydı çöp kutusuna gönderildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "$ID$ kaydı bir kuruluşa taşındı.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "$ID$ kaydı görüntülendi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "$ID$ parolası görüntülendi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "$ID$ gizli alanı görüntülendi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "$ID$ güvenlik kodu görüntülendi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "$ID$ parolası kopyalandı.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "$ID$ gizli alanı kopyalandı.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "$ID$ güvenlik kodu kopyalandı.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "$ID$ kaydı otomatik dolduruldu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "$ID$ koleksiyonu oluşturuldu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "$ID$ koleksiyonu düzenlendi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "$ID$ koleksiyonu silindi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "İlke düzenlendi: $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Grup oluşturuldu: $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Grup düzenlendi: $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Grup silindi: $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Kullanıcı silindi: $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "$ID$ için bir ek oluşturuldu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "$ID$ için bir ek silindi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "$ID$ için koleksiyonlar düzenlendi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Kullanıcı davet edildi: $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Kullanıcı onaylandı: $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Kullanıcı düzenlendi: $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "$ID$ için gruplar düzenlendi.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "$ID$ kullanıcısı için SSO bağlantısı kesildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "$ID$ kuruluşu oluşturuldu.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "$ID$ kuruluşu eklendi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "$ID$ kuruluşu kaldırıldı.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "$ID$ kuruluş kasasına erişildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Cihaz" + }, + "view": { + "message": "Görüntüle" + }, + "invalidDateRange": { + "message": "Geçersiz tarih aralığı." + }, + "errorOccurred": { + "message": "Bir hata oluştu." + }, + "userAccess": { + "message": "Kullanıcı erişimi" + }, + "userType": { + "message": "Kullanıcı türü" + }, + "groupAccess": { + "message": "Grup erişimi" + }, + "groupAccessUserDesc": { + "message": "Bu kullanıcının gruplarını düzenleyin." + }, + "invitedUsers": { + "message": "Kullanıcı(lar) davet edildi." + }, + "resendInvitation": { + "message": "Daveti yeniden gönder" + }, + "resendEmail": { + "message": "E-postayı yeniden gönder" + }, + "hasBeenReinvited": { + "message": "$USER$ yeniden davet edildi.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Onayla" + }, + "confirmUser": { + "message": "Kullanıcıyı onayla" + }, + "hasBeenConfirmed": { + "message": "$USER$ onaylandı.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Kullanıcıları onayla" + }, + "usersNeedConfirmed": { + "message": "Davetlerinizi kabul eden ancak hâlâ onaylanması gereken kullanıcılarınız var. Kullanıcılar onaylanana kadar kuruluşa erişemez." + }, + "startDate": { + "message": "Başlangıç tarihi" + }, + "endDate": { + "message": "Bitiş tarihi" + }, + "verifyEmail": { + "message": "E-postayı doğrula" + }, + "verifyEmailDesc": { + "message": "Bütün özelliklere erişmek için e-posta adresinizi doğrulayın." + }, + "verifyEmailFirst": { + "message": "Öncelikle hesabınızın e-posta adresini doğrulamasınız." + }, + "checkInboxForVerification": { + "message": "Doğrulama linki için e-posta hesabınızı kontrol edin." + }, + "emailVerified": { + "message": "E-posta hesabınız doğrulandı." + }, + "emailVerifiedFailed": { + "message": "E-posta hesabı doğrulanamadı. Yeniden doğrulama e-postası göndermeyi deneyin." + }, + "emailVerificationRequired": { + "message": "E-posta Doğrulaması Gerekli" + }, + "emailVerificationRequiredDesc": { + "message": "Bu özelliği kullanmak için e-postanızı doğrulamalısınız." + }, + "updateBrowser": { + "message": "Tarayıcıyı güncelle" + }, + "updateBrowserDesc": { + "message": "Desteklenmeyen bir web tarayıcısı kullanıyorsunuz. Web kasası düzgün çalışmayabilir." + }, + "joinOrganization": { + "message": "Kuruluşa katıl" + }, + "joinOrganizationDesc": { + "message": "Yukarıdaki kuruluşa katılmaya davet edildiniz. Daveti kabul etmek için giriş yapmanız veya yeni bir Bitwarden hesabı açmanız gerekiyor." + }, + "inviteAccepted": { + "message": "Davet kabul edildi" + }, + "inviteAcceptedDesc": { + "message": "Yöneticiler üyeliğinizi onayladıktan sonra kuruluşa erişebilirsiniz. Üyeliğiniz onaylandığında size e-posta göndereceğiz." + }, + "inviteAcceptFailed": { + "message": "Davet kabul edilemedi. Kuruluş yöneticisinden yeni bir davet göndermesini isteyin." + }, + "inviteAcceptFailedShort": { + "message": "Davet kabul edilemedi. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "E-postamı hatırla" + }, + "recoverAccountTwoStepDesc": { + "message": "Eğer hesabınıza iki aşamalı doğrulama ile erişimde bir sorun yaşıyorsanız, kurtarma kodunuz ile iki aşamalı doğrulama özelliğini kapatabilirsiniz." + }, + "recoverAccountTwoStep": { + "message": "Recover Account Two-Step Login" + }, + "twoStepRecoverDisabled": { + "message": "İki aşamalı doğrulama hesabınızda devre dışı bırakıldı." + }, + "learnMore": { + "message": "Daha fazla bilgi al" + }, + "deleteRecoverDesc": { + "message": "Hesabınızı kurtarmak ve silmek için e-posta adresinizi yazın." + }, + "deleteRecoverEmailSent": { + "message": "Hesabınız varsa gerekli talimatları içeren bir mesajı e-posta adresinize gönderdik." + }, + "deleteRecoverConfirmDesc": { + "message": "Bitwarden hesabınızı silme talebinde bulundunuz. Onaylamak için aşağıdaki düğmeye tıklayın." + }, + "myOrganization": { + "message": "Kuruluşum" + }, + "deleteOrganization": { + "message": "Kuruluşu sil" + }, + "deletingOrganizationContentWarning": { + "message": "$ORGANIZATION$ kuruluşunu ve tüm verilerini silmeyi onaylamak için ana parolayı girin. $ORGANIZATION$ kasa verileri şunları içerir:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Silme işleminin ardından kullanıcı hesapları aktif kalacaktır ama artık bu kuruluşa bağlı olmayacaklardır." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "$ORGANIZATION$ kuruluşunu silme işlemi kalıcıdır ve geri alınamaz.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Kuruluş silindi" + }, + "organizationDeletedDesc": { + "message": "Kuruluş ve ilişkili tüm veriler silindi." + }, + "organizationUpdated": { + "message": "Kuruluş güncellendi" + }, + "taxInformation": { + "message": "Vergi bilgileri" + }, + "taxInformationDesc": { + "message": "ABD'deki müşteriler için satış vergisi gereksinimlerini karşılamak adına posta kodu gereklidir. Diğer ülkeler için isteğe bağlı olarak, faturalarınızda görünecek bir vergi numarası ve/veya adres ekleyebilirsiniz." + }, + "billingPlan": { + "message": "Paket", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Paketi yükselt", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Aşağıdaki bilgileri sağlayarak hesabınızı başka bir pakete yükseltin. Lütfen hesaba aktif bir ödeme yöntemi eklediğinizden emin olun.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Fatura no: $NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Faturayı görüntüle" + }, + "downloadInvoice": { + "message": "Faturayı indir" + }, + "verifyBankAccount": { + "message": "Banka hesabını doğrula" + }, + "verifyBankAccountDesc": { + "message": "Banka hesabınıza iki mikro para yatırma işlemi yaptık. (Ulaşmaları 1-2 iş günü sürebilir.) Banka hesabını doğrulamak için bu tutarları girin." + }, + "verifyBankAccountInitialDesc": { + "message": "Banka hesabıyla ödeme yalnızca Amerika Birleşik Devletleri'ndeki müşteriler tarafından kullanılabilir. Banka hesabınızı doğrulamanız istenecektir. Önümüzdeki 1-2 iş günü içinde iki mikro para yatırma işlemi yapacağız. Banka hesabını doğrulamak için bu tutarları kuruluşun faturalandırma sayfasına girin." + }, + "verifyBankAccountFailureWarning": { + "message": "Banka hesabınız doğrulanmazsa ödeme yapılamaz ve aboneliğiniz devre dışı bırakılır." + }, + "verifiedBankAccount": { + "message": "Banka hesabınız doğrulandı." + }, + "bankAccount": { + "message": "Banka hesabı" + }, + "amountX": { + "message": "Tutar: $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Şube kodu", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Hesap numarası" + }, + "accountHolderName": { + "message": "Hesap sahibinin adı" + }, + "bankAccountType": { + "message": "Hesap türü" + }, + "bankAccountTypeCompany": { + "message": "Şirket (işletme)" + }, + "bankAccountTypeIndividual": { + "message": "Bireysel (kişisel)" + }, + "enterInstallationId": { + "message": "Yükleme numarasını girin" + }, + "limitSubscriptionDesc": { + "message": "Aboneliğiniz için kullanıcı sayısı sınırını belirleyin. Bu sınıra ulaşıldıktan sonra yeni kullanıcı davet edemezsiniz." + }, + "maxSeatLimit": { + "message": "Maksimum kullanıcı sayısı (isteğe bağlı)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Maksimum potansiyel kullanıcı maliyeti" + }, + "addSeats": { + "message": "Kullanıcı ekle", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Kullanıcı kaldır", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Aboneliğinizde yapacağınız değişiklikler toplam faturanızın değişmesine yol açacaktır. Yeni davet edilen kullanıcıların sayısı abonelik paketinizdeki kullanıcı sayınızı aşarsa ek kullanıcılar için derhal ödeme alınır." + }, + "subscriptionUserSeats": { + "message": "Aboneliğiniz toplam $COUNT$ kullanıcıya izin veriyor.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Aboneliği sınırlandır (isteğe bağlı)" + }, + "subscriptionSeats": { + "message": "Abonelik kullanıcı sayısı" + }, + "subscriptionUpdated": { + "message": "Abonelik güncellendi" + }, + "additionalOptions": { + "message": "Ek Seçenekler" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Aboneliğinizde yapacağınız değişiklikler toplam faturanızın değişmesine yol açacaktır. Yeni davet edilen kullanıcıların sayısı abonelik paketinizdeki kullanıcı sayınızı aşarsa ek kullanıcılar için derhal ödeme alınır." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Aboneliğinizde yapacağınız değişiklikler toplam faturanızın değişmesine yol açacaktır. Yeni davet edilen kullanıcıların sayısı abonelik paketinizdeki kullanıcı sayınızı aşarsa $MAX$ kullanıcı sınırınıza ulaşana dek ek kullanıcılar için ödeme alınır.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Paketinizi yükseltmeden $COUNT$ kullanıcıdan fazlasını davet edemezsiniz.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Paketinizi yükseltmeden en fazla $COUNT$ kullanıcı davet edebilirsiniz. Yükseltme yapmak için lütfen müşteri hizmetleri ile iletişime geçin.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Paketiniz toplam $COUNT$ kullanıcıya izin veriyor. Paketinizin ücretini başka bir kuruluş ödüyor.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Aboneliğinizde yapacağınız değişiklikler toplam faturanızın değişmesine yol açacaktır. Aboneliğinizin kullanıcı sayısını artırmadan en fazla $COUNT$ kullanıcı davet edebilirsiniz.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Eklenecek kullanıcı sayısı" + }, + "seatsToRemove": { + "message": "Kaldırılacak kullanıcı sayısı" + }, + "seatsAddNote": { + "message": "Kullanıcı sayısını artırdığınızda toplam faturanızın değişecek ve kayıtlı ödeme yönteminiz aracılığıyla derhal ödeme alınacaktır. İlk ödemeniz mevcut fatura süresinin kalanı için geçerli olacaktır." + }, + "seatsRemoveNote": { + "message": "Kullanıcı sayısını azalttığınızda toplam faturanız azalacak ve aradaki fark bir sonraki faturanıza kredi olarak yansıtılacaktır." + }, + "adjustedSeats": { + "message": "$AMOUNT$ kullanıcı sayısı güncellendi.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Anahtar güncellendi" + }, + "updateKeyTitle": { + "message": "Anahtarı güncelle" + }, + "updateEncryptionKey": { + "message": "Şifreleme anahtarını güncelle" + }, + "updateEncryptionKeyShortDesc": { + "message": "Şu anda eski bir şifreleme modeli kullanıyorsunuz." + }, + "updateEncryptionKeyDesc": { + "message": "Daha yüksek güvenlik ve daha yeni özelliklere erişim sağlayan daha büyük şifreleme anahtarlarına geçtik. Şifreleme anahtarınızı kolayca güncelleyebilirsiniz. Ana parolanızı aşağıya yazmanız yeterli. Bu güncelleme bir süre sonra zorunlu hale gelecektir." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, however, it may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Şifrelenmiş dışa aktarmalarınız da geçersiz olacaktır." + }, + "subscription": { + "message": "Abonelik" + }, + "loading": { + "message": "Yükleniyor" + }, + "upgrade": { + "message": "Yükselt" + }, + "upgradeOrganization": { + "message": "Kuruluşu yükselt" + }, + "upgradeOrganizationDesc": { + "message": "Bu özellik ücretsiz kuruluşlar için mevcut değil. Daha fazla özellik için ücretli pakete geçin." + }, + "createOrganizationStep1": { + "message": "Kuruluş oluşturma: 1. adım" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Kuruluş oluşturmak için önce ücretsiz bir kişisel hesap açmalısınız." + }, + "refunded": { + "message": "İade edildi" + }, + "nothingSelected": { + "message": "Hiçbir şey seçmediniz." + }, + "acceptPolicies": { + "message": "Bu kutuyu işaretleyerek aşağıdakileri kabul etmiş olursunuz:" + }, + "acceptPoliciesError": { + "message": "Hizmet Koşulları ve Gizlilik Politikası kabul edilmemiş." + }, + "termsOfService": { + "message": "Hizmet Koşulları" + }, + "privacyPolicy": { + "message": "Gizlilik Politikası" + }, + "filters": { + "message": "Filtreler" + }, + "vaultTimeout": { + "message": "Kasa zaman aşımı" + }, + "vaultTimeoutDesc": { + "message": "Kasanızın zaman aşımına uğrayıp seçilen eylemi uygulayacağı zamanı seçin." + }, + "oneMinute": { + "message": "1 dakika" + }, + "fiveMinutes": { + "message": "5 dakika" + }, + "fifteenMinutes": { + "message": "15 dakika" + }, + "thirtyMinutes": { + "message": "30 dakika" + }, + "oneHour": { + "message": "1 saat" + }, + "fourHours": { + "message": "4 saat" + }, + "onRefresh": { + "message": "On Browser Refresh" + }, + "dateUpdated": { + "message": "Güncelleme", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Parola güncelleme", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Kuruluş devre dışı." + }, + "licenseIsExpired": { + "message": "Lisans süresi doldu." + }, + "updatedUsers": { + "message": "Kullanıcılar güncellendi" + }, + "selected": { + "message": "Seçildi" + }, + "ownership": { + "message": "Sahip" + }, + "whoOwnsThisItem": { + "message": "Bu ögenin sahibi kim?" + }, + "strong": { + "message": "Güçlü", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "İyi", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Zayıf", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Çok zayıf", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Zayıf ana parola" + }, + "weakMasterPasswordDesc": { + "message": "Seçtiğiniz ana parola zayıf. Bitwarden hesabınızı korumak için daha güçlü bir ana parola seçmenizi öneririz. Bu ana parolayı kullanmak istediğinizden emin misiniz?" + }, + "rotateAccountEncKey": { + "message": "Hesabımın şifreleme anahtarını da yenile" + }, + "rotateEncKeyTitle": { + "message": "Şifreleme anahtarını değiştir" + }, + "rotateEncKeyConfirmation": { + "message": "Hesabınızın şifreleme anahtarını yenilemek istediğinizden emin misiniz?" + }, + "attachmentsNeedFix": { + "message": "Bu kayıtta düzeltilmesi gereken eski dosya ekleri bulunuyor." + }, + "attachmentFixDesc": { + "message": "Bu eski dosya ekinin düzeltmesi gerekiyor. Daha fazla bilgi için tıklayın." + }, + "fix": { + "message": "Düzelt", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "Hesabınızın şifreleme anahtarını yenilemeden önce kasanızdaki eski dosya eklerini düzeltilmeniz gerekiyor." + }, + "yourAccountsFingerprint": { + "message": "Hesabınızın parmak izi ifadesi", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Şifreleme anahtarlarınızın bütünlüğünü sağlamak için, devam etmeden önce lütfen kullanıcının parmak izi ifadesini doğrulayın.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Parmak izi ifadesini doğrulamamı bir daha isteme", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Ücretsiz", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API anahtarı" + }, + "apiKeyDesc": { + "message": "API anahtarınız, Bitwarden API'sinde kimlik doğrulama için kullanılabilir." + }, + "apiKeyRotateDesc": { + "message": "API anahtarının güncellenmesi önceki anahtarı geçersiz kılacaktır. Geçerli anahtarın artık güvenli olmadığını düşünüyorsanız API anahtarınızı güncelleyebilirsiniz." + }, + "apiKeyWarning": { + "message": "API anahtarınız kuruluşa tam erişime sahiptir ve gizli tutulmalıdır." + }, + "userApiKeyDesc": { + "message": "API anahtarınız, Bitwarden CLI'de kimlik doğrulaması için kullanılabilir." + }, + "userApiKeyWarning": { + "message": "API anahtarınız, alternatif bir kimlik doğrulama mekanizmasıdır. Gizli tutulmalıdır." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 istemci bilgileri", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "API anahtarını görüntüle" + }, + "rotateApiKey": { + "message": "API anahtarını yenile" + }, + "selectOneCollection": { + "message": "En az bir koleksiyon seçmelisiniz." + }, + "couldNotChargeCardPayInvoice": { + "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + }, + "inAppPurchase": { + "message": "Uygulama içi satın alma" + }, + "cannotPerformInAppPurchase": { + "message": "Uygulama içi satın alma ödeme yöntemi kullanırken bu işlemi gerçekleştiremezsiniz." + }, + "manageSubscriptionFromStore": { + "message": "Aboneliğinizi uygulama içi satın alımınızın yapıldığı mağazadan yönetmelisiniz." + }, + "minLength": { + "message": "Minimum uzunluk" + }, + "clone": { + "message": "Klonla" + }, + "masterPassPolicyDesc": { + "message": "Ana parola gücü için minimum gereksinimleri ayarlayın." + }, + "twoStepLoginPolicyDesc": { + "message": "Kullanıcıların hesaplarında iki aşamalı giriş kullanmalarını zorunlu tutun." + }, + "twoStepLoginPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and do not have two-step login enabled for their personal account will be removed from the organization and will receive an email notifying them about the change." + }, + "twoStepLoginPolicyUserWarning": { + "message": "İki aşamalı girişin etkinleştirilmesi gereken bir kuruluşa üyesisiniz. İki aşamalı giriş sağlayıcılarının tümünü devre dışı bırakırsanız bu kuruluşlardan otomatik olarak kaldırılırsınız." + }, + "passwordGeneratorPolicyDesc": { + "message": "Parola üreticisi ayarları için minimum gereksinimleri ayarlayın." + }, + "passwordGeneratorPolicyInEffect": { + "message": "Bir ya da daha fazla kuruluş ilkesi, oluşturucu ayarlarınızı etkiliyor." + }, + "masterPasswordPolicyInEffect": { + "message": "Bir veya daha fazla kuruluş ilkesi gereğince ana parolanız aşağıdaki gereksinimleri karşılamalıdır:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum karmaşıklık puanı: $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum uzunluk: $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Bir veya daha fazla büyük harf içermeli" + }, + "policyInEffectLowercase": { + "message": "Bir veya daha fazla küçük harf içermeli" + }, + "policyInEffectNumbers": { + "message": "Bir veya daha fazla sayı içermeli" + }, + "policyInEffectSpecial": { + "message": "Aşağıdaki özel karakterlerden birini veya daha fazlasını içermeli $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Yeni ana parolanız ilke gereksinimlerini karşılamıyor." + }, + "minimumNumberOfWords": { + "message": "Minimum kelime sayısı" + }, + "defaultType": { + "message": "Varsayılan tür" + }, + "userPreference": { + "message": "Kullanıcı tercihi" + }, + "vaultTimeoutAction": { + "message": "Kasa zaman aşımı eylemi" + }, + "vaultTimeoutActionLockDesc": { + "message": "Kilitli bir kasaya tekrar erişebilmek için ana parolanızı tekrar girmeniz gerekir." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Çıkış yapılmış bir kasaya yeniden erişmek için kimliğinizi doğrulamanız gerekir." + }, + "lock": { + "message": "Kilitle", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Çöp Kutusu", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Çöp kutusunda ara" + }, + "permanentlyDelete": { + "message": "Kalıcı olarak sil" + }, + "permanentlyDeleteSelected": { + "message": "Seçilenleri kalıcı olarak sil" + }, + "permanentlyDeleteItem": { + "message": "Kaydı kalıcı olarak sil" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Bu kaydı kalıcı olarak silmek istediğinizden emin misiniz?" + }, + "permanentlyDeletedItem": { + "message": "Kayıt kalıcı olarak silindi" + }, + "permanentlyDeletedItems": { + "message": "Kayıtlar kalıcı olarak silindi" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Kalıcı olarak silinmek üzere $COUNT$ kayıt seçtiniz. Bu kayıtların hepsini kalıcı olarak silmek istediğinizden emin misiniz?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "$ID$ kaydı kalıcı olarak silindi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Geri yükle" + }, + "restoreSelected": { + "message": "Seçilenleri geri yükle" + }, + "restoreItem": { + "message": "Kaydı geri yükle" + }, + "restoredItem": { + "message": "Kayıt geri yüklendi" + }, + "restoredItems": { + "message": "Kayıtlar geri yüklendi" + }, + "restoreItemConfirmation": { + "message": "Bu kayıtları geri yüklemek istediğinizden emin misiniz?" + }, + "restoreItems": { + "message": "Kayıtları geri yükle" + }, + "restoreSelectedItemsDesc": { + "message": "Geri yüklenmesi için $COUNT$ kayıt seçtiniz. Bu kayıtların tamamını geri yüklemek istediğinizden emin misiniz?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "$ID$ kaydı geri yüklendi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Çıkış yaptığınızda kasanıza erişiminiz tamamen sonlanacak ve zaman aşımının ardından çevrimiçi kimlik doğrulaması yapmanız gerekecek. Bu ayarı kullanmak istediğinizden emin misiniz?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Zaman Aşımı Eylem Onayı" + }, + "hidePasswords": { + "message": "Parolaları gizle" + }, + "countryPostalCodeRequiredDesc": { + "message": "Bu bilgileri sadece satış vergisi hesaplama ve mali raporlama için istiyoruz." + }, + "includeVAT": { + "message": "KDV bilgisi ekle (tercihe bağlı)" + }, + "taxIdNumber": { + "message": "KDV/vergi kimlik numarası" + }, + "taxInfoUpdated": { + "message": "Vergi bilgileriniz güncellendi." + }, + "setMasterPassword": { + "message": "Ana parolayı belirle" + }, + "ssoCompleteRegistration": { + "message": "SSO ile girişinizi tamamlamak için lütfen kasanıza erişirken kullanacağınız ana parolayı belirleyin." + }, + "identifier": { + "message": "Tanımlayıcı" + }, + "organizationIdentifier": { + "message": "Kuruluş tanımlayıcı" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Kuruluşunuzun tek oturum açma portalını kullanarak giriş yapabilirsiniz. Başlamak için lütfen kuruluşunuzun tanımlayıcısını girin." + }, + "enterpriseSingleSignOn": { + "message": "Kurumsal tek oturum açma" + }, + "ssoHandOff": { + "message": "Şimdi bu sekmeyi kapatıp uzantı üzerinden devam edebilirsiniz." + }, + "includeAllTeamsFeatures": { + "message": "Ekip paketi özelliklerinin yanı sıra:" + }, + "includeSsoAuthentication": { + "message": "SAML2.0 ve OpenID Connect ile SSO doğrulaması" + }, + "includeEnterprisePolicies": { + "message": "Kuruluş ilkeleri" + }, + "ssoValidationFailed": { + "message": "SSO doğrulaması başarısız oldu" + }, + "ssoIdentifierRequired": { + "message": "Kuruluş tanımlayıcısı gereklidir." + }, + "unlinkSso": { + "message": "SSO bağlantısını kes" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "SSO bağla" + }, + "singleOrg": { + "message": "Tek kuruluş" + }, + "singleOrgDesc": { + "message": "Kullanıcıların diğer kuruluşlara katılmasını kısıtlayın." + }, + "singleOrgBlockCreateMessage": { + "message": "Mevcut kuruluşunuzun birden fazla kuruluşa katılmanıza izin vermeyen bir ilkesi var. Lütfen kuruluş yöneticilerinizle iletişime geçin veya farklı bir Bitwarden hesabı açın." + }, + "singleOrgPolicyWarning": { + "message": "Sahip veya yönetici olmayan ve zaten başka bir kuruluşun üyesi olan kuruluş üyeleri kuruluşunuzdan kaldırılır." + }, + "requireSso": { + "message": "Tek oturum açma kimlik doğrulaması" + }, + "requireSsoPolicyDesc": { + "message": "Kullanıcıların kurumsal tek oturum açma (SSO) yöntemiyle oturum açmasını zorunlu kılın." + }, + "prerequisite": { + "message": "Önkoşul" + }, + "requireSsoPolicyReq": { + "message": "Bu ilkeyi etkinleştirmeden önce tek kuruluş kurumsal ilkesi etkinleştirilmelidir." + }, + "requireSsoPolicyReqError": { + "message": "Tek kuruluş ilkesi etkin değil." + }, + "requireSsoExemption": { + "message": "Kuruluş sahipleri ve yöneticileri bu ilkenin uygulanmasından muaf tutulur." + }, + "sendTypeFile": { + "message": "Dosya" + }, + "sendTypeText": { + "message": "Metin" + }, + "createSend": { + "message": "Yeni Send oluştur", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Send'i düzenle", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send oluşturuldu", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Send düzenlendi", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send silindi", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Send'i sil", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Bu Send'i silmek istediğinizden emin misiniz?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Bu ne tür bir Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Silinme tarihi" + }, + "deletionDateDesc": { + "message": "Bu Send belirtilen tarih ve saatte kalıcı olacak silinecek.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Son kullanma tarihi" + }, + "expirationDateDesc": { + "message": "Bunu ayarlarsanız belirtilen tarih ve saatten sonra bu Send'e erişilemeyecektir.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maksimum erişim sayısı" + }, + "maxAccessCountDesc": { + "message": "Bunu ayarlarsanız maksimum erişim sayısına ulaşıldıktan sonra bu Send'e erişilemeyecektir.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Mevcut erişim sayısı" + }, + "sendPasswordDesc": { + "message": "Kullanıcıların bu Send'e erişmek için parola girmelerini isteyebilirsiniz.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Bu Send ile ilgili özel notlar.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Devre dışı" + }, + "sendLink": { + "message": "Send bağlantısı", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Send bağlantısını kopyala", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Parolayı kaldır" + }, + "removedPassword": { + "message": "Parola kaldırıldı" + }, + "removePasswordConfirmation": { + "message": "Parolayı kaldırmak istediğinizden emin misiniz?" + }, + "hideEmail": { + "message": "E-posta adresimi alıcılardan gizle." + }, + "disableThisSend": { + "message": "Kimsenin erişememesi için bu Send'i devre dışı bırak.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Tüm Send'ler" + }, + "maxAccessCountReached": { + "message": "Maksimum erişim sayısına ulaşıldı", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Silinmesi bekleniyor" + }, + "expired": { + "message": "Süresi dolmuş" + }, + "searchSends": { + "message": "Send'lerde ara", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Bu Send parola ile korunuyor. Devam etmek için lütfen parolayı yazın.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Parolayı bilmiyor musunuz? Bu Send'e erişmek için gereken parolayı dosyayı gönderen kişiye sorabilirsiniz.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Bu Send varsayılan olarak gizlidir. Aşağıdaki düğmeyi kullanarak görünürlüğünü değiştirebilirsiniz.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Dosyayı indir" + }, + "sendAccessUnavailable": { + "message": "Erişmeye çalıştığınız Send yok veya artık mevcut değil.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Bu Send ile ilişkili dosya bulunamadı.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "Listelenecek Send yok.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Acil durum erişimi" + }, + "emergencyAccessDesc": { + "message": "Güvenilen kişiler için acil erişim izni verin ve izinleri yönetin. Güvenilen kişiler acil bir durumda hesabınızı görmek veya devralmak için talepte bulunabilirler. Sıfır bilgi ispatı ile paylaşımının nasıl çalıştığını öğrenmek için yardım sayfamıza bakabilirsiniz." + }, + "emergencyAccessOwnerWarning": { + "message": "Bir veya daha fazla kuruluşun sahibisiniz. Acil durum kişisine devralma yetkisi verirseniz devralma işleminden sonra bu kişi sahip olduğunuz tüm hakları kullanabilir." + }, + "trustedEmergencyContacts": { + "message": "Güvenilen acil durum kişileri" + }, + "noTrustedContacts": { + "message": "Henüz hiç acil durum kişisi eklemediniz. Başlamak için güvendiğiniz birini davet edin." + }, + "addEmergencyContact": { + "message": "Acil durum kişisi ekle" + }, + "designatedEmergencyContacts": { + "message": "Acil durum kişisi olarak ayarlandı" + }, + "noGrantedAccess": { + "message": "Henüz kimse sizi acil durum kişisi olarak ayarlamadı." + }, + "inviteEmergencyContact": { + "message": "Acil durum kişisi davet et" + }, + "editEmergencyContact": { + "message": "Acil durum kişisini düzenle" + }, + "inviteEmergencyContactDesc": { + "message": "Aşağıya Bitwarden hesabının e-posta adresini girerek yeni bir acil durum kişisi davet edebilirsiniz. Bu kişinin mevcut bir Bitwarden hesabı yoksa yeni bir hesap açması istenecektir." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Acil durum erişimi başlatıldı" + }, + "emergencyAccessRecoveryApproved": { + "message": "Acil durum erişimi onaylandı" + }, + "viewDesc": { + "message": "Kasanızdaki tüm kayıtları görebilir." + }, + "takeover": { + "message": "Devralma" + }, + "takeoverDesc": { + "message": "Yeni bir ana parola ile hesabınızı sıfırlayabilir." + }, + "waitTime": { + "message": "Bekleme süresi" + }, + "waitTimeDesc": { + "message": "Otomatik olarak erişime izin vermeden önce geçmesi gereken süre." + }, + "oneDay": { + "message": "1 gün" + }, + "days": { + "message": "$DAYS$ gün", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Kullanıcı davet edildi." + }, + "acceptEmergencyAccess": { + "message": "Yukarıdaki kullanıcı için acil durum kişisi olmaya davet edildiniz. Daveti kabul etmek için giriş yapmanız veya yeni bir Bitwarden hesabı oluşturmanız gerekir." + }, + "emergencyInviteAcceptFailed": { + "message": "Davet kabul edilemedi. Kullanıcıdan yeni bir davet göndermesini isteyin." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Davet kabul edilemedi. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Kimliğiniz doğrulandıktan sonra bu kullanıcı için acil durum seçeneklerine erişebilirsiniz. Bu gerçekleştiğinde size e-posta göndereceğiz." + }, + "requestAccess": { + "message": "Erişim talep et" + }, + "requestAccessConfirmation": { + "message": "Erişim talep etmek istediğinizden emin misiniz? Kullanıcı talebi kabul ettikten veya $WAITTIME$ gün geçtikten sonra erişim izni alacaksınız.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "$USER$ için acil durum erişimi isteğinde bulunuldu. Devam etmeniz mümkün hale geldiğinde size e-posta ile haber vereceğiz.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Onayla" + }, + "reject": { + "message": "Reddet" + }, + "approveAccessConfirmation": { + "message": "Acil durum erişimini onaylamak istediğinize emin misiniz? Bu $USER$ kullanıcısının hesabınızda $ACTION$ eylemlerinde bulunmasına izin verecek.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Acil durum erişimi onaylandı." + }, + "emergencyRejected": { + "message": "Acil durum erişimi reddedildi" + }, + "passwordResetFor": { + "message": "$USER$ için parola sıfırlandı. Artık yeni parola ile giriş yapabilirsiniz.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Kişisel sahiplik" + }, + "personalOwnershipPolicyDesc": { + "message": "Kişisel sahiplik seçeneğini kapatarak kullanıcıların kasadaki kayıtlarını bir kuruluşa kaydetmesini zorunlu kılabilirsiniz." + }, + "personalOwnershipExemption": { + "message": "Kuruluş sahipleri ve yöneticileri bu ilkenin uygulanmasından muaf tutulur." + }, + "personalOwnershipSubmitError": { + "message": "Bir kuruluş ilkesi nedeniyle kişisel kasanıza hesap kaydetmeniz kısıtlanmış. Sahip seçeneğini bir kuruluş olarak değiştirin ve mevcut koleksiyonlar arasından seçim yapın." + }, + "disableSend": { + "message": "Send'i devre dışı bırak" + }, + "disableSendPolicyDesc": { + "message": "Kullanıcıların Bitwarden Send oluşturmasına veya düzenlemesine izin verme. Mevcut Send'leri silmeye yine de izin verilir.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Kuruluş ilkelerini yönetebilen kullanıcılar bu ilkenin uygulanmasından muaf tutulur." + }, + "sendDisabled": { + "message": "Send devre dışı", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Bir kuruluş ilkesi nedeniyle yalnızca mevcut Send'leri silebilirsiniz.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Seçenekleri", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Send oluşturma ve düzenleme için seçenekleri ayarlayın.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Kuruluş ilkelerini yönetebilen kullanıcılar bu ilkenin uygulanmasından muaf tutulur." + }, + "disableHideEmail": { + "message": "Kullanıcıların Send oluştururken veya düzenlerken alıcılardan e-posta adreslerini gizlemelerini yasakla.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Şu anda yürüklükte olan kuruluş ilkeleri:" + }, + "sendDisableHideEmailInEffect": { + "message": "Kullanıcıların Send oluştururken veya düzenlerken alıcılardan e-posta adreslerini gizlemelerine izin verilmiyor.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "$ID$ ilkesi düzenlendi.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Paket fiyatı" + }, + "estimatedTax": { + "message": "Tahmini vergi" + }, + "custom": { + "message": "Özel" + }, + "customDesc": { + "message": "Gelişmiş yapılandırma için kullanıcı izinleri üzerinde daha detaylı kontrol sağlar." + }, + "permissions": { + "message": "İzinler" + }, + "accessEventLogs": { + "message": "Olay günlüklerine erişme" + }, + "accessImportExport": { + "message": "İçe/dışa aktarıma erişme" + }, + "accessReports": { + "message": "Raporlara erişme" + }, + "missingPermissions": { + "message": "Bu eylemi gerçekleştirmek için gereken izinlere sahip değilsiniz." + }, + "manageAllCollections": { + "message": "Tüm koleksiyonları yönetme" + }, + "createNewCollections": { + "message": "Yeni koleksiyon oluşturma" + }, + "editAnyCollection": { + "message": "Tüm koleksiyonları düzenleme" + }, + "deleteAnyCollection": { + "message": "Tüm koleksiyonları silme" + }, + "manageAssignedCollections": { + "message": "Atanmış koleksiyonları yönetme" + }, + "editAssignedCollections": { + "message": "Atanmış koleksiyonları düzenleme" + }, + "deleteAssignedCollections": { + "message": "Atanmış koleksiyonları silme" + }, + "manageGroups": { + "message": "Grupları yönetme" + }, + "managePolicies": { + "message": "İlkeleri yönetme" + }, + "manageSso": { + "message": "SSO'yu yönetme" + }, + "manageUsers": { + "message": "Kullanıcıları yönetme" + }, + "manageResetPassword": { + "message": "Parola sıfırlamayı yönetme" + }, + "disableRequiredError": { + "message": "Bu ilke devre dışı bırakılmadan önce $POLICYNAME$ ilkesini elle devre dışı bırakmanız gerekir.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Bir kuruluş ilkesi sahiplik seçeneklerinizi etkiliyor." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Kuruluş kullanıcıları için kişisel sahipliği kapatma" + }, + "textHiddenByDefault": { + "message": "Send'e erişirken varsayılan olarak metni gizle", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Bu Send'i açıklayan anlaşılır bir ad.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Göndermek istediğiniz metin." + }, + "sendFileDesc": { + "message": "Göndermek istediğiniz dosya." + }, + "copySendLinkOnSave": { + "message": "Kaydettikten sonra bu Send'i paylaşma linkini panoya kopyala." + }, + "sendLinkLabel": { + "message": "Send bağlantısı", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send geçici ve hassas bilginin başkalarına kolayca ve güvenle iletmenizi sağlar.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": " ", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Metinleri ve dosyaları istediğiniz kişilerle paylaşın." + }, + "sendVaultCardLearnMore": { + "message": "Daha fazla bilgi alın", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "nasıl çalıştığını", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "görün", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "veya", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "hemen deneyin", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "veya", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "kaydolarak", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "hemen deneyin.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden kullanıcısı $USER_IDENTIFIER$ aşağıdakileri sizinle paylaştı", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Bu Send'i oluşturan Bitwarden kullanıcısı e-posta adresini gizlemeyi seçti. Kullanmadan veya içeriğini indirmeden önce bu bağlantının kaynağının güvenilir olduğundan emin olun.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Belirtilen son kullanma tarihi geçersiz." + }, + "deletionDateIsInvalid": { + "message": "Belirtilen silinme tarihi geçersiz." + }, + "expirationDateAndTimeRequired": { + "message": "Son kullanma tarihi ve saati gereklidir." + }, + "deletionDateAndTimeRequired": { + "message": "Silinme tarihi ve saati gereklidir." + }, + "dateParsingError": { + "message": "Silinme ve son kullanma tarihleriniz kaydedilirken bir hata oluştu." + }, + "webAuthnFallbackMsg": { + "message": "İki aşamalı doğrulamanızı onaylamak için aşağıdaki düğmeye tıklayın." + }, + "webAuthnAuthenticate": { + "message": "WebAutn ile doğrula" + }, + "webAuthnNotSupported": { + "message": "WebAuthn bu tarayıcıda desteklenmiyor." + }, + "webAuthnSuccess": { + "message": "WebAuthn başarıyla doğrulandı. Bu sekmeyi kapatabilirsiniz." + }, + "hintEqualsPassword": { + "message": "Parola ipucunuz parolanızla aynı olamaz." + }, + "enrollPasswordReset": { + "message": "Parola Sıfırlama Kaydı Yaptır" + }, + "enrolledPasswordReset": { + "message": "Parola Sıfırlama Kaydı Yaptırıldı" + }, + "withdrawPasswordReset": { + "message": "Parola Sıfırlamadan Geri Çekil" + }, + "enrollPasswordResetSuccess": { + "message": "Kayıt başarılı!" + }, + "withdrawPasswordResetSuccess": { + "message": "Çekilme başarılı!" + }, + "eventEnrollPasswordReset": { + "message": "$ID$ kullanıcısı parola sıfırlama desteği için kayıt yaptırdı.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "$ID$ kullanıcı parola sıfırlama desteğinden geri çekildi.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "$ID$ kullanıcısının ana parolası sıfırlandı.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ ilk defa SSO ile giriş yaptı", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Parolayı sıfırla" + }, + "resetPasswordLoggedOutWarning": { + "message": "Devam ederseniz $NAME$ oturumu sonlanacak ve yeniden oturum açması gerekecek. Diğer cihazlardaki aktif oturumlar bir saate kadar aktif kalabilir.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "bu kullanıcı" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Bir veya daha fazla kuruluş ilkesi gereğince ana parola aşağıdaki gereksinimleri karşılamalıdır:" + }, + "resetPasswordSuccess": { + "message": "Parola başarıyla sıfırlandı." + }, + "resetPasswordEnrollmentWarning": { + "message": "Katılmak kuruluş yöneticilerinin ana parolanızı değiştirmesine izin verir. Katılmak istediğinize emin misiniz?" + }, + "resetPasswordPolicy": { + "message": "Ana parola sıfırlama" + }, + "resetPasswordPolicyDescription": { + "message": "Kuruluş yöneticilerinin kuruluş kullanıcılarının ana parolalarını sıfırlamasına izin ver." + }, + "resetPasswordPolicyWarning": { + "message": "Yöneticilerin kullanıcıların ana parolalarını sıfırlayabilmesi önce kuruluştaki kullanıcıların kendileri katılmaları veya otomatik eklenmeleri gerekir." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Otomatik eklenme" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Davetiyeleri kabul edildiğinde tüm kullanıcılar otomatik olarak parola sıfırlamaya eklenecek." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Zaten kuruluşta olan kullanıcılar parola sıfırlamaya eklenmeyecekler. Yöneticiler tarafından parolalarının sıfırlanabilmesi için kendileri katılmaları gerekecek." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Yeni kullanıcıları otomatik ekle" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Bu kuruluşun sizi otomatik olarak parola sıfırlamaya ekleyen bir ilkesi bulunmakta. Bu ilkeye eklenmek, kuruluş yöneticilerinin ana parolanızı değiştirebilmesini sağlar." + }, + "resetPasswordOrgKeysError": { + "message": "Kuruluş anahtarları yanıtı boş" + }, + "resetPasswordDetailsError": { + "message": "Parola sıfırlama detayları yanıtı boş" + }, + "trashCleanupWarning": { + "message": "30 günden uzun süre çöp kutusunda duran kayıtlar otomatik olarak silinecektir." + }, + "trashCleanupWarningSelfHosted": { + "message": "Bir süre çöp kutusunda duran kayıtlar otomatik olarak silinecektir." + }, + "passwordPrompt": { + "message": "Ana parolayı yeniden iste" + }, + "passwordConfirmation": { + "message": "Ana parola onayı" + }, + "passwordConfirmationDesc": { + "message": "Bu işlem korumalıdır. İşleme devam etmek için lütfen ana parolanızı yeniden girin." + }, + "reinviteSelected": { + "message": "Davetleri yeniden gönder" + }, + "noSelectedUsersApplicable": { + "message": "Bu eylem seçilen kullanıcılardan hiçbirine uygulanamıyor." + }, + "removeUsersWarning": { + "message": "Aşağıdaki kullanıcıları kaldırmak istediğinize emin misiniz? İşlemin tamamlanması birkaç saniye sürer ve durdurulamaz veya iptal edilemez." + }, + "theme": { + "message": "Tema" + }, + "themeDesc": { + "message": "Web kasanız için tema seçin." + }, + "themeSystem": { + "message": "Sistem temasını kullan" + }, + "themeDark": { + "message": "Koyu" + }, + "themeLight": { + "message": "Açık" + }, + "confirmSelected": { + "message": "Seçimi onaylayın" + }, + "bulkConfirmStatus": { + "message": "Toplu işlem durumu" + }, + "bulkConfirmMessage": { + "message": "Başarıyla onaylandı." + }, + "bulkReinviteMessage": { + "message": "Yeniden davet edildi." + }, + "bulkRemovedMessage": { + "message": "Başarıyla kaldırıldı" + }, + "bulkFilteredMessage": { + "message": "İstisnai, bu eylem uygulanamaz." + }, + "fingerprint": { + "message": "Parmak izi" + }, + "removeUsers": { + "message": "Kullanıcıları kaldır" + }, + "error": { + "message": "Hata" + }, + "resetPasswordManageUsers": { + "message": "Parola Sıfırlamayı Yönet izniyle birlikte Kullanıcıları Yönet de açılmak zorundadır" + }, + "setupProvider": { + "message": "Sağlayıcı kurulumu" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Sağlayıcı adı" + }, + "providerSetup": { + "message": "Sağlayıcı kuruldu." + }, + "clients": { + "message": "Müşteriler" + }, + "providerAdmin": { + "message": "Sağlayıcı yöneticisi" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Hizmet kullanıcısı" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Sağlayıcıya katıl" + }, + "joinProviderDesc": { + "message": "Yukarıdaki sağlayıcıya katılmaya davet edildiniz. Daveti kabul etmek için giriş yapmanız veya yeni bir Bitwarden hesabı açmanız gerekiyor." + }, + "providerInviteAcceptFailed": { + "message": "Davet kabul edilemedi. Sağlayıcı yöneticisinden yeni bir davet göndermesini isteyin." + }, + "providerInviteAcceptedDesc": { + "message": "Yöneticiler üyeliğinizi onayladıktan sonra sağlayıcıya erişebilirsiniz. Üyeliğiniz onaylandığında size e-posta göndereceğiz." + }, + "providerUsersNeedConfirmed": { + "message": "Davetlerinizi kabul eden ancak hâlâ onaylanması gereken kullanıcılarınız var. Kullanıcılar onaylanana kadar sağlayıcıya erişemez." + }, + "provider": { + "message": "Sağlayıcı" + }, + "newClientOrganization": { + "message": "Yeni müşteri kuruluşu" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Mevcut kuruluşu ekle" + }, + "myProvider": { + "message": "Sağlayıcım" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Kuruluş başarıyla sağlayıcıya eklendi" + }, + "accessingUsingProvider": { + "message": "Kuruluşa $PROVIDER$ sağlayıcısı aracılığıyla erişiliyor", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Sağlayıcı devre dışı." + }, + "providerUpdated": { + "message": "Sağlayıcı güncellendi" + }, + "yourProviderIs": { + "message": "Sağlayıcınız: $PROVIDER$. Kuruluşunuzun yönetim ve ödeme yetkileri sağlayıcınıza aittir.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "$ORGANIZATION$ kuruluşu sağlayıcınızdan ayrıldı.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Ekle" + }, + "updatedMasterPassword": { + "message": "Ana parola güncellendi" + }, + "updateMasterPassword": { + "message": "Ana parolayı güncelle" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Ana parolanız bu kuruluşun ilke gereksinimlerini karşılamıyor. Kuruluşa katılmak için ana parolanızı güncellemelisiniz. Devam ettiğinizde oturumunuz kapanacak ve yeniden oturum açmanız gerekecektir. Diğer cihazlardaki aktif oturumlar bir saate kadar aktif kalabilir." + }, + "maximumVaultTimeout": { + "message": "Kasa zaman aşımı" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maksimum kasa zaman aşımı" + }, + "invalidMaximumVaultTimeout": { + "message": "Geçersiz maksimum kasa zaman aşımı." + }, + "hours": { + "message": "Saat" + }, + "minutes": { + "message": "Dakika" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Kuruluş ilkeleriniz kasa zaman aşımınızı etkiliyor. İzin verilen maksimum kasa zaman aşımı $HOURS$ saat $MINUTES$ dakikadır", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Özel kasa zaman aşımı" + }, + "vaultTimeoutToLarge": { + "message": "Kasa zaman aşımınız, kuruluşunuz tarafından belirlenen kısıtlamaları aşıyor." + }, + "disablePersonalVaultExport": { + "message": "Kişisel kasayı dışa aktarmayı devre dışı bırak" + }, + "disablePersonalVaultExportDesc": { + "message": "Kullanıcıların kişisel kasa verilerini dışa aktarmasını yasaklar." + }, + "vaultExportDisabled": { + "message": "Kasayı dışa aktarma devre dışı" + }, + "personalVaultExportPolicyInEffect": { + "message": "Bir veya daha fazla kuruluş ilkesi, kişisel kasanızı dışa aktarmanızı engelliyor." + }, + "selectType": { + "message": "SSO türünü seçin" + }, + "type": { + "message": "Tür" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Yapılandırması" + }, + "samlSpConfig": { + "message": "SAML Servis Sağlayıcı Yapılandırması" + }, + "samlIdpConfig": { + "message": "SAML Kimlik Sağlayıcı Yapılandırması" + }, + "callbackPath": { + "message": "Callback yolu" + }, + "signedOutCallbackPath": { + "message": "Signed out callback yolu" + }, + "authority": { + "message": "Otorite" + }, + "clientId": { + "message": "Müşteri kimliği" + }, + "clientSecret": { + "message": "Müşteri anahtarı" + }, + "metadataAddress": { + "message": "Meta veri adresi" + }, + "oidcRedirectBehavior": { + "message": "OIDC yönlendirme davranışı" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP varlık kimliği" + }, + "spMetadataUrl": { + "message": "SAML 2.0 metadata URL'si" + }, + "spAcsUrl": { + "message": "Assertion consumer service (ACS) URL'si" + }, + "spNameIdFormat": { + "message": "İsim kimliği biçimi" + }, + "spOutboundSigningAlgorithm": { + "message": "Çıkış imza algoritması" + }, + "spSigningBehavior": { + "message": "İmza davranışı" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum gelen imza algoritması" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Sertifikaları doğrula" + }, + "idpEntityId": { + "message": "Varlık kimliği" + }, + "idpBindingType": { + "message": "Bağlama türü" + }, + "idpSingleSignOnServiceUrl": { + "message": "Tek oturum açma (SSO) servis URL'si" + }, + "idpSingleLogoutServiceUrl": { + "message": "Tek çıkış (SLO) servis URL'si" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Ücretsiz Bitwarden Aile" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Verilerinizi evde de güvenle depolamak için Ücretsiz Bitwarden Aile paketinizi hemen kullanmaya başlayın." + }, + "sponsoredFamiliesInclude": { + "message": "Bitwarden Aile paketinin özellikleri" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "6 kullanıcı için premium erişim" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Ücretsiz paket kullanıldı" + }, + "redeem": { + "message": "Kullan" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Sponsor kuruluştan ayrılır veya çıkarılırsanız Aile paketiniz ödeme döneminin sonunda sonra erecektir." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Ücretsiz Bitwarden Aile Paketi Kuruluşuna davet edildiniz. Devam etmek için bu teklifi alan hesaba giriş yapmanız gerekiyor." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Teklif kabul edilemedi. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Ücretsiz Bitwarden Aile'yi kabul et" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Kullanıldı" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "$NAME$ hesabını iptal et", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Ücretsiz Aile Paketi" + }, + "redeemNow": { + "message": "Şimdi kullan" + }, + "recipient": { + "message": "Alıcı" + }, + "removeSponsorship": { + "message": "Sponsorluğu kaldır" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorluk oluştur" + }, + "revoke": { + "message": "İptal et" + }, + "emailSent": { + "message": "E-posta gönderildi" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorluk kaldırdıldı" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "E-posta adresime doğrulama kodu gönder" + }, + "sendCode": { + "message": "Kod gönder" + }, + "codeSent": { + "message": "Kod gönderildi" + }, + "verificationCode": { + "message": "Doğrulama kodu" + }, + "confirmIdentity": { + "message": "Devam etmek için kimliğinizi doğrulayın." + }, + "verificationCodeRequired": { + "message": "Doğrulama kodu gereklidir." + }, + "invalidVerificationCode": { + "message": "Geçersiz doğrulama kodu" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ kendi barındırdığı bir anahtar sunucusuyla SSO kullanıyor. Bu kuruluşun üyelerinin artık ana parola kullanması gerekmiyor.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Kuruluştan ayrıl" + }, + "removeMasterPassword": { + "message": "Ana parolayı kaldır" + }, + "removedMasterPassword": { + "message": "Ana parola kaldırıldı." + }, + "allowSso": { + "message": "SSO doğrulamasına izin ver" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "SSO etkinleştirildi" + }, + "disabledSso": { + "message": "SSO kapatıldı" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Teklifi kabul et" + }, + "sponsoringOrg": { + "message": "Sponsor kuruluş" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Başarılı! Key Connector'a ulaşıldı." + }, + "keyConnectorTestFail": { + "message": "Key Connector'e ulaşılamadı. URL 'i kontrol edin." + }, + "sponsorshipTokenHasExpired": { + "message": "Sponsorluk teklifinin süresi doldu." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ zorunludur.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "zorunlu" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Oturumunuzun süresi doldu. Lütfen geri dönüp yeniden giriş yapın." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Raporlara geri dön" + }, + "generator": { + "message": "Oluşturucu" + }, + "whatWouldYouLikeToGenerate": { + "message": "Ne oluşturmak istersiniz?" + }, + "passwordType": { + "message": "Parola türü" + }, + "regenerateUsername": { + "message": "Kullanıcı adını yeniden oluştur" + }, + "generateUsername": { + "message": "Kullanıcı adı oluştur" + }, + "usernameType": { + "message": "Kullanıcı adı türü" + }, + "plusAddressedEmail": { + "message": "Artı adresli e-posta", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "E-posta sağlayıcınızın alt adres özelliklerini kullanın." + }, + "catchallEmail": { + "message": "Catch-all e-posta" + }, + "catchallEmailDesc": { + "message": "Alan adınızın tüm iletileri yakalamaya ayarlanmış adresini kullanın." + }, + "random": { + "message": "Rastgele" + }, + "randomWord": { + "message": "Rastgele kelime" + }, + "service": { + "message": "Servis" + } +} diff --git a/apps/web/src/locales/uk/messages.json b/apps/web/src/locales/uk/messages.json new file mode 100644 index 0000000000..80fc5f1ac8 --- /dev/null +++ b/apps/web/src/locales/uk/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "Веб сховище $APP_NAME$", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Який це тип запису?" + }, + "name": { + "message": "Назва" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Новий URI" + }, + "username": { + "message": "Ім'я користувача" + }, + "password": { + "message": "Пароль" + }, + "newPassword": { + "message": "Новий пароль" + }, + "passphrase": { + "message": "Парольна фраза" + }, + "notes": { + "message": "Нотатки" + }, + "customFields": { + "message": "Власні поля" + }, + "cardholderName": { + "message": "Ім'я власника картки" + }, + "number": { + "message": "Номер" + }, + "brand": { + "message": "Тип картки" + }, + "expiration": { + "message": "Термін дії" + }, + "securityCode": { + "message": "Код безпеки (CVV)" + }, + "identityName": { + "message": "Назва" + }, + "company": { + "message": "Компанія" + }, + "ssn": { + "message": "Номер соціального страхування" + }, + "passportNumber": { + "message": "Номер паспорта" + }, + "licenseNumber": { + "message": "Номер ліцензії" + }, + "email": { + "message": "Е-пошта" + }, + "phone": { + "message": "Телефон" + }, + "january": { + "message": "Січень" + }, + "february": { + "message": "Лютий" + }, + "march": { + "message": "Березень" + }, + "april": { + "message": "Квітень" + }, + "may": { + "message": "Травень" + }, + "june": { + "message": "Червень" + }, + "july": { + "message": "Липень" + }, + "august": { + "message": "Серпень" + }, + "september": { + "message": "Вересень" + }, + "october": { + "message": "Жовтень" + }, + "november": { + "message": "Листопад" + }, + "december": { + "message": "Грудень" + }, + "title": { + "message": "Звернення" + }, + "mr": { + "message": "Містер" + }, + "mrs": { + "message": "Місіс" + }, + "ms": { + "message": "Міс" + }, + "dr": { + "message": "Доктор" + }, + "expirationMonth": { + "message": "Місяць завершення" + }, + "expirationYear": { + "message": "Рік завершення" + }, + "authenticatorKeyTotp": { + "message": "Ключ авторизації (TOTP)" + }, + "folder": { + "message": "Тека" + }, + "newCustomField": { + "message": "Нове власне поле" + }, + "value": { + "message": "Значення" + }, + "dragToSort": { + "message": "Перетягніть, щоб відсортувати" + }, + "cfTypeText": { + "message": "Текст" + }, + "cfTypeHidden": { + "message": "Приховано" + }, + "cfTypeBoolean": { + "message": "Логічне значення" + }, + "cfTypeLinked": { + "message": "Пов'язано", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Вилучити" + }, + "unassigned": { + "message": "Не призначено" + }, + "noneFolder": { + "message": "Без теки", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Додати теку" + }, + "editFolder": { + "message": "Редагувати теку" + }, + "baseDomain": { + "message": "Основний домен", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Ім'я домену", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Вузол", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Точно" + }, + "startsWith": { + "message": "Починається з" + }, + "regEx": { + "message": "Звичайний вираз", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Виявлення збігів", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Типове виявлення збігів", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Ніколи" + }, + "toggleVisibility": { + "message": "Перемкнути видимість" + }, + "toggleCollapse": { + "message": "Згорнути/розгорнути", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Генерувати пароль" + }, + "checkPassword": { + "message": "Перевірити чи пароль було викрито." + }, + "passwordExposed": { + "message": "Цей пароль було викрито $VALUE$ разів з витоком даних. Вам слід його змінити.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Цей пароль не було знайдено у жодних відомих витоках даних. Його можна безпечно використовувати." + }, + "save": { + "message": "Зберегти" + }, + "cancel": { + "message": "Скасувати" + }, + "canceled": { + "message": "Скасовано" + }, + "close": { + "message": "Закрити" + }, + "delete": { + "message": "Видалити" + }, + "favorite": { + "message": "Обране" + }, + "unfavorite": { + "message": "Вилучити з обраного" + }, + "edit": { + "message": "Змінити" + }, + "searchCollection": { + "message": "Пошук в збірках" + }, + "searchFolder": { + "message": "Пошук в теці" + }, + "searchFavorites": { + "message": "Пошук в обраному" + }, + "searchType": { + "message": "Пошук за типом", + "description": "Search item type" + }, + "searchVault": { + "message": "Пошук" + }, + "allItems": { + "message": "Всі елементи" + }, + "favorites": { + "message": "Обране" + }, + "types": { + "message": "Типи" + }, + "typeLogin": { + "message": "Вхід" + }, + "typeCard": { + "message": "Картка" + }, + "typeIdentity": { + "message": "Особисті дані" + }, + "typeSecureNote": { + "message": "Захищена нотатка" + }, + "typeLoginPlural": { + "message": "Записи" + }, + "typeCardPlural": { + "message": "Картки" + }, + "typeIdentityPlural": { + "message": "Особисті дані" + }, + "typeSecureNotePlural": { + "message": "Захищені нотатки" + }, + "folders": { + "message": "Теки" + }, + "collections": { + "message": "Збірки" + }, + "firstName": { + "message": "Ім’я" + }, + "middleName": { + "message": "По батькові" + }, + "lastName": { + "message": "Прізвище" + }, + "fullName": { + "message": "Повне ім'я" + }, + "address1": { + "message": "Адреса 1" + }, + "address2": { + "message": "Адреса 2" + }, + "address3": { + "message": "Адреса 3" + }, + "cityTown": { + "message": "Місто / Селище" + }, + "stateProvince": { + "message": "Штат / Область" + }, + "zipPostalCode": { + "message": "Поштовий індекс" + }, + "country": { + "message": "Країна" + }, + "shared": { + "message": "Спільні" + }, + "attachments": { + "message": "Вкладення" + }, + "select": { + "message": "Обрати" + }, + "addItem": { + "message": "Додати запис" + }, + "editItem": { + "message": "Змінити запис" + }, + "viewItem": { + "message": "Перегляд запису" + }, + "ex": { + "message": "зразок", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Інше" + }, + "share": { + "message": "Поділитися" + }, + "moveToOrganization": { + "message": "Перемістити до організації" + }, + "valueCopied": { + "message": "$VALUE$ скопійовано", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Копіювати значення", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Копіювати пароль", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Копіювати ім'я користувача", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Копіювати номер", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Копіювати код безпеки", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Копіювати URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Моє сховище" + }, + "vault": { + "message": "Сховище" + }, + "moveSelectedToOrg": { + "message": "Перемістити вибране до організації" + }, + "deleteSelected": { + "message": "Видалити вибране" + }, + "moveSelected": { + "message": "Перемістити вибране" + }, + "selectAll": { + "message": "Вибрати все" + }, + "unselectAll": { + "message": "Скасувати вибір" + }, + "launch": { + "message": "Перейти" + }, + "newAttachment": { + "message": "Додати нове вкладення" + }, + "deletedAttachment": { + "message": "Вкладення видалено" + }, + "deleteAttachmentConfirmation": { + "message": "Ви дійсно хочете видалити це вкладення?" + }, + "attachmentSaved": { + "message": "Вкладення збережено." + }, + "file": { + "message": "Файл" + }, + "selectFile": { + "message": "Оберіть файл." + }, + "maxFileSize": { + "message": "Максимальний розмір файлу 500 Мб." + }, + "updateKey": { + "message": "Ви не можете використовувати цю функцію доки не оновите свій ключ шифрування." + }, + "addedItem": { + "message": "Запис додано" + }, + "editedItem": { + "message": "Запис змінено" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ переміщено до $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Вибрані записи переміщено до $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Видалити запис" + }, + "deleteFolder": { + "message": "Видалити теку" + }, + "deleteAttachment": { + "message": "Видалити файл" + }, + "deleteItemConfirmation": { + "message": "Ви дійсно хочете перенести до смітника?" + }, + "deletedItem": { + "message": "Запис перенесено до смітника" + }, + "deletedItems": { + "message": "Записи перенесено до смітника" + }, + "movedItems": { + "message": "Записи переміщено" + }, + "overwritePasswordConfirmation": { + "message": "Ви дійсно хочете перезаписати поточний пароль?" + }, + "editedFolder": { + "message": "Тека відредагована" + }, + "addedFolder": { + "message": "Додано теку" + }, + "deleteFolderConfirmation": { + "message": "Ви дійсно хочете видалити цю теку?" + }, + "deletedFolder": { + "message": "Теку видалено" + }, + "loggedOut": { + "message": "Ви вийшли" + }, + "loginExpired": { + "message": "Тривалість вашого сеансу завершилась." + }, + "logOutConfirmation": { + "message": "Ви дійсно хочете вийти?" + }, + "logOut": { + "message": "Вийти" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Так" + }, + "no": { + "message": "Ні" + }, + "loginOrCreateNewAccount": { + "message": "Для доступу до сховища увійдіть в обліковий запис, або створіть новий." + }, + "createAccount": { + "message": "Створити обліковий запис" + }, + "logIn": { + "message": "Увійти" + }, + "submit": { + "message": "Відправити" + }, + "emailAddressDesc": { + "message": "Адреса е-пошти буде використовуватися для входу." + }, + "yourName": { + "message": "Ваше ім'я" + }, + "yourNameDesc": { + "message": "Як до вас звертатися?" + }, + "masterPass": { + "message": "Головний пароль" + }, + "masterPassDesc": { + "message": "Головний пароль використовується для доступу до вашого сховища. Дуже важливо, щоб ви запам'ятали його. Якщо ви забудете головний пароль, його неможливо буде відновити." + }, + "masterPassHintDesc": { + "message": "Якщо ви забудете головний пароль, підказка може допомогти вам згадати його." + }, + "reTypeMasterPass": { + "message": "Введіть головний пароль ще раз" + }, + "masterPassHint": { + "message": "Підказка для головного пароля (необов'язково)" + }, + "masterPassHintLabel": { + "message": "Підказка для головного пароля" + }, + "settings": { + "message": "Налаштування" + }, + "passwordHint": { + "message": "Підказка для пароля" + }, + "enterEmailToGetHint": { + "message": "Введіть свою адресу е-пошти, щоб отримати підказку для головного пароля." + }, + "getMasterPasswordHint": { + "message": "Отримати підказку для головного пароля" + }, + "emailRequired": { + "message": "Необхідно вказати адресу е-пошти." + }, + "invalidEmail": { + "message": "Неправильна адреса е-пошти." + }, + "masterPassRequired": { + "message": "Потрібен головний пароль." + }, + "masterPassLength": { + "message": "Довжина головного пароля повинна бути не менше 8 символів." + }, + "masterPassDoesntMatch": { + "message": "Підтвердження головного пароля не збігається." + }, + "newAccountCreated": { + "message": "Ваш обліковий запис створений! Тепер ви можете увійти." + }, + "masterPassSent": { + "message": "Ми надіслали вам лист з підказкою для головного пароля." + }, + "unexpectedError": { + "message": "Сталася неочікувана помилка." + }, + "emailAddress": { + "message": "Адреса е-пошти" + }, + "yourVaultIsLocked": { + "message": "Сховище заблоковано. Введіть головний пароль для продовження." + }, + "unlock": { + "message": "Розблокувати" + }, + "loggedInAsEmailOn": { + "message": "Ви увійшли як $EMAIL$ на $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Неправильний головний пароль" + }, + "lockNow": { + "message": "Заблокувати зараз" + }, + "noItemsInList": { + "message": "Немає записів." + }, + "noCollectionsInList": { + "message": "Немає збірок." + }, + "noGroupsInList": { + "message": "Немає груп." + }, + "noUsersInList": { + "message": "Немає користувачів." + }, + "noEventsInList": { + "message": "Немає подій." + }, + "newOrganization": { + "message": "Нова організація" + }, + "noOrganizationsList": { + "message": "Ви не входите до жодної організації. Організації дозволяють безпечно обмінюватися елементами з іншими користувачами." + }, + "versionNumber": { + "message": "Версія $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Введіть 6-значний код підтвердження з програми авторизації." + }, + "enterVerificationCodeEmail": { + "message": "Введіть 6-значний код підтвердження, надісланий на $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Код підтвердження надіслано на $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Запам'ятати мене" + }, + "sendVerificationCodeEmailAgain": { + "message": "Надіслати код підтвердження ще раз" + }, + "useAnotherTwoStepMethod": { + "message": "Інший спосіб двоетапної перевірки" + }, + "insertYubiKey": { + "message": "Вставте свій YubiKey в USB порт комп'ютера, потім торкніться цієї кнопки." + }, + "insertU2f": { + "message": "Вставте свій ключ безпеки в USB порт комп'ютера. Якщо в нього є кнопка, натисніть її." + }, + "loginUnavailable": { + "message": "Вхід недоступний" + }, + "noTwoStepProviders": { + "message": "Для цього облікового запису увімкнено двоетапну перевірку. Однак, жоден з налаштованих провайдерів двоетапної перевірки не підтримується цим браузером." + }, + "noTwoStepProviders2": { + "message": "Будь ласка, скористайтеся підтримуваним браузером (наприклад, Chrome) та/або іншими провайдерами, що краще підтримуються браузерами (наприклад, програма авторизації)." + }, + "twoStepOptions": { + "message": "Налаштування двоетапної перевірки" + }, + "recoveryCodeDesc": { + "message": "Втратили доступ до всіх провайдерів двоетапної перевірки? Скористайтеся кодом відновлення, щоб вимкнути двоетапну перевірку для свого облікового запису." + }, + "recoveryCodeTitle": { + "message": "Код відновлення" + }, + "authenticatorAppTitle": { + "message": "Програма авторизації" + }, + "authenticatorAppDesc": { + "message": "Використовуйте програму авторизації (наприклад, Authy або Google Authenticator), щоб генерувати тимчасові коди підтвердження.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "Ключ безпеки YubiKey OTP" + }, + "yubiKeyDesc": { + "message": "Використовуйте YubiKey для доступу до облікового запису. Працює з YubiKey серії 4, 5, а також пристроями NEO." + }, + "duoDesc": { + "message": "Авторизуйтесь за допомогою Duo Security з використанням мобільного додатку Duo Mobile, SMS, телефонного виклику, або ключа безпеки U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Авторизуйтесь за допомогою Duo Security для вашої організації з використанням мобільного додатку Duo Mobile, SMS, телефонного виклику, або ключа безпеки U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Використовуйте будь-який ключ безпеки FIDO U2F для доступу до сховища." + }, + "u2fTitle": { + "message": "Ключ безпеки FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Використовуйте будь-який ключ безпеки WebAuthn для доступу до сховища." + }, + "webAuthnMigrated": { + "message": "(Перенесено з FIDO)" + }, + "emailTitle": { + "message": "Е-пошта" + }, + "emailDesc": { + "message": "Коди підтвердження будуть надсилатися на вашу пошту." + }, + "continue": { + "message": "Продовжити" + }, + "organization": { + "message": "Організація" + }, + "organizations": { + "message": "Організації" + }, + "moveToOrgDesc": { + "message": "Виберіть організацію, до якої ви бажаєте перемістити цей запис. При переміщенні до організації власність запису передається тій організації. Ви більше не будете єдиним власником цього запису після переміщення." + }, + "moveManyToOrgDesc": { + "message": "Виберіть організацію, до якої ви бажаєте перемістити ці записи. При переміщенні до організації власність записів передається тій організації. Ви більше не будете єдиним власником цих записів після переміщення." + }, + "collectionsDesc": { + "message": "Редагуйте збірки, з якими цей запис знаходиться в спільному доступі. Лише учасники організацій з доступом до цих збірок матимуть можливість бачити цей запис." + }, + "deleteSelectedItemsDesc": { + "message": "Ви обрали $COUNT$ записів для видалення. Ви справді хочете їх видалити?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Оберіть теку, в яку ви бажаєте перемістити $COUNT$ вибраних записів.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "Ви вибрали $COUNT$ запис(ів). $MOVEABLE_COUNT$ запис(ів) можна перемістити до організації, $NONMOVEABLE_COUNT$ не можна.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Код підтвердження (TOTP)" + }, + "copyVerificationCode": { + "message": "Копіювати код підтвердження" + }, + "warning": { + "message": "Попередження" + }, + "confirmVaultExport": { + "message": "Підтвердити експорт сховища" + }, + "exportWarningDesc": { + "message": "Експортовані дані вашого сховища знаходяться в незашифрованому вигляді. Вам не слід зберігати чи надсилати їх через незахищені канали (наприклад, е-поштою). Після використання негайно видаліть їх." + }, + "encExportKeyWarningDesc": { + "message": "Цей експорт шифрує ваші дані за допомогою ключа шифрування облікового запису. Якщо ви коли-небудь оновите ключ шифрування облікового запису, ви повинні виконати експорт знову, оскільки не зможете розшифрувати цей файл експорту." + }, + "encExportAccountWarningDesc": { + "message": "Ключі шифрування унікальні для кожного облікового запису користувача Bitwarden, тому ви не можете імпортувати зашифрований експорт до іншого облікового запису." + }, + "export": { + "message": "Експорт" + }, + "exportVault": { + "message": "Експорт сховища" + }, + "fileFormat": { + "message": "Формат файлу" + }, + "exportSuccess": { + "message": "Дані сховища експортовано." + }, + "passwordGenerator": { + "message": "Генератор паролів" + }, + "minComplexityScore": { + "message": "Мінімальна оцінка складності" + }, + "minNumbers": { + "message": "Мінімум цифр" + }, + "minSpecial": { + "message": "Мінімум спеціальних символів", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Уникати неоднозначних символів" + }, + "regeneratePassword": { + "message": "Генерувати новий" + }, + "length": { + "message": "Довжина" + }, + "numWords": { + "message": "Кількість слів" + }, + "wordSeparator": { + "message": "Розділювач слів" + }, + "capitalize": { + "message": "Великі літери", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Включити число" + }, + "passwordHistory": { + "message": "Історія паролів" + }, + "noPasswordsInList": { + "message": "Немає паролів." + }, + "clear": { + "message": "Стерти", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Обліковий запис оновлено" + }, + "changeEmail": { + "message": "Змінити адресу е-пошти" + }, + "changeEmailTwoFactorWarning": { + "message": "Продовжуючи, ви зміните адресу електронної пошти вашого облікового запису. Ця дія не змінить адресу електронної пошти, що використовується для двоетапної перевірки. Ви можете змінити цю електронну адресу в налаштуваннях двоетапної перевірки." + }, + "newEmail": { + "message": "Нова адреса е-пошти" + }, + "code": { + "message": "Код" + }, + "changeEmailDesc": { + "message": "Ми надіслали код підтвердження на $EMAIL$. Знайдіть цей код в отриманому листі та введіть його внизу, щоб завершити зміну адреси електронної пошти.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Продовжуючи, ви вийдете з поточного сеансу і необхідно буде виконати вхід знову. Активні сеанси на інших пристроях можуть залишатися активними протягом години." + }, + "emailChanged": { + "message": "Е-пошту змінено" + }, + "logBackIn": { + "message": "Повторно виконайте вхід." + }, + "logBackInOthersToo": { + "message": "Будь ласка, повторно виконайте вхід. Якщо ви користуєтесь іншими додатками Bitwarden, також вийдіть із них, і знову увійдіть." + }, + "changeMasterPassword": { + "message": "Змінити головний пароль" + }, + "masterPasswordChanged": { + "message": "Головний пароль змінено" + }, + "currentMasterPass": { + "message": "Поточний головний пароль" + }, + "newMasterPass": { + "message": "Новий головний пароль" + }, + "confirmNewMasterPass": { + "message": "Підтвердьте новий головний пароль" + }, + "encKeySettings": { + "message": "Налаштування ключа шифрування" + }, + "kdfAlgorithm": { + "message": "Алгоритм KDF" + }, + "kdfIterations": { + "message": "Ітерації KDF" + }, + "kdfIterationsDesc": { + "message": "Вище значення KDF-ітерацій може допомогти захистити головний пароль від перехоплення зловмисником. Ми рекомендуємо встановити значення не менше $VALUE$.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Встановлення надто великого значення KDF-ітерацій може призвести до повільної роботи системи при вході (і розблокуванні системи) на слабких комп'ютерах. Рекомендуємо збільшувати значення поступово з кроком $INCREMENT$, після чого тестувати роботу на всіх ваших пристроях.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Змінити KDF" + }, + "encKeySettingsChanged": { + "message": "Налаштування ключа шифрування змінено" + }, + "dangerZone": { + "message": "Небезпечна зона" + }, + "dangerZoneDesc": { + "message": "Обережно, ці дії неможливо скасувати!" + }, + "deauthorizeSessions": { + "message": "Закрити сеанси" + }, + "deauthorizeSessionsDesc": { + "message": "Хвилюєтесь про те, чи не виконано вхід на іншому пристрої? Перейдіть нижче, щоб закрити сеанси на всіх комп'ютерах чи інших пристроях, які ви раніше використовували. Рекомендовано використовувати цей крок, якщо ви раніше користувалися загальнодоступними комп'ютерами, або іншими чужими пристроями, на яких міг зберегтися ваш пароль входу. Ця дія також зітре всі попередньо збережені сеанси двоетапної перевірки." + }, + "deauthorizeSessionsWarning": { + "message": "Продовжуючи, ви також вийдете з поточного сеансу і необхідно буде виконати вхід знову. Ви також отримаєте повторний запит двоетапної перевірки, якщо вона увімкнена. Активні сеанси на інших пристроях можуть залишатися активними протягом години." + }, + "sessionsDeauthorized": { + "message": "Всі сеанси закрито" + }, + "purgeVault": { + "message": "Очистити сховище" + }, + "purgedOrganizationVault": { + "message": "Сховище організації очищено." + }, + "vaultAccessedByProvider": { + "message": "Постачальник має доступ до сховища." + }, + "purgeVaultDesc": { + "message": "Продовжуйте внизу для видалення всіх записів і тек у вашому сховищі. Записи, що належать до спільної організації не будуть видалені." + }, + "purgeOrgVaultDesc": { + "message": "Продовжуйте внизу, щоб видалити всі записи в сховищі організації." + }, + "purgeVaultWarning": { + "message": "Очищення вашого сховища є незворотною дією. Це не можна буде скасувати." + }, + "vaultPurged": { + "message": "Ваше сховище було очищено." + }, + "deleteAccount": { + "message": "Видалити обліковий запис" + }, + "deleteAccountDesc": { + "message": "Продовжуйте внизу для видалення облікового запису і всіх пов'язаних даних." + }, + "deleteAccountWarning": { + "message": "Видалення облікового запису є незворотною дією. Це не можна буде скасувати." + }, + "accountDeleted": { + "message": "Обліковий запис видалено" + }, + "accountDeletedDesc": { + "message": "Ваш обліковий запис було закрито і всі пов'язані дані було видалено." + }, + "myAccount": { + "message": "Мій обліковий запис" + }, + "tools": { + "message": "Інструменти" + }, + "importData": { + "message": "Імпорт даних" + }, + "importError": { + "message": "Помилка імпорту" + }, + "importErrorDesc": { + "message": "При спробі імпорту ваших даних виникла проблема. Будь ласка, виправте вказані нижче помилки у вихідному файлі та спробуйте знову." + }, + "importSuccess": { + "message": "Дані успішно імпортовано до вашого сховища." + }, + "importWarning": { + "message": "Ви імпортуєте дані до $ORGANIZATION$. Ваші дані можуть бути доступними учасникам цієї організації. Ви хочете продовжити?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Дані мають некоректне форматування. Перевірте файл імпорту і спробуйте знову." + }, + "importNothingError": { + "message": "Нічого не імпортовано." + }, + "importEncKeyError": { + "message": "Помилка при розшифруванні експортованого файлу. Ваш ключ шифрування відрізняється від ключа, використаного при експортуванні даних." + }, + "selectFormat": { + "message": "Оберіть формат імпортованого файлу" + }, + "selectImportFile": { + "message": "Оберіть файл для імпорту" + }, + "orCopyPasteFileContents": { + "message": "або скопіюйте і вставте вміст файлу для імпорту" + }, + "instructionsFor": { + "message": "Інструкції для $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Додатково" + }, + "optionsDesc": { + "message": "Налаштуйте свою роботу з веб сховищем." + }, + "optionsUpdated": { + "message": "Налаштування оновлено" + }, + "language": { + "message": "Мова" + }, + "languageDesc": { + "message": "Змінити мову інтерфейсу веб сховища." + }, + "disableIcons": { + "message": "Вимкнути піктограми вебсайтів" + }, + "disableIconsDesc": { + "message": "Впізнавані піктограми вебсайтів додаються біля кожного запису вашого сховища." + }, + "enableGravatars": { + "message": "Увімкнути Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Використовувати зображення профілю завантажені з gravatar.com." + }, + "enableFullWidth": { + "message": "Увімкнути макет повної ширини", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Дозволити веб сховищу розгортатися на повну ширину вікна браузера." + }, + "default": { + "message": "Типово" + }, + "domainRules": { + "message": "Правила доменів" + }, + "domainRulesDesc": { + "message": "Якщо у вас є однакові дані входу для різних вебсайтів, ви можете позначити такий вебсайт як \"еквівалентний\". \"Глобальні\" домени вже створені для вас в Bitwarden." + }, + "globalEqDomains": { + "message": "Глобальні еквівалентні домени" + }, + "customEqDomains": { + "message": "Власні еквівалентні домени" + }, + "exclude": { + "message": "Виключити" + }, + "include": { + "message": "Включити" + }, + "customize": { + "message": "Налаштувати" + }, + "newCustomDomain": { + "message": "Новий власний домен" + }, + "newCustomDomainDesc": { + "message": "Введіть список доменів, розділених комами. Дозволяються лише \"основні\" домени. Не вводьте піддомени. Наприклад, вводьте \"google.com\" замість \"www.google.com\". Ви також можете ввести \"androidapp://package.name\", щоб асоціювати програму android з іншими доменами вебсайту." + }, + "customDomainX": { + "message": "Власний домен $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Домени оновлено" + }, + "twoStepLogin": { + "message": "Двоетапна перевірка" + }, + "twoStepLoginDesc": { + "message": "Захистіть обліковий запис, вимагаючи додатковий крок перевірки при вході." + }, + "twoStepLoginOrganizationDesc": { + "message": "Вимагати двоетапну перевірку для користувачів вашої організації, змінивши конфігурацію провайдерів на рівні організації." + }, + "twoStepLoginRecoveryWarning": { + "message": "Увімкнення двоетапної перевірки може цілком заблокувати доступ до облікового запису Bitwarden. Код відновлення дозволяє вам отримати доступ до свого облікового запису у випадку, якщо ви не можете скористатися провайдером двоетапної перевірки (наприклад, при втраті пристрою). Служба підтримки Bitwarden не зможе допомогти відновити доступ до вашого облікового запису. Ми радимо вам записати чи роздрукувати цей код відновлення і зберігати його в надійному місці." + }, + "viewRecoveryCode": { + "message": "Переглянути код відновлення" + }, + "providers": { + "message": "Провайдери", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Увімкнути" + }, + "enabled": { + "message": "Увімкнено" + }, + "premium": { + "message": "Преміум", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Преміум статус" + }, + "premiumRequired": { + "message": "Необхідний преміум статус" + }, + "premiumRequiredDesc": { + "message": "Для використання цієї функції необхідний преміум статус." + }, + "youHavePremiumAccess": { + "message": "У вас є преміум-доступ" + }, + "alreadyPremiumFromOrg": { + "message": "У вас вже є доступ до преміум-функцій, тому що ви входите до організації, яка вам їх надає." + }, + "manage": { + "message": "Керувати" + }, + "disable": { + "message": "Вимкнути" + }, + "twoStepLoginProviderEnabled": { + "message": "Для вашого облікового запису увімкнено цей спосіб двоетапної перевірки." + }, + "twoStepLoginAuthDesc": { + "message": "Введіть головний пароль, щоб змінити налаштування двоетапної перевірки." + }, + "twoStepAuthenticatorDesc": { + "message": "Дотримуйтесь цих кроків, щоб встановити двоетапну перевірку за допомогою програми:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Завантажте програму для двоетапної перевірки" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Необхідна програма для двоетапної перевірки? Завантажте одну з таких" + }, + "iosDevices": { + "message": "Пристрої iOS" + }, + "androidDevices": { + "message": "Пристрої Android" + }, + "windowsDevices": { + "message": "Пристрої Windows" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Ці програми є рекомендованими, однак, інші програми авторизації також працюватимуть." + }, + "twoStepAuthenticatorScanCode": { + "message": "Скануйте цей QR-код за допомогою програми авторизації" + }, + "key": { + "message": "Ключ" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Введіть отриманий в програмі 6-значний код авторизації" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Якщо вам необхідно додати його на іншому пристрої, внизу знаходиться QR-код (або код) для вашої програми авторизації." + }, + "twoStepDisableDesc": { + "message": "Ви справді хочете вимкнути цього провайдера двоетапної перевірки?" + }, + "twoStepDisabled": { + "message": "Провайдера двоетапної перевірки вимкнено." + }, + "twoFactorYubikeyAdd": { + "message": "Додайте новий YubiKey до вашого облікового запису" + }, + "twoFactorYubikeyPlugIn": { + "message": "Під'єднайте YubiKey до USB вашого комп'ютера." + }, + "twoFactorYubikeySelectKey": { + "message": "Оберіть перше порожнє поле вводу YubiKey внизу." + }, + "twoFactorYubikeyTouchButton": { + "message": "Торкніться кнопки YubiKey." + }, + "twoFactorYubikeySaveForm": { + "message": "Збережіть форму." + }, + "twoFactorYubikeyWarning": { + "message": "У зв'язку з обмеженнями платформи, YubiKey не можна використовувати в усіх програмах Bitwarden. Вам слід активувати іншого провайдера двоетапної перевірки, щоб ви могли отримати доступ до свого облікового запису, коли неможливо скористатися YubiKey. Підтримувані платформи:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Веб сховище, програма для комп'ютера, CLI, а також усі розширення браузера на пристроях, де можливо під'єднати YubiKey до USB." + }, + "twoFactorYubikeySupportMobile": { + "message": "Мобільні програми на пристроях з NFC, або порт даних, який може приймати YubiKey." + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Ключ $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "Ключ WebAuthn $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "Підтримка NFC" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Один з моїх ключів підтримує NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Якщо один з ваших YubiKey підтримує NFC (наприклад, YubiKey NEO), ви отримаєте запит на мобільних пристроях, як тільки буде виявлено NFC." + }, + "yubikeysUpdated": { + "message": "YubiKey оновлено" + }, + "disableAllKeys": { + "message": "Вимкнути всі ключі" + }, + "twoFactorDuoDesc": { + "message": "Введіть інформацію про програму Bitwarden з вашої панелі адміністратора Duo." + }, + "twoFactorDuoIntegrationKey": { + "message": "Ключ інтеграції" + }, + "twoFactorDuoSecretKey": { + "message": "Секретний ключ" + }, + "twoFactorDuoApiHostname": { + "message": "Назва вузла API" + }, + "twoFactorEmailDesc": { + "message": "Дотримуйтесь цих кроків, щоб встановити двоетапну перевірку за допомогою електронної пошти:" + }, + "twoFactorEmailEnterEmail": { + "message": "Введіть адресу електронної пошти, на яку ви бажаєте отримувати коди перевірки" + }, + "twoFactorEmailEnterCode": { + "message": "Введіть отриманий 6-значний код перевірки з електронного повідомлення" + }, + "sendEmail": { + "message": "Надіслати повідомлення" + }, + "twoFactorU2fAdd": { + "message": "Додайте ключ безпеки FIDO U2F до свого облікового запису" + }, + "removeU2fConfirmation": { + "message": "Ви впевнені, що хочете вилучити цей ключ безпеки?" + }, + "twoFactorWebAuthnAdd": { + "message": "Додайте ключ безпеки WebAuthn до свого облікового запису" + }, + "readKey": { + "message": "Читати ключ" + }, + "keyCompromised": { + "message": "Ключ скомпрометований." + }, + "twoFactorU2fGiveName": { + "message": "Назвіть ключ безпеки для легкої його ідентифікації." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Під'єднайте ключ безпеки до USB вашого комп'ютера і натисніть кнопку \"Читати ключ\"." + }, + "twoFactorU2fTouchButton": { + "message": "Якщо ключ безпеки має кнопку, торкніться її." + }, + "twoFactorU2fSaveForm": { + "message": "Зберегти форму." + }, + "twoFactorU2fWarning": { + "message": "У зв'язку з обмеженнями платформи, FIDO U2F не можна використовувати в усіх програмах Bitwarden. Вам слід активувати іншого провайдера двоетапної перевірки, щоб ви могли отримати доступ до свого облікового запису, коли неможливо скористатися FIDO U2F. Підтримувані платформи:" + }, + "twoFactorU2fSupportWeb": { + "message": "Веб сховище і розширення браузера на комп'ютерах і ноутбуках з браузерами, що мають підтримку U2F (Chrome, Opera, Vivaldi, або Firefox з увімкненим FIDO U2F)." + }, + "twoFactorU2fWaiting": { + "message": "Чекаємо доки ви торкнетеся кнопки на своєму ключі безпеки" + }, + "twoFactorU2fClickSave": { + "message": "Натисніть кнопку \"Зберегти\" внизу, щоб активувати двоетапну перевірку з використанням цього ключа." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "Сталася проблема при читанні ключа безпеки. Спробуйте знову." + }, + "twoFactorWebAuthnWarning": { + "message": "У зв'язку з обмеженнями платформи, WebAuthn не можна використовувати в усіх програмах Bitwarden. Вам слід активувати іншого провайдера двоетапної перевірки, щоб ви могли отримати доступ до свого облікового запису, коли неможливо скористатися WebAuthn. Підтримувані платформи:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Веб сховище і розширення браузера на комп'ютерах і ноутбуках з браузерами, що мають підтримку WebAuthn (Chrome, Opera, Vivaldi, або Firefox з увімкненим FIDO U2F)." + }, + "twoFactorRecoveryYourCode": { + "message": "Ваш код відновлення двоетапної перевірки Bitwarden" + }, + "twoFactorRecoveryNoCode": { + "message": "Ви ще не увімкнули жодного провайдера двоетапної перевірки. Після того, як ви це зробите, ви можете повернутися сюди для отримання коду відновлення." + }, + "printCode": { + "message": "Друкувати код", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Звіти" + }, + "reportsDesc": { + "message": "Визначте і закрийте прогалини в безпеці у ваших облікових записах, натиснувши на звіти нижче." + }, + "unsecuredWebsitesReport": { + "message": "Незахищені вебсайти" + }, + "unsecuredWebsitesReportDesc": { + "message": "URL-адреси, що починаються з http:// не мають надійного шифрування. Змініть URL-адреси цих облікових записів на https:// для використання безпечного з'єднання." + }, + "unsecuredWebsitesFound": { + "message": "Знайдено незахищені вебсайти" + }, + "unsecuredWebsitesFoundDesc": { + "message": "Ми знайшли $COUNT$ записів у вашому сховищі з незахищеними URL-адресами. Вам слід змінити їхні URL-схеми на https://, якщо вони це дозволяють.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "У вашому сховищі немає записів з незахищеними URL-адресами." + }, + "inactive2faReport": { + "message": "Неактивна двоетапна перевірка" + }, + "inactive2faReportDesc": { + "message": "Двоетапна перевірка надає додатковий рівень захисту для ваших облікових записів. Увімкніть двоетапнуперевірку з використанням вбудованих засобів Bitwarden для цих облікових записів, або скористайтеся альтернативним способом." + }, + "inactive2faFound": { + "message": "Знайдено записи без двоетапної перевірки" + }, + "inactive2faFoundDesc": { + "message": "Ми знайшли $COUNT$ вебсайтів у вашому сховищі, що можуть бути не налаштовані для двоетапної перевірки (за даними 2fa.directory). Для захисту цих облікових записів вам слід активувати двоетапну перевірку.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "У вашому сховищі не знайдено вебсайтів з неналаштованою двоетапною перевіркою." + }, + "instructions": { + "message": "Інструкції" + }, + "exposedPasswordsReport": { + "message": "Викриті паролі" + }, + "exposedPasswordsReportDesc": { + "message": "Паролі, викриті у витоках даних, є легкою мішенню для зловмисників. Змініть ці паролі для запобігання потенційних ризиків." + }, + "exposedPasswordsFound": { + "message": "Знайдено викриті паролі" + }, + "exposedPasswordsFoundDesc": { + "message": "У вашому сховищі знайдено $COUNT$ записів з паролями, які було викрито у відомих витоках даних. Вам слід змінити їх з використанням нового пароля.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "У вашому сховищі не знайдено записів з паролями, що були викриті у відомих витоках даних." + }, + "checkExposedPasswords": { + "message": "Перевірка викритих паролів" + }, + "exposedXTimes": { + "message": "Викрито $COUNT$ разів", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Ненадійні паролі" + }, + "weakPasswordsReportDesc": { + "message": "Ненадійні паролі можуть легко бути вгадані зловмисниками. Замініть ці паролі на надійні за допомогою генератора паролів." + }, + "weakPasswordsFound": { + "message": "Знайдено ненадійні паролі" + }, + "weakPasswordsFoundDesc": { + "message": "У вашому сховищі знайдено $COUNT$ записів з ненадійними паролями. Вам слід оновити їх з використанням надійніших паролів.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "У вашому сховищі немає ненадійних паролів." + }, + "reusedPasswordsReport": { + "message": "Повторювані паролі" + }, + "reusedPasswordsReportDesc": { + "message": "Повторне використання паролів дає змогу легко отримати доступ до багатьох облікових записів. Замініть ці паролі, щоб кожен з них був унікальним." + }, + "reusedPasswordsFound": { + "message": "Знайдено повторювані паролі" + }, + "reusedPasswordsFoundDesc": { + "message": "У вашому сховищі знайдено $COUNT$ паролів з повторним використанням. Вам слід змінити їх на унікальні.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "У вашому сховищі не знайдено паролів з повторним використанням." + }, + "reusedXTimes": { + "message": "Повторюється $COUNT$ разів", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Витік даних" + }, + "breachDesc": { + "message": "Викриті облікові дані можуть розкрити вашу особисту інформацію. Захистіть викриті облікові записи, увімкнувши двоктапну перевірку чи створивши надійніший пароль." + }, + "breachCheckUsernameEmail": { + "message": "Перевірте будь-які використовувані вами імена користувачів чи адреси електронної пошти." + }, + "checkBreaches": { + "message": "Перевірити витоки даних" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ не знайдено у відомих витоках даних.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Гарні новини", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ було знайдено в $COUNT$ різних витоках даних онлайн.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Знайдено скомпрометовані облікові дані" + }, + "compromisedData": { + "message": "Скомпрометовані дані" + }, + "website": { + "message": "Вебсайт" + }, + "affectedUsers": { + "message": "Впливає на користувачів" + }, + "breachOccurred": { + "message": "Стався витік даних" + }, + "breachReported": { + "message": "Отримано звіт про витік даних" + }, + "reportError": { + "message": "При завантаженні звіту сталася помилка. Спробуйте знову" + }, + "billing": { + "message": "Оплата" + }, + "accountCredit": { + "message": "Кредит рахунку", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Баланс рахунку", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Додати кредит", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Сума", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Доданий кредит з'явиться на вашому рахунку після повної обробки платежу. Деякі способи оплати затримуються і можуть оброблятися довше, ніж інші." + }, + "makeSureEnoughCredit": { + "message": "Будь ласка, переконайтеся, що на вашому рахунку достатньо коштів для цієї покупки. Якщо на вашому рахунку недостатньо коштів, то різниця спишеться з використанням вашого типового способу оплати. Ви можете додати кошти до свого рахунку на сторінці Оплата." + }, + "creditAppliedDesc": { + "message": "Кредит вашого рахунку можна використовувати для покупок. Будь-який наявний кредит автоматично використовуватиметься для рахунків, згенерованих для цього облікового запису." + }, + "goPremium": { + "message": "Перейти на Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "Ви оновилися до версії Premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Оновіть свій обліковий запис до тарифного плану Premium й отримайте чудові додаткові можливості." + }, + "premiumSignUpStorage": { + "message": "1 ГБ зашифрованого сховища для файлів." + }, + "premiumSignUpTwoStep": { + "message": "Додаткові можливості двоетапної перевірки, наприклад, YubiKey, FIDO U2F та Duo." + }, + "premiumSignUpEmergency": { + "message": "Екстрений доступ" + }, + "premiumSignUpReports": { + "message": "Гігієна паролів, здоров'я облікового запису, а також звіти про вразливості даних, щоб зберігати ваше сховище в безпеці." + }, + "premiumSignUpTotp": { + "message": "Генератор коду авторизації TOTP (2FA) для входу в сховище." + }, + "premiumSignUpSupport": { + "message": "Пріоритетну технічну підтримку." + }, + "premiumSignUpFuture": { + "message": "Всі майбутні функції преміум статусу. Їх буде більше!" + }, + "premiumPrice": { + "message": "Всього лише $PRICE$ / за рік!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Додатки" + }, + "premiumAccess": { + "message": "Преміум-доступ" + }, + "premiumAccessDesc": { + "message": "Ви можете додати преміум-доступ для всіх учасників вашої організації за $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Додаткове сховище (ГБ)" + }, + "additionalStorageGbDesc": { + "message": "# додаткових ГБ" + }, + "additionalStorageIntervalDesc": { + "message": "У ваш тарифний план включено зашифроване сховище файлів, розміром $SIZE$. Ви можете збільшити обсяг сховища по ціні $PRICE$ за ГБ /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Підсумок" + }, + "total": { + "message": "Всього" + }, + "year": { + "message": "рік" + }, + "month": { + "message": "місяць" + }, + "monthAbbr": { + "message": "міс.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "З вас буде одразу стягнуто плату згідно з обраним способом, а потім так само кожного року. Ви можете скасувати це в будь-який час." + }, + "paymentCharged": { + "message": "З вас буде одразу стягнуто плату згідно з обраним способом, а потім так само кожного $INTERVAL$. Ви можете скасувати це в будь-який час.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Ваш тарифний план має 7 днів безплатного пробного періоду. З вас не буде стягнуто плату до завершення цього періоду. Ви можете скасувати це в будь-який час." + }, + "paymentInformation": { + "message": "Інформація про оплату" + }, + "billingInformation": { + "message": "Платіжна інформація" + }, + "creditCard": { + "message": "Кредитна карта" + }, + "paypalClickSubmit": { + "message": "Натисніть кнопку PayPal для входу в свій обліковий запис PayPal, потім натисніть кнопку Відправити внизу для продовження." + }, + "cancelSubscription": { + "message": "Скасувати передплату" + }, + "subscriptionCanceled": { + "message": "Передплату було скасовано." + }, + "pendingCancellation": { + "message": "Очікування скасування" + }, + "subscriptionPendingCanceled": { + "message": "Передплату було позначено для скасування в кінці поточного оплаченого періоду." + }, + "reinstateSubscription": { + "message": "Відновити передплату" + }, + "reinstateConfirmation": { + "message": "Ви справді хочете вилучити очікуваний запит скасування і відновити вашу передплату?" + }, + "reinstated": { + "message": "Передплату було відновлено." + }, + "cancelConfirmation": { + "message": "Ви справді хочете скасувати? Ви втратите доступ до всіх можливостей, пов'язаних з нею після завершення поточного періоду передплати." + }, + "canceledSubscription": { + "message": "Передплату було скасовано." + }, + "neverExpires": { + "message": "Необмежений термін дії" + }, + "status": { + "message": "Статус" + }, + "nextCharge": { + "message": "Наступна оплата" + }, + "details": { + "message": "Подробиці" + }, + "downloadLicense": { + "message": "Завантажити ліцензію" + }, + "updateLicense": { + "message": "Оновити ліцензію" + }, + "updatedLicense": { + "message": "Ліцензію оновлено" + }, + "manageSubscription": { + "message": "Керувати передплатою" + }, + "storage": { + "message": "Сховище" + }, + "addStorage": { + "message": "Додати сховище" + }, + "removeStorage": { + "message": "Вилучити сховище" + }, + "subscriptionStorage": { + "message": "Ваша передплата включає всього $MAX_STORAGE$ ГБ зашифрованого сховища файлів. Ви зараз використовуєте $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Спосіб оплати" + }, + "noPaymentMethod": { + "message": "Файл не містить способу оплати." + }, + "addPaymentMethod": { + "message": "Додати спосіб оплати" + }, + "changePaymentMethod": { + "message": "Змінити спосіб оплати" + }, + "invoices": { + "message": "Рахунки" + }, + "noInvoices": { + "message": "Немає рахунків." + }, + "paid": { + "message": "Сплачено", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Не сплачено", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Транзакції", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "Немає транзакцій." + }, + "chargeNoun": { + "message": "Списання", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Повернення", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Будь-які оплати з'являтимуться у вашому рахунку як $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "ГБ сховища для додавання" + }, + "gbStorageRemove": { + "message": "ГБ сховища для вилучення" + }, + "storageAddNote": { + "message": "Додавання сховища призведе до змін суми вашої оплати і негайно буде стягнуто плату способом, зазначеним у файлі. Перша оплата буде пропорційна решті за поточний цикл оплати." + }, + "storageRemoveNote": { + "message": "Вилучення сховища призведе до змін у сумі вашої оплати і буде пропорційно розділено у вигляді кредиту за наступний цикл оплати." + }, + "adjustedStorage": { + "message": "Змінено $AMOUNT$ ГБ сховища.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Зв'язатися зі службою підтримки клієнтів" + }, + "updatedPaymentMethod": { + "message": "Спосіб оплати оновлено." + }, + "purchasePremium": { + "message": "Придбати преміум" + }, + "licenseFile": { + "message": "Файл ліцензії" + }, + "licenseFileDesc": { + "message": "Ваш файл ліцензії має назву $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "Для оновлення вашого облікового запису до Premium, вам необхідно вивантажити дійсний файл ліцензії." + }, + "uploadLicenseFileOrg": { + "message": "Для створення організації, розміщеної на локальному хостингу, вам необхідно вивантажити дійсний файл ліцензії." + }, + "accountEmailMustBeVerified": { + "message": "Необхідно підтвердити адресу електронної пошти вашого облікового запису." + }, + "newOrganizationDesc": { + "message": "Організації дозволяють вам спільно використовувати ваше сховище з іншими, а також керувати пов'язаними користувачами окремих записів, наприклад, родиною, невеликою командою, або великою компанією." + }, + "generalInformation": { + "message": "Загальна інформація" + }, + "organizationName": { + "message": "Назва організації" + }, + "accountOwnedBusiness": { + "message": "Цей обліковий запис належить компанії." + }, + "billingEmail": { + "message": "Адреса електронної пошти для оплати" + }, + "businessName": { + "message": "Назва компанії" + }, + "chooseYourPlan": { + "message": "Оберіть свій тарифний план" + }, + "users": { + "message": "Користувачі" + }, + "userSeats": { + "message": "Місця користувачів" + }, + "additionalUserSeats": { + "message": "Додаткові місця користувачів" + }, + "userSeatsDesc": { + "message": "# місць користувачів" + }, + "userSeatsAdditionalDesc": { + "message": "Ваш тарифний план постачається з $BASE_SEATS$ місць користувачів. Ви можете додати місця для користувачів по ціні $SEAT_PRICE$ за користувача на місяць.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "Скільки місць користувачів вам необхідно? При необхідності, ви також можете пізніше додати місця користувачів." + }, + "planNameFree": { + "message": "Безплатно", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "Для тестування чи особистого користування спільно з $COUNT$ іншим користувачем.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Родина" + }, + "planDescFamilies": { + "message": "Для особистого користування спільно з родиною і друзями." + }, + "planNameTeams": { + "message": "Команда" + }, + "planDescTeams": { + "message": "Для компаній та інших командних організацій." + }, + "planNameEnterprise": { + "message": "Компанія" + }, + "planDescEnterprise": { + "message": "Для компаній та інших великих організацій." + }, + "freeForever": { + "message": "Безплатно назавжди" + }, + "includesXUsers": { + "message": "включає $COUNT$ користувачів", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Додаткові користувачі" + }, + "costPerUser": { + "message": "$COST$ за користувача", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Обмеження для $COUNT$ користувачів (разом з вами)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Обмеження для $COUNT$ збірок", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Додавання й спільне користування з $COUNT$ користувачами", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Додавання й спільне користування з необмеженою кількістю користувачів" + }, + "createUnlimitedCollections": { + "message": "Створення необмежених збірок" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ зашифрованого сховища файлів", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "Попереднє розміщення (необов'язково)" + }, + "usersGetPremium": { + "message": "Користувачі отримують доступ до можливостей Premium" + }, + "controlAccessWithGroups": { + "message": "Контроль доступу користувачів за допомогою груп" + }, + "syncUsersFromDirectory": { + "message": "Синхронізація користувачів і груп з каталогу" + }, + "trackAuditLogs": { + "message": "Відстеження дій користувачів з журналами аудиту" + }, + "enforce2faDuo": { + "message": "Вимагайте 2FA з використанням Duo" + }, + "priorityCustomerSupport": { + "message": "Пріоритетна підтримка користувачів" + }, + "xDayFreeTrial": { + "message": "$COUNT$ днів безплатного пробного періоду. Можна скасувати в будь-який час", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Щомісяця" + }, + "annually": { + "message": "Щороку" + }, + "basePrice": { + "message": "Базова ціна" + }, + "organizationCreated": { + "message": "Організацію створено" + }, + "organizationReadyToGo": { + "message": "Ваша нова організація готова до використання!" + }, + "organizationUpgraded": { + "message": "Вашу організацію було оновлено." + }, + "leave": { + "message": "Покинути" + }, + "leaveOrganizationConfirmation": { + "message": "Ви справді хочете покинути цю організацію?" + }, + "leftOrganization": { + "message": "Ви покинули організацію." + }, + "defaultCollection": { + "message": "Типова збірка" + }, + "getHelp": { + "message": "Отримати допомогу" + }, + "getApps": { + "message": "Отримати додатки" + }, + "loggedInAs": { + "message": "Вхід виконано" + }, + "eventLogs": { + "message": "Журнали подій" + }, + "people": { + "message": "Люди" + }, + "policies": { + "message": "Політики" + }, + "singleSignOn": { + "message": "Єдиний вхід" + }, + "editPolicy": { + "message": "Змінити політику" + }, + "groups": { + "message": "Групи" + }, + "newGroup": { + "message": "Нова група" + }, + "addGroup": { + "message": "Додати групу" + }, + "editGroup": { + "message": "Змінити групу" + }, + "deleteGroupConfirmation": { + "message": "Ви справді хочете видалити цю групу?" + }, + "removeUserConfirmation": { + "message": "Ви справді хочете вилучити цього користувача?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Попередження! Цей користувач потребує Key Connector для керування шифруванням. Вилучення цього користувача з вашої організації остаточно вимкне його обліковий запис. Цю дію неможливо скасувати. Ви хочете продовжити?" + }, + "externalId": { + "message": "Зовнішній ID" + }, + "externalIdDesc": { + "message": "Зовнішній ID може використовуватись в якості посилання або для зв'язку цього ресурсу із зовнішньою системою, такою як каталок користувача." + }, + "accessControl": { + "message": "Контроль доступу" + }, + "groupAccessAllItems": { + "message": "Ця грума має доступ і дозвіл редагування записів." + }, + "groupAccessSelectedCollections": { + "message": "Ця група має доступ лише до окремих збірок." + }, + "readOnly": { + "message": "Лише читання" + }, + "newCollection": { + "message": "Нова збірка" + }, + "addCollection": { + "message": "Додати збірку" + }, + "editCollection": { + "message": "Змінити збірку" + }, + "deleteCollectionConfirmation": { + "message": "Ви справді хочете видалити цю збірку?" + }, + "editUser": { + "message": "Редагувати користувача" + }, + "inviteUser": { + "message": "Запросити користувача" + }, + "inviteUserDesc": { + "message": "Запросіть нового користувача до вашої організації, ввівши адресу е-пошти його облікового запису Bitwarden. Якщо він ще не має облікового запису, він отримає запит на його створення." + }, + "inviteMultipleEmailDesc": { + "message": "Ви можете запросити до $COUNT$ користувачів за раз, розділивши адреси е-пошти комою.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "Цей користувач використовує двоетапну перевірку для захисту свого облікового запису." + }, + "userAccessAllItems": { + "message": "Цей користувач має доступ і можливість змінювати всі записи." + }, + "userAccessSelectedCollections": { + "message": "Цей користувач має доступ лише до обраних збірок." + }, + "search": { + "message": "Пошук" + }, + "invited": { + "message": "Запрошено" + }, + "accepted": { + "message": "Схвалено" + }, + "confirmed": { + "message": "Підтверджено" + }, + "clientOwnerEmail": { + "message": "Е-пошта власника клієнта" + }, + "owner": { + "message": "Власник" + }, + "ownerDesc": { + "message": "Користувач з найвищими привілеями, який може керувати всіма налаштуваннями організації." + }, + "clientOwnerDesc": { + "message": "Цей користувач повинен бути незалежним від постачальника. Якщо постачальник не пов'язаний з організацією, цей користувач підтримуватиме право власності організації." + }, + "admin": { + "message": "Адміністратор" + }, + "adminDesc": { + "message": "Адміністратори мають доступ і можливість керування всіма записами, збірками та користувачами вашої організації." + }, + "user": { + "message": "Користувач" + }, + "userDesc": { + "message": "Звичайний користувач з доступом до пов'язаних збірок вашої організації." + }, + "manager": { + "message": "Менеджер" + }, + "managerDesc": { + "message": "Менеджери мають доступ і можуть керувати пов'язаними збірками вашої організації." + }, + "all": { + "message": "Усі" + }, + "refresh": { + "message": "Оновити" + }, + "timestamp": { + "message": "Мітка часу" + }, + "event": { + "message": "Подія" + }, + "unknown": { + "message": "Невідомо" + }, + "loadMore": { + "message": "Завантажити більше" + }, + "mobile": { + "message": "Мобільний", + "description": "Mobile app" + }, + "extension": { + "message": "Розширення", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Комп'ютер", + "description": "Desktop app" + }, + "webVault": { + "message": "Веб сховище" + }, + "loggedIn": { + "message": "Вхід виконано." + }, + "changedPassword": { + "message": "Пароль облікового запису змінено." + }, + "enabledUpdated2fa": { + "message": "Двоетапну перевірку увімкнено/оновлено." + }, + "disabled2fa": { + "message": "Двоетапну перевірку вимкнено." + }, + "recovered2fa": { + "message": "Обліковий запис відновлено після двоетапної перевірки." + }, + "failedLogin": { + "message": "Не вдалося виконати вхід через неправильний пароль." + }, + "failedLogin2fa": { + "message": "Не вдалося виконати вхід через невдалу двоетапну перевірку." + }, + "exportedVault": { + "message": "Експортовано сховище." + }, + "exportedOrganizationVault": { + "message": "Експортовано сховище організації." + }, + "editedOrgSettings": { + "message": "Налаштування організації змінено." + }, + "createdItemId": { + "message": "Створено запис $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Змінений елемент $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Запис $ID$ перенесено до смітника.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Запис $ID$ переміщено до організації.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Переглянуто запис $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Переглянуто пароль для запису $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Переглянути приховане поле запису $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Переглянуто код безпеки запису $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Скопійовано пароль запису $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Скопійовано приховане поле запису $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Скопійовано код безпеки запису $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Виконано автозаповнення запису $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Створена збірка $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Змінена збірка $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Видалена збірка $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "$ID$ зміненої політики.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Створена група $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Змінена група $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Видалена група $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Вилучений користувач $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Створено вкладення для елемента $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Видалено вкладення для елемента $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Змінена збірка для елемента $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Запрошений користувач $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Підтверджений користувач $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Змінений користувач $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Змінені групи для користувача $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Незв'язаний SSO для користувача $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Створено організацію $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Додано організацію $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Вилучено організацію $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Отримано доступ до сховища організації $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Пристрій" + }, + "view": { + "message": "Перегляд" + }, + "invalidDateRange": { + "message": "Недійсний проміжок часу." + }, + "errorOccurred": { + "message": "Сталася помилка." + }, + "userAccess": { + "message": "Доступ користувачів" + }, + "userType": { + "message": "Тип користувача" + }, + "groupAccess": { + "message": "Доступ до групи" + }, + "groupAccessUserDesc": { + "message": "Змінюйте приналежність користувача до груп." + }, + "invitedUsers": { + "message": "Запрошений користувач." + }, + "resendInvitation": { + "message": "Повторно надіслати запрошення" + }, + "resendEmail": { + "message": "Надіслати лист повторно" + }, + "hasBeenReinvited": { + "message": "$USER$ було повторно запрошено.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Підтвердити" + }, + "confirmUser": { + "message": "Підтвердити користувача" + }, + "hasBeenConfirmed": { + "message": "$USER$ було підтверджено.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Підтвердити користувачів" + }, + "usersNeedConfirmed": { + "message": "У вас є користувачі, які підтвердили ваше запрошення, але все ще мають бути схвалені. Користувачі не матимуть доступу до організації доки ви їх не затвердите." + }, + "startDate": { + "message": "Дата початку" + }, + "endDate": { + "message": "Дата завершення" + }, + "verifyEmail": { + "message": "Підтвердити е-пошту" + }, + "verifyEmailDesc": { + "message": "Підтвердьте е-пошту вашого облікового запису для розблокування доступу до всіх можливостей." + }, + "verifyEmailFirst": { + "message": "Спершу вам необхідно підтвердити е-пошту вашого облікового запису." + }, + "checkInboxForVerification": { + "message": "Знайдіть посилання для підтвердження у своїх поштовій скриньці." + }, + "emailVerified": { + "message": "Вашу е-пошту було підтверджено." + }, + "emailVerifiedFailed": { + "message": "Неможливо підтвердити вашу е-пошту. Спробуйте надіслати нове повідомлення для підтвердження." + }, + "emailVerificationRequired": { + "message": "Необхідно підтвердити е-пошту" + }, + "emailVerificationRequiredDesc": { + "message": "Для використання цієї функції необхідно підтвердити електронну пошту." + }, + "updateBrowser": { + "message": "Оновити браузер" + }, + "updateBrowserDesc": { + "message": "Ви використовуєте непідтримуваний браузер. Веб сховище може працювати неправильно." + }, + "joinOrganization": { + "message": "Приєднатися до організації" + }, + "joinOrganizationDesc": { + "message": "Вас було запрошено приєднатися до зазначеної вгорі організації. Щоб підтвердити запрошення, вам необхідно увійти в обліковий запис Bitwarden, або створити його." + }, + "inviteAccepted": { + "message": "Запрошення прийнято" + }, + "inviteAcceptedDesc": { + "message": "Ви можете отримати доступ до цієї організації одразу після підтвердження адміністратором. Ми надішлемо вам електронне повідомлення, коли це станеться." + }, + "inviteAcceptFailed": { + "message": "Не вдалося прийняти запрошення. Попросіть адміністратора організації надіслати вам нове." + }, + "inviteAcceptFailedShort": { + "message": "Не вдається прийняти запрошення. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Запам'ятати е-пошту" + }, + "recoverAccountTwoStepDesc": { + "message": "Якщо вам не вдається отримати доступ до свого облікового запису з використанням звичайної двоетапної перевірки, ви можете скористатися своїм кодом відновлення, щоб вимкнути всіх провайдерів двоетапної перевірки для вашого облікового запису." + }, + "recoverAccountTwoStep": { + "message": "Відновити вхід з використанням двоетапної перевірки" + }, + "twoStepRecoverDisabled": { + "message": "Вхід з використанням двоетапної перевірки було вимкнено." + }, + "learnMore": { + "message": "Докладніше" + }, + "deleteRecoverDesc": { + "message": "Введіть свою адресу е-пошти внизу, щоб відновити і видалити обліковий запис." + }, + "deleteRecoverEmailSent": { + "message": "Якщо ваш обліковий запис існує, ми надіслали вам електронне повідомлення з подальшими інструкціями." + }, + "deleteRecoverConfirmDesc": { + "message": "Ви відправили запит видалення облікового запису Bitwarden. Натисніть на кнопку внизу для підтвердження." + }, + "myOrganization": { + "message": "Моя організація" + }, + "deleteOrganization": { + "message": "Видалити організацію" + }, + "deletingOrganizationContentWarning": { + "message": "Введіть головний пароль для підтвердження видалення $ORGANIZATION$ та всіх пов'язаних даних. Дані сховища в $ORGANIZATION$ включають:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "Облікові записи користувачів залишатимуться активними після видалення, але більше не будуть пов'язані з цією організацією." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Видалення $ORGANIZATION$ є остаточним і незворотнім.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Організацію видалено" + }, + "organizationDeletedDesc": { + "message": "Організацію і всі пов'язані дані було видалено." + }, + "organizationUpdated": { + "message": "Організацію оновлено" + }, + "taxInformation": { + "message": "Інформація про податки" + }, + "taxInformationDesc": { + "message": "Клієнтам у США необхідно вказувати поштовий індекс для забезпечення вимог податкового законодавства. Для інших країн надання ІПН (ПДВ/GST) та/або адреси є необов'язковим і ви можете вказувати ці дані для включення в рахунки." + }, + "billingPlan": { + "message": "Тарифний план", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Оновити тарифний план", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Перейдіть на передплату вищого рівня, вказавши інформацію внизу. Переконайтеся, що ваш обліковий запис має актуальні дані про спосіб оплати.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Рахунок #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Переглянути рахунок" + }, + "downloadInvoice": { + "message": "Завантажити рахунок" + }, + "verifyBankAccount": { + "message": "Підтвердьте банківський рахунок" + }, + "verifyBankAccountDesc": { + "message": "Ми зробили два мікро-депозити для вашого облікового запису (їх поява може тривати 1-2 робочих дні). Введіть ці суми для підтвердження вашого банківського рахунку." + }, + "verifyBankAccountInitialDesc": { + "message": "Оплата з банківського рахунку доступна лише для клієнтів США. Вам необхідно буде засвідчити свій банківський рахунок. Ми зробимо два мікро-депозити протягом наступних 1-2 днів. Введіть ці суми на сторінці оплати організації для підтвердження банківського рахунку." + }, + "verifyBankAccountFailureWarning": { + "message": "Неможливість засвідчення банківського рахунку призведе до втраченого платежу і ваша передплата залишиться неактивною." + }, + "verifiedBankAccount": { + "message": "Банківський рахунок було засвідчено." + }, + "bankAccount": { + "message": "Банківський рахунок" + }, + "amountX": { + "message": "Сума $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Номер відстеження", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Номер рахунку" + }, + "accountHolderName": { + "message": "Ім'я власника рахунку" + }, + "bankAccountType": { + "message": "Тип рахунку" + }, + "bankAccountTypeCompany": { + "message": "Компанія (Бізнес)" + }, + "bankAccountTypeIndividual": { + "message": "Індивідуальний (Особистий)" + }, + "enterInstallationId": { + "message": "Введіть ID вашої інсталяції" + }, + "limitSubscriptionDesc": { + "message": "Встановіть ліміт місць для вашої передплати. Після досягнення цього ліміту ви не зможете запрошувати нових користувачів." + }, + "maxSeatLimit": { + "message": "Максимальний ліміт місць (необов'язково)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Максимальна потенційна вартість місця" + }, + "addSeats": { + "message": "Додати місця", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Вилучити місця", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Коригування вашої передплати призведе до відповідних змін у ваших рахунках. Якщо нові запрошені користувачі перевищать обмеження ваших місць, ви відразу отримаєте пропорційний рахунок для оплати за додаткових користувачів." + }, + "subscriptionUserSeats": { + "message": "Ваша передплата дозволяє всього $COUNT$ користувачів.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Обмеження передплати (Необов'язково)" + }, + "subscriptionSeats": { + "message": "Передплачені місця" + }, + "subscriptionUpdated": { + "message": "Передплату оновлено" + }, + "additionalOptions": { + "message": "Додаткові налаштування" + }, + "additionalOptionsDesc": { + "message": "Для отримання додаткової допомоги в керуванні вашою передплатою, будь ласка, зверніться до служби підтримки." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Коригування вашої передплати призведе до відповідних змін у ваших рахунках. Якщо нові запрошені користувачі перевищать обмеження ваших місць, ви відразу отримаєте пропорційний рахунок для оплати за додаткових користувачів." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Коригування вашої передплати призведе до відповідних змін у ваших рахунках. Якщо нові запрошені користувачі перевищать обмеження ваших місць, ви відразу отримаєте пропорційний рахунок для оплати за додаткових користувачів, доки не досягнуто вашого обмеження $MAX$ місць.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "Ви не можете запросити більше $COUNT$ користувачів без переходу на вищий тарифний план.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "Ви не можете запросити більше $COUNT$ користувачів без оновлення вашого тарифного плану. Будь ласка, зв'яжіться зі службою підтримки для оновлення.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Ваша передплата дозволяє всього $COUNT$ користувачів. Ваш тарифний план спонсорується та оплачується сторонньою організацією.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Коригування вашої передплати призведе до відповідних змін у ваших рахунках. Ви не можете запросити понад $COUNT$ користувачів без збільшення передплачених місць.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Додається місць" + }, + "seatsToRemove": { + "message": "Вилучається місць" + }, + "seatsAddNote": { + "message": "Додавання місць користувачів призведе до змін суми вашого рахунку і одразу ж буде стягнуто плату згідно зазначеного способу. Перша оплата буде пропорційною залишку поточного циклу оплати." + }, + "seatsRemoveNote": { + "message": "Вилучення місць користувачів призведе до змін суми вашого рахунку, що буде пропорційно розділено у вигляді кредитів за наступний цикл оплати." + }, + "adjustedSeats": { + "message": "Змінено $AMOUNT$ місць користувачів.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Ключ оновлено" + }, + "updateKeyTitle": { + "message": "Оновити ключ" + }, + "updateEncryptionKey": { + "message": "Оновити ключ шифрування" + }, + "updateEncryptionKeyShortDesc": { + "message": "Зараз ви використовуєте застарілу схему шифрування." + }, + "updateEncryptionKeyDesc": { + "message": "Ми перейшли на більші ключі шифрування, що гарантує кращу безпеку і доступ до новіших функцій. Оновлення вашого ключа шифрування є швидким і простим процесом. Просто введіть свій головний пароль внизу. Це оновлення невдовзі стане обов'язковою вимогою." + }, + "updateEncryptionKeyWarning": { + "message": "Після оновлення вашого ключа шифрування вам необхідно вийти з системи і потім виконати повторний вхід у всіх програмах Bitwarden, які ви використовуєте. Збій при виході та повторному вході може призвести до пошкодження даних. Ми спробуємо завершити ваші сеанси автоматично, однак, цей процес може відбутися із затримкою." + }, + "updateEncryptionKeyExportWarning": { + "message": "Будь-які зашифровані експортування, які ви зберегли, також стануть недійсними." + }, + "subscription": { + "message": "Передплата" + }, + "loading": { + "message": "Завантаження" + }, + "upgrade": { + "message": "Оновити" + }, + "upgradeOrganization": { + "message": "Оновити організацію" + }, + "upgradeOrganizationDesc": { + "message": "Ця функція недоступна для безплатних організацій. Перемкніться на платний тарифний план для розблокування додаткових можливостей." + }, + "createOrganizationStep1": { + "message": "Створити організацію: Крок 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Перед створенням вашої організації, вам спочатку необхідно створити безплатний особистий обліковий запис." + }, + "refunded": { + "message": "Відшкодовано" + }, + "nothingSelected": { + "message": "Ви нічого не обрали." + }, + "acceptPolicies": { + "message": "Позначивши цей прапорець, ви погоджуєтеся з:" + }, + "acceptPoliciesError": { + "message": "Умови користування та політика приватності не погоджені." + }, + "termsOfService": { + "message": "Умови користування" + }, + "privacyPolicy": { + "message": "Політику приватності" + }, + "filters": { + "message": "Фільтри" + }, + "vaultTimeout": { + "message": "Час очікування сховища" + }, + "vaultTimeoutDesc": { + "message": "Оберіть дію, яка виконається після завершення часу очікування вашого сховища." + }, + "oneMinute": { + "message": "1 хвилина" + }, + "fiveMinutes": { + "message": "5 хвилин" + }, + "fifteenMinutes": { + "message": "15 хвилин" + }, + "thirtyMinutes": { + "message": "30 хвилин" + }, + "oneHour": { + "message": "1 година" + }, + "fourHours": { + "message": "4 години" + }, + "onRefresh": { + "message": "Перезавантаження сторінки" + }, + "dateUpdated": { + "message": "Оновлено", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Пароль оновлено", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Організацію вимкнено." + }, + "licenseIsExpired": { + "message": "Термін дії ліцензії завершився." + }, + "updatedUsers": { + "message": "Оновлені користувачі" + }, + "selected": { + "message": "Вибрано" + }, + "ownership": { + "message": "Власник" + }, + "whoOwnsThisItem": { + "message": "Хто є власником цього елемента?" + }, + "strong": { + "message": "Надійний", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Хороший", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Слабкий", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Дуже слабкий", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Слабкий головний пароль" + }, + "weakMasterPasswordDesc": { + "message": "Обраний вами головний пароль є слабким. Для належного захисту свого облікового запису Bitwarden, вам слід використовувати надійний головний пароль (або парольну фразу). Ви впевнені, що хочете використати цей пароль?" + }, + "rotateAccountEncKey": { + "message": "Також повернути ключ шифрування мого облікового запису" + }, + "rotateEncKeyTitle": { + "message": "Повернути ключ шифрування" + }, + "rotateEncKeyConfirmation": { + "message": "Ви справді хочете повернути ключ шифрування облікового запису?" + }, + "attachmentsNeedFix": { + "message": "Цей елемент має старі вкладені файли, які необхідно виправити." + }, + "attachmentFixDesc": { + "message": "Цей старий вкладений файл необхідно виправити. Натисніть, щоб дізнатися більше." + }, + "fix": { + "message": "Виправити", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "У вашому сховищі є старі вкладені файли, які необхідно виправити перед тим, як повертати ключ шифрування облікового запису." + }, + "yourAccountsFingerprint": { + "message": "Фраза відбитку вашого облікового запису", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "Для забезпечення цілісності ваших ключів шифрування, будь ласка, засвідчіть фразу відбитку пальця користувача.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Ніколи не питати про засвідчення фрази відбитку для запрошених користувачів (Не рекомендовано)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Безплатно", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "Ключ API" + }, + "apiKeyDesc": { + "message": "Ваш ключ API може бути використаний для авторизації публічного API Bitwarden." + }, + "apiKeyRotateDesc": { + "message": "Поворот ключа API спричинить анулювання попереднього ключа. Ви можете повернути свій ключ API, якщо вважаєте, що поточний ключ більше не є безпечним для використання." + }, + "apiKeyWarning": { + "message": "Ваш ключ API має повний доступ до організації. Він повинен зберігатися в секреті." + }, + "userApiKeyDesc": { + "message": "Ваш ключ API може бути використаний для авторизації в Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Ваш ключ API є альтернативним засобом перевірки. Його слід зберігати в таємниці." + }, + "oauth2ClientCredentials": { + "message": "Облікові дані клієнта OAuth 2.0", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "Переглянути ключ API" + }, + "rotateApiKey": { + "message": "Повернути ключ API" + }, + "selectOneCollection": { + "message": "Ви повинні обрати принаймні одну збірку." + }, + "couldNotChargeCardPayInvoice": { + "message": "Нам не вдалося виконати оплату з вашої картки. Будь ласка, перегляньте і проведіть оплату за рахунком, вказаним внизу." + }, + "inAppPurchase": { + "message": "Покупка в додатку" + }, + "cannotPerformInAppPurchase": { + "message": "Ви не можете виконати цю дію під час використання способу оплати покупки в додатку." + }, + "manageSubscriptionFromStore": { + "message": "Ви повинні керувати своєю передплатою з магазину, в якому виконали покупку в додатку." + }, + "minLength": { + "message": "Мінімальна довжина" + }, + "clone": { + "message": "Клонувати" + }, + "masterPassPolicyDesc": { + "message": "Встановіть мінімальні вимоги надійності головного пароля." + }, + "twoStepLoginPolicyDesc": { + "message": "Зобов'язувати користувачів встановлювати двоетапну перевірку в їхніх особистих облікових записах." + }, + "twoStepLoginPolicyWarning": { + "message": "Учасники організації, які не є власниками, чи адміністратори, в яких не увімкнено двоетапну перевірку для їхніх особистих облікових записів, будуть вилучені з організації та проінформовані поштовим повідомленням." + }, + "twoStepLoginPolicyUserWarning": { + "message": "Ви включені до організації, яка зобов'язує використання двоетапної перевірки у вашому обліковому записі. Якщо ви вимкнете всі способи двоетапної перевірки, вас буде автоматично вилучено з цієї організації." + }, + "passwordGeneratorPolicyDesc": { + "message": "Встановіть мінімальні вимоги для параметрів генерування пароля." + }, + "passwordGeneratorPolicyInEffect": { + "message": "На параметри генератора впливають одна чи декілька політик організації." + }, + "masterPasswordPolicyInEffect": { + "message": "Політика однієї або декількох організацій зобов'язує дотримання таких вимог для головного пароля:" + }, + "policyInEffectMinComplexity": { + "message": "Мінімальна оцінка складності $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Мінімальна довжина $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Наявність одного чи більше символів верхнього регістру" + }, + "policyInEffectLowercase": { + "message": "Наявність одного чи більше символів нижнього регістру" + }, + "policyInEffectNumbers": { + "message": "Наявність однієї чи більше цифр" + }, + "policyInEffectSpecial": { + "message": "Наявність одного чи більше таких спеціальних символів $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Ваш новий головний пароль не відповідає вимогам політики." + }, + "minimumNumberOfWords": { + "message": "Мінімальна кількість слів" + }, + "defaultType": { + "message": "Стандартний тип" + }, + "userPreference": { + "message": "Користувацьке налаштування" + }, + "vaultTimeoutAction": { + "message": "Дія після часу очікування сховища" + }, + "vaultTimeoutActionLockDesc": { + "message": "Щоб відновити доступ до заблокованого сховища, необхідно повторно ввести головний пароль." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "Щоб відновити доступ до сховища після виходу, необхідно повторно авторизуватись." + }, + "lock": { + "message": "Блокувати", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Смітник", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Пошук у смітнику" + }, + "permanentlyDelete": { + "message": "Остаточно видалити" + }, + "permanentlyDeleteSelected": { + "message": "Остаточно видалити вибрані" + }, + "permanentlyDeleteItem": { + "message": "Остаточно видалити запис" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Ви дійсно хочете остаточно видалити цей запис?" + }, + "permanentlyDeletedItem": { + "message": "Запис остаточно видалено" + }, + "permanentlyDeletedItems": { + "message": "Записи остаточно видалено" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "Ви вибрали $COUNT$ записів для остаточного видалення. Ви справді хочете остаточно видалити всі ці записи?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Запис $ID$ остаточно видалено.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Відновити" + }, + "restoreSelected": { + "message": "Відновити вибрані" + }, + "restoreItem": { + "message": "Відновити запис" + }, + "restoredItem": { + "message": "Запис відновлено" + }, + "restoredItems": { + "message": "Записи відновлено" + }, + "restoreItemConfirmation": { + "message": "Ви дійсно хочете відновити цей запис?" + }, + "restoreItems": { + "message": "Відновити записи" + }, + "restoreSelectedItemsDesc": { + "message": "Ви вибрали $COUNT$ записів для відновлення. Ви справді хочете відновити всі ці записи?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Запис $ID$ відновлено.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Вихід скасує всі права доступу до вашого сховища і вимагатиме авторизації після завершення часу очікування. Ви дійсно хочете використати цей параметр?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Підтвердження дії часу очікування" + }, + "hidePasswords": { + "message": "Приховати паролі" + }, + "countryPostalCodeRequiredDesc": { + "message": "Нам необхідна ця інформація лише для розрахунку податку на продажі та фінансових звітів." + }, + "includeVAT": { + "message": "Включити інформацію про ПДВ/GST (необов'язково)" + }, + "taxIdNumber": { + "message": "ІПН/GST" + }, + "taxInfoUpdated": { + "message": "Податкову інформацію оновлено." + }, + "setMasterPassword": { + "message": "Встановити головний пароль" + }, + "ssoCompleteRegistration": { + "message": "Щоб завершити налаштування входу з SSO, встановіть головний пароль для доступу і захисту сховища." + }, + "identifier": { + "message": "Ідентифікатор" + }, + "organizationIdentifier": { + "message": "Ідентифікатор організації" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Виконуйте вхід з використанням порталу єдиного входу вашої організації. Для початку введіть ідентифікатор вашої організації." + }, + "enterpriseSingleSignOn": { + "message": "Єдиний корпоративний вхід (SSO)" + }, + "ssoHandOff": { + "message": "Тепер ви можете закрити цю вкладку і продовжити в розширенні." + }, + "includeAllTeamsFeatures": { + "message": "Усі функції команд, плюс:" + }, + "includeSsoAuthentication": { + "message": "SSO автентифікація через SAML2.0 та OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Політики організації" + }, + "ssoValidationFailed": { + "message": "Збій перевірки SSO" + }, + "ssoIdentifierRequired": { + "message": "Потрібен ідентифікатор організації." + }, + "unlinkSso": { + "message": "Від'єднати SSO" + }, + "unlinkSsoConfirmation": { + "message": "Ви справді хочете від'єднати SSO для цієї організації?" + }, + "linkSso": { + "message": "Під'єднати SSO" + }, + "singleOrg": { + "message": "Єдина організація" + }, + "singleOrgDesc": { + "message": "Заборонити користувачам приєднуватися до будь-яких інших організацій." + }, + "singleOrgBlockCreateMessage": { + "message": "Ваша організація має політику, що не дозволяє вам приєднуватися до більш, ніж однієї організації. Будь ласка, зв'яжіться з адміністратором вашої організації, або увійдіть з іншим обліковим записом Bitwarden." + }, + "singleOrgPolicyWarning": { + "message": "Учасники організації, які не є власниками чи адміністраторами, але вже є учасниками іншої організації, будуть вилучені з вашої організації." + }, + "requireSso": { + "message": "Авторизація через єдиний вхід (SSO)" + }, + "requireSsoPolicyDesc": { + "message": "Вимагати від користувачів входити в систему через єдиний вхід (SSO) компанії." + }, + "prerequisite": { + "message": "Передумови" + }, + "requireSsoPolicyReq": { + "message": "Для активації цієї політики необхідно увімкнути політику єдиної організації компанії." + }, + "requireSsoPolicyReqError": { + "message": "Політику єдиної організації компанії не увімкнено." + }, + "requireSsoExemption": { + "message": "Власники організації та адміністратори звільняються від дотримання цієї політики." + }, + "sendTypeFile": { + "message": "Файл" + }, + "sendTypeText": { + "message": "Текст" + }, + "createSend": { + "message": "Створити нове відправлення", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Змінити відправлення", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Відправлення створено", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Відправлення змінено", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Відправлення видалено", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Видалити відправлення", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Ви дійсно хочете видалити це відправлення?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Який це тип відправлення?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Дата видалення" + }, + "deletionDateDesc": { + "message": "Відправлення буде остаточно видалено у вказаний час.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Термін дії" + }, + "expirationDateDesc": { + "message": "Якщо встановлено, термін дії цього відправлення завершиться у вказаний час.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Максимальна кількість доступів" + }, + "maxAccessCountDesc": { + "message": "Якщо встановлено, користувачі більше не зможуть отримати доступ до цього відправлення після досягнення максимальної кількості доступів.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Поточна кількість доступів" + }, + "sendPasswordDesc": { + "message": "За бажанням вимагати пароль в користувачів для доступу до цього відправлення.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Особисті нотатки про це відправлення.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Вимкнено" + }, + "sendLink": { + "message": "Посилання на відправлення", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Копіювати посилання відправлення", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Вилучити пароль" + }, + "removedPassword": { + "message": "Пароль вилучено" + }, + "removePasswordConfirmation": { + "message": "Ви дійсно хочете вилучити пароль?" + }, + "hideEmail": { + "message": "Приховувати мою адресу електронної пошти від отримувачів." + }, + "disableThisSend": { + "message": "Деактивувати це відправлення для скасування доступу до нього.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Усі відправлення" + }, + "maxAccessCountReached": { + "message": "Досягнуто максимальну кількість доступів", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Очікується видалення" + }, + "expired": { + "message": "Термін дії завершився" + }, + "searchSends": { + "message": "Пошук відправлень", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Це відправлення захищено паролем. Введіть пароль внизу для продовження.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Не знаєте пароль? Попросіть його у відправника для отримання доступу.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "Це відправлення типово приховане. Ви можете змінити його видимість кнопкою нижче.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Завантажити файл" + }, + "sendAccessUnavailable": { + "message": "Відправлення, до якого ви намагаєтесь отримати доступ, не існує, або більше недоступне.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "Не вдається знайти файл, пов'язаний з цим відправленням.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "У списку немає відправлень.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Екстрений доступ" + }, + "emergencyAccessDesc": { + "message": "Надавайте екстрений доступ довіреним контактам і керуйте ним. Довірені контакти можуть отримати доступ для перегляду чи привласнення вашого облікового запису в екстрених ситуаціях. Відвідайте нашу сторінку допомоги для детального ознайомлення про те, як працює спільний доступ нульового рівня." + }, + "emergencyAccessOwnerWarning": { + "message": "Ви володієте однією чи більше організаціями. Якщо ви надасте доступ для передачі власності екстреним контактам, то вони зможуть використовувати усі ваші повноваження власника після передачі." + }, + "trustedEmergencyContacts": { + "message": "Довірені екстрені контакти" + }, + "noTrustedContacts": { + "message": "Ви ще не додали жодного екстреного контакту. Запросіть довірений контакт, щоб почати." + }, + "addEmergencyContact": { + "message": "Додати екстрений контакт" + }, + "designatedEmergencyContacts": { + "message": "Визначено як екстрений контакт" + }, + "noGrantedAccess": { + "message": "Ви ще не були призначені екстреним контактом для когось." + }, + "inviteEmergencyContact": { + "message": "Запросити екстрений контакт" + }, + "editEmergencyContact": { + "message": "Редагувати екстрений контакт" + }, + "inviteEmergencyContactDesc": { + "message": "Запросіть новий екстрений контакт, ввівши нижче адресу е-пошти його облікового запису Bitwarden. Якщо користувач ще не має облікового запису Bitwarden, йому буде запропоновано зареєструватися." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Ініційовано екстрений доступ" + }, + "emergencyAccessRecoveryApproved": { + "message": "Екстрений доступ схвалено" + }, + "viewDesc": { + "message": "Може переглядати усі записи у вашому сховищі." + }, + "takeover": { + "message": "Передача власності" + }, + "takeoverDesc": { + "message": "Може скидати пароль вашого облікового запису." + }, + "waitTime": { + "message": "Час очікування" + }, + "waitTimeDesc": { + "message": "Час, після якого автоматично надається доступ." + }, + "oneDay": { + "message": "1 день" + }, + "days": { + "message": "$DAYS$ днів", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Запрошений користувач." + }, + "acceptEmergencyAccess": { + "message": "Вас було запрошено стати екстреним контактом для користувача, зазначеного вгорі. Щоб прийняти запрошення, вам необхідно увійти чи створити новий обліковий запис Bitwarden." + }, + "emergencyInviteAcceptFailed": { + "message": "Неможливо прийняти запрошення. Попросіть користувача надіслати нове запрошення." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Не вдається прийняти запрошення. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "Ви отримаєте доступ до екстрених можливостей для цього користувача після підтвердження ваших облікових даних. Ми надішлемо вам електронний лист, коли це станеться." + }, + "requestAccess": { + "message": "Запитати доступ" + }, + "requestAccessConfirmation": { + "message": "Ви дійсно хочете запитати екстрений доступ? Вам надасться доступ через $WAITTIME$ днів, або коли користувач вручну схвалить запит.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Для користувача $USER$ запитано екстрений доступ. Ми повідомимо вас електронною поштою, коли можна буде продовжити.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Схвалити" + }, + "reject": { + "message": "Відхилити" + }, + "approveAccessConfirmation": { + "message": "Ви впевнені, що хочете схвалити екстрений доступ? Це дозволить користувачу $USER$ $ACTION$ ваш обліковий запис.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Екстрений доступ схвалено." + }, + "emergencyRejected": { + "message": "Екстрений доступ відхилено" + }, + "passwordResetFor": { + "message": "Пароль для користувача $USER$ скинуто. Тепер ви можете увійти використовуючи новий пароль.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Особиста власність" + }, + "personalOwnershipPolicyDesc": { + "message": "Вимагати від користувачів зберігати записи до організації, вилучивши можливість особистої власності." + }, + "personalOwnershipExemption": { + "message": "Власники організації та адміністратори звільняються від дотримання цієї політики." + }, + "personalOwnershipSubmitError": { + "message": "У зв'язку з корпоративною політикою, вам не дозволено зберігати записи до особистого сховища. Змініть налаштування власності на організацію та виберіть серед доступних збірок." + }, + "disableSend": { + "message": "Вимкнути відправлення" + }, + "disableSendPolicyDesc": { + "message": "Не дозволяти користувачам створювати чи змінювати відправлення Bitwarden. Видалення наявних відправлень все ще дозволяється.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Користувачі організації, які можуть керувати політиками організації, звільняються від дотримання цієї політики." + }, + "sendDisabled": { + "message": "Відправлення вимкнено", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "У зв'язку з політикою компанії, ви можете лише видалити наявне відправлення.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Налаштування відправлень", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Встановити налаштування для створення та редагування відправлень.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Користувачі організації, які можуть керувати політиками організації, звільняються від дотримання цієї політики." + }, + "disableHideEmail": { + "message": "Не дозволяти користувачам приховувати свою адресу електронної пошти від отримувачів під час створення чи редагування відправлень.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "Наразі діють такі політики організації:" + }, + "sendDisableHideEmailInEffect": { + "message": "Користувачам не дозволяється приховувати свою адресу електронної пошти від отримувачів під час створення чи редагування відправлень.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Змінено політику $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Ціна тарифного плану" + }, + "estimatedTax": { + "message": "Приблизний податок" + }, + "custom": { + "message": "Спеціальний" + }, + "customDesc": { + "message": "Дозволяє детальніший контроль дозволів користувача для розширеної конфігурації." + }, + "permissions": { + "message": "Дозволи" + }, + "accessEventLogs": { + "message": "Доступ до журналів подій" + }, + "accessImportExport": { + "message": "Доступ до імпорту й експорту" + }, + "accessReports": { + "message": "Доступ до звітів" + }, + "missingPermissions": { + "message": "У вас недостатньо повноважень для виконання цієї дії." + }, + "manageAllCollections": { + "message": "Керування всіма збірками" + }, + "createNewCollections": { + "message": "Створювати нові збірки" + }, + "editAnyCollection": { + "message": "Редагувати будь-яку збірку" + }, + "deleteAnyCollection": { + "message": "Видаляти будь-яку збірку" + }, + "manageAssignedCollections": { + "message": "Керування призначеними збірками" + }, + "editAssignedCollections": { + "message": "Редагувати призначені колекції" + }, + "deleteAssignedCollections": { + "message": "Видаляти призначені колекції" + }, + "manageGroups": { + "message": "Керування групами" + }, + "managePolicies": { + "message": "Керування політиками" + }, + "manageSso": { + "message": "Керування SSO" + }, + "manageUsers": { + "message": "Керування користувачами" + }, + "manageResetPassword": { + "message": "Керувати скиданням пароля" + }, + "disableRequiredError": { + "message": "Перш ніж вимкнути цю політику, ви повинні вручну вимкнути політику $POLICYNAME$.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "Політика організації впливає на ваші параметри власності." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "Політика організації вимкнула імпортування елементів до вашого особистого сховища." + }, + "personalOwnershipCheckboxDesc": { + "message": "Вимкнути особисту власність для користувачів організації" + }, + "textHiddenByDefault": { + "message": "При доступі до відправлення типово приховувати текст", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Опис цього відправлення.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Текст, який ви хочете відправити." + }, + "sendFileDesc": { + "message": "Файл, який ви хочете відправити." + }, + "copySendLinkOnSave": { + "message": "Копіювати посилання, щоб поділитися відправленням після збереження." + }, + "sendLinkLabel": { + "message": "Посилання на відправлення", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Відправлення", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Відправлення Bitwarden легко та надійно передає вразливу, тимчасову інформацію іншим.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Дізнайтеся більше про", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Обмінюйтесь текстом чи файлами безпосередньо з іншими." + }, + "sendVaultCardLearnMore": { + "message": "Дізнайтеся більше", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "подивіться", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "як це працює", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "або", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "спробуйте", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "або", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "зареєструйтеся", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "щоб спробувати.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Користувач Bitwarden $USER_IDENTIFIER$ ділиться з вами таким", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "Користувач Bitwarden, який створив це відправлення, вирішив приховати свою адресу електронної пошти. Вам слід упевнитися в надійності джерела цього посилання перед його використанням чи завантаженням вмісту.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "Вказано недійсний термін дії." + }, + "deletionDateIsInvalid": { + "message": "Вказано недійсну дату видалення." + }, + "expirationDateAndTimeRequired": { + "message": "Необхідно вказати час і дату терміну дії." + }, + "deletionDateAndTimeRequired": { + "message": "Необхідно вказати час і дату видалення." + }, + "dateParsingError": { + "message": "При збереженні дат видалення і терміну дії виникла помилка." + }, + "webAuthnFallbackMsg": { + "message": "Щоб засвідчити ваш 2FA, натисніть кнопку внизу." + }, + "webAuthnAuthenticate": { + "message": "Авторизація WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn не підтримується в цьому браузері." + }, + "webAuthnSuccess": { + "message": "WebAuthn успішно підтверджено! Ви можете закрити цю вкладку." + }, + "hintEqualsPassword": { + "message": "Підказка для пароля не може бути такою самою, як ваш пароль." + }, + "enrollPasswordReset": { + "message": "Подати запит на скидання пароля" + }, + "enrolledPasswordReset": { + "message": "Запит на скидання пароля подано" + }, + "withdrawPasswordReset": { + "message": "Відмовитись від скидання пароля" + }, + "enrollPasswordResetSuccess": { + "message": "Запит успішно подано!" + }, + "withdrawPasswordResetSuccess": { + "message": "Відмову успішно прийнято!" + }, + "eventEnrollPasswordReset": { + "message": "Користувач $ID$ подав запит на допомогу зі скиданням пароля.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "Користувач $ID$ відмовився від допомоги зі скиданням пароля.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Головний пароль для користувача $ID$ скинуто.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Скинути SSO-посилання для користувача $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ вперше виконує вхід з використанням SSO", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Скинути пароль" + }, + "resetPasswordLoggedOutWarning": { + "message": "Продовжуючи, користувач $NAME$ вийде зі свого поточного сеансу і йому необхідно буде виконати вхід знову. Активні сеанси на інших пристроях можуть залишатися активними протягом години.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "цей користувач" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "Одна або декілька політик організації вимагають дотримання таких вимог для головного пароля:" + }, + "resetPasswordSuccess": { + "message": "Пароль успішно скинуто!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Розгортання дозволить адміністраторам організації змінювати ваш головний пароль. Ви дійсно хочете розгорнути?" + }, + "resetPasswordPolicy": { + "message": "Скидання головного пароля" + }, + "resetPasswordPolicyDescription": { + "message": "Дозволити адміністраторам організації скидати головний пароль користувачів." + }, + "resetPasswordPolicyWarning": { + "message": "Користувачі в організації повинні виконати самостійне розгортання, або отримати автоматичне розгортання, перш ніж адміністратори зможуть скинути їхній пароль." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Автоматичне розгортання" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "Усі користувачі отримають автоматичне розгортання на скидання пароля одразу після схвалення запрошення та не зможуть його відкликати." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Вже наявні користувачі організації не отримають активного розгортання на скидання пароля. Їм необхідно буде виконати самостійне розгортання, перш ніж адміністратори зможуть скинути їхній пароль." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Вимагати автоматичне розгортання нових користувачів" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "Ця організація має корпоративну політику, яка автоматично розгортає вас на скидання пароля. Розгортання дозволятиме адміністраторам організації змінювати ваш головний пароль." + }, + "resetPasswordOrgKeysError": { + "message": "Порожня відповідь на ключі організації" + }, + "resetPasswordDetailsError": { + "message": "Порожня відповідь на скидання пароля" + }, + "trashCleanupWarning": { + "message": "Записи, що знаходяться в смітнику понад 30 днів, автоматично видалятимуться." + }, + "trashCleanupWarningSelfHosted": { + "message": "Записи, що знаходяться в смітнику деякий час, автоматично видалятимуться." + }, + "passwordPrompt": { + "message": "Повторний запит головного пароля" + }, + "passwordConfirmation": { + "message": "Підтвердження головного пароля" + }, + "passwordConfirmationDesc": { + "message": "Ця дія захищена. Щоб продовжити, повторно введіть головний пароль." + }, + "reinviteSelected": { + "message": "Повторно надіслати запрошення" + }, + "noSelectedUsersApplicable": { + "message": "Ця дія не застосовується для жодного з вибраних користувачів." + }, + "removeUsersWarning": { + "message": "Ви дійсно хочете вилучити зазначених користувачів? Цей процес може тривати кілька секунд і його неможливо перервати чи скасувати." + }, + "theme": { + "message": "Тема" + }, + "themeDesc": { + "message": "Оберіть тему для вашого вебсховища." + }, + "themeSystem": { + "message": "Використовувати системну тему" + }, + "themeDark": { + "message": "Темна" + }, + "themeLight": { + "message": "Світла" + }, + "confirmSelected": { + "message": "Підтвердити вибір" + }, + "bulkConfirmStatus": { + "message": "Стан масової дії" + }, + "bulkConfirmMessage": { + "message": "Успішно підтверджено." + }, + "bulkReinviteMessage": { + "message": "Повторне запрошення успішне." + }, + "bulkRemovedMessage": { + "message": "Успішно вилучено" + }, + "bulkFilteredMessage": { + "message": "Виключено, не застосовується для цієї дії." + }, + "fingerprint": { + "message": "Цифровий відбиток" + }, + "removeUsers": { + "message": "Вилучити користувачів" + }, + "error": { + "message": "Помилка" + }, + "resetPasswordManageUsers": { + "message": "Керування користувачами повинно також бути увімкнено з дозволом Керувати скиданням пароля" + }, + "setupProvider": { + "message": "Налаштування постачальника" + }, + "setupProviderLoginDesc": { + "message": "Вас запрошено налаштувати нового постачальника. Для продовження вам необхідно увійти чи створити новий обліковий запис Bitwarden." + }, + "setupProviderDesc": { + "message": "Будь ласка, введіть наведені нижче подробиці, щоб завершити налаштування постачальника. Зверніться до служби підтримки, якщо у вас виникли будь-які запитання." + }, + "providerName": { + "message": "Назва постачальника" + }, + "providerSetup": { + "message": "Постачальника було налаштовано." + }, + "clients": { + "message": "Клієнти" + }, + "providerAdmin": { + "message": "Адміністратор постачальника" + }, + "providerAdminDesc": { + "message": "Користувач з найвищими привілеями, який може керувати усіма аспектами вашого постачальника, а також отримувати доступ до керування організаціями клієнтів." + }, + "serviceUser": { + "message": "Сервісний користувач" + }, + "serviceUserDesc": { + "message": "Сервісні користувачі можуть отримувати доступ та керувати всіма організаціями клієнтів." + }, + "providerInviteUserDesc": { + "message": "Запросіть нового користувача до вашого постачальника, ввівши адресу е-пошти його облікового запису Bitwarden. Якщо він ще не має облікового запису, він отримає запит на його створення." + }, + "joinProvider": { + "message": "Приєднатися до постачальника" + }, + "joinProviderDesc": { + "message": "Вас було запрошено приєднатися до зазначеного вгорі постачальника. Щоб підтвердити запрошення, вам необхідно увійти в обліковий запис Bitwarden, або створити його." + }, + "providerInviteAcceptFailed": { + "message": "Не вдалося прийняти запрошення. Попросіть адміністратора постачальника надіслати вам нове." + }, + "providerInviteAcceptedDesc": { + "message": "Ви можете отримати доступ до цього постачальника одразу після підтвердження адміністратором. Ми надішлемо вам електронне повідомлення, коли це станеться." + }, + "providerUsersNeedConfirmed": { + "message": "У вас є користувачі, які підтвердили ваше запрошення, але все ще мають бути схвалені. Користувачі не матимуть доступу до постачальника доки ви їх не затвердите." + }, + "provider": { + "message": "Постачальник" + }, + "newClientOrganization": { + "message": "Нова організація клієнта" + }, + "newClientOrganizationDesc": { + "message": "Створіть нову організацію клієнта, яка буде пов'язана з вами, як постачальником. Ви зможете отримати доступ та керувати цією організацією." + }, + "addExistingOrganization": { + "message": "Додати наявну організацію" + }, + "myProvider": { + "message": "Мій постачальник" + }, + "addOrganizationConfirmation": { + "message": "Ви дійсно хочете додати $ORGANIZATION$ як клієнт для $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Організацію було успішно додано до постачальника" + }, + "accessingUsingProvider": { + "message": "Доступ до організації з використанням постачальника $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Постачальника вимкнено." + }, + "providerUpdated": { + "message": "Постачальника оновлено" + }, + "yourProviderIs": { + "message": "Ваш постачальник $PROVIDER$. Він має адміністраторські та платіжні повноваження для вашої організації.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "Організацію $ORGANIZATION$ було від'єднано від вашого постачальника.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Ви дійсно хочете від'єднати цю організацію? Організація продовжить існувати, але більше не керуватиметься провайдером." + }, + "add": { + "message": "Додати" + }, + "updatedMasterPassword": { + "message": "Головний пароль оновлено" + }, + "updateMasterPassword": { + "message": "Оновити головний пароль" + }, + "updateMasterPasswordWarning": { + "message": "Ваш головний пароль нещодавно був змінений адміністратором організації. Щоб отримати доступ до сховища, ви повинні оновити свій головний пароль зараз. Продовживши, ви вийдете з поточного сеансу, після чого необхідно буде повторно виконати вхід. Сеанси на інших пристроях можуть залишатися активними протягом однієї години." + }, + "masterPasswordInvalidWarning": { + "message": "Ваш головний пароль не відповідає вимогам політики цієї організації. Щоб приєднатися до організації, ви повинні оновити свій головний пароль зараз. Продовживши, ви вийдете з поточного сеансу, після чого необхідно буде повторно виконати вхід. Сеанси на інших пристроях можуть залишатися активними протягом однієї години." + }, + "maximumVaultTimeout": { + "message": "Час очікування сховища" + }, + "maximumVaultTimeoutDesc": { + "message": "Налаштувати максимальний час очікування сховища для всіх користувачів." + }, + "maximumVaultTimeoutLabel": { + "message": "Максимальний час очікування сховища" + }, + "invalidMaximumVaultTimeout": { + "message": "Недійсний максимальний час очікування сховища." + }, + "hours": { + "message": "Годин" + }, + "minutes": { + "message": "Хвилин" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Політики вашої організації впливають на час очікування сховища. Максимальний дозволений час очікування сховища $HOURS$ годин, $MINUTES$ хвилин", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Власний час очікування сховища" + }, + "vaultTimeoutToLarge": { + "message": "Час очікування сховища перевищує обмеження, встановлене вашою організацією." + }, + "disablePersonalVaultExport": { + "message": "Вимкнути експорт особистого сховища" + }, + "disablePersonalVaultExportDesc": { + "message": "Забороняє користувачам експортувати їхні особисті дані сховища." + }, + "vaultExportDisabled": { + "message": "Експорт сховища вимкнено" + }, + "personalVaultExportPolicyInEffect": { + "message": "Одна чи декілька організаційних політик не дозволяють вам експортувати особисте сховище." + }, + "selectType": { + "message": "Виберіть тип SSO" + }, + "type": { + "message": "Тип" + }, + "openIdConnectConfig": { + "message": "Конфігурація з'єднання OpenID" + }, + "samlSpConfig": { + "message": "Конфігурація постачальника послуг SAML" + }, + "samlIdpConfig": { + "message": "Конфігурація ідентифікації постачальника SAML" + }, + "callbackPath": { + "message": "Шлях до зворотного виклику" + }, + "signedOutCallbackPath": { + "message": "Вихід зі шляху зворотного виклику" + }, + "authority": { + "message": "Установа" + }, + "clientId": { + "message": "ID клієнта" + }, + "clientSecret": { + "message": "Секретний ключ клієнта" + }, + "metadataAddress": { + "message": "Адреса метаданих" + }, + "oidcRedirectBehavior": { + "message": "Поведінка переспрямування OIDC" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Отримувати запити від інформації користувача кінцевої точки" + }, + "additionalScopes": { + "message": "Власні області" + }, + "additionalUserIdClaimTypes": { + "message": "Власні типи запитів ID користувача" + }, + "additionalEmailClaimTypes": { + "message": "Типи запитів е-пошти" + }, + "additionalNameClaimTypes": { + "message": "Типи запитів власного імені" + }, + "acrValues": { + "message": "Запитані значення посилання класу контексту автентифікації" + }, + "expectedReturnAcrValue": { + "message": "Очікувалось значення запиту \"acr\" у відповіді" + }, + "spEntityId": { + "message": "ID об'єкта SP" + }, + "spMetadataUrl": { + "message": "URL метаданих SAML 2.0" + }, + "spAcsUrl": { + "message": "URL-адреса служби підтвердження клієнтів (ACS)" + }, + "spNameIdFormat": { + "message": "Формат ID назви" + }, + "spOutboundSigningAlgorithm": { + "message": "Алгоритм вихідного підпису" + }, + "spSigningBehavior": { + "message": "Поведінка при підписанні" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Мінімальний алгоритм вхідного підписання" + }, + "spWantAssertionsSigned": { + "message": "Очікується підпис підтвердження" + }, + "spValidateCertificates": { + "message": "Перевірка сертифікатів" + }, + "idpEntityId": { + "message": "ID об'єкта" + }, + "idpBindingType": { + "message": "Тип пов'язування" + }, + "idpSingleSignOnServiceUrl": { + "message": "URL служби єдиного входу" + }, + "idpSingleLogoutServiceUrl": { + "message": "URL служби єдиного виходу" + }, + "idpX509PublicCert": { + "message": "Публічний сертифікат X509" + }, + "idpOutboundSigningAlgorithm": { + "message": "Алгоритм вихідного підпису" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Дозволити небажану відповідь авторизації" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Дозволити вихідні запити для виходу" + }, + "idpSignAuthenticationRequests": { + "message": "Підписувати запити авторизації" + }, + "ssoSettingsSaved": { + "message": "Конфігурацію єдиного входу збережено." + }, + "sponsoredFamilies": { + "message": "Bitwarden Families безплатно" + }, + "sponsoredFamiliesEligible": { + "message": "Ви та ваша сім'я маєте право на Bitwarden Families безплатно. Активуйте доступ з особистою електронною адресою, щоб зберігати свої дані захищеними навіть коли ви не на роботі." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Активуйте сьогодні безплатний тарифний план Bitwarden Families, щоб зберігати свої дані захищеними, навіть коли ви не на роботі." + }, + "sponsoredFamiliesInclude": { + "message": "Тариф Bitwarden Families включає" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Преміум-доступ до 6 користувачів" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Спільні збірки для обміну паролями" + }, + "badToken": { + "message": "Посилання більше не дійсне. Попросіть спонсора повторно надіслати пропозицію." + }, + "reclaimedFreePlan": { + "message": "Безплатний тариф відновлено" + }, + "redeem": { + "message": "Активувати" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Оберіть організацію, від якої ви бажаєте бути спонсорованими" + }, + "familiesSponsoringOrgSelect": { + "message": "Яку безплатну сімейну пропозицію ви бажаєте активувати?" + }, + "sponsoredFamiliesEmail": { + "message": "Введіть особисту електронну адресу для активації Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "Якщо ви покинете цю спонсоровану організацію, ваш доступ до тарифного плану Bitwarden Families завершиться в кінці оплаченого періоду." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Прийняти пропозицію для наявної організації або створити нову сімейну організацію." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "Вам запропоновано безплатний тарифний план Bitwarden Families від організації. Щоб продовжити, вам необхідно увійти в обліковий запис, на який вам прийшла пропозиція." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Не вдалося прийняти пропозицію. Будь ласка, повторно надішліть лист з пропозицією зі свого корпоративного облікового запису та спробуйте знову." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Не вдалося прийняти пропозицію. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Прийняти безплатно Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Пропозицію безплатного доступу Bitwarden Families успішно активовано" + }, + "redeemed": { + "message": "Активовано" + }, + "redeemedAccount": { + "message": "Обліковий запис активовано" + }, + "revokeAccount": { + "message": "Відкликати обліковий запис $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Повторно надіслати лист про спонсорування до $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Безплатний сімейний план" + }, + "redeemNow": { + "message": "Активувати зараз" + }, + "recipient": { + "message": "Отримувач" + }, + "removeSponsorship": { + "message": "Вилучити спонсорування" + }, + "removeSponsorshipConfirmation": { + "message": "Після вилучення спонсорування, ви будете відповідальні за цю передплату та пов'язані рахунки. Ви дійсно хочете продовжити?" + }, + "sponsorshipCreated": { + "message": "Спонсорування створено" + }, + "revoke": { + "message": "Відкликати" + }, + "emailSent": { + "message": "Лист надіслано" + }, + "revokeSponsorshipConfirmation": { + "message": "Після вилучення цього облікового запису, власники сімейної організації будуть відповідальними за цю передплату та пов'язані рахунки. Ви дійсно хочете продовжити?" + }, + "removeSponsorshipSuccess": { + "message": "Спонсорування вилучено" + }, + "ssoKeyConnectorUnavailable": { + "message": "Не вдається отримати доступ до Key Connector. Спробуйте знову пізніше." + }, + "keyConnectorUrl": { + "message": "URL-адреса Key Connector" + }, + "sendVerificationCode": { + "message": "Надіслати код підтвердження е-поштою" + }, + "sendCode": { + "message": "Надіслати код" + }, + "codeSent": { + "message": "Код надіслано" + }, + "verificationCode": { + "message": "Код підтвердження" + }, + "confirmIdentity": { + "message": "Підтвердьте свої облікові дані для продовження." + }, + "verificationCodeRequired": { + "message": "Потрібний код підтвердження." + }, + "invalidVerificationCode": { + "message": "Недійсний код підтвердження" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ використовує SSO з власним сервером ключів. Головний пароль для учасників цієї організації більше не вимагається.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Покинути організацію" + }, + "removeMasterPassword": { + "message": "Вилучити головний пароль" + }, + "removedMasterPassword": { + "message": "Головний пароль вилучено." + }, + "allowSso": { + "message": "Дозволити авторизацію SSO" + }, + "allowSsoDesc": { + "message": "Після налаштування вашу конфігурацію буде збережено та учасники зможуть авторизуватися з використанням облікових даних їхнього постачальника." + }, + "ssoPolicyHelpStart": { + "message": "Увімкнути", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "Політика авторизації SSO", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "щоб вимагати в усіх учасників виконувати вхід з SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "Для встановлення розшифрування Key Connector необхідні політики авторизації SSO та єдиної організації." + }, + "memberDecryptionOption": { + "message": "Налаштування розшифрування учасників" + }, + "memberDecryptionPassDesc": { + "message": "Після авторизації учасники розшифровуватимуть дані сховища з використанням їх головного пароля." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Під'єднайте вхід з SSO до свого власного сервера ключів розшифрування. Скориставшись цією можливістю, учасникам не потрібен буде головний пароль для розшифрування даних сховища. Для отримання допомоги з налаштуванням зв'яжіться зі службою підтримки Bitwarden." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Вхід з SSO та розшифрування Key Connector\" увімкнено. Ця політика застосовується лише для власників та адміністраторів." + }, + "enabledSso": { + "message": "SSO увімкнено" + }, + "disabledSso": { + "message": "SSO вимкнено" + }, + "enabledKeyConnector": { + "message": "Key Connector увімкнено" + }, + "disabledKeyConnector": { + "message": "Key Connector вимкнено" + }, + "keyConnectorWarning": { + "message": "Як тільки учасники почнуть користуватися Key Connector, ваша організація не зможе повернутися до розшифрування з головним паролем. Продовжуйте тільки якщо ви готові розгортати сервер ключів та керувати ним." + }, + "migratedKeyConnector": { + "message": "Виконано перехід на Key Connector" + }, + "paymentSponsored": { + "message": "Будь ласка, вкажіть спосіб оплати для організації. Не хвилюйтеся, гроші не списуватимуться доки ви не виберете додаткові функції чи не завершиться термін дії передплати. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "Термін дії спонсорської пропозиції завершився. Ви можете видалити створену організацію, щоб уникнути списання грошей після завершення 7 днів пробного періоду. Або ж ви можете закрити цей запит, щоб зберегти організацію та прийняти відповідальність за сплату рахунків." + }, + "newFamiliesOrganization": { + "message": "Нова сімейна організація" + }, + "acceptOffer": { + "message": "Прийняти пропозицію" + }, + "sponsoringOrg": { + "message": "Організація спонсорування" + }, + "keyConnectorTest": { + "message": "Тест" + }, + "keyConnectorTestSuccess": { + "message": "Успішно! Key Connector під'єднано." + }, + "keyConnectorTestFail": { + "message": "Неможливо під'єднатися до Key Connector. Перевірте URL." + }, + "sponsorshipTokenHasExpired": { + "message": "Термін дії пропозиції спонсорування завершилась." + }, + "freeWithSponsorship": { + "message": "БЕЗПЛАТНО зі спонсоруванням" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ зазначених вище полів потребують вашої уваги.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 зазначене вище поле потребує вашої уваги." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ є обов'язковим.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "обов’язково" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Обов'язково, якщо ID елемента не є URL." + }, + "openIdOptionalCustomizations": { + "message": "Додаткові налаштування" + }, + "openIdAuthorityRequired": { + "message": "Обов'язково, якщо установа недійсна." + }, + "separateMultipleWithComma": { + "message": "Декілька значень розділених комою." + }, + "sessionTimeout": { + "message": "Час вашого сеансу завершився. Поверніться назад і спробуйте увійти знову." + }, + "exportingPersonalVaultTitle": { + "message": "Експортування особистого сховища" + }, + "exportingOrganizationVaultTitle": { + "message": "Експортування сховища організації" + }, + "exportingPersonalVaultDescription": { + "message": "Будуть експортовані лише записи особистого сховища, пов'язані з $EMAIL$. Записи сховища організації не буде включено.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Будуть експортовані лише записи сховища організації, пов'язані з $ORGANIZATION$. Записи особистого сховища та записи з інших організацій не буде включено.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Повернутися до звітів" + }, + "generator": { + "message": "Генератор" + }, + "whatWouldYouLikeToGenerate": { + "message": "Що ви бажаєте згенерувати?" + }, + "passwordType": { + "message": "Тип пароля" + }, + "regenerateUsername": { + "message": "Повторно генерувати ім'я користувача" + }, + "generateUsername": { + "message": "Генерувати ім'я користувача" + }, + "usernameType": { + "message": "Тип імені користувача" + }, + "plusAddressedEmail": { + "message": "Плюс адреса електронної пошти", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Використовуйте розширені можливості адрес вашого постачальника електронної пошти." + }, + "catchallEmail": { + "message": "Адреса е-пошти Catch-all" + }, + "catchallEmailDesc": { + "message": "Використовуйте свою скриньку вхідних Catch-All власного домену." + }, + "random": { + "message": "Випадково" + }, + "randomWord": { + "message": "Випадкове слово" + }, + "service": { + "message": "Послуга" + } +} diff --git a/apps/web/src/locales/vi/messages.json b/apps/web/src/locales/vi/messages.json new file mode 100644 index 0000000000..ea0802fd2b --- /dev/null +++ b/apps/web/src/locales/vi/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "Kho lưu trữ trên web $APP_NAME$", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "Mục này là gì?" + }, + "name": { + "message": "Tên" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URL $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "URI mới" + }, + "username": { + "message": "Tên người dùng" + }, + "password": { + "message": "Mật khẩu" + }, + "newPassword": { + "message": "Mật khẩu mới" + }, + "passphrase": { + "message": "Cụm từ mật khẩu" + }, + "notes": { + "message": "Ghi chú" + }, + "customFields": { + "message": "Trường tùy chỉnh" + }, + "cardholderName": { + "message": "Tên chủ thẻ" + }, + "number": { + "message": "Số" + }, + "brand": { + "message": "Thương hiệu" + }, + "expiration": { + "message": "Thời hạn" + }, + "securityCode": { + "message": "Mã bảo mật (CVV)" + }, + "identityName": { + "message": "Tên định danh" + }, + "company": { + "message": "Công ty" + }, + "ssn": { + "message": "Số an sinh xã hội" + }, + "passportNumber": { + "message": "Số hộ chiếu" + }, + "licenseNumber": { + "message": "Số giấy phép" + }, + "email": { + "message": "Email" + }, + "phone": { + "message": "Điện thoại" + }, + "january": { + "message": "Tháng 1" + }, + "february": { + "message": "Tháng 2" + }, + "march": { + "message": "Tháng 3" + }, + "april": { + "message": "Tháng 4" + }, + "may": { + "message": "Tháng 5" + }, + "june": { + "message": "Tháng 6" + }, + "july": { + "message": "Tháng 7" + }, + "august": { + "message": "Tháng 8" + }, + "september": { + "message": "Tháng 9" + }, + "october": { + "message": "Tháng 10" + }, + "november": { + "message": "Tháng 11" + }, + "december": { + "message": "Tháng 12" + }, + "title": { + "message": "Tiêu đề" + }, + "mr": { + "message": "Ông" + }, + "mrs": { + "message": "Bà" + }, + "ms": { + "message": "Cô" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "Tháng hết hạn" + }, + "expirationYear": { + "message": "Năm hết hạn" + }, + "authenticatorKeyTotp": { + "message": "Khóa xác thực (TOTP)" + }, + "folder": { + "message": "Thư mục" + }, + "newCustomField": { + "message": "Trường tùy chỉnh mới" + }, + "value": { + "message": "Giá trị" + }, + "dragToSort": { + "message": "Kéo để sắp xếp" + }, + "cfTypeText": { + "message": "Văn bản" + }, + "cfTypeHidden": { + "message": "Ẩn" + }, + "cfTypeBoolean": { + "message": "Boolean" + }, + "cfTypeLinked": { + "message": "Linked", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "Xoá" + }, + "unassigned": { + "message": "Hủy ấn định" + }, + "noneFolder": { + "message": "Không có thư mục", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Thêm thư mục" + }, + "editFolder": { + "message": "Chỉnh sửa thư mục" + }, + "baseDomain": { + "message": "Tên miền cơ sở", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "Domain Name", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "Máy chủ", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Chính xác" + }, + "startsWith": { + "message": "Bắt đầu với" + }, + "regEx": { + "message": "Biểu thức chính quy", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Độ phù hợp", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Độ phù hợp mặc định", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "Không bao giờ" + }, + "toggleVisibility": { + "message": "Bật tắt khả năng hiển thị" + }, + "toggleCollapse": { + "message": "Ẩn bớt", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "Tạo mật khẩu" + }, + "checkPassword": { + "message": "Kiểm tra xem mật khẩu có bị lộ không." + }, + "passwordExposed": { + "message": "Mật khẩu này đã bị lộ $VALUE$ lần() trong các dữ liệu vi phạm. Bạn nên thay đổi nó.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Mật khẩu này không được tìm thấy trong bất kỳ dữ liệu vi phạm nào được biết đến. Nó an toàn để sử dụng." + }, + "save": { + "message": "Lưu" + }, + "cancel": { + "message": "Hủy bỏ" + }, + "canceled": { + "message": "Đã hủy" + }, + "close": { + "message": "Đóng" + }, + "delete": { + "message": "Xóa" + }, + "favorite": { + "message": "Yêu thích" + }, + "unfavorite": { + "message": "Bỏ yêu thích" + }, + "edit": { + "message": "Sửa" + }, + "searchCollection": { + "message": "Tìm kiếm bộ sưu tập" + }, + "searchFolder": { + "message": "Tìm kiếm thư mục" + }, + "searchFavorites": { + "message": "Tìm trong danh sách Yêu thích" + }, + "searchType": { + "message": "Tìm thể loại", + "description": "Search item type" + }, + "searchVault": { + "message": "Tìm kiếm trong Kho" + }, + "allItems": { + "message": "Tất cả các mục" + }, + "favorites": { + "message": "Yêu thích" + }, + "types": { + "message": "Các loại" + }, + "typeLogin": { + "message": "Đăng nhập" + }, + "typeCard": { + "message": "Thẻ" + }, + "typeIdentity": { + "message": "Định danh" + }, + "typeSecureNote": { + "message": "Ghi chú bảo mật" + }, + "typeLoginPlural": { + "message": "Logins" + }, + "typeCardPlural": { + "message": "Cards" + }, + "typeIdentityPlural": { + "message": "Identities" + }, + "typeSecureNotePlural": { + "message": "Secure Notes" + }, + "folders": { + "message": "Thư mục" + }, + "collections": { + "message": "Các bộ sưu tập" + }, + "firstName": { + "message": "Tên" + }, + "middleName": { + "message": "Tên đệm" + }, + "lastName": { + "message": "Họ" + }, + "fullName": { + "message": "Full Name" + }, + "address1": { + "message": "Địa chỉ 1" + }, + "address2": { + "message": "Địa chỉ 2" + }, + "address3": { + "message": "Địa chỉ 3" + }, + "cityTown": { + "message": "Quận/Huyện/Thị trấn" + }, + "stateProvince": { + "message": "Tỉnh/Thành Phố" + }, + "zipPostalCode": { + "message": "Mã bưu chính" + }, + "country": { + "message": "Quốc gia" + }, + "shared": { + "message": "Đã chia sẻ" + }, + "attachments": { + "message": "Đính kèm" + }, + "select": { + "message": "Chọn" + }, + "addItem": { + "message": "Thêm mục" + }, + "editItem": { + "message": "Chỉnh sửa mục" + }, + "viewItem": { + "message": "View Item" + }, + "ex": { + "message": "vd.", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "Khác" + }, + "share": { + "message": "Chia sẻ" + }, + "moveToOrganization": { + "message": "Move to Organization" + }, + "valueCopied": { + "message": "Đã sao chép $VALUE$", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "Sao chép giá trị", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "Sao chép mật khẩu", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "Sao chép tên đăng nhập", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "Sao chép số", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Sao chép mã bảo mật", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "Sao chép URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "Kho của tôi" + }, + "vault": { + "message": "Kho" + }, + "moveSelectedToOrg": { + "message": "Move Selected to Organization" + }, + "deleteSelected": { + "message": "Xóa mục đã chọn" + }, + "moveSelected": { + "message": "Di chuyển mục đã chọn" + }, + "selectAll": { + "message": "Chọn tất cả" + }, + "unselectAll": { + "message": "Bỏ chọn tất cả" + }, + "launch": { + "message": "Khởi chạy" + }, + "newAttachment": { + "message": "Thêm tệp đính kèm mới" + }, + "deletedAttachment": { + "message": "Đã xoá tệp đính kèm" + }, + "deleteAttachmentConfirmation": { + "message": "Bạn có chắc chắn muốn xóa tập tin đính kèm này?" + }, + "attachmentSaved": { + "message": "Tệp đính kèm đã được lưu." + }, + "file": { + "message": "Tập tin" + }, + "selectFile": { + "message": "Chọn một tập tin." + }, + "maxFileSize": { + "message": "Kích thước tối đa của tệp tin là 500 MB." + }, + "updateKey": { + "message": "Bạn không thể sử dụng tính năng này cho đến khi bạn cập nhật khoá mã hóa." + }, + "addedItem": { + "message": "Đã thêm mục" + }, + "editedItem": { + "message": "Mục được chỉnh sửa" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ moved to $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "Selected items moved to $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "Xóa mục" + }, + "deleteFolder": { + "message": "Xóa thư mục" + }, + "deleteAttachment": { + "message": "Xóa tệp đính kèm" + }, + "deleteItemConfirmation": { + "message": "Bạn có chắc bạn muốn xóa mục này?" + }, + "deletedItem": { + "message": "Đã xóa mục" + }, + "deletedItems": { + "message": "Đã xóa mục" + }, + "movedItems": { + "message": "Đã di chuyển mục" + }, + "overwritePasswordConfirmation": { + "message": "Bạn có chắc chắn muốn ghi đè mật khẩu hiện tại không?" + }, + "editedFolder": { + "message": "Đã chỉnh sửa thư mục" + }, + "addedFolder": { + "message": "Đã thêm thư mục" + }, + "deleteFolderConfirmation": { + "message": "Bạn có chắc chắn muốn xóa thư mục này không?" + }, + "deletedFolder": { + "message": "Đã xóa thư mục" + }, + "loggedOut": { + "message": "Đã đăng xuất" + }, + "loginExpired": { + "message": "Phiên đăng nhập của bạn đã hết hạn." + }, + "logOutConfirmation": { + "message": "Bạn có chắc chắn muốn đăng xuất không?" + }, + "logOut": { + "message": "Đăng xuất" + }, + "ok": { + "message": "Ok" + }, + "yes": { + "message": "Có" + }, + "no": { + "message": "Không" + }, + "loginOrCreateNewAccount": { + "message": "Đăng nhập hoặc tạo tài khoản mới để truy cập kho mật khẩu của bạn." + }, + "createAccount": { + "message": "Tạo tài khoản" + }, + "logIn": { + "message": "Đăng nhập" + }, + "submit": { + "message": "Gửi" + }, + "emailAddressDesc": { + "message": "Bạn sẽ cần email của bạn để đăng nhập." + }, + "yourName": { + "message": "Tên của bạn" + }, + "yourNameDesc": { + "message": "Chúng tôi nên gọi bạn là gì nào?" + }, + "masterPass": { + "message": "Mật khẩu chính" + }, + "masterPassDesc": { + "message": "Mật khẩu chính là mật khẩu cho kho mật khẩu của bạn. Mật khẩu này rất quan trọng và bạn không nên quên nó của mình. Bạn sẽ không thể khôi phục lại mật khẩu chính của bạn nếu bạn quên nó." + }, + "masterPassHintDesc": { + "message": "Gợi ý mật khẩu có thể giúp bạn nhớ lại mật khẩu chính của mình nếu bạn quên nó." + }, + "reTypeMasterPass": { + "message": "Vui lòng nhập lại mật khẩu chính" + }, + "masterPassHint": { + "message": "Gợi ý mật khẩu chính (không bắt buộc)" + }, + "masterPassHintLabel": { + "message": "Gợi ý mật khẩu chính" + }, + "settings": { + "message": "Cài đặt" + }, + "passwordHint": { + "message": "Gợi ý mật khẩu" + }, + "enterEmailToGetHint": { + "message": "Vui lòng nhập địa chỉ email của tài khoản bạn để nhận gợi ý mật khẩu." + }, + "getMasterPasswordHint": { + "message": "Nhận gợi ý mật khẩu chính" + }, + "emailRequired": { + "message": "Cần phải có địa chỉ email." + }, + "invalidEmail": { + "message": "Địa chỉ email không hợp lệ." + }, + "masterPassRequired": { + "message": "Cần phải có mật khẩu chính." + }, + "masterPassLength": { + "message": "Mật khẩu chính phải có ít nhất 8 kí tự." + }, + "masterPassDoesntMatch": { + "message": "Xác minh mật khẩu chính không đúng." + }, + "newAccountCreated": { + "message": "Tài khoản của bạn đã được tạo! Bạn có thể đăng nhập ngay bây giờ." + }, + "masterPassSent": { + "message": "Chúng tôi đã gửi cho bạn email với gợi ý mật khẩu chính của bạn." + }, + "unexpectedError": { + "message": "Một lỗi bất ngờ đã xảy ra." + }, + "emailAddress": { + "message": "Địa chỉ email" + }, + "yourVaultIsLocked": { + "message": "Kho của bạn đã bị khóa. Xác minh mật khẩu chính của bạn để tiếp tục." + }, + "unlock": { + "message": "Mở khóa" + }, + "loggedInAsEmailOn": { + "message": "Đã đăng nhập là $EMAIL$ trên $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Mật khẩu chính không hợp lệ" + }, + "lockNow": { + "message": "Khóa ngay" + }, + "noItemsInList": { + "message": "Không có mục nào để liệt kê." + }, + "noCollectionsInList": { + "message": "Không có bộ sưu tập nào để liệt kê." + }, + "noGroupsInList": { + "message": "Không có nhóm nào để liệt kê." + }, + "noUsersInList": { + "message": "Không có người nào để liệt kê." + }, + "noEventsInList": { + "message": "Không có sự kiện nào để liệt kê." + }, + "newOrganization": { + "message": "Tổ chức mới" + }, + "noOrganizationsList": { + "message": "Bạn không thuộc tổ chức nào. Tổ chức sẽ cho phép bạn chia sẻ với người dùng khác một cách bảo mật." + }, + "versionNumber": { + "message": "Phiên bản $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "Vui lòng nhập mã xác thực 6 chữ số từ ứng dụng xác thực của bạn." + }, + "enterVerificationCodeEmail": { + "message": "Vui lòng nhập mã xác thực 6 chữ số được gửi tới $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Email xác thực đã được gửi tới $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Ghi nhớ đăng nhập" + }, + "sendVerificationCodeEmailAgain": { + "message": "Gửi lại email xác thực" + }, + "useAnotherTwoStepMethod": { + "message": "Sử dụng phương pháp xác thực hai lớp khác" + }, + "insertYubiKey": { + "message": "Vui lòng cắm Yubikey vào cổng USB của máy tính bạn và bấm nút trên Yubikey." + }, + "insertU2f": { + "message": "Vui lòng cắm chìa khóa bảo mật vào cổng USB của máy tính bạn và bấm nút trên chìa khóa nếu có." + }, + "loginUnavailable": { + "message": "Đăng nhập không hoạt động" + }, + "noTwoStepProviders": { + "message": "Tài khoản này có xác thực hai lớp, tuy nhiên, trình duyệt của bạn không hỗ trợ dịch vụ xác thực hai lớp đang sử dụng." + }, + "noTwoStepProviders2": { + "message": "Vui lòng sử dụng trình duyệt được hỗ trợ (chẳng hạn như Chrome) và/hoặc thêm dịch vụ khác với hỗ trợ tốt hơn trên các trình duyệt (chẳng hạn như một ứng dụng xác thực)." + }, + "twoStepOptions": { + "message": "Tùy chọn xác thực hai lớp" + }, + "recoveryCodeDesc": { + "message": "Bạn bị mất quyền truy cập vào tất cả các dịch vụ xác thực hai lớp? Sử dụng mã phục hồi của bạn để tắt tất cả các dịch vụ xác thực hai lớp của tài khoản bạn." + }, + "recoveryCodeTitle": { + "message": "Mã phục hồi" + }, + "authenticatorAppTitle": { + "message": "Ứng dụng xác thực" + }, + "authenticatorAppDesc": { + "message": "Sử dụng một ứng dụng xác thực (chẳng hạn như Authy hoặc Google Authenticator) để tạo các mã xác nhận theo thời gian.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "Mật khẩu OTP YubiKey" + }, + "yubiKeyDesc": { + "message": "Sử dụng YubiKey để truy cập tài khoản của bạn. Hoạt động với YubiKey 4, 4 Nano, 4C và NEO." + }, + "duoDesc": { + "message": "Xác minh với Duo Security dùng ứng dụng Duo Mobile, SMS, điện thoại, hoặc mật khẩu U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Xác minh với Duo Security cho tổ chức của bạn dùng ứng dụng Duo Mobile, SMS, điện thoại, hoặc mật khẩu U2F.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Sử dụng bất kỳ mật khẩu FIDO U2F nào để truy cập tài khoản của bạn." + }, + "u2fTitle": { + "message": "Mật khẩu FIDO U2F" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "Use any WebAuthn enabled security key to access your account." + }, + "webAuthnMigrated": { + "message": "(Migrated from FIDO)" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Mã xác thực sẽ được gửi qua email cho bạn." + }, + "continue": { + "message": "Tiếp tục" + }, + "organization": { + "message": "Tổ chức" + }, + "organizations": { + "message": "Tổ chức" + }, + "moveToOrgDesc": { + "message": "Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved." + }, + "moveManyToOrgDesc": { + "message": "Choose an organization that you wish to move these items to. Moving to an organization transfers ownership of the items to that organization. You will no longer be the direct owner of these items once they have been moved." + }, + "collectionsDesc": { + "message": "Chỉnh sửa những bộ sưu tập mà bạn sẽ chia sẻ mục này với. Chỉ những thành viên của tổ chức với quyền cho những bộ sưu tập đó mới có thể xem được mục này." + }, + "deleteSelectedItemsDesc": { + "message": "Bạn đã chọn $COUNT$ mục để xóa. Bạn có chắc bạn muốn xóa hết những mục này?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "Vui lòng chọn thư mục mà bạn muốn di chuyển $COUNT$ mục này tới.", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "You have selected $COUNT$ item(s). $MOVEABLE_COUNT$ item(s) can be moved to an organization, $NONMOVEABLE_COUNT$ cannot.", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "Mã xác thực (TOTP)" + }, + "copyVerificationCode": { + "message": "Sao chép mã xác thực" + }, + "warning": { + "message": "Cảnh báo" + }, + "confirmVaultExport": { + "message": "Confirm Vault Export" + }, + "exportWarningDesc": { + "message": "Bản trích xuất này chứa dữ liệu kho bạn và không được mã hóa. Bạn không nên lưu trữ hay gửi tập tin trích xuất thông qua phương thức không an toàn (như email). Vui lòng xóa nó ngay lập tức khi bạn đã sử dụng xong." + }, + "encExportKeyWarningDesc": { + "message": "This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file." + }, + "encExportAccountWarningDesc": { + "message": "Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account." + }, + "export": { + "message": "Export" + }, + "exportVault": { + "message": "Trích xuất kho" + }, + "fileFormat": { + "message": "Định dạng tập tin" + }, + "exportSuccess": { + "message": "Dữ liệu kho cảu bạn đã được trích xuất." + }, + "passwordGenerator": { + "message": "Tạo mật khẩu" + }, + "minComplexityScore": { + "message": "Điểm phức tạp tối thiểu" + }, + "minNumbers": { + "message": "Số chữ số tối thiểu" + }, + "minSpecial": { + "message": "Số kí tự đặc biệt tối thiểu", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Tránh các ký tự không rõ ràng" + }, + "regeneratePassword": { + "message": "Tạo lại mật khẩu" + }, + "length": { + "message": "Độ dài" + }, + "numWords": { + "message": "Số lượng chữ" + }, + "wordSeparator": { + "message": "Dấu tách từ" + }, + "capitalize": { + "message": "Viết hoa", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Bao gồm cả số" + }, + "passwordHistory": { + "message": "Lịch sử mật khẩu" + }, + "noPasswordsInList": { + "message": "Không có mật khẩu để liệt kê." + }, + "clear": { + "message": "Xoá", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "Tài khoản đã được cập nhật" + }, + "changeEmail": { + "message": "Thay đổi địa chỉ email" + }, + "changeEmailTwoFactorWarning": { + "message": "Proceeding will change your account email address. It will not change the email address used for two-factor authentication. You can change this email address in the Two-Step Login settings." + }, + "newEmail": { + "message": "Địa chỉ email mới" + }, + "code": { + "message": "Mã" + }, + "changeEmailDesc": { + "message": "Chúng tôi đã gửi mã xác thực tới $EMAIL$. Vui lòng kiểm tra thùng thư của bạn để nhận và nhập mã vào bên dưới để hoàn thành quá trình thay đổi địa chỉ email.", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "Tiếp tục sẽ đăng xuất bạn ra khỏi phiên hiện tại, cần bạn phải đăng nhập lại. Những phiên trên các thiết bị khác sẽ tiếp tục có hiệu lực lên đến 1 tiếng." + }, + "emailChanged": { + "message": "Đã thay đổi email" + }, + "logBackIn": { + "message": "Hãy đăng nhập lại." + }, + "logBackInOthersToo": { + "message": "Vui lòng đăng nhập lại. Nếu bạn đang dùng những ứng dụng Bitwarden khác, vui lòng đăng xuất and đăng nhập lại những ứng dụng đó." + }, + "changeMasterPassword": { + "message": "Thay đổi mật khẩu chính" + }, + "masterPasswordChanged": { + "message": "Đã thay đổi mật khẩu chính" + }, + "currentMasterPass": { + "message": "Mật khẩu chính hiện tại" + }, + "newMasterPass": { + "message": "Mật khẩu chính mới" + }, + "confirmNewMasterPass": { + "message": "Xác nhận mật khẩu chính mới" + }, + "encKeySettings": { + "message": "Cài đặt mật khẩu mã hóa" + }, + "kdfAlgorithm": { + "message": "Thuật toán KDF" + }, + "kdfIterations": { + "message": "Số lần KDF" + }, + "kdfIterationsDesc": { + "message": "Số lần KDF nhiều có thể giúp bảo vệ mật khẩu chính khỏi những cuộc tấn công cưỡng chế. Chúng tôi khuyến khích giá trị $VALUE$ hoặc cao hơn.", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "Số lần KDF quá cao có thể làm các thiết bị yếu hơn bị giật lag khi đăng nhập (hoặc mỏ khóa). Chúng tôi khuyến khích tăng $INCREMENT$ mỗi lần và thử trên các thiết bị của bạn trước.", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "Thay đổi KDF" + }, + "encKeySettingsChanged": { + "message": "Cài đặt mật khẩu mã hóa đã thay đổi" + }, + "dangerZone": { + "message": "Vùng nguy hiểm" + }, + "dangerZoneDesc": { + "message": "Vui lòng cẩn thận, những hành động này không thể được hủy bỏ!" + }, + "deauthorizeSessions": { + "message": "Hủy quyền phiên" + }, + "deauthorizeSessionsDesc": { + "message": "Lo lắng tài khoản của bạn bị đăng nhập trên một thiết bị khác? Tiếp tục bên dưới để hủy quyền tất cả thiết bị bạn đã sử dụng. Bước bảo mật này được khuyến khích nếu bạn đã sử dụng thiết bị công cộng hoặc thiết bị không phải của bạn. Nó cũng sẽ xóa hết những phiên đăng nhập hai bước đã được lưu." + }, + "deauthorizeSessionsWarning": { + "message": "Tiếp tục sẽ đăng xuất bạn ra khỏi phiên hiện tại, cần bạn phải đăng nhập lại. Bạn cũng sẽ phải đăng nhập hai bước lại nếu bạn có đăng nhập hai bước. Những phiên đăng nhập trên các thiết bị khác sẽ tiếp tục có hiệu lực lên đến 1 tiếng." + }, + "sessionsDeauthorized": { + "message": "Tất cả phiên đăng nhập đã bị hủy" + }, + "purgeVault": { + "message": "Xóa kho" + }, + "purgedOrganizationVault": { + "message": "Đã xóa kho tổ chức." + }, + "vaultAccessedByProvider": { + "message": "Vault accessed by provider." + }, + "purgeVaultDesc": { + "message": "Tiếp tục bên dưới để xóa hết tất cả mục và thư mục trong kho của bạn. Những mục thuộc về tổ chức mà bạn chia sẻ với sẽ không bị xóa." + }, + "purgeOrgVaultDesc": { + "message": "Tiếp tục bên dưới để xóa hết tất cả mục trong kho của tổ chức." + }, + "purgeVaultWarning": { + "message": "Việc xóa kho là vĩnh viễn và không thể hoàn tác." + }, + "vaultPurged": { + "message": "Kho của bạn đã được xóa." + }, + "deleteAccount": { + "message": "Xóa tài khoản" + }, + "deleteAccountDesc": { + "message": "Tiếp tục bên dưới để xóa tài khoản và dữ liệu liên quan của bạn." + }, + "deleteAccountWarning": { + "message": "Việc xóa tài khoản là vĩnh viễn và không thể hoàn tác." + }, + "accountDeleted": { + "message": "Tài khoản đã được xóa" + }, + "accountDeletedDesc": { + "message": "Tài khoản của bạn đã được đóng và tất cả những dữ liệu liên quan đã được xóa." + }, + "myAccount": { + "message": "Tài khoản của tôi" + }, + "tools": { + "message": "Công cụ" + }, + "importData": { + "message": "Nhập dữ liệu" + }, + "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." + }, + "importSuccess": { + "message": "Dữ liệu đã được nhập vào kho thành công." + }, + "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": "Dữ liệu không được định dạng đúng cách, vui lòng kiểm tra và thử lại." + }, + "importNothingError": { + "message": "Không có gì đã được nhập." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "selectFormat": { + "message": "Chọn định dạng cho file xuất" + }, + "selectImportFile": { + "message": "Chọn tập tin nhập" + }, + "orCopyPasteFileContents": { + "message": "hoặc sao chép/dán để nhập nội dung file" + }, + "instructionsFor": { + "message": "Chỉ dẫn cho $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "Tùy chọn" + }, + "optionsDesc": { + "message": "Tùy biến trải nghiệm kho mạng của bạn." + }, + "optionsUpdated": { + "message": "Tùy chọn đã được cập nhật" + }, + "language": { + "message": "Ngôn ngữ" + }, + "languageDesc": { + "message": "Thay đổi ngôn ngữ của kho mạng." + }, + "disableIcons": { + "message": "Vô hiệu hóa icon website" + }, + "disableIconsDesc": { + "message": "Website Icons provide a recognizable image next to each login item in your vault." + }, + "enableGravatars": { + "message": "Enable Gravatars", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "Use avatar images loaded from gravatar.com." + }, + "enableFullWidth": { + "message": "Enable Full Width Layout", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "Allow the web vault to expand the full width of the browser window." + }, + "default": { + "message": "Mặc định" + }, + "domainRules": { + "message": "Quy luật tên miền" + }, + "domainRulesDesc": { + "message": "If you have the same login across multiple different website domains, you can mark the website as \"equivalent\". \"Global\" domains are ones already created for you by Bitwarden." + }, + "globalEqDomains": { + "message": "Global Equivalent Domains" + }, + "customEqDomains": { + "message": "Custom Equivalent Domains" + }, + "exclude": { + "message": "Ngoại trừ" + }, + "include": { + "message": "Bao gồm" + }, + "customize": { + "message": "Tùy biến" + }, + "newCustomDomain": { + "message": "Tên miền tùy biến mới" + }, + "newCustomDomainDesc": { + "message": "Enter a list of domains separated by commas. Only \"base\" domains are allowed. Do not enter subdomains. For example, enter \"google.com\" instead of \"www.google.com\". You can also enter \"androidapp://package.name\" to associate an android app with other website domains." + }, + "customDomainX": { + "message": "Custom Domain $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "Tên miền được cập nhật" + }, + "twoStepLogin": { + "message": "Xác thực 2 bước" + }, + "twoStepLoginDesc": { + "message": "Bảo mật tài khoản bằng các phương pháp sau khi đăng nhập." + }, + "twoStepLoginOrganizationDesc": { + "message": "Require two-step login for your organization's users by configuring providers at the organization level." + }, + "twoStepLoginRecoveryWarning": { + "message": "Enabling two-step login can permanently lock you out of your Bitwarden account. A recovery code allows you to access your account in the event that you can no longer use your normal two-step login provider (ex. you lose your device). Bitwarden support will not be able to assist you if you lose access to your account. We recommend you write down or print the recovery code and keep it in a safe place." + }, + "viewRecoveryCode": { + "message": "Hiển thị mã khôi phục" + }, + "providers": { + "message": "Cung cấp", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "Kích hoạt" + }, + "enabled": { + "message": "Kích hoạt" + }, + "premium": { + "message": "Cao cấp", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "Thành viên trả phí" + }, + "premiumRequired": { + "message": "Cần có tài khoản trả phí" + }, + "premiumRequiredDesc": { + "message": "Cần nâng cấp tài khoản trả phí để sử dụng chức năng này." + }, + "youHavePremiumAccess": { + "message": "Bạn được truy cập tài khoản trả phí" + }, + "alreadyPremiumFromOrg": { + "message": "Bạn được truy cập tài khoản trả phí vì tổ chức của bạn đã chi trả cho việc này." + }, + "manage": { + "message": "Quản lý" + }, + "disable": { + "message": "Vô hiệu hoá" + }, + "twoStepLoginProviderEnabled": { + "message": "This two-step login provider is enabled on your account." + }, + "twoStepLoginAuthDesc": { + "message": "Vui lòng nhập mật khẩu chính để chỉnh sửa cài đặt đăng nhập hai bước." + }, + "twoStepAuthenticatorDesc": { + "message": "Làm theo hướng dẫn để thiếp lập đăng nhập hai bước bằng ứng dụng:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "Tải về ứng dụng xác thực hai bước" + }, + "twoStepAuthenticatorNeedApp": { + "message": "Cần ứng dụng xác thực hai bước? Tải theo danh sách sau" + }, + "iosDevices": { + "message": "Thiết bị iOS" + }, + "androidDevices": { + "message": "Thiết bị Android" + }, + "windowsDevices": { + "message": "Thiết bị Windows" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "Những ứng dụng xác thực sau đây được khuyên dùng, thích cái khác cũng được, ko sao." + }, + "twoStepAuthenticatorScanCode": { + "message": "Quét nã QR code bằng ứng dụng xác thực" + }, + "key": { + "message": "Chìa khóa" + }, + "twoStepAuthenticatorEnterCode": { + "message": "Vui lòng nhập mã 6 bước sinh ra từ ứng dụng xác thực" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "Trong trường hợp bạn cần thêm thiết bị khác, ở dưới là mã QR( hoặc khóa) được yêu cầu bởi ứng dụng xác thực." + }, + "twoStepDisableDesc": { + "message": "Bạn có chắc muốn vô hiệu hóa xác thực hai bước?" + }, + "twoStepDisabled": { + "message": "Xác thực hai bước bị hủy bỏ." + }, + "twoFactorYubikeyAdd": { + "message": "Thêm khóa Yubikey mới vào tài khoản của bạn" + }, + "twoFactorYubikeyPlugIn": { + "message": "Cắm khóa Yubikey vào cổng USB máy tính của bạn." + }, + "twoFactorYubikeySelectKey": { + "message": "Select the first empty YubiKey input field below." + }, + "twoFactorYubikeyTouchButton": { + "message": "Chạm vào nút bấm trên Yubikey." + }, + "twoFactorYubikeySaveForm": { + "message": "Lưu mẫu." + }, + "twoFactorYubikeyWarning": { + "message": "Do giới hạn của hệ điều hành, Yubikey KHÔNG thể xài hết được trên các ứng dụng Bitwarden. Bạn nên đăng ký thêm một phương pháp xác thực 2 bước khác khi mà Yubikey không xài được. Hỗ trợ hệ điều hành:" + }, + "twoFactorYubikeySupportUsb": { + "message": "Web vault, desktop application, CLI, and all browser extensions on a device with a USB port that can accept your YubiKey." + }, + "twoFactorYubikeySupportMobile": { + "message": "Mobile apps on a device with NFC capabilities or a USB port that can accept your YubiKey." + }, + "yubikeyX": { + "message": "Yubikey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "Thiết bị U2F $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "Hỗ trợ NFC" + }, + "twoFactorYubikeySupportsNfc": { + "message": "Một trong các khóa bảo mật của tôi có hỗ trợ NFC." + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "Nếu một trong các khóa Yubikey có hỗ trợ NFC (ví dụ như Yubikey NEO), bạn sẽ được nhắc nhở trên thiết bị di động khi sóng NFC được phát hiện." + }, + "yubikeysUpdated": { + "message": "Đã cập nhập Yubikey" + }, + "disableAllKeys": { + "message": "Disable All Keys" + }, + "twoFactorDuoDesc": { + "message": "Enter the Bitwarden application information from your Duo Admin panel." + }, + "twoFactorDuoIntegrationKey": { + "message": "Integration Key" + }, + "twoFactorDuoSecretKey": { + "message": "Mã khóa bí mật" + }, + "twoFactorDuoApiHostname": { + "message": "API Hostname" + }, + "twoFactorEmailDesc": { + "message": "Follow these steps to set up two-step login with email:" + }, + "twoFactorEmailEnterEmail": { + "message": "Enter the email that you wish to receive verification codes" + }, + "twoFactorEmailEnterCode": { + "message": "Enter the resulting 6 digit verification code from the email" + }, + "sendEmail": { + "message": "Gửi Email" + }, + "twoFactorU2fAdd": { + "message": "Add a FIDO U2F security key to your account" + }, + "removeU2fConfirmation": { + "message": "Bạn có chắc chắn muốn xóa khóa bảo mật này?" + }, + "twoFactorWebAuthnAdd": { + "message": "Add a WebAuthn security key to your account" + }, + "readKey": { + "message": "Read Key" + }, + "keyCompromised": { + "message": "Chìa khóa bị lộ." + }, + "twoFactorU2fGiveName": { + "message": "Đặt cho Yubikey một cái tên để nhận diện." + }, + "twoFactorU2fPlugInReadKey": { + "message": "Cắm khóa bảo mật vào cổng USB và bấm nút trên khóa." + }, + "twoFactorU2fTouchButton": { + "message": "Nếu khóa bảo mật có nút, hãy chạm vào." + }, + "twoFactorU2fSaveForm": { + "message": "Lưu mẫu." + }, + "twoFactorU2fWarning": { + "message": "Do giới hạn của hệ điều hành, FIDO U2F KHÔNG thể xài hết được trên các ứng dụng Bitwarden. Bạn nên đăng ký thêm một phương pháp xác thực 2 bước khác khi mà FIDO U2F không xài được. Hỗ trợ hệ điều hành:" + }, + "twoFactorU2fSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a U2F enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorU2fWaiting": { + "message": "Waiting for you to touch the button on your security key" + }, + "twoFactorU2fClickSave": { + "message": "Click the \"Save\" button below to enable this security key for two-step login." + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "There was a problem reading the security key. Try again." + }, + "twoFactorWebAuthnWarning": { + "message": "Due to platform limitations, WebAuthn cannot be used on all Bitwarden applications. You should enable another two-step login provider so that you can access your account when WebAuthn cannot be used. Supported platforms:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "Web vault and browser extensions on a desktop/laptop with a WebAuthn enabled browser (Chrome, Opera, Vivaldi, or Firefox with FIDO U2F enabled)." + }, + "twoFactorRecoveryYourCode": { + "message": "Your Bitwarden two-step login recovery code" + }, + "twoFactorRecoveryNoCode": { + "message": "You have not enabled any two-step login providers yet. After you have enabled a two-step login provider you can check back here for your recovery code." + }, + "printCode": { + "message": "In mã", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "Báo cáo" + }, + "reportsDesc": { + "message": "Identify and close security gaps in your online accounts by clicking the reports below." + }, + "unsecuredWebsitesReport": { + "message": "Báo cáo trang web không an toàn" + }, + "unsecuredWebsitesReportDesc": { + "message": "URLs that start with http:// don’t use the best available encryption. Change the Login URIs for these accounts to https:// for safer browsing." + }, + "unsecuredWebsitesFound": { + "message": "Tìm thấy trang web không an toàn" + }, + "unsecuredWebsitesFoundDesc": { + "message": "We found $COUNT$ items in your vault with unsecured URIs. You should change their URI scheme to https:// if the website allows it.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "No items in your vault have unsecured URIs." + }, + "inactive2faReport": { + "message": "Inactive Two-step Login" + }, + "inactive2faReportDesc": { + "message": "Xác thực 2 bước là một bước quan trọng để bảo vệ tài khoản của bạn khỏi hacker. Nếu trang web cho phép, bạn nên kích hoạt xác thực 2 bước." + }, + "inactive2faFound": { + "message": "Logins Without 2FA Found" + }, + "inactive2faFoundDesc": { + "message": "Tìm thấy $COUNT$ trang web trong kho của bạn có thể thiếu xác thực 2 bước. Để đảm bảo an toàn, bạn nên kích hoạt xác thực 2 bước", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "Không tìm thấy trang web thiếu bảo mật 2 bước trong kho của bạn." + }, + "instructions": { + "message": "Hướng dẫn" + }, + "exposedPasswordsReport": { + "message": "Báo cáo mật khẩu bị rò rỉ" + }, + "exposedPasswordsReportDesc": { + "message": "Mật khẩu bị rò rĩ là mật khẩu đã bị hacker hack được trong các vụ rò rĩ dữ liệu được thông báo công khai hoặc được bán trên web đen( dark web) bởi hacker" + }, + "exposedPasswordsFound": { + "message": "Phát hiện mật khẩu bị rò rĩ" + }, + "exposedPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault that have passwords that were exposed in known data breaches. You should change them to use a new password.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "No items in your vault have passwords that have been exposed in known data breaches." + }, + "checkExposedPasswords": { + "message": "Kiểm tra mật khẩu bị rò rỉ" + }, + "exposedXTimes": { + "message": "Exposed $COUNT$ time(s)", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "Báo cáo mật khẩu không đảm bảo an toàn" + }, + "weakPasswordsReportDesc": { + "message": "Mật khẩu không an toàn có thể bị hacker và công cụ dò mật khẩu tự động đoán được dễ dàng . Chế độ tạo mật khẩu tự động của Bitwarden sẽ khắc phục vấn đề này." + }, + "weakPasswordsFound": { + "message": "Phát hiện mật khẩu không an toàn" + }, + "weakPasswordsFoundDesc": { + "message": "We found $COUNT$ items in your vault with passwords that are not strong. You should update them to use stronger passwords.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "No items in your vault have weak passwords." + }, + "reusedPasswordsReport": { + "message": "Báo cáo mật khẩu tái sử dụng" + }, + "reusedPasswordsReportDesc": { + "message": "Reusing passwords makes it easier for attackers to break into multiple accounts. Change these passwords so that each is unique." + }, + "reusedPasswordsFound": { + "message": "Phát hiện mật khẩu tái sử dụng" + }, + "reusedPasswordsFoundDesc": { + "message": "We found $COUNT$ passwords that are being reused in your vault. You should change them to a unique value.", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "No logins in your vault have passwords that are being reused." + }, + "reusedXTimes": { + "message": "Reused $COUNT$ times", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "Báo cáo dữ liệu bị rò rĩ" + }, + "breachDesc": { + "message": "Breached accounts can expose your personal information. Secure breached accounts by enabling 2FA or creating a stronger password." + }, + "breachCheckUsernameEmail": { + "message": "Check any usernames or email addresses that you use." + }, + "checkBreaches": { + "message": "Check Breaches" + }, + "breachUsernameNotFound": { + "message": "$USERNAME$ was not found in any known data breaches.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "Tin tốt!", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ was found in $COUNT$ different data breaches online.", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "Breached Accounts Found" + }, + "compromisedData": { + "message": "Compromised data" + }, + "website": { + "message": "Trang web" + }, + "affectedUsers": { + "message": "Affected Users" + }, + "breachOccurred": { + "message": "Breach Occurred" + }, + "breachReported": { + "message": "Breach Reported" + }, + "reportError": { + "message": "An error occurred trying to load the report. Try again" + }, + "billing": { + "message": "Hóa đơn" + }, + "accountCredit": { + "message": "Account Credit", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "Account Balance", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "Add Credit", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "Amount", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "Added credit will appear on your account after the payment has been fully processed. Some payment methods are delayed and can take longer to process than others." + }, + "makeSureEnoughCredit": { + "message": "Please make sure that your account has enough credit available for this purchase. If your account does not have enough credit available, your default payment method on file will be used for the difference. You can add credit to your account from the Billing page." + }, + "creditAppliedDesc": { + "message": "Your account's credit can be used to make purchases. Any available credit will be automatically applied towards invoices generated for this account." + }, + "goPremium": { + "message": "Go Premium", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "You've upgraded to premium." + }, + "premiumUpgradeUnlockFeatures": { + "message": "Upgrade your account to a premium membership and unlock some great additional features." + }, + "premiumSignUpStorage": { + "message": "1 GB encrypted storage for file attachments." + }, + "premiumSignUpTwoStep": { + "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + }, + "premiumSignUpEmergency": { + "message": "Emergency Access" + }, + "premiumSignUpReports": { + "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + }, + "premiumSignUpTotp": { + "message": "TOTP verification code (2FA) generator for logins in your vault." + }, + "premiumSignUpSupport": { + "message": "Priority customer support." + }, + "premiumSignUpFuture": { + "message": "All future premium features. More coming soon!" + }, + "premiumPrice": { + "message": "All for just $PRICE$ /year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "Addons" + }, + "premiumAccess": { + "message": "Premium Access" + }, + "premiumAccessDesc": { + "message": "You can add premium access to all members of your organization for $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "Additional Storage (GB)" + }, + "additionalStorageGbDesc": { + "message": "# of additional GB" + }, + "additionalStorageIntervalDesc": { + "message": "Your plan comes with $SIZE$ of encrypted file storage. You can add additional storage for $PRICE$ per GB /$INTERVAL$.", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "Summary" + }, + "total": { + "message": "Total" + }, + "year": { + "message": "năm" + }, + "month": { + "message": "tháng" + }, + "monthAbbr": { + "message": "mo.", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "Phương thức thanh toán của bạn sẽ được thu phí ngay lập tức và sau đó sẽ định kỳ thu phí mỗi năm. Bạn có thể hủy bỏ bất cứ lúc nào." + }, + "paymentCharged": { + "message": "Your payment method will be charged immediately and then on a recurring basis each $INTERVAL$. You may cancel at any time.", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "Gói của bạn đi kèm với 7 ngày dùng thử miễn phí. Phương thức thanh toán của bạn sẽ không bị tính phí cho đến khi hết thời gian dùng thử. Việc thanh toán sẽ thực hiện định kỳ mỗi $INTERVAL$. Bạn có thể hủy bỏ bất cứ lúc nào." + }, + "paymentInformation": { + "message": "Thông Tin Thanh Toán" + }, + "billingInformation": { + "message": "Thông Tin Hóa Đơn" + }, + "creditCard": { + "message": "Thẻ Tín Dụng" + }, + "paypalClickSubmit": { + "message": "Nhấn vào nút PayPal để đăng nhập vào tài khoản PayPal của bạn, sau đó nhấn vào nút Submit bên dưới để tiếp tục." + }, + "cancelSubscription": { + "message": "Cancel Subscription" + }, + "subscriptionCanceled": { + "message": "The subscription has been canceled." + }, + "pendingCancellation": { + "message": "Pending Cancellation" + }, + "subscriptionPendingCanceled": { + "message": "The subscription has been marked for cancellation at the end of the current billing period." + }, + "reinstateSubscription": { + "message": "Reinstate Subscription" + }, + "reinstateConfirmation": { + "message": "Are you sure you want to remove the pending cancellation request and reinstate your subscription?" + }, + "reinstated": { + "message": "The subscription has been reinstated." + }, + "cancelConfirmation": { + "message": "Are you sure you want to cancel? You will lose access to all of this subscription's features at the end of this billing cycle." + }, + "canceledSubscription": { + "message": "The subscription has been canceled." + }, + "neverExpires": { + "message": "Never Expires" + }, + "status": { + "message": "Trạng Thái" + }, + "nextCharge": { + "message": "Next Charge" + }, + "details": { + "message": "Details" + }, + "downloadLicense": { + "message": "Download License" + }, + "updateLicense": { + "message": "Update License" + }, + "updatedLicense": { + "message": "Updated license" + }, + "manageSubscription": { + "message": "Manage Subscription" + }, + "storage": { + "message": "Lưu trữ" + }, + "addStorage": { + "message": "Add Storage" + }, + "removeStorage": { + "message": "Remove Storage" + }, + "subscriptionStorage": { + "message": "Your subscription has a total of $MAX_STORAGE$ GB of encrypted file storage. You are currently using $USED_STORAGE$.", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "Payment Method" + }, + "noPaymentMethod": { + "message": "No payment method on file." + }, + "addPaymentMethod": { + "message": "Add Payment Method" + }, + "changePaymentMethod": { + "message": "Change Payment Method" + }, + "invoices": { + "message": "Invoices" + }, + "noInvoices": { + "message": "No invoices." + }, + "paid": { + "message": "Paid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "Unpaid", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "Transactions", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "No transactions." + }, + "chargeNoun": { + "message": "Charge", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "Refund", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "Any charges will appear on your statement as $STATEMENT_NAME$.", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB of Storage To Add" + }, + "gbStorageRemove": { + "message": "GB of Storage To Remove" + }, + "storageAddNote": { + "message": "Adding storage will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "storageRemoveNote": { + "message": "Removing storage will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedStorage": { + "message": "Adjusted $AMOUNT$ GB of storage.", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "Contact Customer Support" + }, + "updatedPaymentMethod": { + "message": "Updated payment method." + }, + "purchasePremium": { + "message": "Purchase Premium" + }, + "licenseFile": { + "message": "License File" + }, + "licenseFileDesc": { + "message": "Your license file will be named something like $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "To upgrade your account to a premium membership you need to upload a valid license file." + }, + "uploadLicenseFileOrg": { + "message": "To create an on-premises hosted organization you need to upload a valid license file." + }, + "accountEmailMustBeVerified": { + "message": "Your account's email address must be verified." + }, + "newOrganizationDesc": { + "message": "Organizations allow you to share parts of your vault with others as well as manage related users for a specific entity such as a family, small team, or large company." + }, + "generalInformation": { + "message": "General Information" + }, + "organizationName": { + "message": "Organization Name" + }, + "accountOwnedBusiness": { + "message": "This account is owned by a business." + }, + "billingEmail": { + "message": "Billing Email" + }, + "businessName": { + "message": "Business Name" + }, + "chooseYourPlan": { + "message": "Choose Your Plan" + }, + "users": { + "message": "Users" + }, + "userSeats": { + "message": "User Seats" + }, + "additionalUserSeats": { + "message": "Additional User Seats" + }, + "userSeatsDesc": { + "message": "# of user seats" + }, + "userSeatsAdditionalDesc": { + "message": "Your plan comes with $BASE_SEATS$ user seats. You can add additional users for $SEAT_PRICE$ per user /month.", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "How many user seats do you need? You can also add additional seats later if needed." + }, + "planNameFree": { + "message": "Free", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "For testing or personal users to share with $COUNT$ other user.", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "Families" + }, + "planDescFamilies": { + "message": "Để sử dụng cá nhân, chia sẻ với gia đình và bạn bè." + }, + "planNameTeams": { + "message": "Teams" + }, + "planDescTeams": { + "message": "For businesses and other team organizations." + }, + "planNameEnterprise": { + "message": "Enterprise" + }, + "planDescEnterprise": { + "message": "For businesses and other large organizations." + }, + "freeForever": { + "message": "Miễn Phí Mãi Mãi" + }, + "includesXUsers": { + "message": "includes $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "Additional Users" + }, + "costPerUser": { + "message": "$COST$ per user", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "Limited to $COUNT$ users (including you)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "Limited to $COUNT$ collections", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "Add and share with up to $COUNT$ users", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "Add and share with unlimited users" + }, + "createUnlimitedCollections": { + "message": "Create unlimited Collections" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ encrypted file storage", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "On-premise hosting (optional)" + }, + "usersGetPremium": { + "message": "Users get access to Premium Features" + }, + "controlAccessWithGroups": { + "message": "Control user access with Groups" + }, + "syncUsersFromDirectory": { + "message": "Sync your users and Groups from a directory" + }, + "trackAuditLogs": { + "message": "Track user actions with audit logs" + }, + "enforce2faDuo": { + "message": "Enforce 2FA with Duo" + }, + "priorityCustomerSupport": { + "message": "Priority customer support" + }, + "xDayFreeTrial": { + "message": "$COUNT$ day free trial, cancel anytime", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "Hàng tháng" + }, + "annually": { + "message": "Hàng năm" + }, + "basePrice": { + "message": "Base Price" + }, + "organizationCreated": { + "message": "Organization Created" + }, + "organizationReadyToGo": { + "message": "Your new organization is ready to go!" + }, + "organizationUpgraded": { + "message": "Your organization has been upgraded." + }, + "leave": { + "message": "Leave" + }, + "leaveOrganizationConfirmation": { + "message": "Are you sure you want to leave this organization?" + }, + "leftOrganization": { + "message": "You have left the organization." + }, + "defaultCollection": { + "message": "Default Collection" + }, + "getHelp": { + "message": "Get Help" + }, + "getApps": { + "message": "Get the Apps" + }, + "loggedInAs": { + "message": "Logged in as" + }, + "eventLogs": { + "message": "Event Logs" + }, + "people": { + "message": "People" + }, + "policies": { + "message": "Policies" + }, + "singleSignOn": { + "message": "Single Sign-On" + }, + "editPolicy": { + "message": "Edit Policy" + }, + "groups": { + "message": "Groups" + }, + "newGroup": { + "message": "New Group" + }, + "addGroup": { + "message": "Thêm Nhóm" + }, + "editGroup": { + "message": "Chỉnh Sửa Nhóm" + }, + "deleteGroupConfirmation": { + "message": "Bạn có chắc chắn muốn xóa nhóm này?" + }, + "removeUserConfirmation": { + "message": "Are you sure you want to remove this user?" + }, + "removeUserConfirmationKeyConnector": { + "message": "Warning! This user requires Key Connector to manage their encryption. Removing this user from your organization will permanently disable their account. This action cannot be undone. Do you want to proceed?" + }, + "externalId": { + "message": "External Id" + }, + "externalIdDesc": { + "message": "The external id can be used as a reference or to link this resource to an external system such as a user directory." + }, + "accessControl": { + "message": "Access Control" + }, + "groupAccessAllItems": { + "message": "This group can access and modify all items." + }, + "groupAccessSelectedCollections": { + "message": "This group can access only the selected collections." + }, + "readOnly": { + "message": "Read Only" + }, + "newCollection": { + "message": "New Collection" + }, + "addCollection": { + "message": "Add Collection" + }, + "editCollection": { + "message": "Edit Collection" + }, + "deleteCollectionConfirmation": { + "message": "Are you sure you want to delete this collection?" + }, + "editUser": { + "message": "Edit User" + }, + "inviteUser": { + "message": "Invite User" + }, + "inviteUserDesc": { + "message": "Invite a new user to your organization by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "inviteMultipleEmailDesc": { + "message": "You can invite up to $COUNT$ users at a time by comma separating a list of email addresses.", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "This user is using two-step login to protect their account." + }, + "userAccessAllItems": { + "message": "This user can access and modify all items." + }, + "userAccessSelectedCollections": { + "message": "This user can access only the selected collections." + }, + "search": { + "message": "Search" + }, + "invited": { + "message": "Invited" + }, + "accepted": { + "message": "Accepted" + }, + "confirmed": { + "message": "Confirmed" + }, + "clientOwnerEmail": { + "message": "Client Owner Email" + }, + "owner": { + "message": "Owner" + }, + "ownerDesc": { + "message": "The highest access user that can manage all aspects of your organization." + }, + "clientOwnerDesc": { + "message": "This user should be independent of the Provider. If the Provider is disassociated with the organization, this user will maintain ownership of the organization." + }, + "admin": { + "message": "Admin" + }, + "adminDesc": { + "message": "Admins can access and manage all items, collections and users in your organization." + }, + "user": { + "message": "User" + }, + "userDesc": { + "message": "A regular user with access to assigned collections in your organization." + }, + "manager": { + "message": "Manager" + }, + "managerDesc": { + "message": "Managers can access and manage assigned collections in your organization." + }, + "all": { + "message": "All" + }, + "refresh": { + "message": "Refresh" + }, + "timestamp": { + "message": "Timestamp" + }, + "event": { + "message": "Event" + }, + "unknown": { + "message": "Unknown" + }, + "loadMore": { + "message": "Load More" + }, + "mobile": { + "message": "Mobile", + "description": "Mobile app" + }, + "extension": { + "message": "Extension", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "Desktop", + "description": "Desktop app" + }, + "webVault": { + "message": "Web Vault" + }, + "loggedIn": { + "message": "Logged in." + }, + "changedPassword": { + "message": "Changed account password." + }, + "enabledUpdated2fa": { + "message": "Enabled/updated two-step login." + }, + "disabled2fa": { + "message": "Đã tắt đăng nhập 2 bước." + }, + "recovered2fa": { + "message": "Recovered account from two-step login." + }, + "failedLogin": { + "message": "Login attempt failed with incorrect password." + }, + "failedLogin2fa": { + "message": "Login attempt failed with incorrect two-step login." + }, + "exportedVault": { + "message": "Exported vault." + }, + "exportedOrganizationVault": { + "message": "Exported organization vault." + }, + "editedOrgSettings": { + "message": "Edited organization settings." + }, + "createdItemId": { + "message": "Created item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "Edited item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "Sent item $ID$ to trash.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "Moved item $ID$ to an organization.", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "Viewed item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "Viewed password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "Viewed hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "Viewed security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "Copied password for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "Copied hidden field for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "Copied security code for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "Auto-filled item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "Created collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "Edited collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "Deleted collection $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "Edited policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "Created group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "Edited group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "Deleted group $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "Removed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "Created attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "Deleted attachment for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "Edited collections for item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "Invited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "Confirmed user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "Edited user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "Edited groups for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "Unlinked SSO for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "Created organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "Added organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "Removed organization $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "Accessed $ID$ organization vault.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "Thiết bị" + }, + "view": { + "message": "View" + }, + "invalidDateRange": { + "message": "Invalid date range." + }, + "errorOccurred": { + "message": "An error has occurred." + }, + "userAccess": { + "message": "User Access" + }, + "userType": { + "message": "User Type" + }, + "groupAccess": { + "message": "Group Access" + }, + "groupAccessUserDesc": { + "message": "Edit the groups that this user belongs to." + }, + "invitedUsers": { + "message": "Invited user(s)." + }, + "resendInvitation": { + "message": "Resend Invitation" + }, + "resendEmail": { + "message": "Resend Email" + }, + "hasBeenReinvited": { + "message": "$USER$ has been reinvited.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "Confirm" + }, + "confirmUser": { + "message": "Confirm User" + }, + "hasBeenConfirmed": { + "message": "$USER$ has been confirmed.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "Confirm Users" + }, + "usersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the organization until they are confirmed." + }, + "startDate": { + "message": "Start Date" + }, + "endDate": { + "message": "End Date" + }, + "verifyEmail": { + "message": "Verify Email" + }, + "verifyEmailDesc": { + "message": "Verify your account's email address to unlock access to all features." + }, + "verifyEmailFirst": { + "message": "Your account's email address first must be verified." + }, + "checkInboxForVerification": { + "message": "Check your email inbox for a verification link." + }, + "emailVerified": { + "message": "Your email has been verified." + }, + "emailVerifiedFailed": { + "message": "Unable to verify your email. Try sending a new verification email." + }, + "emailVerificationRequired": { + "message": "Email Verification Required" + }, + "emailVerificationRequiredDesc": { + "message": "You must verify your email to use this feature." + }, + "updateBrowser": { + "message": "Update Browser" + }, + "updateBrowserDesc": { + "message": "You are using an unsupported web browser. The web vault may not function properly." + }, + "joinOrganization": { + "message": "Join Organization" + }, + "joinOrganizationDesc": { + "message": "You've been invited to join the organization listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "inviteAccepted": { + "message": "Invitation Accepted" + }, + "inviteAcceptedDesc": { + "message": "You can access this organization once an administrator confirms your membership. We'll send you an email when that happens." + }, + "inviteAcceptFailed": { + "message": "Unable to accept invitation. Ask an organization admin to send a new invitation." + }, + "inviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "Remember email" + }, + "recoverAccountTwoStepDesc": { + "message": "If you cannot access your account through your normal two-step login methods, you can use your two-step login recovery code to disable all two-step providers on your account." + }, + "recoverAccountTwoStep": { + "message": "Recover Account Two-Step Login" + }, + "twoStepRecoverDisabled": { + "message": "Two-step login has been disabled on your account." + }, + "learnMore": { + "message": "Tìm hiểu thêm" + }, + "deleteRecoverDesc": { + "message": "Nhập địa chỉ email của bạn vào bên dưới để khôi phục và xóa tài khoản của bạn." + }, + "deleteRecoverEmailSent": { + "message": "Nếu tài khoản của bạn có tồn tại, chúng tôi đã gửi cho bạn một email với hướng dẫn chi tiết." + }, + "deleteRecoverConfirmDesc": { + "message": "Bạn đã yêu cầu xóa tài khoản Bitwarden của mình. Nhấn vào nút bên dưới để xác nhận." + }, + "myOrganization": { + "message": "My Organization" + }, + "deleteOrganization": { + "message": "Delete Organization" + }, + "deletingOrganizationContentWarning": { + "message": "Enter the master password to confirm deletion of $ORGANIZATION$ and all associated data. Vault data in $ORGANIZATION$ includes:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "User accounts will remain active after deletion but will no longer be associated to this organization." + }, + "deletingOrganizationIsPermanentWarning": { + "message": "Deleting $ORGANIZATION$ is permanent and irreversible.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "Organization Deleted" + }, + "organizationDeletedDesc": { + "message": "The organization and all associated data has been deleted." + }, + "organizationUpdated": { + "message": "Organization updated" + }, + "taxInformation": { + "message": "Thông Tin Thuế" + }, + "taxInformationDesc": { + "message": "Đối với các khách hàng ở Mỹ, mã ZIP là bắt buộc để đáp ứng các yêu cầu về thuế bán hàng, đối với các quốc gia khác, bạn có thể tùy chọn cung cấp mã số thuế (VAT / GST) và/hoặc địa chỉ để xuất hiện trên hóa đơn của mình." + }, + "billingPlan": { + "message": "Gói", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "Thay Đổi Gói", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "Upgrade your account to another plan be providing the information below. Please ensure that you have an active payment method added to the account.", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "Hóa đơn số #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "Xem Hóa đơn" + }, + "downloadInvoice": { + "message": "Tải Hóa đơn" + }, + "verifyBankAccount": { + "message": "Xác minh tài khoản ngân hàng" + }, + "verifyBankAccountDesc": { + "message": "We have made two micro-deposits to your bank account (it may take 1-2 business days to show up). Enter these amounts to verify the bank account." + }, + "verifyBankAccountInitialDesc": { + "message": "Payment with a bank account is only available to customers in the United States. You will be required to verify your bank account. We will make two micro-deposits within the next 1-2 business days. Enter these amounts on the organization's billing page to verify the bank account." + }, + "verifyBankAccountFailureWarning": { + "message": "Failure to verify the bank account will result in a missed payment and your subscription being disabled." + }, + "verifiedBankAccount": { + "message": "Bank account has been verified." + }, + "bankAccount": { + "message": "Bank Account" + }, + "amountX": { + "message": "Amount $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "Routing Number", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "Account Number" + }, + "accountHolderName": { + "message": "Account Holder Name" + }, + "bankAccountType": { + "message": "Loại tài khoản" + }, + "bankAccountTypeCompany": { + "message": "Company (Business)" + }, + "bankAccountTypeIndividual": { + "message": "Individual (Personal)" + }, + "enterInstallationId": { + "message": "Enter your installation id" + }, + "limitSubscriptionDesc": { + "message": "Set a seat limit for your subscription. Once this limit is reached, you will not be able to invite new users." + }, + "maxSeatLimit": { + "message": "Maximum Seat Limit (optional)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "Max potential seat cost" + }, + "addSeats": { + "message": "Add Seats", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "Remove Seats", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeats": { + "message": "Your subscription allows for a total of $COUNT$ users.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "Limit Subscription (Optional)" + }, + "subscriptionSeats": { + "message": "Subscription Seats" + }, + "subscriptionUpdated": { + "message": "Subscription updated" + }, + "additionalOptions": { + "message": "Additional Options" + }, + "additionalOptionsDesc": { + "message": "For additional help in managing your subscription, please contact Customer Support." + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users." + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. If newly invited users exceed your subscription seats, you will immediately receive a prorated charge for the additional users until your $MAX$ seat limit is reached.", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan.", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "You cannot invite more than $COUNT$ users without upgrading your plan. Please contact Customer Support to upgrade.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "Your subscription allows for a total of $COUNT$ users. Your plan is sponsored and billed to an external organization.", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "Adjustments to your subscription will result in prorated changes to your billing totals. You cannot invite more than $COUNT$ users without increasing your subscription seats.", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "Seats To Add" + }, + "seatsToRemove": { + "message": "Seats To Remove" + }, + "seatsAddNote": { + "message": "Adding user seats will result in adjustments to your billing totals and immediately charge your payment method on file. The first charge will be prorated for the remainder of the current billing cycle." + }, + "seatsRemoveNote": { + "message": "Removing user seats will result in adjustments to your billing totals that will be prorated as credits toward your next billing charge." + }, + "adjustedSeats": { + "message": "Adjusted $AMOUNT$ user seats.", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "Key Updated" + }, + "updateKeyTitle": { + "message": "Update Key" + }, + "updateEncryptionKey": { + "message": "Update Encryption Key" + }, + "updateEncryptionKeyShortDesc": { + "message": "You are currently using an outdated encryption scheme." + }, + "updateEncryptionKeyDesc": { + "message": "We've moved to larger encryption keys that provide better security and access to newer features. Updating your encryption key is quick and easy. Just type your master password below. This update will eventually become mandatory." + }, + "updateEncryptionKeyWarning": { + "message": "After updating your encryption key, you are required to log out and back in to all Bitwarden applications that you are currently using (such as the mobile app or browser extensions). Failure to log out and back in (which downloads your new encryption key) may result in data corruption. We will attempt to log you out automatically, however, it may be delayed." + }, + "updateEncryptionKeyExportWarning": { + "message": "Any encrypted exports that you have saved will also become invalid." + }, + "subscription": { + "message": "Subscription" + }, + "loading": { + "message": "Loading" + }, + "upgrade": { + "message": "Upgrade" + }, + "upgradeOrganization": { + "message": "Upgrade Organization" + }, + "upgradeOrganizationDesc": { + "message": "This feature is not available for free organizations. Switch to a paid plan to unlock more features." + }, + "createOrganizationStep1": { + "message": "Create Organization: Step 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "Before creating your organization, you first need to create a free personal account." + }, + "refunded": { + "message": "Refunded" + }, + "nothingSelected": { + "message": "You have not selected anything." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." + }, + "termsOfService": { + "message": "Terms of Service" + }, + "privacyPolicy": { + "message": "Privacy Policy" + }, + "filters": { + "message": "Filters" + }, + "vaultTimeout": { + "message": "Vault Timeout" + }, + "vaultTimeoutDesc": { + "message": "Choose when your vault will timeout and perform the selected action." + }, + "oneMinute": { + "message": "1 phút" + }, + "fiveMinutes": { + "message": "5 phút" + }, + "fifteenMinutes": { + "message": "15 phút" + }, + "thirtyMinutes": { + "message": "30 phút" + }, + "oneHour": { + "message": "1 giờ" + }, + "fourHours": { + "message": "4 giờ" + }, + "onRefresh": { + "message": "Mỗi khi khởi động lại trình duyệt" + }, + "dateUpdated": { + "message": "Updated", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Mật khẩu đã cập nhật", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "Organization is disabled." + }, + "licenseIsExpired": { + "message": "License is expired." + }, + "updatedUsers": { + "message": "Updated users" + }, + "selected": { + "message": "Selected" + }, + "ownership": { + "message": "Ownership" + }, + "whoOwnsThisItem": { + "message": "Who owns this item?" + }, + "strong": { + "message": "Strong", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "Good", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "Yếu", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "Rất Yếu", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Weak Master Password" + }, + "weakMasterPasswordDesc": { + "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + }, + "rotateAccountEncKey": { + "message": "Also rotate my account's encryption key" + }, + "rotateEncKeyTitle": { + "message": "Rotate Encryption Key" + }, + "rotateEncKeyConfirmation": { + "message": "Are you sure you want to rotate your account's encryption key?" + }, + "attachmentsNeedFix": { + "message": "This item has old file attachments that need to be fixed." + }, + "attachmentFixDesc": { + "message": "This is an old file attachment the needs to be fixed. Click to learn more." + }, + "fix": { + "message": "Fix", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "There are old file attachments in your vault that need to be fixed before you can rotate your account's encryption key." + }, + "yourAccountsFingerprint": { + "message": "Your account's fingerprint phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "To ensure the integrity of your encryption keys, please verify the user's fingerprint phrase before continuing.", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "Never prompt to verify fingerprint phrases for invited users (Not recommended)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "Miễn phí", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API Key" + }, + "apiKeyDesc": { + "message": "Your API key can be used to authenticate to the Bitwarden public API." + }, + "apiKeyRotateDesc": { + "message": "Rotating the API key will invalidate the previous key. You can rotate your API key if you believe that the current key is no longer safe to use." + }, + "apiKeyWarning": { + "message": "Your API key has full access to the organization. It should be kept secret." + }, + "userApiKeyDesc": { + "message": "Your API key can be used to authenticate in the Bitwarden CLI." + }, + "userApiKeyWarning": { + "message": "Your API key is an alternative authentication mechanism. It should be kept secret." + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 Client Credentials", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "View API Key" + }, + "rotateApiKey": { + "message": "Rotate API Key" + }, + "selectOneCollection": { + "message": "You must select at least one collection." + }, + "couldNotChargeCardPayInvoice": { + "message": "We were not able to charge your card. Please view and pay the unpaid invoice listed below." + }, + "inAppPurchase": { + "message": "In-app Purchase" + }, + "cannotPerformInAppPurchase": { + "message": "You cannot perform this action while using an in-app purchase payment method." + }, + "manageSubscriptionFromStore": { + "message": "You must manage your subscription from the store where your in-app purchase was made." + }, + "minLength": { + "message": "Minimum Length" + }, + "clone": { + "message": "Clone" + }, + "masterPassPolicyDesc": { + "message": "Set minimum requirements for master password strength." + }, + "twoStepLoginPolicyDesc": { + "message": "Require users to set up two-step login on their personal accounts." + }, + "twoStepLoginPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and do not have two-step login enabled for their personal account will be removed from the organization and will receive an email notifying them about the change." + }, + "twoStepLoginPolicyUserWarning": { + "message": "You are a member of an organization that requires two-step login to be enabled on your user account. If you disable all two-step login providers you will be automatically removed from these organizations." + }, + "passwordGeneratorPolicyDesc": { + "message": "Set minimum requirements for password generator configuration." + }, + "passwordGeneratorPolicyInEffect": { + "message": "One or more organization policies are affecting your generator settings." + }, + "masterPasswordPolicyInEffect": { + "message": "One or more organization policies require your master password to meet the following requirements:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum complexity score of $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum length of $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contain one or more uppercase characters" + }, + "policyInEffectLowercase": { + "message": "Contain one or more lowercase characters" + }, + "policyInEffectNumbers": { + "message": "Contain one or more numbers" + }, + "policyInEffectSpecial": { + "message": "Contain one or more of the following special characters $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Your new master password does not meet the policy requirements." + }, + "minimumNumberOfWords": { + "message": "Minimum Number of Words" + }, + "defaultType": { + "message": "Default Type" + }, + "userPreference": { + "message": "User Preference" + }, + "vaultTimeoutAction": { + "message": "Vault Timeout Action" + }, + "vaultTimeoutActionLockDesc": { + "message": "A locked vault requires that you re-enter your master password to access it again." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "A logged out vault requires that you re-authenticate to access it again." + }, + "lock": { + "message": "Khóa", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Thùng rác", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "Tìm kiếm thùng rác" + }, + "permanentlyDelete": { + "message": "Xóa Vĩnh Viễn" + }, + "permanentlyDeleteSelected": { + "message": "Permanently Delete Selected" + }, + "permanentlyDeleteItem": { + "message": "Permanently Delete Item" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Bạn có chắc chắn muốn xóa vĩnh viễn mục này không?" + }, + "permanentlyDeletedItem": { + "message": "Permanently Deleted item" + }, + "permanentlyDeletedItems": { + "message": "Permanently Deleted items" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to permanently delete. Are you sure you want to permanently delete all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "Permanently Deleted item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "Khôi phục" + }, + "restoreSelected": { + "message": "Khôi phục những mục đã chọn" + }, + "restoreItem": { + "message": "Restore Item" + }, + "restoredItem": { + "message": "Restored Item" + }, + "restoredItems": { + "message": "Restored Items" + }, + "restoreItemConfirmation": { + "message": "Are you sure you want to restore this item?" + }, + "restoreItems": { + "message": "Restore items" + }, + "restoreSelectedItemsDesc": { + "message": "You have selected $COUNT$ item(s) to restore. Are you sure you want to restore all of these items?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "Restored item $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout Action Confirmation" + }, + "hidePasswords": { + "message": "Hide Passwords" + }, + "countryPostalCodeRequiredDesc": { + "message": "We require this information for calculating sales tax and financial reporting only." + }, + "includeVAT": { + "message": "Include VAT/GST Information (optional)" + }, + "taxIdNumber": { + "message": "VAT/GST Tax ID" + }, + "taxInfoUpdated": { + "message": "Tax information updated." + }, + "setMasterPassword": { + "message": "Thiết lập mật khẩu chính" + }, + "ssoCompleteRegistration": { + "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + }, + "identifier": { + "message": "Identifier" + }, + "organizationIdentifier": { + "message": "Organization Identifier" + }, + "ssoLogInWithOrgIdentifier": { + "message": "Log in using your organization's single sign-on portal. Please enter your organization's identifier to begin." + }, + "enterpriseSingleSignOn": { + "message": "Enterprise Single Sign-On" + }, + "ssoHandOff": { + "message": "You may now close this tab and continue in the extension." + }, + "includeAllTeamsFeatures": { + "message": "All Teams features, plus:" + }, + "includeSsoAuthentication": { + "message": "SSO Authentication via SAML2.0 and OpenID Connect" + }, + "includeEnterprisePolicies": { + "message": "Enterprise Policies" + }, + "ssoValidationFailed": { + "message": "SSO Validation Failed" + }, + "ssoIdentifierRequired": { + "message": "Organization Identifier is required." + }, + "unlinkSso": { + "message": "Unlink SSO" + }, + "unlinkSsoConfirmation": { + "message": "Are you sure you want to unlink SSO for this organization?" + }, + "linkSso": { + "message": "Link SSO" + }, + "singleOrg": { + "message": "Single Organization" + }, + "singleOrgDesc": { + "message": "Restrict users from being able to join any other organizations." + }, + "singleOrgBlockCreateMessage": { + "message": "Your current organization has a policy that does not allow you to join more than one organization. Please contact your organization admins or sign up from a different Bitwarden account." + }, + "singleOrgPolicyWarning": { + "message": "Organization members who are not Owners or Administrators and are already a member of another organization will be removed from your organization." + }, + "requireSso": { + "message": "Single Sign-On Authentication" + }, + "requireSsoPolicyDesc": { + "message": "Require users to log in with the Enterprise Single Sign-On method." + }, + "prerequisite": { + "message": "Prerequisite" + }, + "requireSsoPolicyReq": { + "message": "The Single Organization enterprise policy must be enabled before activating this policy." + }, + "requireSsoPolicyReqError": { + "message": "Single Organization policy not enabled." + }, + "requireSsoExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "sendTypeFile": { + "message": "Tập tin" + }, + "sendTypeText": { + "message": "Văn bản" + }, + "createSend": { + "message": "Tạo Send mới", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "Chỉnh sửa Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Đã tạo Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Đã chỉnh sửa Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Đã xóa Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "Xóa Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "Bạn có chắc chắn muốn xóa Send này?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "Đây là loại Send gì?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "Deletion Date" + }, + "deletionDateDesc": { + "message": "Send sẽ được xóa vĩnh viễn vào ngày và giờ được chỉ định.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "Expiration Date" + }, + "expirationDateDesc": { + "message": "Nếu được thiết lập, truy cập vào Send này sẽ hết hạn vào ngày và giờ được chỉ định.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "Maximum Access Count" + }, + "maxAccessCountDesc": { + "message": "Nếu được thiết lập, khi đã đạt tới số lượng truy cập tối đa, người dùng sẽ không thể truy cập Send này nữa.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "Số lượng truy cập hiện tại" + }, + "sendPasswordDesc": { + "message": "Optionally require a password for users to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "Private notes about this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "Đã tắt" + }, + "sendLink": { + "message": "Gửi liên kết", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "Sao chép liên kết Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "Remove Password" + }, + "removedPassword": { + "message": "Removed Password" + }, + "removePasswordConfirmation": { + "message": "Are you sure you want to remove the password?" + }, + "hideEmail": { + "message": "Hide my email address from recipients." + }, + "disableThisSend": { + "message": "Disable this Send so that no one can access it.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "Toàn bộ Send" + }, + "maxAccessCountReached": { + "message": "Max access count reached", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "Pending deletion" + }, + "expired": { + "message": "Expired" + }, + "searchSends": { + "message": "Tìm kiếm Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "Send này được bảo vệ bằng mật khẩu. Hãy nhập mật khẩu vào bên dưới để tiếp tục.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "Don't know the password? Ask the Sender for the password needed to access this Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "This send is hidden by default. You can toggle its visibility using the button below.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "Download File" + }, + "sendAccessUnavailable": { + "message": "The Send you are trying to access does not exist or is no longer available.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "The file associated with this Send could not be found.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "There are no Sends to list.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "Truy Cập Khẩn Cấp" + }, + "emergencyAccessDesc": { + "message": "Grant and manage emergency access for trusted contacts. Trusted contacts may request access to either View or Takeover your account in case of an emergency. Visit our help page for more information and details into how zero knowledge sharing works." + }, + "emergencyAccessOwnerWarning": { + "message": "You are an Owner of one or more organizations. If you give takeover access to an emergency contact, they will be able to use all your permissions as Owner after a takeover." + }, + "trustedEmergencyContacts": { + "message": "Trusted emergency contacts" + }, + "noTrustedContacts": { + "message": "You have not added any emergency contacts yet, invite a trusted contact to get started." + }, + "addEmergencyContact": { + "message": "Add emergency contact" + }, + "designatedEmergencyContacts": { + "message": "Designated as emergency contact" + }, + "noGrantedAccess": { + "message": "You have not been designated as an emergency contact for anyone yet." + }, + "inviteEmergencyContact": { + "message": "Invite emergency contact" + }, + "editEmergencyContact": { + "message": "Edit emergency contact" + }, + "inviteEmergencyContactDesc": { + "message": "Invite a new emergency contact by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "emergencyAccessRecoveryInitiated": { + "message": "Emergency Access Initiated" + }, + "emergencyAccessRecoveryApproved": { + "message": "Emergency Access Approved" + }, + "viewDesc": { + "message": "Can view all items in your own vault." + }, + "takeover": { + "message": "Takeover" + }, + "takeoverDesc": { + "message": "Can reset your account with a new master password." + }, + "waitTime": { + "message": "Wait Time" + }, + "waitTimeDesc": { + "message": "Time required before automatically granting access." + }, + "oneDay": { + "message": "1 ngày" + }, + "days": { + "message": "$DAYS$ ngày", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "Invited user." + }, + "acceptEmergencyAccess": { + "message": "You've been invited to become an emergency contact for the user listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "emergencyInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask the user to send a new invitation." + }, + "emergencyInviteAcceptFailedShort": { + "message": "Unable to accept invitation. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "You can access the emergency options for this user after your identity has been confirmed. We'll send you an email when that happens." + }, + "requestAccess": { + "message": "Request Access" + }, + "requestAccessConfirmation": { + "message": "Are you sure you want to request emergency access? You will be provided access after $WAITTIME$ day(s) or whenever the user manually approves the request.", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "Emergency access requested for $USER$. We'll notify you by email when it's possible to continue.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "Chấp nhận" + }, + "reject": { + "message": "Từ chối" + }, + "approveAccessConfirmation": { + "message": "Are you sure you want to approve emergency access? This will allow $USER$ to $ACTION$ your account.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "Emergency access approved." + }, + "emergencyRejected": { + "message": "Emergency access rejected" + }, + "passwordResetFor": { + "message": "Password reset for $USER$. You can now login using the new password.", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "Personal Ownership" + }, + "personalOwnershipPolicyDesc": { + "message": "Require users to save vault items to an organization by removing the personal ownership option." + }, + "personalOwnershipExemption": { + "message": "Organization Owners and Administrators are exempt from this policy's enforcement." + }, + "personalOwnershipSubmitError": { + "message": "Due to an enterprise policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections." + }, + "disableSend": { + "message": "Tắt Send" + }, + "disableSendPolicyDesc": { + "message": "Do not allow users to create or edit a Bitwarden Send. Deleting an existing Send is still allowed.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "sendDisabled": { + "message": "Đã tắt Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "Do chính sách doanh nghiệp, bạn chỉ có thể xóa những Send hiện có.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send Options", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "Set options for creating and editing Sends.", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "Organization users that can manage the organization's policies are exempt from this policy's enforcement." + }, + "disableHideEmail": { + "message": "Do not allow users to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "The following organization policies are currently in effect:" + }, + "sendDisableHideEmailInEffect": { + "message": "Users are not allowed to hide their email address from recipients when creating or editing a Send.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "Modified policy $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "Plan price" + }, + "estimatedTax": { + "message": "Estimated tax" + }, + "custom": { + "message": "Custom" + }, + "customDesc": { + "message": "Allows more granular control of user permissions for advanced configurations." + }, + "permissions": { + "message": "Permissions" + }, + "accessEventLogs": { + "message": "Access Event Logs" + }, + "accessImportExport": { + "message": "Access Import/Export" + }, + "accessReports": { + "message": "Access Reports" + }, + "missingPermissions": { + "message": "You lack the necessary permissions to perform this action." + }, + "manageAllCollections": { + "message": "Manage All Collections" + }, + "createNewCollections": { + "message": "Create New Collections" + }, + "editAnyCollection": { + "message": "Edit Any Collection" + }, + "deleteAnyCollection": { + "message": "Delete Any Collection" + }, + "manageAssignedCollections": { + "message": "Manage Assigned Collections" + }, + "editAssignedCollections": { + "message": "Edit Assigned Collections" + }, + "deleteAssignedCollections": { + "message": "Delete Assigned Collections" + }, + "manageGroups": { + "message": "Manage Groups" + }, + "managePolicies": { + "message": "Manage Policies" + }, + "manageSso": { + "message": "Manage SSO" + }, + "manageUsers": { + "message": "Quản Lý Người Dùng" + }, + "manageResetPassword": { + "message": "Manage Password Reset" + }, + "disableRequiredError": { + "message": "You must manually disable the $POLICYNAME$ policy before this policy can be disabled.", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "An organization policy is affecting your ownership options." + }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has disabled importing items into your personal vault." + }, + "personalOwnershipCheckboxDesc": { + "message": "Disable personal ownership for organization users" + }, + "textHiddenByDefault": { + "message": "When accessing the Send, hide the text by default", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "Một tên gợi nhớ để mô tả về Send này.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "Văn bản bạn muốn gửi." + }, + "sendFileDesc": { + "message": "Tập tin bạn muốn gửi." + }, + "copySendLinkOnSave": { + "message": "Copy the link to share this Send to my clipboard upon save." + }, + "sendLinkLabel": { + "message": "Send link", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Chia sẻ", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send transmits sensitive, temporary information to others easily and securely.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "Tìm hiểu thêm về", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "Share text or files directly with anyone." + }, + "sendVaultCardLearnMore": { + "message": "Learn more", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "see", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "how it works", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "hoặc", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "thử ngay", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "hoặc", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "đăng ký", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "thử ngay hôm nay.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden user $USER_IDENTIFIER$ shared the following with you", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "The Bitwarden user who created this Send has chosen to hide their email address. You should ensure you trust the source of this link before using or downloading its content.", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "The expiration date provided is not valid." + }, + "deletionDateIsInvalid": { + "message": "The deletion date provided is not valid." + }, + "expirationDateAndTimeRequired": { + "message": "An expiration date and time are required." + }, + "deletionDateAndTimeRequired": { + "message": "A deletion date and time are required." + }, + "dateParsingError": { + "message": "There was an error saving your deletion and expiration dates." + }, + "webAuthnFallbackMsg": { + "message": "To verify your 2FA please click the button below." + }, + "webAuthnAuthenticate": { + "message": "Authenticate WebAuthn" + }, + "webAuthnNotSupported": { + "message": "WebAuthn is not supported in this browser." + }, + "webAuthnSuccess": { + "message": "WebAuthn verified successfully! You may close this tab." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." + }, + "enrollPasswordReset": { + "message": "Enroll in Password Reset" + }, + "enrolledPasswordReset": { + "message": "Enrolled in Password Reset" + }, + "withdrawPasswordReset": { + "message": "Withdraw from Password Reset" + }, + "enrollPasswordResetSuccess": { + "message": "Enrollment success!" + }, + "withdrawPasswordResetSuccess": { + "message": "Withdrawal success!" + }, + "eventEnrollPasswordReset": { + "message": "User $ID$ enrolled in password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "User $ID$ withdrew from password reset assistance.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "Master password reset for user $ID$.", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "Reset Sso link for user $ID$", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ logged in using Sso for the first time", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "Reset Password" + }, + "resetPasswordLoggedOutWarning": { + "message": "Proceeding will log $NAME$ out of their current session, requiring them to log back in. Active sessions on other devices may continue to remain active for up to one hour.", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "this user" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "One or more organization policies require the master password to meet the following requirements:" + }, + "resetPasswordSuccess": { + "message": "Password reset success!" + }, + "resetPasswordEnrollmentWarning": { + "message": "Enrollment will allow organization administrators to change your master password. Are you sure you want to enroll?" + }, + "resetPasswordPolicy": { + "message": "Master Password Reset" + }, + "resetPasswordPolicyDescription": { + "message": "Allow administrators in the organization to reset organization users' master password." + }, + "resetPasswordPolicyWarning": { + "message": "Users in the organization will need to self-enroll or be auto-enrolled before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnroll": { + "message": "Automatic Enrollment" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "All users will be automatically enrolled in password reset once their invite is accepted and will not be allowed to withdraw." + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "Users already in the organization will not be retroactively enrolled in password reset. They will need to self-enroll before administrators can reset their master password." + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "Require new users to be enrolled automatically" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password." + }, + "resetPasswordOrgKeysError": { + "message": "Organization Keys response is null" + }, + "resetPasswordDetailsError": { + "message": "Reset Password Details response is null" + }, + "trashCleanupWarning": { + "message": "Items that have been in Trash more than 30 days will be automatically deleted." + }, + "trashCleanupWarningSelfHosted": { + "message": "Items that have been in Trash for a while will be automatically deleted." + }, + "passwordPrompt": { + "message": "Master password re-prompt" + }, + "passwordConfirmation": { + "message": "Master password confirmation" + }, + "passwordConfirmationDesc": { + "message": "This action is protected. To continue, please re-enter your master password to verify your identity." + }, + "reinviteSelected": { + "message": "Resend Invitations" + }, + "noSelectedUsersApplicable": { + "message": "This action is not applicable to any of the selected users." + }, + "removeUsersWarning": { + "message": "Are you sure you want to remove the following users? The process may take a few seconds to complete and cannot be interrupted or canceled." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Choose a theme for your web vault." + }, + "themeSystem": { + "message": "Use System Theme" + }, + "themeDark": { + "message": "Dark" + }, + "themeLight": { + "message": "Light" + }, + "confirmSelected": { + "message": "Confirm Selected" + }, + "bulkConfirmStatus": { + "message": "Bulk action status" + }, + "bulkConfirmMessage": { + "message": "Confirmed successfully." + }, + "bulkReinviteMessage": { + "message": "Reinvited successfully." + }, + "bulkRemovedMessage": { + "message": "Removed successfully" + }, + "bulkFilteredMessage": { + "message": "Excluded, not applicable for this action." + }, + "fingerprint": { + "message": "Fingerprint" + }, + "removeUsers": { + "message": "Remove Users" + }, + "error": { + "message": "Error" + }, + "resetPasswordManageUsers": { + "message": "Manage Users must also be enabled with the Manage Password Reset permission" + }, + "setupProvider": { + "message": "Provider Setup" + }, + "setupProviderLoginDesc": { + "message": "You've been invited to setup a new provider. To continue, you need to log in or create a new Bitwarden account." + }, + "setupProviderDesc": { + "message": "Please enter the details below to complete the provider setup. Contact Customer Support if you have any questions." + }, + "providerName": { + "message": "Provider Name" + }, + "providerSetup": { + "message": "The provider has been set up." + }, + "clients": { + "message": "Clients" + }, + "providerAdmin": { + "message": "Provider Admin" + }, + "providerAdminDesc": { + "message": "The highest access user that can manage all aspects of your provider as well as access and manage client organizations." + }, + "serviceUser": { + "message": "Service User" + }, + "serviceUserDesc": { + "message": "Service users can access and manage all client organizations." + }, + "providerInviteUserDesc": { + "message": "Invite a new user to your provider by entering their Bitwarden account email address below. If they do not have a Bitwarden account already, they will be prompted to create a new account." + }, + "joinProvider": { + "message": "Join Provider" + }, + "joinProviderDesc": { + "message": "You've been invited to join the provider listed above. To accept the invitation, you need to log in or create a new Bitwarden account." + }, + "providerInviteAcceptFailed": { + "message": "Unable to accept invitation. Ask a provider admin to send a new invitation." + }, + "providerInviteAcceptedDesc": { + "message": "You can access this provider once an administrator confirms your membership. We'll send you an email when that happens." + }, + "providerUsersNeedConfirmed": { + "message": "You have users that have accepted their invitation, but still need to be confirmed. Users will not have access to the provider until they are confirmed." + }, + "provider": { + "message": "Provider" + }, + "newClientOrganization": { + "message": "New Client Organization" + }, + "newClientOrganizationDesc": { + "message": "Create a new client organization that will be associated with you as the provider. You will be able to access and manage this organization." + }, + "addExistingOrganization": { + "message": "Add Existing Organization" + }, + "myProvider": { + "message": "My Provider" + }, + "addOrganizationConfirmation": { + "message": "Are you sure you want to add $ORGANIZATION$ as a client to $PROVIDER$?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "Organization was successfully added to the provider" + }, + "accessingUsingProvider": { + "message": "Accessing organization using provider $PROVIDER$", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "Provider is disabled." + }, + "providerUpdated": { + "message": "Provider updated" + }, + "yourProviderIs": { + "message": "Your provider is $PROVIDER$. They have administrative and billing privileges for your organization.", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "The organization $ORGANIZATION$ has been detached from your provider.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "Are you sure you want to detach this organization? The organization will continue to exist but will no longer be managed by the provider." + }, + "add": { + "message": "Add" + }, + "updatedMasterPassword": { + "message": "Updated Master Password" + }, + "updateMasterPassword": { + "message": "Update Master Password" + }, + "updateMasterPasswordWarning": { + "message": "Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "masterPasswordInvalidWarning": { + "message": "Your Master Password does not meet the policy requirements of this organization. In order to join the organization, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour." + }, + "maximumVaultTimeout": { + "message": "Vault Timeout" + }, + "maximumVaultTimeoutDesc": { + "message": "Configure a maximum vault timeout for all users." + }, + "maximumVaultTimeoutLabel": { + "message": "Maximum Vault Timeout" + }, + "invalidMaximumVaultTimeout": { + "message": "Invalid Maximum Vault Timeout." + }, + "hours": { + "message": "Hours" + }, + "minutes": { + "message": "Minutes" + }, + "vaultTimeoutPolicyInEffect": { + "message": "Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is $HOURS$ hour(s) and $MINUTES$ minute(s)", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "Custom Vault Timeout" + }, + "vaultTimeoutToLarge": { + "message": "Your vault timeout exceeds the restriction set by your organization." + }, + "disablePersonalVaultExport": { + "message": "Disable Personal Vault Export" + }, + "disablePersonalVaultExportDesc": { + "message": "Prohibits users from exporting their private vault data." + }, + "vaultExportDisabled": { + "message": "Vault Export Disabled" + }, + "personalVaultExportPolicyInEffect": { + "message": "One or more organization policies prevents you from exporting your personal vault." + }, + "selectType": { + "message": "Select SSO Type" + }, + "type": { + "message": "Type" + }, + "openIdConnectConfig": { + "message": "OpenID Connect Configuration" + }, + "samlSpConfig": { + "message": "SAML Service Provider Configuration" + }, + "samlIdpConfig": { + "message": "SAML Identity Provider Configuration" + }, + "callbackPath": { + "message": "Callback Path" + }, + "signedOutCallbackPath": { + "message": "Signed Out Callback Path" + }, + "authority": { + "message": "Authority" + }, + "clientId": { + "message": "Client ID" + }, + "clientSecret": { + "message": "Client Secret" + }, + "metadataAddress": { + "message": "Metadata Address" + }, + "oidcRedirectBehavior": { + "message": "OIDC Redirect Behavior" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "Get claims from user info endpoint" + }, + "additionalScopes": { + "message": "Custom Scopes" + }, + "additionalUserIdClaimTypes": { + "message": "Custom User ID Claim Types" + }, + "additionalEmailClaimTypes": { + "message": "Email Claim Types" + }, + "additionalNameClaimTypes": { + "message": "Custom Name Claim Types" + }, + "acrValues": { + "message": "Requested Authentication Context Class Reference values" + }, + "expectedReturnAcrValue": { + "message": "Expected \"acr\" Claim Value In Response" + }, + "spEntityId": { + "message": "SP Entity ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 Metadata URL" + }, + "spAcsUrl": { + "message": "Assertion Consumer Service (ACS) URL" + }, + "spNameIdFormat": { + "message": "Name ID Format" + }, + "spOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "spSigningBehavior": { + "message": "Signing Behavior" + }, + "spMinIncomingSigningAlgorithm": { + "message": "Minimum Incoming Signing Algorithm" + }, + "spWantAssertionsSigned": { + "message": "Expect signed assertions" + }, + "spValidateCertificates": { + "message": "Validate certificates" + }, + "idpEntityId": { + "message": "Entity ID" + }, + "idpBindingType": { + "message": "Binding Type" + }, + "idpSingleSignOnServiceUrl": { + "message": "Single Sign On Service URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "Single Log Out Service URL" + }, + "idpX509PublicCert": { + "message": "X509 Public Certificate" + }, + "idpOutboundSigningAlgorithm": { + "message": "Outbound Signing Algorithm" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "Allow unsolicited authentication response" + }, + "idpAllowOutboundLogoutRequests": { + "message": "Allow outbound logout requests" + }, + "idpSignAuthenticationRequests": { + "message": "Sign authentication requests" + }, + "ssoSettingsSaved": { + "message": "Single Sign-On configuration was saved." + }, + "sponsoredFamilies": { + "message": "Free Bitwarden Families" + }, + "sponsoredFamiliesEligible": { + "message": "You and your family are eligible for Free Bitwarden Families. Redeem with your personal email to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesEligibleCard": { + "message": "Redeem your Free Bitwarden for Families plan today to keep your data secure even when you are not at work." + }, + "sponsoredFamiliesInclude": { + "message": "The Bitwarden for Families plan include" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "Premium access for up to 6 users" + }, + "sponsoredFamiliesSharedCollections": { + "message": "Shared collections for Family secrets" + }, + "badToken": { + "message": "The link is no longer valid. Please have the sponsor resend the offer." + }, + "reclaimedFreePlan": { + "message": "Reclaimed free plan" + }, + "redeem": { + "message": "Redeem" + }, + "sponsoredFamiliesSelectOffer": { + "message": "Select the organization you would like sponsored" + }, + "familiesSponsoringOrgSelect": { + "message": "Which Free Families offer would you like to redeem?" + }, + "sponsoredFamiliesEmail": { + "message": "Enter your personal email to redeem Bitwarden Families" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "If you leave or are removed from the sponsoring organization, your Families plan will expire at the end of the billing period." + }, + "acceptBitwardenFamiliesHelp": { + "message": "Accept offer for an existing organization or create a new Families organization." + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "You've been offered a free Bitwarden Families Plan Organization. To continue, you need to log in to the account that received the offer." + }, + "sponsoredFamiliesAcceptFailed": { + "message": "Unable to accept offer. Please resend the offer email from your enterprise account and try again." + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "Unable to accept offer. $DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "Accept Free Bitwarden Families" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "Free Bitwarden Families offer successfully redeemed" + }, + "redeemed": { + "message": "Redeemed" + }, + "redeemedAccount": { + "message": "Redeemed Account" + }, + "revokeAccount": { + "message": "Revoke account $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "Resend Sponsorship email to $NAME$ sponsorship", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "Free Families Plan" + }, + "redeemNow": { + "message": "Redeem Now" + }, + "recipient": { + "message": "Recipient" + }, + "removeSponsorship": { + "message": "Remove Sponsorship" + }, + "removeSponsorshipConfirmation": { + "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "sponsorshipCreated": { + "message": "Sponsorship Created" + }, + "revoke": { + "message": "Revoke" + }, + "emailSent": { + "message": "Email Sent" + }, + "revokeSponsorshipConfirmation": { + "message": "After removing this account, the Families organization owner will be responsible for this subscription and related invoices. Are you sure you want to continue?" + }, + "removeSponsorshipSuccess": { + "message": "Sponsorship Removed" + }, + "ssoKeyConnectorUnavailable": { + "message": "Unable to reach the Key Connector, try again later." + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "Send a verification code to your email" + }, + "sendCode": { + "message": "Send Code" + }, + "codeSent": { + "message": "Code Sent" + }, + "verificationCode": { + "message": "Verification Code" + }, + "confirmIdentity": { + "message": "Confirm your identity to continue." + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "invalidVerificationCode": { + "message": "Invalid verification code" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ is using SSO with a self-hosted key server. A master password is no longer required to log in for members of this organization.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "Leave Organization" + }, + "removeMasterPassword": { + "message": "Remove Master Password" + }, + "removedMasterPassword": { + "message": "Master password removed." + }, + "allowSso": { + "message": "Allow SSO authentication" + }, + "allowSsoDesc": { + "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + }, + "ssoPolicyHelpStart": { + "message": "Enable the", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO Authentication policy", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "to require all members to log in with SSO.", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO Authentication and Single Organization policies are required to set up Key Connector decryption." + }, + "memberDecryptionOption": { + "message": "Member Decryption Options" + }, + "memberDecryptionPassDesc": { + "message": "Once authenticated, members will decrypt vault data using their Master Passwords." + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "Connect Login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their Master Passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + }, + "keyConnectorPolicyRestriction": { + "message": "\"Login with SSO and Key Connector Decryption\" is enabled. This policy will only apply to Owners and Admins." + }, + "enabledSso": { + "message": "Enabled SSO" + }, + "disabledSso": { + "message": "Disabled SSO" + }, + "enabledKeyConnector": { + "message": "Enabled Key Connector" + }, + "disabledKeyConnector": { + "message": "Disabled Key Connector" + }, + "keyConnectorWarning": { + "message": "Once members begin using Key Connector, your Organization cannot revert to Master Password decryption. Proceed only if you are comfortable deploying and managing a key server." + }, + "migratedKeyConnector": { + "message": "Migrated to Key Connector" + }, + "paymentSponsored": { + "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + }, + "orgCreatedSponsorshipInvalid": { + "message": "The sponsorship offer has expired. You may delete the organization you created to avoid a charge at the end of your 7 day trial. Otherwise you may close this prompt to keep the organization and assume billing responsibility." + }, + "newFamiliesOrganization": { + "message": "New Families Organization" + }, + "acceptOffer": { + "message": "Accept Offer" + }, + "sponsoringOrg": { + "message": "Sponsoring Organization" + }, + "keyConnectorTest": { + "message": "Test" + }, + "keyConnectorTestSuccess": { + "message": "Success! Key Connector reached." + }, + "keyConnectorTestFail": { + "message": "Cannot reach Key Connector. Check URL." + }, + "sponsorshipTokenHasExpired": { + "message": "The sponsorship offer has expired." + }, + "freeWithSponsorship": { + "message": "FREE with sponsorship" + }, + "formErrorSummaryPlural": { + "message": "$COUNT$ fields above need your attention.", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "1 field above needs your attention." + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ is required.", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "required" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "Required if Entity ID is not a URL." + }, + "openIdOptionalCustomizations": { + "message": "Optional Customizations" + }, + "openIdAuthorityRequired": { + "message": "Required if Authority is not valid." + }, + "separateMultipleWithComma": { + "message": "Separate multiple with a comma." + }, + "sessionTimeout": { + "message": "Your session has timed out. Please go back and try logging in again." + }, + "exportingPersonalVaultTitle": { + "message": "Exporting Personal Vault" + }, + "exportingOrganizationVaultTitle": { + "message": "Exporting Organization Vault" + }, + "exportingPersonalVaultDescription": { + "message": "Only the personal vault items associated with $EMAIL$ will be exported. Organization vault items will not be included.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Personal vault items and items from other organizations will not be included.", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "Back to Reports" + }, + "generator": { + "message": "Generator" + }, + "whatWouldYouLikeToGenerate": { + "message": "What would you like to generate?" + }, + "passwordType": { + "message": "Password Type" + }, + "regenerateUsername": { + "message": "Regenerate Username" + }, + "generateUsername": { + "message": "Generate Username" + }, + "usernameType": { + "message": "Username Type" + }, + "plusAddressedEmail": { + "message": "Plus Addressed Email", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "Use your email provider's sub-addressing capabilities." + }, + "catchallEmail": { + "message": "Catch-all Email" + }, + "catchallEmailDesc": { + "message": "Use your domain's configured catch-all inbox." + }, + "random": { + "message": "Random" + }, + "randomWord": { + "message": "Random Word" + }, + "service": { + "message": "Service" + } +} diff --git a/apps/web/src/locales/zh_CN/messages.json b/apps/web/src/locales/zh_CN/messages.json new file mode 100644 index 0000000000..461530d03f --- /dev/null +++ b/apps/web/src/locales/zh_CN/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ 网页密码库", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "这是什么类型的项目?" + }, + "name": { + "message": "名称" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "新增 URI" + }, + "username": { + "message": "用户名" + }, + "password": { + "message": "密码" + }, + "newPassword": { + "message": "新密码" + }, + "passphrase": { + "message": "密码短语" + }, + "notes": { + "message": "备注" + }, + "customFields": { + "message": "自定义字段" + }, + "cardholderName": { + "message": "持卡人姓名" + }, + "number": { + "message": "号码" + }, + "brand": { + "message": "品牌" + }, + "expiration": { + "message": "过期日" + }, + "securityCode": { + "message": "安全码 (CVV)" + }, + "identityName": { + "message": "身份名称" + }, + "company": { + "message": "公司" + }, + "ssn": { + "message": "社会保险号码" + }, + "passportNumber": { + "message": "护照号码" + }, + "licenseNumber": { + "message": "许可证号码" + }, + "email": { + "message": "电子邮件" + }, + "phone": { + "message": "电话" + }, + "january": { + "message": "一月" + }, + "february": { + "message": "二月" + }, + "march": { + "message": "三月" + }, + "april": { + "message": "四月" + }, + "may": { + "message": "五月" + }, + "june": { + "message": "六月" + }, + "july": { + "message": "七月" + }, + "august": { + "message": "八月" + }, + "september": { + "message": "九月" + }, + "october": { + "message": "十月" + }, + "november": { + "message": "十一月" + }, + "december": { + "message": "十二月" + }, + "title": { + "message": "称呼" + }, + "mr": { + "message": "先生" + }, + "mrs": { + "message": "夫人" + }, + "ms": { + "message": "女士" + }, + "dr": { + "message": "博士" + }, + "expirationMonth": { + "message": "过期月份" + }, + "expirationYear": { + "message": "过期年份" + }, + "authenticatorKeyTotp": { + "message": "验证器密钥 (TOTP)" + }, + "folder": { + "message": "文件夹" + }, + "newCustomField": { + "message": "新建自定义字段" + }, + "value": { + "message": "值" + }, + "dragToSort": { + "message": "拖动排序" + }, + "cfTypeText": { + "message": "文本型" + }, + "cfTypeHidden": { + "message": "隐藏型" + }, + "cfTypeBoolean": { + "message": "布尔型" + }, + "cfTypeLinked": { + "message": "链接型", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "移除" + }, + "unassigned": { + "message": "未分派" + }, + "noneFolder": { + "message": "默认文件夹", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "添加文件夹" + }, + "editFolder": { + "message": "编辑文件夹" + }, + "baseDomain": { + "message": "基础域", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "域名", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "主机", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "精确" + }, + "startsWith": { + "message": "开始于" + }, + "regEx": { + "message": "正则表达式", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "匹配检测", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "默认匹配检测", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "从不" + }, + "toggleVisibility": { + "message": "切换可见性" + }, + "toggleCollapse": { + "message": "切换折叠", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "生成密码" + }, + "checkPassword": { + "message": "检查密码是否已经被公开。" + }, + "passwordExposed": { + "message": "此密码在泄露数据中已被公开 $VALUE$ 次。请立即修改。", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "没有在已知的数据泄露中发现此密码,它暂时比较安全。" + }, + "save": { + "message": "保存" + }, + "cancel": { + "message": "取消" + }, + "canceled": { + "message": "已取消" + }, + "close": { + "message": "关闭" + }, + "delete": { + "message": "删除" + }, + "favorite": { + "message": "收藏" + }, + "unfavorite": { + "message": "取消收藏" + }, + "edit": { + "message": "编辑" + }, + "searchCollection": { + "message": "搜索集合" + }, + "searchFolder": { + "message": "搜索文件夹" + }, + "searchFavorites": { + "message": "搜索收藏" + }, + "searchType": { + "message": "搜索类型", + "description": "Search item type" + }, + "searchVault": { + "message": "搜索密码库" + }, + "allItems": { + "message": "所有项目" + }, + "favorites": { + "message": "收藏" + }, + "types": { + "message": "类型" + }, + "typeLogin": { + "message": "登录" + }, + "typeCard": { + "message": "支付卡" + }, + "typeIdentity": { + "message": "身份" + }, + "typeSecureNote": { + "message": "安全笔记" + }, + "typeLoginPlural": { + "message": "登录" + }, + "typeCardPlural": { + "message": "支付卡" + }, + "typeIdentityPlural": { + "message": "身份" + }, + "typeSecureNotePlural": { + "message": "安全笔记" + }, + "folders": { + "message": "文件夹" + }, + "collections": { + "message": "集合" + }, + "firstName": { + "message": "名" + }, + "middleName": { + "message": "中间名" + }, + "lastName": { + "message": "姓" + }, + "fullName": { + "message": "全名" + }, + "address1": { + "message": "地址 1" + }, + "address2": { + "message": "地址 2" + }, + "address3": { + "message": "地址 3" + }, + "cityTown": { + "message": "市 / 镇" + }, + "stateProvince": { + "message": "州 / 省" + }, + "zipPostalCode": { + "message": "邮政编码" + }, + "country": { + "message": "国家" + }, + "shared": { + "message": "已共享" + }, + "attachments": { + "message": "附件" + }, + "select": { + "message": "选择" + }, + "addItem": { + "message": "添加项目" + }, + "editItem": { + "message": "编辑项目" + }, + "viewItem": { + "message": "查看项目" + }, + "ex": { + "message": "例如", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "其他" + }, + "share": { + "message": "共享" + }, + "moveToOrganization": { + "message": "移动到组织" + }, + "valueCopied": { + "message": "$VALUE$ 已复制", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "复制值", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "复制密码", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "复制用户名", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "复制号码", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "复制安全码", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "复制 URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "密码库" + }, + "vault": { + "message": "密码库" + }, + "moveSelectedToOrg": { + "message": "移动所选项目到组织" + }, + "deleteSelected": { + "message": "删除所选" + }, + "moveSelected": { + "message": "移动所选" + }, + "selectAll": { + "message": "全选" + }, + "unselectAll": { + "message": "取消全选" + }, + "launch": { + "message": "启动" + }, + "newAttachment": { + "message": "添加新附件" + }, + "deletedAttachment": { + "message": "附件已删除" + }, + "deleteAttachmentConfirmation": { + "message": "您确定要删除此附件吗?" + }, + "attachmentSaved": { + "message": "附件已保存。" + }, + "file": { + "message": "文件" + }, + "selectFile": { + "message": "选择一个文件。" + }, + "maxFileSize": { + "message": "文件最大为 500 MB。" + }, + "updateKey": { + "message": "在您更新加密密钥前,您不能使用此功能。" + }, + "addedItem": { + "message": "项目已添加" + }, + "editedItem": { + "message": "项目已编辑" + }, + "movedItemToOrg": { + "message": "$ITEMNAME$ 已移动到 $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "所选项目已移动到 $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "删除项目" + }, + "deleteFolder": { + "message": "删除文件夹" + }, + "deleteAttachment": { + "message": "删除附件" + }, + "deleteItemConfirmation": { + "message": "您确定要删除此项目吗?" + }, + "deletedItem": { + "message": "项目已发送到回收站" + }, + "deletedItems": { + "message": "项目已发送到回收站" + }, + "movedItems": { + "message": "项目已移动" + }, + "overwritePasswordConfirmation": { + "message": "您确定要覆盖当前密码吗?" + }, + "editedFolder": { + "message": "文件夹已编辑" + }, + "addedFolder": { + "message": "文件夹已添加" + }, + "deleteFolderConfirmation": { + "message": "您确定要删除此文件夹吗?" + }, + "deletedFolder": { + "message": "文件夹已删除" + }, + "loggedOut": { + "message": "已登出" + }, + "loginExpired": { + "message": "您的登录会话已过期。" + }, + "logOutConfirmation": { + "message": "您确定要注销吗?" + }, + "logOut": { + "message": "注销" + }, + "ok": { + "message": "确定" + }, + "yes": { + "message": "是" + }, + "no": { + "message": "否" + }, + "loginOrCreateNewAccount": { + "message": "登录或者新建一个账户来访问您的安全密码库。" + }, + "createAccount": { + "message": "创建账户" + }, + "logIn": { + "message": "登录" + }, + "submit": { + "message": "提交" + }, + "emailAddressDesc": { + "message": "您将使用您的电子邮件地址登录。" + }, + "yourName": { + "message": "您的姓名" + }, + "yourNameDesc": { + "message": "我们应该怎么称呼您?" + }, + "masterPass": { + "message": "主密码" + }, + "masterPassDesc": { + "message": "主密码是您访问密码库的密码。它非常重要,请您不要忘记。一旦忘记,无任何办法恢复此密码。" + }, + "masterPassHintDesc": { + "message": "主密码提示可以在你忘记密码时帮你回忆起来。" + }, + "reTypeMasterPass": { + "message": "确认主密码" + }, + "masterPassHint": { + "message": "主密码提示(可选)" + }, + "masterPassHintLabel": { + "message": "主密码提示" + }, + "settings": { + "message": "设置" + }, + "passwordHint": { + "message": "密码提示" + }, + "enterEmailToGetHint": { + "message": "请输入您账号的电子邮件地址来接收主密码提示。" + }, + "getMasterPasswordHint": { + "message": "获取主密码提示" + }, + "emailRequired": { + "message": "必须填写电子邮件地址。" + }, + "invalidEmail": { + "message": "无效的电子邮件地址。" + }, + "masterPassRequired": { + "message": "必须填写主密码。" + }, + "masterPassLength": { + "message": "主密码至少需要 8 个字符。" + }, + "masterPassDoesntMatch": { + "message": "两次填写的主密码不一致。" + }, + "newAccountCreated": { + "message": "您的新账户已创建!您现在可以登录了。" + }, + "masterPassSent": { + "message": "我们已经为您发送了包含主密码提示的邮件。" + }, + "unexpectedError": { + "message": "发生意外错误。" + }, + "emailAddress": { + "message": "电子邮件地址" + }, + "yourVaultIsLocked": { + "message": "您的密码库已被锁定,请验证您的主密码以继续。" + }, + "unlock": { + "message": "解锁​​​​" + }, + "loggedInAsEmailOn": { + "message": "已在 $HOSTNAME$ 上以 $EMAIL$ 身份登录。", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "无效的主密码" + }, + "lockNow": { + "message": "立即锁定" + }, + "noItemsInList": { + "message": "没有可列出的项目。" + }, + "noCollectionsInList": { + "message": "没有可列出的集合。" + }, + "noGroupsInList": { + "message": "没有可列出的群组。" + }, + "noUsersInList": { + "message": "没有可列出的用户。" + }, + "noEventsInList": { + "message": "没有可列出的事件。" + }, + "newOrganization": { + "message": "新建组织" + }, + "noOrganizationsList": { + "message": "您没有加入任何组织。同一组织的用户可以安全地与其他用户共享项目。" + }, + "versionNumber": { + "message": "版本: $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "请输入验证器应用程序中的 6 位验证码。" + }, + "enterVerificationCodeEmail": { + "message": "请输入发送给电子邮件 $EMAIL$ 的 6 位验证码。", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "验证邮件已发送到 $EMAIL$。", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "记住我" + }, + "sendVerificationCodeEmailAgain": { + "message": "重发验证码电子邮件" + }, + "useAnotherTwoStepMethod": { + "message": "使用其他两步登录方式" + }, + "insertYubiKey": { + "message": "将您的 YubiKey 插入计算机的 USB 端口,然后按下按钮。" + }, + "insertU2f": { + "message": "将您的安全钥匙插入计算机的 USB 端口。如果它有一个按钮,按下它。" + }, + "loginUnavailable": { + "message": "登录不可用" + }, + "noTwoStepProviders": { + "message": "此账户已启用两步登录,但此浏览器不支持任何已配置的两步登录提供程序。" + }, + "noTwoStepProviders2": { + "message": "请使用支持的网页浏览器(例如 Chrome)和/或添加其他支持更广泛的提供程序(例如验证器应用)。" + }, + "twoStepOptions": { + "message": "两步登录选项" + }, + "recoveryCodeDesc": { + "message": "失去访问您所有的双重身份验证设备?请使用您的恢复代码来禁用您账户中所有的两步登录提供程序。" + }, + "recoveryCodeTitle": { + "message": "恢复代码" + }, + "authenticatorAppTitle": { + "message": "验证器应用" + }, + "authenticatorAppDesc": { + "message": "使用验证器应用(例如 Authy 或 Google Authenticator)来生成基于时间的验证码。", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP 安全钥匙" + }, + "yubiKeyDesc": { + "message": "使用 YubiKey 来访问您的账户。支持 YubiKey 4 系列、5 系列以及 NEO 设备。" + }, + "duoDesc": { + "message": "使用 Duo Security 的 Duo 移动应用、短信、电话或 U2F 安全钥匙来进行验证。", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "为您的组织使用 Duo Security 的 Duo 移动应用、短信、电话或 U2F 安全钥匙来进行验证。", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "使用任何支持 FIDO U2F 的安全钥匙来访问您的账户。" + }, + "u2fTitle": { + "message": "FIDO U2F 安全钥匙" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "使用任何启用了 WebAuthn 的安全钥匙访问您的账户。" + }, + "webAuthnMigrated": { + "message": "(迁移自 FIDO)" + }, + "emailTitle": { + "message": "电子邮件" + }, + "emailDesc": { + "message": "验证码将会发送到您的电子邮箱。" + }, + "continue": { + "message": "继续" + }, + "organization": { + "message": "组织" + }, + "organizations": { + "message": "组织" + }, + "moveToOrgDesc": { + "message": "选择一个您想将此项目移至的组织。移动到组织会将该项目的所有权转让给该组织。移动后,您将不再是此项目的直接所有者。" + }, + "moveManyToOrgDesc": { + "message": "选择一个您想将这些项目移至的组织。移动到组织会将这些项目的所有权转让给该组织。移动后,您将不再是这些项目的直接所有者。" + }, + "collectionsDesc": { + "message": "编辑与此项目共享的集合。只有具有这些集合访问权限的组织用户才能看到此项目。" + }, + "deleteSelectedItemsDesc": { + "message": "您选择了要删除 $COUNT$ 个项目。确实要删除所有这些项目吗?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "选择要将这 $COUNT$ 个项目移动到的文件夹。", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "您选择了 $COUNT$ 个项目。$MOVEABLE_COUNT$ 个项目可以移动到组织,$NONMOVEABLE_COUNT$ 不能。", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "验证码 (TOTP)" + }, + "copyVerificationCode": { + "message": "复制验证码" + }, + "warning": { + "message": "警告" + }, + "confirmVaultExport": { + "message": "确认导出密码库" + }, + "exportWarningDesc": { + "message": "导出的密码库数据包含未加密格式。您不应该通过不安全的渠道(例如电子邮件)来存储或发送导出的文件。用完后请立即将其删除。" + }, + "encExportKeyWarningDesc": { + "message": "此导出将使用您账户的加密密钥来加密您的数据。 如果您曾经轮换过账户的加密密钥,您应将其重新导出,否则您将无法解密导出的文件。" + }, + "encExportAccountWarningDesc": { + "message": "账户加密密钥对每个 Bitwarden 用户账户都是唯一的,所以您不能将加密的导出导入到另一个账户。" + }, + "export": { + "message": "导出" + }, + "exportVault": { + "message": "导出密码库" + }, + "fileFormat": { + "message": "文件格式" + }, + "exportSuccess": { + "message": "已经导出您的密码库数据。" + }, + "passwordGenerator": { + "message": "密码生成器" + }, + "minComplexityScore": { + "message": "最小复杂度" + }, + "minNumbers": { + "message": "数字最少个数" + }, + "minSpecial": { + "message": "符号最少个数", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "避免易混淆的字符" + }, + "regeneratePassword": { + "message": "重新生成密码" + }, + "length": { + "message": "长度" + }, + "numWords": { + "message": "单词数" + }, + "wordSeparator": { + "message": "单词分隔符" + }, + "capitalize": { + "message": "大写", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "包含数字" + }, + "passwordHistory": { + "message": "密码历史记录" + }, + "noPasswordsInList": { + "message": "没有可列出的密码。" + }, + "clear": { + "message": "清除", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "账户已更新" + }, + "changeEmail": { + "message": "更改电子邮件" + }, + "changeEmailTwoFactorWarning": { + "message": "继续操作将更改您的账户电子邮件地址。这不会更改用于双重身份验证的电子邮件地址。您可以在两步登录设置中更改它。" + }, + "newEmail": { + "message": "新电子邮件" + }, + "code": { + "message": "代码" + }, + "changeEmailDesc": { + "message": "我们已将验证码发送到 $EMAIL$。请检查您的电子邮件,在下方输入验证码,以确认更改您的电子邮件地址。", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "接下来将会注销您当前的会话,要求您重新登录。其他设备上的活动会话可能会继续保持最多一小时。" + }, + "emailChanged": { + "message": "电子邮件已更改" + }, + "logBackIn": { + "message": "请重新登录。" + }, + "logBackInOthersToo": { + "message": "请重新登录。如果您还在使用其他 Bitwarden 应用,也请注销并重新登陆。" + }, + "changeMasterPassword": { + "message": "修改主密码" + }, + "masterPasswordChanged": { + "message": "主密码已修改" + }, + "currentMasterPass": { + "message": "当前主密码" + }, + "newMasterPass": { + "message": "新主密码" + }, + "confirmNewMasterPass": { + "message": "确认新主密码" + }, + "encKeySettings": { + "message": "加密密钥设置" + }, + "kdfAlgorithm": { + "message": "KDF 算法" + }, + "kdfIterations": { + "message": "KDF 迭代" + }, + "kdfIterationsDesc": { + "message": "更高的 KDF 迭代可以帮助保护您的主密码免遭攻击者的暴力破解。建议 $VALUE$ 或更高。", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "如果将 KDF 迭代设置得太高,可能会在 CPU 速度较慢的设备上登录(以及解锁)Bitwarden 时性能变差。建议您以 $INCREMENT$ 的增量值递增,然后在所有设备上进行测试。", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "更改 KDF" + }, + "encKeySettingsChanged": { + "message": "加密密钥设置已更改" + }, + "dangerZone": { + "message": "危险操作区" + }, + "dangerZoneDesc": { + "message": "当心,这些操作是不可逆的!" + }, + "deauthorizeSessions": { + "message": "取消会话授权" + }, + "deauthorizeSessionsDesc": { + "message": "您是否担心自己的账户在其他设备上登录过?请按照以下步骤取消对之前使用过的所有计算机或设备的授权。如果您以前使用过公共电脑或不小心曾将密码保存在不属于您的设备上,则建议执行此安全步骤。此步骤还将清除所有以前记住的两步登录会话。" + }, + "deauthorizeSessionsWarning": { + "message": "接下来将会注销您当前的会话,并要求您重新登录。如果有设置两步登录,也需要重新认证。其他设备上的活动会话可能会继续保持最多一小时。" + }, + "sessionsDeauthorized": { + "message": "已取消会话授权" + }, + "purgeVault": { + "message": "清空密码库" + }, + "purgedOrganizationVault": { + "message": "组织密码库已清空。" + }, + "vaultAccessedByProvider": { + "message": "密码库被提供商访问。" + }, + "purgeVaultDesc": { + "message": "接下来的操作会删除密码库中的所有项目和文件夹。属于组织的共享项目将不会被删除。" + }, + "purgeOrgVaultDesc": { + "message": "接下来的操作会删除组织密码库中的所有项目。" + }, + "purgeVaultWarning": { + "message": "清空密码库是永久性的。不能被撤消。" + }, + "vaultPurged": { + "message": "你的密码库已经被清空。" + }, + "deleteAccount": { + "message": "删除账户" + }, + "deleteAccountDesc": { + "message": "接下来的操作会删除您的账户和所有相关数据。" + }, + "deleteAccountWarning": { + "message": "删除账户是永久性的。不能被撤消。" + }, + "accountDeleted": { + "message": "账户已删除" + }, + "accountDeletedDesc": { + "message": "您的账户已关闭,所有相关数据也已被删除。" + }, + "myAccount": { + "message": "我的账户" + }, + "tools": { + "message": "工具" + }, + "importData": { + "message": "导入数据" + }, + "importError": { + "message": "导入错误" + }, + "importErrorDesc": { + "message": "您尝试导入的数据有问题。请解决如下列出的源文件中的错误,然后重试。" + }, + "importSuccess": { + "message": "数据已经成功导入到密码库" + }, + "importWarning": { + "message": "您正在将数据导入到 $ORGANIZATION$。您的数据可能会与此组织中的成员共享。是否继续?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "数据格式不正确。请检查您的导入文件后重试。" + }, + "importNothingError": { + "message": "没有导入任何内容。" + }, + "importEncKeyError": { + "message": "解密导出的文件时出错。您的加密密钥与导出数据时使用的加密密钥不匹配。" + }, + "selectFormat": { + "message": "选择导入文件的格式" + }, + "selectImportFile": { + "message": "选择要导入的文件" + }, + "orCopyPasteFileContents": { + "message": "或复制/粘贴要导入文件的内容" + }, + "instructionsFor": { + "message": "$NAME$ 文件说明", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "选项" + }, + "optionsDesc": { + "message": "自定义您的网页版密码库体验。" + }, + "optionsUpdated": { + "message": "选项已更新" + }, + "language": { + "message": "语言" + }, + "languageDesc": { + "message": "更改网页密码库的语言。" + }, + "disableIcons": { + "message": "禁用网站图标" + }, + "disableIconsDesc": { + "message": "网站图标用于在您密码库的每个登录项目旁显示一个易识别的图标。" + }, + "enableGravatars": { + "message": "启用 Gravatar 头像", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "使用从 gravatar.com 加载的头像图像。" + }, + "enableFullWidth": { + "message": "启用全宽布局", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "允许网页密码库拓展到整个浏览器窗口宽度。" + }, + "default": { + "message": "默认" + }, + "domainRules": { + "message": "域名规则" + }, + "domainRulesDesc": { + "message": "如果您在多个不同网站之间使用同一个登陆信息,您可以把这些网站标记为「通用」。Bitwarden 会为您设置「全局」域名。" + }, + "globalEqDomains": { + "message": "全局通用域名" + }, + "customEqDomains": { + "message": "自定义通用域名" + }, + "exclude": { + "message": "排除" + }, + "include": { + "message": "包括" + }, + "customize": { + "message": "自定义" + }, + "newCustomDomain": { + "message": "添加自定义域名" + }, + "newCustomDomainDesc": { + "message": "输入用逗号分隔的域名列表。只能输入「基础」域名,不要输入子域名。例如,输入「google.com」而不是「www.google.com」。您也可以输入「androidapp://package.name」以将 Android 应用程序与其他网站域名关联。" + }, + "customDomainX": { + "message": "自定义域名 $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "域名已更新" + }, + "twoStepLogin": { + "message": "两步登录" + }, + "twoStepLoginDesc": { + "message": "在登录时需要额外的步骤来保护您的账户。" + }, + "twoStepLoginOrganizationDesc": { + "message": "在组织机构层面配置提供程序,以要求你组织的用户采用两步登录。" + }, + "twoStepLoginRecoveryWarning": { + "message": "启用两步登录可能会将您永久锁定在 Bitwarden 账户之外。如果您无法使用常规的两步登录提供程序(例如您丢失了设备),则可以使用恢复代码访问您的账户。如果您失去对您账户的访问,Bitwarden 支持也无法帮助您。我们建议您记下或打印恢复代码,并将其妥善保管。" + }, + "viewRecoveryCode": { + "message": "查看恢复代码" + }, + "providers": { + "message": "提供程序", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "启用" + }, + "enabled": { + "message": "启用" + }, + "premium": { + "message": "高级会员", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "高级会员" + }, + "premiumRequired": { + "message": "需要高级会员" + }, + "premiumRequiredDesc": { + "message": "此功能需要高级会员资格。" + }, + "youHavePremiumAccess": { + "message": "您拥有高级访问权限" + }, + "alreadyPremiumFromOrg": { + "message": "由于您是拥有高级会员功能的组织的成员,您已经拥有此功能。" + }, + "manage": { + "message": "管理" + }, + "disable": { + "message": "停用" + }, + "twoStepLoginProviderEnabled": { + "message": "您的账户已启用此两步登录提供程序。" + }, + "twoStepLoginAuthDesc": { + "message": "输入主密码以修改两步登录设置。" + }, + "twoStepAuthenticatorDesc": { + "message": "按照以下步骤,使用验证器应用设置两步登录:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "下载两步登录验证器应用" + }, + "twoStepAuthenticatorNeedApp": { + "message": "需要两步登录验证器应用?您可以下载以下应用:" + }, + "iosDevices": { + "message": "iOS 设备" + }, + "androidDevices": { + "message": "安卓设备" + }, + "windowsDevices": { + "message": "Windows 设备" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "推荐使用这些应用,您也可以使用其它验证器应用。" + }, + "twoStepAuthenticatorScanCode": { + "message": "使用验证器应用扫描这个二维码" + }, + "key": { + "message": "密钥" + }, + "twoStepAuthenticatorEnterCode": { + "message": "输入应用程序中的 6 位验证码" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "如果您要把它添加到另一个设备,下面是您的验证器应用所需要的二维码(或密钥)。" + }, + "twoStepDisableDesc": { + "message": "您确定要禁用此两步登录提供程序吗?" + }, + "twoStepDisabled": { + "message": "此两步登录提供程序已禁用。" + }, + "twoFactorYubikeyAdd": { + "message": "将新的 YubiKey 添加到您的账户" + }, + "twoFactorYubikeyPlugIn": { + "message": "将 YubiKey 插入您电脑的 USB 端口。" + }, + "twoFactorYubikeySelectKey": { + "message": "在下面选择第一个空的 YubiKey 输入字段。" + }, + "twoFactorYubikeyTouchButton": { + "message": "按下 YubiKey 的按钮。" + }, + "twoFactorYubikeySaveForm": { + "message": "保存表单。" + }, + "twoFactorYubikeyWarning": { + "message": "由于平台的限制,YubiKey 不能在所有 Bitwarden 应用程序上使用。您应该启用另一个两步登录提供程序,以便在无法使用 YubiKey 时可以访问您的账户。支持的平台:" + }, + "twoFactorYubikeySupportUsb": { + "message": "具有 USB 端口的设备上的网页版密码库、桌面应用程序、CLI 以及浏览器扩展都可以使用您的 YubiKey。" + }, + "twoFactorYubikeySupportMobile": { + "message": "具有兼容 NFC 或数据端口的设备上的移动应用程序可以使用您的 YubiKey。" + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F Key $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn 密钥 $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC 支持" + }, + "twoFactorYubikeySupportsNfc": { + "message": "我的一把钥匙支持 NFC。" + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "如果您的某个 YubiKey 支持 NFC(例如 YubiKey NEO),移动设备在检测到 NFC 时将提示您。" + }, + "yubikeysUpdated": { + "message": "YubiKey 已更新" + }, + "disableAllKeys": { + "message": "禁用全部钥匙" + }, + "twoFactorDuoDesc": { + "message": "输入 Duo 管理面板提供的 Bitwarden 应用信息。" + }, + "twoFactorDuoIntegrationKey": { + "message": "集成密钥" + }, + "twoFactorDuoSecretKey": { + "message": "安全密钥" + }, + "twoFactorDuoApiHostname": { + "message": "API 主机名" + }, + "twoFactorEmailDesc": { + "message": "按照以下步骤设置使用电子邮件两步登录:" + }, + "twoFactorEmailEnterEmail": { + "message": "输入您希望接收验证码的电子邮件" + }, + "twoFactorEmailEnterCode": { + "message": "输入电子邮件中的 6 位验证码" + }, + "sendEmail": { + "message": "发送电子邮件" + }, + "twoFactorU2fAdd": { + "message": "在您的账户中添加 FIDO U2F 安全钥匙" + }, + "removeU2fConfirmation": { + "message": "您确认要删除这个安全钥匙吗?" + }, + "twoFactorWebAuthnAdd": { + "message": "添加一个 WebAuthn 安全密钥到您的账户" + }, + "readKey": { + "message": "读取钥匙" + }, + "keyCompromised": { + "message": "密钥被破坏。" + }, + "twoFactorU2fGiveName": { + "message": "给安全钥匙一个友好的名称来标识它。" + }, + "twoFactorU2fPlugInReadKey": { + "message": "将安全钥匙插入计算机的 USB 端口,然后单击「读取钥匙」按钮。" + }, + "twoFactorU2fTouchButton": { + "message": "如果安全钥匙有按钮,请按下它。" + }, + "twoFactorU2fSaveForm": { + "message": "保存表单。" + }, + "twoFactorU2fWarning": { + "message": "由于平台的限制,FIDO U2F 不能在所有 Bitwarden 应用程序上使用。您应该启用另一个两步登录提供程序,以便在无法使用 FIDO U2F 时可以访问您的账户。支持的平台:" + }, + "twoFactorU2fSupportWeb": { + "message": "台式机 / 笔记本电脑上启用了 U2F 的浏览器(Chrome,Opera,Vivaldi 或启用了 FIDO U2F 的 Firefox)中的网页版密码库和浏览器扩展。" + }, + "twoFactorU2fWaiting": { + "message": "等待您按下安全钥匙上的按钮" + }, + "twoFactorU2fClickSave": { + "message": "单击下面的「保存」按钮,以启用此安全钥匙进行两步登录。" + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "读取安全钥匙时出现问题,请再试一次。" + }, + "twoFactorWebAuthnWarning": { + "message": "由于平台限制,无法在所有 Bitwarden 应用程序中使用 WebAuthn。您应该启用另一种两步登录方式,以便在 WebAuthn 无法使用时可以访问您的账户。支持的平台有:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "桌面/笔记本电脑上具有 WebAuthn 功能的浏览器(Chrome、Opera、Vivaldi 或启用了 FIDO U2F 的 Firefox)上的网页密码库和浏览器扩展。" + }, + "twoFactorRecoveryYourCode": { + "message": "您的 Bitwarden 两步登录恢复代码" + }, + "twoFactorRecoveryNoCode": { + "message": "您尚未启用任何两步登录提供程序。在启用了一个两步登录提供程序后,您可以在这里检查恢复代码。" + }, + "printCode": { + "message": "打印代码", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "报告" + }, + "reportsDesc": { + "message": "点击下面的报告,识别并消除您的在线账户中的安全漏洞。" + }, + "unsecuredWebsitesReport": { + "message": "不安全的网站报告" + }, + "unsecuredWebsitesReportDesc": { + "message": "以 http:// 开头的 URL 没有使用最好的加密方式。将这些账户的登录 URI 更改为 https://,以便更安全地浏览。" + }, + "unsecuredWebsitesFound": { + "message": "发现不安全的网站" + }, + "unsecuredWebsitesFoundDesc": { + "message": "我们在您的密码库中发现了 $COUNT$ 个项目带有不安全的 URI。如果网站允许,您应该将他们更改为 https://。", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "没有在你的密码库中发现带不安全 URI 的项目。" + }, + "inactive2faReport": { + "message": "未激活的两步登录" + }, + "inactive2faReportDesc": { + "message": "两步登录为您的账户增加了一层保护。使用 Bitwarden 验证器或其他方式为这些账户开启两步登录。" + }, + "inactive2faFound": { + "message": "发现未使用双重身份验证的登录" + }, + "inactive2faFoundDesc": { + "message": "我们在您的密码库中发现 $COUNT$ 个网站可能没有配置双重身份验证(通过 twofactorauth.org)。为了进一步保护这些账户,您应该启用双重身份验证。", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "没有在您的密码库发现未使用双重身份验证的网站。" + }, + "instructions": { + "message": "说明" + }, + "exposedPasswordsReport": { + "message": "已泄露密码报告" + }, + "exposedPasswordsReportDesc": { + "message": "在数据泄露事件中暴露的密码很容易成为攻击者的目标。更改这些密码以防止潜在的入侵。" + }, + "exposedPasswordsFound": { + "message": "发现公开密码" + }, + "exposedPasswordsFoundDesc": { + "message": "我们在密码库发现 $COUNT$ 个项目的密码在已知数据泄露中被公开。您应该将它们更改为新密码。", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "没有在密码库中发现有密码在已知数据泄露中被公开。" + }, + "checkExposedPasswords": { + "message": "检查公开密码" + }, + "exposedXTimes": { + "message": "被公开 $COUNT$ 次", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "弱密码报告" + }, + "weakPasswordsReportDesc": { + "message": "弱的密码很容易被攻击者猜到。使用密码生成器将这些密码改为强密码。" + }, + "weakPasswordsFound": { + "message": "找到弱密码" + }, + "weakPasswordsFoundDesc": { + "message": "我们在您的密码库中发现了 $COUNT$ 个弱密码项目。您应该将它们改为更强的密码。", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "没有在密码库中发现弱密码。" + }, + "reusedPasswordsReport": { + "message": "重复使用的密码" + }, + "reusedPasswordsReportDesc": { + "message": "重复使用的密码使攻击者更容易侵入多个账户。更改这些密码以使每个密码都是唯一的。" + }, + "reusedPasswordsFound": { + "message": "发现重复使用的密码" + }, + "reusedPasswordsFoundDesc": { + "message": "我们发现 $COUNT$ 个密码正在您的密码库中重复使用。您应该将它们更改为不同的值。", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "您密码库中没有密码重复使用的项目。" + }, + "reusedXTimes": { + "message": "重复使用了 $COUNT$ 次", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "数据泄露" + }, + "breachDesc": { + "message": "泄露的账户可能会暴露您的个人信息。通过启用 2FA 或创建更强大的密码来保护被泄露的账户。" + }, + "breachCheckUsernameEmail": { + "message": "检查您使用的任何用户名或电子邮件地址。" + }, + "checkBreaches": { + "message": "检查泄漏情况" + }, + "breachUsernameNotFound": { + "message": "在任何已知数据泄漏中找不到 $USERNAME$。", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "好消息", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ 在不同的在线数据泄漏中找到 $COUNT$ 次。", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "发现被泄露的账户" + }, + "compromisedData": { + "message": "被盗数据" + }, + "website": { + "message": "网站" + }, + "affectedUsers": { + "message": "受影响的用户" + }, + "breachOccurred": { + "message": "泄漏发生于" + }, + "breachReported": { + "message": "泄漏报告于" + }, + "reportError": { + "message": "加载报告时发生错误,请重试。" + }, + "billing": { + "message": "计费" + }, + "accountCredit": { + "message": "账户信用额度", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "账户余额", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "添加信用额度", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "合计", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "添加的信用额度在付款全部处理后将出现在您的账户上。某些付款方式会延迟,并且可能需要比其他付款方式更长的时间来处理。" + }, + "makeSureEnoughCredit": { + "message": "请确保您的账户有足够的信用额度来用于此购买。如果您的账户信用额度不足,您的默认付款方式将用于补足差额。您可以从计费页面向您的账户添加信用额度。" + }, + "creditAppliedDesc": { + "message": "您帐户的信用额度可用于进行消费。任何可用的信用额度将用于自动支付此帐户的账单。" + }, + "goPremium": { + "message": "升级高级会员", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "您已升级到高级会员。" + }, + "premiumUpgradeUnlockFeatures": { + "message": "将您的账户升级为高级会员,将解锁一些强大的附加功能。" + }, + "premiumSignUpStorage": { + "message": "1 GB 文件附件加密存储。" + }, + "premiumSignUpTwoStep": { + "message": "额外的两步登录选项,如 YubiKey、FIDO U2F 和 Duo。" + }, + "premiumSignUpEmergency": { + "message": "紧急访问" + }, + "premiumSignUpReports": { + "message": "密码健康、账户体检以及数据泄露报告,保障您的密码库安全。" + }, + "premiumSignUpTotp": { + "message": "用于密码库中登录的 TOTP 验证码(两步验证)生成器。" + }, + "premiumSignUpSupport": { + "message": "优先客户支持。" + }, + "premiumSignUpFuture": { + "message": "所有未来的高级功能,即将推出!" + }, + "premiumPrice": { + "message": "每年只需 $PRICE$ !", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "附加项目" + }, + "premiumAccess": { + "message": "高级会员" + }, + "premiumAccessDesc": { + "message": "您可以为您的组织所有成员添加高级访问权限,只要 $PRICE$ / 每 $INTERVAL$ 。", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "附加存储 (GB)" + }, + "additionalStorageGbDesc": { + "message": "# GB 附加存储" + }, + "additionalStorageIntervalDesc": { + "message": "您的计划附带 $SIZE$ 的加密存储空间。您也可以用 $PRICE$ 每 GB 每 $INTERVAL$ 购买附加存储。", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "概要" + }, + "total": { + "message": "总计" + }, + "year": { + "message": "年" + }, + "month": { + "message": "月" + }, + "monthAbbr": { + "message": "月", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "将立即从您的支付方式扣款,并且将每年定期扣款。您可以随时取消。" + }, + "paymentCharged": { + "message": "将立即从您的支付方式扣款,并且将每 $INTERVAL$ 定期扣款。您可以随时取消。", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "您的计划包含了 7 天的免费试用期。在试用期结束前,不会从您的支付方式中扣款。您可以随时取消。" + }, + "paymentInformation": { + "message": "支付信息" + }, + "billingInformation": { + "message": "账单信息" + }, + "creditCard": { + "message": "支付卡" + }, + "paypalClickSubmit": { + "message": "点击 PayPal 按钮登录您的 PayPal 账户,然后点击下面的提交按钮继续。" + }, + "cancelSubscription": { + "message": "取消订阅" + }, + "subscriptionCanceled": { + "message": "您的订阅已取消。" + }, + "pendingCancellation": { + "message": "待取消" + }, + "subscriptionPendingCanceled": { + "message": "此订阅在当前计费周期结束前已标记为取消。" + }, + "reinstateSubscription": { + "message": "恢复订阅" + }, + "reinstateConfirmation": { + "message": "您确定要撤销请求并恢复订阅吗?" + }, + "reinstated": { + "message": "您的订阅已恢复。" + }, + "cancelConfirmation": { + "message": "您确定要取消吗?在本次计费周期结束后,您将无法使用此订阅的所有功能。" + }, + "canceledSubscription": { + "message": "订阅已取消。" + }, + "neverExpires": { + "message": "永不过期" + }, + "status": { + "message": "状态" + }, + "nextCharge": { + "message": "下一次扣款" + }, + "details": { + "message": "详细信息" + }, + "downloadLicense": { + "message": "下载许可证" + }, + "updateLicense": { + "message": "更新许可证" + }, + "updatedLicense": { + "message": "许可证已更新" + }, + "manageSubscription": { + "message": "管理订阅" + }, + "storage": { + "message": "存储" + }, + "addStorage": { + "message": "添加存储" + }, + "removeStorage": { + "message": "移除存储空间" + }, + "subscriptionStorage": { + "message": "您的订阅共有 $MAX_STORAGE$ GB 的加密存储空间。您目前已使用 $USED_STORAGE$ 。", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "支付方式" + }, + "noPaymentMethod": { + "message": "无支付方式" + }, + "addPaymentMethod": { + "message": "添加支付方式" + }, + "changePaymentMethod": { + "message": "更改支付方式" + }, + "invoices": { + "message": "账单" + }, + "noInvoices": { + "message": "无账单。" + }, + "paid": { + "message": "已支付", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "待支付", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "交易记录", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "无交易记录" + }, + "chargeNoun": { + "message": "费用", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "退款", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "任何费用将在您的对账单上以 $STATEMENT_NAME$ 显示。", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB 存储空间将增加" + }, + "gbStorageRemove": { + "message": "GB 存储空间将删除" + }, + "storageAddNote": { + "message": "添加存储空间将会调整计费总金额,并立即通过您的支付方式进行扣款。 第一笔费用将按当前计费周期的剩余时间按比例分配。" + }, + "storageRemoveNote": { + "message": "移除存储空间将会调整计费总金额,这笔费用将按比例返回下一笔账单费用中。" + }, + "adjustedStorage": { + "message": "已调整 $AMOUNT$ GB 的存储空间。", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "联系客户支持" + }, + "updatedPaymentMethod": { + "message": "支付方式已更新" + }, + "purchasePremium": { + "message": "购买高级会员" + }, + "licenseFile": { + "message": "许可证文件" + }, + "licenseFileDesc": { + "message": "您的许可证文件的文件名类似于 $FILE_NAME$", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "要将您的账户升级为高级会员资格,您需要上传有效的许可证文件。" + }, + "uploadLicenseFileOrg": { + "message": "若要创建基于本地托管的组织,您需要上传有效的许可证文件。" + }, + "accountEmailMustBeVerified": { + "message": "您必须验证账户的电子邮件地址。" + }, + "newOrganizationDesc": { + "message": "组织允许您与他人共享您的密码库的部分内容,以及管理特定实体(例如家族、小型团队或大型公司)的相关用户。" + }, + "generalInformation": { + "message": "常规信息" + }, + "organizationName": { + "message": "组织名称" + }, + "accountOwnedBusiness": { + "message": "此账户由商业用户拥有。" + }, + "billingEmail": { + "message": "账单电子邮件" + }, + "businessName": { + "message": "公司名称" + }, + "chooseYourPlan": { + "message": "选择您的计划" + }, + "users": { + "message": "用户" + }, + "userSeats": { + "message": "用户席位" + }, + "additionalUserSeats": { + "message": "附加用户席位" + }, + "userSeatsDesc": { + "message": "# 用户席位" + }, + "userSeatsAdditionalDesc": { + "message": "您的计划包含 $BASE_SEATS$ 个用户席位。添加附加用户的价格是 $SEAT_PRICE$ 每用户每月。", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "您需要多少个用户席位?您也可以在以后需要的时候添加附加席位。" + }, + "planNameFree": { + "message": "免费", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "适用于测试或个人用户与 $COUNT$ 位其他用户共享。", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "家庭" + }, + "planDescFamilies": { + "message": "适用于个人使用,与家人和朋友共享。" + }, + "planNameTeams": { + "message": "团队" + }, + "planDescTeams": { + "message": "适用于企业和其他团队组织。" + }, + "planNameEnterprise": { + "message": "企业" + }, + "planDescEnterprise": { + "message": "适用于企业和其他大型组织。" + }, + "freeForever": { + "message": "永远免费" + }, + "includesXUsers": { + "message": "包含 $COUNT$ 位用户", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "附加用户" + }, + "costPerUser": { + "message": "每位用户 $COST$", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "仅限 $COUNT$ 位用户(包括您)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "仅限 $COUNT$ 个集合", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "添加并最多与 $COUNT$ 位用户共享", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "添加并与无限的用户共享" + }, + "createUnlimitedCollections": { + "message": "创建无限个集合" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ 加密文件存储", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "本地托管(可选)" + }, + "usersGetPremium": { + "message": "用户拥有高级会员功能权限" + }, + "controlAccessWithGroups": { + "message": "使用群组控制用户访问权限" + }, + "syncUsersFromDirectory": { + "message": "使用目录同步用户和群组" + }, + "trackAuditLogs": { + "message": "使用审核日志跟踪用户操作" + }, + "enforce2faDuo": { + "message": "强制启用 Duo 的两步登录" + }, + "priorityCustomerSupport": { + "message": "优先客户支持" + }, + "xDayFreeTrial": { + "message": "$COUNT$ 天免费试用,随时取消", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "每月" + }, + "annually": { + "message": "每年" + }, + "basePrice": { + "message": "基本价格" + }, + "organizationCreated": { + "message": "组织已创建" + }, + "organizationReadyToGo": { + "message": "你的组织准备好了!" + }, + "organizationUpgraded": { + "message": "您的组织已升级。" + }, + "leave": { + "message": "离开" + }, + "leaveOrganizationConfirmation": { + "message": "您确定要离开此组织吗?" + }, + "leftOrganization": { + "message": "您已经离开该组织。" + }, + "defaultCollection": { + "message": "默认集合" + }, + "getHelp": { + "message": "获取帮助" + }, + "getApps": { + "message": "获取应用" + }, + "loggedInAs": { + "message": "已登录为" + }, + "eventLogs": { + "message": "事件日志" + }, + "people": { + "message": "人员" + }, + "policies": { + "message": "策略" + }, + "singleSignOn": { + "message": "单点登录" + }, + "editPolicy": { + "message": "编辑策略" + }, + "groups": { + "message": "群组" + }, + "newGroup": { + "message": "新建群组" + }, + "addGroup": { + "message": "添加群组" + }, + "editGroup": { + "message": "编辑群组" + }, + "deleteGroupConfirmation": { + "message": "您确定要删除此群组吗?" + }, + "removeUserConfirmation": { + "message": "您确实要删除此用户吗?" + }, + "removeUserConfirmationKeyConnector": { + "message": "警告!此用户需要 Key Connector 来管理他们的加密。从您的组织中移除此用户将永久禁用他们的账户。此操作无法撤消。您要继续吗?" + }, + "externalId": { + "message": "外部 ID" + }, + "externalIdDesc": { + "message": "外部 ID 可用作参考,或将此资源与用户目录等外部系统联系起来。" + }, + "accessControl": { + "message": "访问控制" + }, + "groupAccessAllItems": { + "message": "此群组可以访问和修改所有项目。" + }, + "groupAccessSelectedCollections": { + "message": "此群组只能访问选定的集合。" + }, + "readOnly": { + "message": "只读" + }, + "newCollection": { + "message": "新建集合" + }, + "addCollection": { + "message": "添加集合" + }, + "editCollection": { + "message": "编辑集合" + }, + "deleteCollectionConfirmation": { + "message": "你确定要删除此集合吗?" + }, + "editUser": { + "message": "编辑用户" + }, + "inviteUser": { + "message": "邀请用户" + }, + "inviteUserDesc": { + "message": "在下面输入 Bitwarden 账户的电子邮件地址,以邀请新用户加入您的组织。如果他们没有 Bitwarden 账户,将会提示他们创建一个。" + }, + "inviteMultipleEmailDesc": { + "message": "通过使用逗号分隔的电子邮件地址列表,您可以一次邀请 $COUNT$ 位用户。", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "此用户正在使用两步登录来保护他们的账户。" + }, + "userAccessAllItems": { + "message": "此用户可以访问和修改所有项目。" + }, + "userAccessSelectedCollections": { + "message": "此用户只能访问选定的集合。" + }, + "search": { + "message": "搜索" + }, + "invited": { + "message": "已邀请" + }, + "accepted": { + "message": "已接受" + }, + "confirmed": { + "message": "已确认" + }, + "clientOwnerEmail": { + "message": "客户所有者电子邮件" + }, + "owner": { + "message": "所有者" + }, + "ownerDesc": { + "message": "可以管理组织的所有方面的最高权限用户。" + }, + "clientOwnerDesc": { + "message": "此用户应独立于提供商。如果提供商与组织断开关联,该用户将保留该组织的所有权。" + }, + "admin": { + "message": "管理员" + }, + "adminDesc": { + "message": " 管理员可以访问和管理组织中的所有项目、集合和用户。" + }, + "user": { + "message": "用户" + }, + "userDesc": { + "message": "具有对组织所分配的集合有访问权限的普通用户。" + }, + "manager": { + "message": "经理" + }, + "managerDesc": { + "message": "经理可以访问和管理组织所分配的集合。" + }, + "all": { + "message": "全部" + }, + "refresh": { + "message": "刷新" + }, + "timestamp": { + "message": "时间戳" + }, + "event": { + "message": "事件" + }, + "unknown": { + "message": "未知" + }, + "loadMore": { + "message": "加载更多" + }, + "mobile": { + "message": "手机版应用", + "description": "Mobile app" + }, + "extension": { + "message": "扩展", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "桌面版应用", + "description": "Desktop app" + }, + "webVault": { + "message": "网页密码库" + }, + "loggedIn": { + "message": "已登录。" + }, + "changedPassword": { + "message": "账户密码已更改。" + }, + "enabledUpdated2fa": { + "message": "已启用/更新两步登录。" + }, + "disabled2fa": { + "message": "两步登录已禁用。" + }, + "recovered2fa": { + "message": "已从两步登录中恢复账户。" + }, + "failedLogin": { + "message": "登录失败,密码不正确。" + }, + "failedLogin2fa": { + "message": "登录失败,两步登录不正确。" + }, + "exportedVault": { + "message": "已导出密码库。" + }, + "exportedOrganizationVault": { + "message": "已导出组织密码库。" + }, + "editedOrgSettings": { + "message": "已编辑组织设置。" + }, + "createdItemId": { + "message": "已创建项目 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "已编辑项目 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "项目 $ID$ 已发送到回收站。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "已将项目 $ID$ 移动到组织。", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "查看了项目 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "查看了项目 $ID$ 的密码。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "查看了项目 $ID$ 的隐藏字段。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "查看了项目 $ID$ 的安全代码。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "复制了项目 $ID$ 的密码。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "复制了项目 $ID$ 隐藏字段。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "复制项目 $ID$ 的安全代码。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "项目 $ID$ 已自动填充。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "已创建集合 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "已编辑集合 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "已删除集合 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "已编辑策略 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "已创建群组 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "已编辑群组 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "已删除群组 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "已删除用户 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "已为项目 $ID$ 创建附件。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "已删除项目 $ID$ 的附件。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "已为项目 $ID$ 编辑集合。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "已邀请用户 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "已确认用户 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "已编辑用户 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "已为用户 $ID$ 编辑群组。", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "为用户 $ID$ 取消链接 SSO。", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "已创建组织 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "已添加组织 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "已移除组织 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "已访问 $ID$ 组织密码库。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "设备" + }, + "view": { + "message": "查看" + }, + "invalidDateRange": { + "message": "无效的日期范围。" + }, + "errorOccurred": { + "message": "发生错误。" + }, + "userAccess": { + "message": "用户权限" + }, + "userType": { + "message": "用户类型" + }, + "groupAccess": { + "message": "群组权限" + }, + "groupAccessUserDesc": { + "message": "编辑此用户隶属的群组。" + }, + "invitedUsers": { + "message": "受邀用户。" + }, + "resendInvitation": { + "message": "重新发送邀请" + }, + "resendEmail": { + "message": "重新发送电子邮件" + }, + "hasBeenReinvited": { + "message": "已重新邀请 $USER$。", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "确认" + }, + "confirmUser": { + "message": "确认用户" + }, + "hasBeenConfirmed": { + "message": "已确认 $USER$。", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "确认用户" + }, + "usersNeedConfirmed": { + "message": "您的用户已经接受了发给他们的邀请,但仍需要被确认。用户在被确认之前将无法访问组织。" + }, + "startDate": { + "message": "开始日期" + }, + "endDate": { + "message": "结束日期" + }, + "verifyEmail": { + "message": "验证电子邮件" + }, + "verifyEmailDesc": { + "message": "验证您账户的电子邮件地址来解锁所有功能。" + }, + "verifyEmailFirst": { + "message": "首先必须验证您账户的电子邮件地址。" + }, + "checkInboxForVerification": { + "message": "检查您的电子邮件收件箱以获取验证链接。" + }, + "emailVerified": { + "message": "您的电子邮件已验证。" + }, + "emailVerifiedFailed": { + "message": "无法验证您的电子邮件。尝试发送新的验证电子邮件。" + }, + "emailVerificationRequired": { + "message": "需要验证电子邮件地址" + }, + "emailVerificationRequiredDesc": { + "message": "您必须验证您的电子邮件才能使用此功能。" + }, + "updateBrowser": { + "message": "更新浏览器" + }, + "updateBrowserDesc": { + "message": "您使用的是不受支持的Web浏览器。 网页密码库可能无法正常运行。" + }, + "joinOrganization": { + "message": "加入组织" + }, + "joinOrganizationDesc": { + "message": "您已被邀请加入上面的组织。要接受邀请,您需要登录或者创建一个 Bitwarden 账户。" + }, + "inviteAccepted": { + "message": "邀请已接受" + }, + "inviteAcceptedDesc": { + "message": "管理员确认您的成员资格后,您将能访问此组织。到时我们将向您发送电子邮件通知。" + }, + "inviteAcceptFailed": { + "message": "无法接受邀请。请向组织管理员请求发送新的邀请。" + }, + "inviteAcceptFailedShort": { + "message": "无法接受邀请。$DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "记住电子邮件" + }, + "recoverAccountTwoStepDesc": { + "message": "如果您无法通过常规的两步登录方式访问您的账户,您可以使用两步登录恢复代码来禁用账户上的所有两步登录提供程序。" + }, + "recoverAccountTwoStep": { + "message": "恢复账户两步登录" + }, + "twoStepRecoverDisabled": { + "message": "您的账户已禁用两步登录。" + }, + "learnMore": { + "message": "进一步了解" + }, + "deleteRecoverDesc": { + "message": "请在下面输入您的电子邮件地址以恢复和删除您的账户。" + }, + "deleteRecoverEmailSent": { + "message": "如果您的帐户存在,我们已经向您发送了电子邮件,其中包含了进一步说明。" + }, + "deleteRecoverConfirmDesc": { + "message": "您已请求删除您的 Bitwarden 账户。单击下面的按钮以确认。" + }, + "myOrganization": { + "message": "我的组织" + }, + "deleteOrganization": { + "message": "删除组织" + }, + "deletingOrganizationContentWarning": { + "message": "请输入主密码以确认删除 $ORGANIZATION$ 及关联的所有数据。$ORGANIZATION$ 中的密码库数据包括:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "删除后用户账户仍可用,但不再与此组织关联。" + }, + "deletingOrganizationIsPermanentWarning": { + "message": "删除 $ORGANIZATION$ 是永久操作,不可撤销!", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "组织已删除" + }, + "organizationDeletedDesc": { + "message": "该组织和所有相关数据已删除。" + }, + "organizationUpdated": { + "message": "组织已更新" + }, + "taxInformation": { + "message": "税务信息" + }, + "taxInformationDesc": { + "message": "对于美国境内的客户,需要提供邮政编码以满足销售税要求。 对于其他国家,您可以选择提供一个税号(VAT/GST) 和/或地址来显示在您的账单上。" + }, + "billingPlan": { + "message": "计划", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "升级计划", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "为了将您的账户升级到另一个计划,请提供以下信息。同时请确保您账户已添加有一个有效的支付方式。", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "账单 #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "查看账单" + }, + "downloadInvoice": { + "message": "下载账单" + }, + "verifyBankAccount": { + "message": "验证银行账户" + }, + "verifyBankAccountDesc": { + "message": "我们已将两笔小额转账存入您的银行账户(将会在 1-2 个工作日到账)。输入这些金额来验证银行账户。" + }, + "verifyBankAccountInitialDesc": { + "message": "只有美国用户才能使用银行账户付款。您需要验证自己的银行账户。我们将在 1-2 个工作日内进行两笔小额转账,在组织的计费页面输入这些金额来验证银行账户。" + }, + "verifyBankAccountFailureWarning": { + "message": "验证银行账户失败将会错过支付,您的订阅将失效。" + }, + "verifiedBankAccount": { + "message": "您的银行账户已验证。" + }, + "bankAccount": { + "message": "银行账户" + }, + "amountX": { + "message": "金额 $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "汇款路线号码", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "账户号码" + }, + "accountHolderName": { + "message": "账户持有人姓名" + }, + "bankAccountType": { + "message": "账户类型" + }, + "bankAccountTypeCompany": { + "message": "公司(商业)" + }, + "bankAccountTypeIndividual": { + "message": "个体(个人)" + }, + "enterInstallationId": { + "message": "输入您的安装 ID" + }, + "limitSubscriptionDesc": { + "message": "为您的订阅设置席位限制。达到此限制后,您将无法邀请新的用户。" + }, + "maxSeatLimit": { + "message": "最大席位限制(可选)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "最大潜在席位费用" + }, + "addSeats": { + "message": "添加席位", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "移除席位", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "调整订阅将导致按比例调整您的账单总额。如果新邀请的用户超过了您的订阅座位,您将立即收到按比例的额外用户费用。" + }, + "subscriptionUserSeats": { + "message": "您的订阅一共允许 $COUNT$ 位用户。", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "限制订阅(可选)" + }, + "subscriptionSeats": { + "message": "订阅席位" + }, + "subscriptionUpdated": { + "message": "订阅已更新" + }, + "additionalOptions": { + "message": "附加选项" + }, + "additionalOptionsDesc": { + "message": "如需更多订阅管理的帮助,请联系客服支持。" + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "调整订阅将导致按比例调整您的账单总额。如果新邀请的用户超过了您的订阅座位,您将立即收到按比例的额外用户费用。" + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "调整订阅将导致按比例调整您的账单总额。如果新邀请的用户超过了您的订阅席位,您将立即收到额外用户的按比例费用,直到您达到 $MAX$ 席位限制。", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "如果不升级你的计划,你不能邀请超过 $COUNT$ 位用户。", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "如果不升级你的计划,你不能邀请超过 $COUNT$ 位用户。请联系客户支持进行升级。", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "您的订阅允许总共 $COUNT$ 位用户。您的计划由一个外部组织赞助和支付费用。", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "调整订阅将导致按比例调整您的账单总额。如果不增加订阅席位,您将不能邀请超过 $COUNT$ 位用户。", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "要添加的席位数" + }, + "seatsToRemove": { + "message": "要移除的席位数" + }, + "seatsAddNote": { + "message": "添加用户席位将会调整计费总金额,并立即通过您的支付方式进行扣款。 第一笔费用将按当前计费周期的剩余时间按比例分配。" + }, + "seatsRemoveNote": { + "message": "移除用户席位将会调整计费总金额,这笔费用将按比例返回下一笔账单费用中。" + }, + "adjustedSeats": { + "message": "调整了 $AMOUNT$ 个用户席位。", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "密钥已更新" + }, + "updateKeyTitle": { + "message": "更新密钥" + }, + "updateEncryptionKey": { + "message": "更新加密密钥" + }, + "updateEncryptionKeyShortDesc": { + "message": "您目前使用的是过时的加密方案。" + }, + "updateEncryptionKeyDesc": { + "message": "我们已经采用更强大的加密密钥,提供了更强的安全性和更新的功能。更新您的加密密钥非常简单快捷,只需要输入主密码。此次更新最终将强制执行。" + }, + "updateEncryptionKeyWarning": { + "message": "更新加密密钥后,您需要注销所有正在使用的 Bitwarden 应用(比如手机版应用或者浏览器扩展)后重新登录。注销或者重新登录(这将下载新的加密密钥)失败可能会导致数据损坏。我们会尝试自动为您注销,但是,可能会有所延迟。" + }, + "updateEncryptionKeyExportWarning": { + "message": "您保存的任何已加密导出也将变为无效。" + }, + "subscription": { + "message": "订阅" + }, + "loading": { + "message": "正在加载" + }, + "upgrade": { + "message": "升级" + }, + "upgradeOrganization": { + "message": "升级组织" + }, + "upgradeOrganizationDesc": { + "message": "本功能对免费组织不可用。切换到付费计划以解锁更多功能。" + }, + "createOrganizationStep1": { + "message": "创建组织:第一步" + }, + "createOrganizationCreatePersonalAccount": { + "message": "在创建组织之前,首先需要创建一个免费的个人账户。" + }, + "refunded": { + "message": "退款" + }, + "nothingSelected": { + "message": "您没有选择任何内容。" + }, + "acceptPolicies": { + "message": "选中此框表示您同意:" + }, + "acceptPoliciesError": { + "message": "尚未同意服务条款和隐私政策。" + }, + "termsOfService": { + "message": "服务条款" + }, + "privacyPolicy": { + "message": "隐私条款" + }, + "filters": { + "message": "筛选器" + }, + "vaultTimeout": { + "message": "密码库超时时间" + }, + "vaultTimeoutDesc": { + "message": "选择您的密码库何时超时并执行所选的动作。" + }, + "oneMinute": { + "message": "1 分钟" + }, + "fiveMinutes": { + "message": "5 分钟" + }, + "fifteenMinutes": { + "message": "15 分钟" + }, + "thirtyMinutes": { + "message": "30 分钟" + }, + "oneHour": { + "message": "1 小时" + }, + "fourHours": { + "message": "4 小时" + }, + "onRefresh": { + "message": "在浏览器刷新时" + }, + "dateUpdated": { + "message": "更新于", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "密码更新于", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "该组织已被禁用。" + }, + "licenseIsExpired": { + "message": "授权已过期" + }, + "updatedUsers": { + "message": "更新用户" + }, + "selected": { + "message": "已选择" + }, + "ownership": { + "message": "所有权" + }, + "whoOwnsThisItem": { + "message": "谁拥有这个项目?" + }, + "strong": { + "message": "强", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "良好", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "弱", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "很弱", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "脆弱的主密码" + }, + "weakMasterPasswordDesc": { + "message": "您选择的主密码较弱。您应该使用强密码(或密码短语)来正确保护您的 Bitwarden 账户。仍要使用此主密码吗?" + }, + "rotateAccountEncKey": { + "message": "同时轮换账户的加密密钥" + }, + "rotateEncKeyTitle": { + "message": "轮换加密密钥" + }, + "rotateEncKeyConfirmation": { + "message": "您确定要轮换账户的加密密钥吗?" + }, + "attachmentsNeedFix": { + "message": "此项目有需要修复的旧文件附件。" + }, + "attachmentFixDesc": { + "message": "这是一个需要修复的旧文件附件。点击了解更多。" + }, + "fix": { + "message": "修复", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "需要先修复密码库中的旧文件附件,然后才能轮换账户的加密密钥。" + }, + "yourAccountsFingerprint": { + "message": "您的账户的指纹短语", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "为确保加密密钥的完整性,继续之前请先验证用户的指纹短语。", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "不再提示验证受邀用户的指纹短语(不推荐)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "免费", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API 密钥" + }, + "apiKeyDesc": { + "message": "您的 API 密钥可用于认证 Bitwarden 公共 API。" + }, + "apiKeyRotateDesc": { + "message": "轮换 API 密钥将使前一个密钥无效。如果你认为当前密钥不再安全,你可以轮换您的 API 密钥。" + }, + "apiKeyWarning": { + "message": "您的 API 密钥拥有组织的全部访问权限。请将其存放在安全的地方。" + }, + "userApiKeyDesc": { + "message": "您的 API 密钥可用于在 Bitwarden CLI 中进行身份验证。" + }, + "userApiKeyWarning": { + "message": "您的 API 密钥是另一套等效的身份验证机制。请严格保密。" + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 客户端证书", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "查看 API 密钥" + }, + "rotateApiKey": { + "message": "轮换 API 密钥" + }, + "selectOneCollection": { + "message": "您必须至少选择一个集合。" + }, + "couldNotChargeCardPayInvoice": { + "message": "我们无法从您的支付卡中扣款。请查看并支付下面列出的待支付账单。" + }, + "inAppPurchase": { + "message": "应用内购买" + }, + "cannotPerformInAppPurchase": { + "message": "使用应用内购买这种支付方式时,您不能执行此操作。" + }, + "manageSubscriptionFromStore": { + "message": "您必须在进行应用内购买的商店中管理订阅。" + }, + "minLength": { + "message": "最小长度" + }, + "clone": { + "message": "克隆" + }, + "masterPassPolicyDesc": { + "message": "设置主密码强度的最低要求。" + }, + "twoStepLoginPolicyDesc": { + "message": "要求用户在个人账户上设置两步登录。" + }, + "twoStepLoginPolicyWarning": { + "message": "非所有者或管理员并且其个人账户未启用两步登录的组织成员将从组织中移除,并将收到一封关于此更改的电子邮件通知。" + }, + "twoStepLoginPolicyUserWarning": { + "message": "您的组织要求您在您的个人账户上启用两步登录。如果您禁用所有两步登录提供程序,您将自动从这些组织中移除。" + }, + "passwordGeneratorPolicyDesc": { + "message": "设置密码生成器配置的最低要求。" + }, + "passwordGeneratorPolicyInEffect": { + "message": "一个或多个组织策略正在影响您的生成器设置。" + }, + "masterPasswordPolicyInEffect": { + "message": "一个或多个组织策略要求您的主密码满足以下要求:" + }, + "policyInEffectMinComplexity": { + "message": "最小复杂度为 $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "最小长度为 $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "至少包含一个大写字母" + }, + "policyInEffectLowercase": { + "message": "至少包含一个小写字母" + }, + "policyInEffectNumbers": { + "message": "至少包含一个数字" + }, + "policyInEffectSpecial": { + "message": "至少包含一个下列特殊字符:$CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "您的新主密码不符合策略要求。" + }, + "minimumNumberOfWords": { + "message": "最少单词数" + }, + "defaultType": { + "message": "默认类型" + }, + "userPreference": { + "message": "用户偏好设置" + }, + "vaultTimeoutAction": { + "message": "密码库超时动作" + }, + "vaultTimeoutActionLockDesc": { + "message": "已锁定的密码库需要重新输入主密码才能再次访问。" + }, + "vaultTimeoutActionLogOutDesc": { + "message": "已注销的密码库需要重新验证才能再次访问。" + }, + "lock": { + "message": "锁定", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "回收站", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "搜索回收站" + }, + "permanentlyDelete": { + "message": "永久删除" + }, + "permanentlyDeleteSelected": { + "message": "永久删除选中项目" + }, + "permanentlyDeleteItem": { + "message": "永久删除项目" + }, + "permanentlyDeleteItemConfirmation": { + "message": "您确定要永久删除此项目吗?" + }, + "permanentlyDeletedItem": { + "message": "已永久删除项目" + }, + "permanentlyDeletedItems": { + "message": "已永久删除项目" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "您选择了要永久删除 $COUNT$ 个项目。确定要永久删除所有这些项目吗?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "已永久删除项目 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "恢复" + }, + "restoreSelected": { + "message": "恢复选中的项目" + }, + "restoreItem": { + "message": "恢复项目" + }, + "restoredItem": { + "message": "已恢复项目" + }, + "restoredItems": { + "message": "已恢复项目" + }, + "restoreItemConfirmation": { + "message": "确定要恢复此项目吗?" + }, + "restoreItems": { + "message": "恢复项目" + }, + "restoreSelectedItemsDesc": { + "message": "您选择了要恢复 $COUNT$ 个项目。确实要恢复所有这些项目吗?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "已恢复项目 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "超时后注销将解除对密码库的所有访问权限,并需要进行在线身份验证。确定使用此设置吗?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "超时动作确认" + }, + "hidePasswords": { + "message": "隐藏密码" + }, + "countryPostalCodeRequiredDesc": { + "message": "我们仅使用此信息来计算营业税和财务报告。" + }, + "includeVAT": { + "message": "包括 VAT/GST 信息(可选)" + }, + "taxIdNumber": { + "message": "VAT/GST 税号" + }, + "taxInfoUpdated": { + "message": "税务信息已更新。" + }, + "setMasterPassword": { + "message": "设置主密码" + }, + "ssoCompleteRegistration": { + "message": "要完成 SSO 登录配置,请设置一个主密码以访问和保护您的密码库。" + }, + "identifier": { + "message": "标识符" + }, + "organizationIdentifier": { + "message": "组织标识符" + }, + "ssoLogInWithOrgIdentifier": { + "message": "要使用您组织的单点登录门户登录。请首先输入您组织的标识符。" + }, + "enterpriseSingleSignOn": { + "message": "企业单点登录" + }, + "ssoHandOff": { + "message": "您现在可以在扩展中关闭此标签页并继续。" + }, + "includeAllTeamsFeatures": { + "message": "包含所有团队版功能" + }, + "includeSsoAuthentication": { + "message": "通过 SAML2.0 和 OpenID Connect 进行 SSO 身份验证" + }, + "includeEnterprisePolicies": { + "message": "企业策略" + }, + "ssoValidationFailed": { + "message": "SSO 验证失败" + }, + "ssoIdentifierRequired": { + "message": "需要组织标识符。" + }, + "unlinkSso": { + "message": "取消链接 SSO" + }, + "unlinkSsoConfirmation": { + "message": "您确定要断开该组织的 SSO 链接吗?" + }, + "linkSso": { + "message": "链接 SSO" + }, + "singleOrg": { + "message": "单一组织" + }, + "singleOrgDesc": { + "message": "限制用户加入任何其他组织。" + }, + "singleOrgBlockCreateMessage": { + "message": "您当前的组织策略禁止您加入多个组织。请联系您的组织管理员,或从其他 Bitwarden 账户注册。" + }, + "singleOrgPolicyWarning": { + "message": "不是所有者或管理员并且已是其他组织的成员的组织成员将从您的组织中移除。" + }, + "requireSso": { + "message": "单点登录身份验证" + }, + "requireSsoPolicyDesc": { + "message": "要求用户使用企业单点登录方式登录。" + }, + "prerequisite": { + "message": "先决条件" + }, + "requireSsoPolicyReq": { + "message": "启用此策略前,需先启用单一组织企业策略。" + }, + "requireSsoPolicyReqError": { + "message": "单一组织策略未启用。" + }, + "requireSsoExemption": { + "message": "组织的所有者和管理员豁免此策略。" + }, + "sendTypeFile": { + "message": "文件" + }, + "sendTypeText": { + "message": "文本" + }, + "createSend": { + "message": "创建新 Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "编辑 Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "Send 已创建", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "Send 已编辑", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "Send 已删除", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "删除 Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "确定要删除此 Send 吗?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "这是什么类型的 Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "删除日期" + }, + "deletionDateDesc": { + "message": "此 Send 将在指定的日期和时间后被永久删除。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "过期日期" + }, + "expirationDateDesc": { + "message": "设置后,对此 Send 的访问将在指定的日期和时间后过期。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "最大访问次数" + }, + "maxAccessCountDesc": { + "message": "设置后,当达到最大访问次数时用户将不再能够访问此 Send。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "当前访问次数" + }, + "sendPasswordDesc": { + "message": "可选,用户需要提供密码才能访问此 Send。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "关于此 Send 的私密备注。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "已禁用" + }, + "sendLink": { + "message": "Send 链接", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "复制 Send 链接", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "移除密码" + }, + "removedPassword": { + "message": "密码已移除" + }, + "removePasswordConfirmation": { + "message": "确定移除此密码?" + }, + "hideEmail": { + "message": "对收件人隐藏我的电子邮件地址。" + }, + "disableThisSend": { + "message": "禁用此 Send 以阻止任何人访问它。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "所有 Send" + }, + "maxAccessCountReached": { + "message": "已达最大访问次数", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "等待删除" + }, + "expired": { + "message": "已过期" + }, + "searchSends": { + "message": "搜索 Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "此 Send 受到密码保护。在下方输入密码以继续。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "不知道密码?请向提供此 Send 的发件人索要密码。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "此 Send 默认隐藏。您可使用下方的按钮切换其可见性。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "下载文件" + }, + "sendAccessUnavailable": { + "message": "您尝试访问的 Send 不存在或不再可用。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "没有找到与此 Send 关联的文件。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "没有可列出的 Send。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "紧急访问" + }, + "emergencyAccessDesc": { + "message": "授予和管理可信联系人的紧急访问权限。可信联系人可以在紧急情况下请求获取查看或接管您账户的权限。查阅我们的帮助页面以了解更多关于零知识共享的工作原理和细节。" + }, + "emergencyAccessOwnerWarning": { + "message": "您是一个或多个组织的拥有者。如果您授予紧急联系人接管权限,他们在接管后可作为拥有者持有您的所有权限。" + }, + "trustedEmergencyContacts": { + "message": "可信的紧急联系人" + }, + "noTrustedContacts": { + "message": "您尚未添加任何紧急联系人,请邀请可信的联系人以开始。" + }, + "addEmergencyContact": { + "message": "添加紧急联系人" + }, + "designatedEmergencyContacts": { + "message": "已指定为紧急联系人" + }, + "noGrantedAccess": { + "message": "您尚未被任何人指定为紧急联系人。" + }, + "inviteEmergencyContact": { + "message": "邀请紧急联系人" + }, + "editEmergencyContact": { + "message": "编辑紧急联系人" + }, + "inviteEmergencyContactDesc": { + "message": "通过在下面输入他们的 Bitwarden 账户电子邮件地址来邀请新的紧急联系人。 如果他们还没有 Bitwarden 账户,将提示创建一个新账户。" + }, + "emergencyAccessRecoveryInitiated": { + "message": "紧急访问已发起" + }, + "emergencyAccessRecoveryApproved": { + "message": "紧急访问已批准" + }, + "viewDesc": { + "message": "可以查看您拥有的密码库中的所有项目。" + }, + "takeover": { + "message": "接管" + }, + "takeoverDesc": { + "message": "可以使用新的主密码重置您的账户。" + }, + "waitTime": { + "message": "等待时间" + }, + "waitTimeDesc": { + "message": "自动授予访问权限之前的等待时间。" + }, + "oneDay": { + "message": "1 天" + }, + "days": { + "message": "$DAYS$ 天", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "已邀请用户。" + }, + "acceptEmergencyAccess": { + "message": "您已被邀请成为上面所列用户的紧急联系人。要接受邀请,您需要登录或创建一个新的 Bitwarden 账户。" + }, + "emergencyInviteAcceptFailed": { + "message": "无法接受邀请。请向用户请求发送新的邀请。" + }, + "emergencyInviteAcceptFailedShort": { + "message": "无法接受邀请。$DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "身份确认后,您可以访问该用户的紧急选项。当发生这种情况时,我们会向您发送一封电子邮件。" + }, + "requestAccess": { + "message": "请求访问权限" + }, + "requestAccessConfirmation": { + "message": "您确定要申请紧急访问吗?这将在 $WAITTIME$ 天后或当用户手动批准请求时获得访问权限。", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "来自 $USER$ 的紧急访问请求。我们将通过电子邮件通知您何时可以继续。", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "批准" + }, + "reject": { + "message": "拒绝" + }, + "approveAccessConfirmation": { + "message": "您确定要批准紧急访问吗?这将允许 $USER$ $ACTION$ 您的账户。", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "紧急访问已批准。" + }, + "emergencyRejected": { + "message": "紧急访问已拒绝" + }, + "passwordResetFor": { + "message": "$USER$ 的密码已重置。您现在可以使用新密码登录了。", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "个人所有权" + }, + "personalOwnershipPolicyDesc": { + "message": "通过移除个人所有权选项,要求用户将密码库项目保存到组织。" + }, + "personalOwnershipExemption": { + "message": "组织的所有者和管理员豁免此策略。" + }, + "personalOwnershipSubmitError": { + "message": "由于企业策略,您被限制为保存项目到您的个人密码库。将所有权选项更改为组织,并从可用的集合中选择。" + }, + "disableSend": { + "message": "禁用 Send" + }, + "disableSendPolicyDesc": { + "message": "不允许用户创建和编辑 Bitwarden Send。但允许删除现有的 Send。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "可以管理组织策略的组织用户豁免此策略的执行。" + }, + "sendDisabled": { + "message": "Send 已禁用", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "由于企业策略,您只能删除现有的 Send。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send 选项", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "设置用于创建和编辑 Send 的选项。", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "可以管理组织策略的组织用户豁免此策略的执行。" + }, + "disableHideEmail": { + "message": "不允许用户在创建或编辑 Send 时隐藏他们的电子邮件地址。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "以下组织策略目前正起作用:" + }, + "sendDisableHideEmailInEffect": { + "message": "用户在创建或编辑 Send 时不允许隐藏他们的电子邮件地址。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "策略 $ID$ 已修改。", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "计划价格" + }, + "estimatedTax": { + "message": "预计税额" + }, + "custom": { + "message": "自定义" + }, + "customDesc": { + "message": "高级配置允许对用户权限进行更多的粒度控制。" + }, + "permissions": { + "message": "权限" + }, + "accessEventLogs": { + "message": "访问事件日志" + }, + "accessImportExport": { + "message": "访问导入/导出" + }, + "accessReports": { + "message": "访问报告" + }, + "missingPermissions": { + "message": "您缺乏执行此操作所需的权限。" + }, + "manageAllCollections": { + "message": "管理所有集合" + }, + "createNewCollections": { + "message": "创建新的集合" + }, + "editAnyCollection": { + "message": "编辑任何集合" + }, + "deleteAnyCollection": { + "message": "删除任何集合" + }, + "manageAssignedCollections": { + "message": "管理已分配的集合" + }, + "editAssignedCollections": { + "message": "编辑已分配的集合" + }, + "deleteAssignedCollections": { + "message": "删除已分配的集合" + }, + "manageGroups": { + "message": "管理群组" + }, + "managePolicies": { + "message": "管理策略" + }, + "manageSso": { + "message": "管理 SSO" + }, + "manageUsers": { + "message": "管理用户" + }, + "manageResetPassword": { + "message": "管理密码重置" + }, + "disableRequiredError": { + "message": "您必须先手动禁用 $POLICYNAME$ 策略,然后才能禁用此策略。", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "组织策略正在影响您的所有权选项。" + }, + "personalOwnershipPolicyInEffectImports": { + "message": "组织策略已禁用将项目导入您的个人密码库。" + }, + "personalOwnershipCheckboxDesc": { + "message": "为组织用户禁用个人所有权" + }, + "textHiddenByDefault": { + "message": "访问 Send 时,默认将隐藏文本", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "用于描述此 Send 的友好名称。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "您想要发送的文本。" + }, + "sendFileDesc": { + "message": "您要发送的文件。" + }, + "copySendLinkOnSave": { + "message": "保存时复制链接到剪贴板以便分享此 Send。" + }, + "sendLinkLabel": { + "message": "Send 链接", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send 能轻松、安全地向他人传送敏感的临时信息。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "进一步了解", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "直接与其他人分享文本或文件。" + }, + "sendVaultCardLearnMore": { + "message": "进一步了解", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "参见", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "工作原理", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "或", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "立即体验", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "或", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "注册", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "来马上尝试。", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden 用户 $USER_IDENTIFIER$ 与您分享了以下内容", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "创建此 Send 的 Bitwarden 用户已选择隐藏他们的电子邮件地址。在使用或下载此链接的内容之前,应确保您信任此链接的来源。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "所提供的过期日期无效。" + }, + "deletionDateIsInvalid": { + "message": "所提供的删除日期无效。" + }, + "expirationDateAndTimeRequired": { + "message": "需要过期日期和时间。" + }, + "deletionDateAndTimeRequired": { + "message": "需要删除日期和时间。" + }, + "dateParsingError": { + "message": "保存您的删除和过期日期时出错。" + }, + "webAuthnFallbackMsg": { + "message": "要验证您的 2FA,请点击下面的按钮。" + }, + "webAuthnAuthenticate": { + "message": "验证 WebAuthn" + }, + "webAuthnNotSupported": { + "message": "此浏览器不支持 WebAuthn。" + }, + "webAuthnSuccess": { + "message": "WebAuthn 验证成功!您可以关闭此标签页。" + }, + "hintEqualsPassword": { + "message": "密码提示不能与密码相同。" + }, + "enrollPasswordReset": { + "message": "注册密码重置" + }, + "enrolledPasswordReset": { + "message": "已注册密码重置" + }, + "withdrawPasswordReset": { + "message": "撤销密码重置" + }, + "enrollPasswordResetSuccess": { + "message": "注册成功!" + }, + "withdrawPasswordResetSuccess": { + "message": "撤销成功!" + }, + "eventEnrollPasswordReset": { + "message": "用户 $ID$ 注册了密码重置协助。", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "用户 $ID$ 撤销了密码重置协助。", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "重置用户 $ID$ 的主密码。", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "重置用户 $ID$ 的 SSO 链接", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ 首次使用 SSO 登录", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "重置密码" + }, + "resetPasswordLoggedOutWarning": { + "message": "继续操作会将 $NAME$ 登出当前会话,要求他们重新登录。在其他设备上的活动会话可能继续活动长达一个小时。", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "此用户" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "一个或多个组织策略要求主密码满足下列要求:" + }, + "resetPasswordSuccess": { + "message": "密码重置成功" + }, + "resetPasswordEnrollmentWarning": { + "message": "注册后将允许组织管理员更改您的主密码。确定要注册吗?" + }, + "resetPasswordPolicy": { + "message": "主密码重置" + }, + "resetPasswordPolicyDescription": { + "message": "允许组织管理员重置组织用户的主密码。" + }, + "resetPasswordPolicyWarning": { + "message": "组织中的用户自行注册或被自动注册后,管理员才能重置他们的主密码。" + }, + "resetPasswordPolicyAutoEnroll": { + "message": "自动注册" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "所有接受邀请的用戶,将会被自动注册密码重置,并且不允许撤销。" + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "已经在组织中的用户将不会被注册密码重置。需要他们自行注册后,管理员才能重置他们的主密码。" + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "要求为新用户启用自动注册" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "此组织有一个企业策略,将自动为你注册密码重置。注册后将允许组织管理员更改您的主密码。" + }, + "resetPasswordOrgKeysError": { + "message": "组织密钥响应为空" + }, + "resetPasswordDetailsError": { + "message": "重置密码详细信息响应为空" + }, + "trashCleanupWarning": { + "message": "回收站中超过 30 天的项目将会被自动删除。" + }, + "trashCleanupWarningSelfHosted": { + "message": "回收站中超过一定时间的项目将会被自动删除。" + }, + "passwordPrompt": { + "message": "重新询问主密码" + }, + "passwordConfirmation": { + "message": "确认主密码" + }, + "passwordConfirmationDesc": { + "message": "此操作受到保护。若要继续,请重新输入您的主密码以验证您的身份。" + }, + "reinviteSelected": { + "message": "重新发送邀请" + }, + "noSelectedUsersApplicable": { + "message": "此操作不适用于所选用户。" + }, + "removeUsersWarning": { + "message": "您确定要移除以下用户吗?该过程可能需要几秒钟才能完成,并且不能中断或取消。" + }, + "theme": { + "message": "主题" + }, + "themeDesc": { + "message": "为您的网页密码库选择一个主题。" + }, + "themeSystem": { + "message": "使用系统主题" + }, + "themeDark": { + "message": "深色" + }, + "themeLight": { + "message": "浅色" + }, + "confirmSelected": { + "message": "确认选择" + }, + "bulkConfirmStatus": { + "message": "批量操作状态" + }, + "bulkConfirmMessage": { + "message": "确认成功。" + }, + "bulkReinviteMessage": { + "message": "重新邀请成功。" + }, + "bulkRemovedMessage": { + "message": "移除成功" + }, + "bulkFilteredMessage": { + "message": "排除,不适用于此操作。" + }, + "fingerprint": { + "message": "指纹" + }, + "removeUsers": { + "message": "移除用户" + }, + "error": { + "message": "错误" + }, + "resetPasswordManageUsers": { + "message": "必须启用管理密码重置权限后才能启用管理用户" + }, + "setupProvider": { + "message": "提供商设置" + }, + "setupProviderLoginDesc": { + "message": "您已被邀请设置一个新的提供商。要继续,您需要登录或创建一个新的 Bitwarden 账户。" + }, + "setupProviderDesc": { + "message": "请在下面输入详细信息以完成提供商设置。如果您有任何疑问,请联系客户支持。" + }, + "providerName": { + "message": "提供商名称" + }, + "providerSetup": { + "message": "已完成提供商设置。" + }, + "clients": { + "message": "客户" + }, + "providerAdmin": { + "message": "提供商管理" + }, + "providerAdminDesc": { + "message": "能够管理您的提供商的所有方面的具有最高访问权限的用户也可以访问和管理客户组织。" + }, + "serviceUser": { + "message": "服务用户" + }, + "serviceUserDesc": { + "message": "服务用户可以访问和管理所有客户组织。" + }, + "providerInviteUserDesc": { + "message": "通过在下面输入他们的 Bitwarden 账户电子邮件地址,邀请新用户加入您的提供商。如果他们还没有 Bitwarden 账户,将被提示创建一个新的账户。" + }, + "joinProvider": { + "message": "加入提供商" + }, + "joinProviderDesc": { + "message": "您已被邀请加入上面列出的提供商。要接受邀请,您需要登录或创建一个新的 Bitwarden 账户。" + }, + "providerInviteAcceptFailed": { + "message": "无法接受邀请。请联系提供商管理员发送新的邀请。" + }, + "providerInviteAcceptedDesc": { + "message": "管理员确认您的会员资格后,您就可以访问此提供商了。发生这种情况时,我们会向您发送一封电子邮件。" + }, + "providerUsersNeedConfirmed": { + "message": "您有用户接受了他们的邀请,但仍然需要确认。用户在确认之前将无法访问提供商。" + }, + "provider": { + "message": "提供商" + }, + "newClientOrganization": { + "message": "新客户组织" + }, + "newClientOrganizationDesc": { + "message": "创建一个新的客户组织,该组织将作为提供商与你关联。您可以访问和管理这个组织。" + }, + "addExistingOrganization": { + "message": "添加现有组织" + }, + "myProvider": { + "message": "我的提供商" + }, + "addOrganizationConfirmation": { + "message": "您确定要将 $ORGANIZATION$ 添加为 $PROVIDER$ 的客户吗?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "组织已成功添加到此提供商" + }, + "accessingUsingProvider": { + "message": "正在使用提供商 $PROVIDER$ 访问组织", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "提供商已被禁用。" + }, + "providerUpdated": { + "message": "提供商已更新" + }, + "yourProviderIs": { + "message": "您的提供商是 $PROVIDER$。他们对您的组织拥有管理和计费权限。", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "组织 $ORGANIZATION$ 已从您的提供商分离。", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "您确定要分离这个组织吗?该组织将继续存在,但不再由此提供商管理。" + }, + "add": { + "message": "添加" + }, + "updatedMasterPassword": { + "message": "已更新主密码" + }, + "updateMasterPassword": { + "message": "更新主密码" + }, + "updateMasterPasswordWarning": { + "message": "您的主密码最近被您组织的管理员更改过。要访问密码库,您必须立即更新主密码。继续操作将使您退出当前会话,要求您重新登录。其他设备上的活动会话可能会继续保持活动状态长达一小时。" + }, + "masterPasswordInvalidWarning": { + "message": "您的主密码不符合此组织的策略要求。要加入此组织,您必须现在更新您的主密码。继续操作将您注销当前会话,要求您重新登录。在其他设备上的活动会话可能继续活动长达一小时。" + }, + "maximumVaultTimeout": { + "message": "密码库超时时间" + }, + "maximumVaultTimeoutDesc": { + "message": "为所有用户配置最大密码库超时时间。" + }, + "maximumVaultTimeoutLabel": { + "message": "最大密码库超时时间" + }, + "invalidMaximumVaultTimeout": { + "message": "无效的最大密码库超时时间。" + }, + "hours": { + "message": "小时" + }, + "minutes": { + "message": "分钟" + }, + "vaultTimeoutPolicyInEffect": { + "message": "您的组织策略正在影响您的密码库超时时间。最大允许的密码库超时时间是 $HOURS$ 小时 $MINUTES$ 分钟。", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "自定义密码库超时时间" + }, + "vaultTimeoutToLarge": { + "message": "您的密码库超时时间超出了您的组织设置的限制。" + }, + "disablePersonalVaultExport": { + "message": "禁用个人密码库导出" + }, + "disablePersonalVaultExportDesc": { + "message": "禁止用户导出个人密码库数据。" + }, + "vaultExportDisabled": { + "message": "密码库导出已禁用" + }, + "personalVaultExportPolicyInEffect": { + "message": "一个或多个组织策略阻止您导出个人密码库。" + }, + "selectType": { + "message": "选择 SSO 类型" + }, + "type": { + "message": "类型" + }, + "openIdConnectConfig": { + "message": "OpenID 连接配置" + }, + "samlSpConfig": { + "message": "SAML 服务提供程序配置" + }, + "samlIdpConfig": { + "message": "SAML 身份提供程序配置" + }, + "callbackPath": { + "message": "回调路径" + }, + "signedOutCallbackPath": { + "message": "注销回调路径" + }, + "authority": { + "message": "权威机构" + }, + "clientId": { + "message": "客户 ID" + }, + "clientSecret": { + "message": "客户密钥" + }, + "metadataAddress": { + "message": "元数据地址" + }, + "oidcRedirectBehavior": { + "message": "OIDC 重定向行为" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "从用户信息端点获取声明" + }, + "additionalScopes": { + "message": "自定义范围" + }, + "additionalUserIdClaimTypes": { + "message": "自定义用户 ID 声明类型" + }, + "additionalEmailClaimTypes": { + "message": "电子邮件声明类型" + }, + "additionalNameClaimTypes": { + "message": "自定义名称声明类型" + }, + "acrValues": { + "message": "请求的身份验证上下文类参考值" + }, + "expectedReturnAcrValue": { + "message": "响应中预期的「acr」声明值" + }, + "spEntityId": { + "message": "SP 实体 ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 元数据 URL" + }, + "spAcsUrl": { + "message": "断言消费者服务(ACS) URL" + }, + "spNameIdFormat": { + "message": "名称 ID 格式" + }, + "spOutboundSigningAlgorithm": { + "message": "出站签名算法" + }, + "spSigningBehavior": { + "message": "签名行为" + }, + "spMinIncomingSigningAlgorithm": { + "message": "最小入站签名算法" + }, + "spWantAssertionsSigned": { + "message": "希望断言被签名" + }, + "spValidateCertificates": { + "message": "验证证书" + }, + "idpEntityId": { + "message": "实体 ID" + }, + "idpBindingType": { + "message": "绑定类型" + }, + "idpSingleSignOnServiceUrl": { + "message": "单点登录服务 URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "单点登出服务 URL" + }, + "idpX509PublicCert": { + "message": "X509 公共证书" + }, + "idpOutboundSigningAlgorithm": { + "message": "出站签名算法" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "允许未经请求的身份验证响应" + }, + "idpAllowOutboundLogoutRequests": { + "message": "允许出站注销请求" + }, + "idpSignAuthenticationRequests": { + "message": "签名身份验证请求" + }, + "ssoSettingsSaved": { + "message": "单点登录配置已保存。" + }, + "sponsoredFamilies": { + "message": "免费 Bitwarden 家庭" + }, + "sponsoredFamiliesEligible": { + "message": "您和您的家人可使用免费的 Bitwarden 家庭版计划。即使您不在公司上班,您也可以使用个人电子邮件兑换此计划,以保护您的数据安全。" + }, + "sponsoredFamiliesEligibleCard": { + "message": "立即兑换免费的 Bitwarden 家庭版计划,即使您不在公司上班也能确保您的数据安全。" + }, + "sponsoredFamiliesInclude": { + "message": "Bitwarden 家庭版计划包含" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "最多 6 个用户的高级访问权限" + }, + "sponsoredFamiliesSharedCollections": { + "message": "用于家庭账号密码共享的集合" + }, + "badToken": { + "message": "链接已失效。请让赞助方重新发送邀请。" + }, + "reclaimedFreePlan": { + "message": "已回收免费计划" + }, + "redeem": { + "message": "兑换" + }, + "sponsoredFamiliesSelectOffer": { + "message": "选择您希望被赞助的组织" + }, + "familiesSponsoringOrgSelect": { + "message": "您想兑换哪一个免费家庭邀请?" + }, + "sponsoredFamiliesEmail": { + "message": "输入您的个人电子邮件以兑换 Bitwarden 家庭" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "如果您离开或被从这个组织中移除,您的家庭计划将在计费周期结束时到期。" + }, + "acceptBitwardenFamiliesHelp": { + "message": "接受现有组织的邀请或创建一个新的家庭组织。" + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "您已被邀请加入 Bitwarden 家庭计划组织。要继续,您需要登录到接受邀请的账户。" + }, + "sponsoredFamiliesAcceptFailed": { + "message": "无法接受邀请。请重新发送来自您企业账户的邀请邮件,然后重试。" + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "无法接受邀请。$DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "接受免费的 Bitwarden 家庭组织" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "免费 Bitwarden 家庭邀请已成功兑换" + }, + "redeemed": { + "message": "已兑换" + }, + "redeemedAccount": { + "message": "已兑换账户" + }, + "revokeAccount": { + "message": "撤销账户 $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "重新发送赞助邮件到 $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "免费家庭计划" + }, + "redeemNow": { + "message": "立即兑换" + }, + "recipient": { + "message": "收件人" + }, + "removeSponsorship": { + "message": "移除赞助" + }, + "removeSponsorshipConfirmation": { + "message": "移除赞助后,将由您自己负责此订阅及其相关的账单。您确定要继续吗?" + }, + "sponsorshipCreated": { + "message": "赞助已创建" + }, + "revoke": { + "message": "撤销" + }, + "emailSent": { + "message": "电子邮件已发送" + }, + "revokeSponsorshipConfirmation": { + "message": "移除这个账户后,家庭组织的所有者将负责此订阅及其相关的账单。您确定要继续吗?" + }, + "removeSponsorshipSuccess": { + "message": "赞助已移除" + }, + "ssoKeyConnectorUnavailable": { + "message": "无法连接到 Key Connector,请稍后再试。" + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "发送验证码到您的电子邮箱" + }, + "sendCode": { + "message": "发送验证码" + }, + "codeSent": { + "message": "验证码已发送" + }, + "verificationCode": { + "message": "验证码" + }, + "confirmIdentity": { + "message": "确认您的身份以继续。" + }, + "verificationCodeRequired": { + "message": "必须填写验证码。" + }, + "invalidVerificationCode": { + "message": "无效的验证码" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ 使用自托管密钥服务器 SSO。这个组织的成员登录时将不再需要主密码。", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "离开组织" + }, + "removeMasterPassword": { + "message": "移除主密码" + }, + "removedMasterPassword": { + "message": "主密码已移除。" + }, + "allowSso": { + "message": "允许 SSO 身份验证" + }, + "allowSsoDesc": { + "message": "设置后,您的配置将被保存,成员将能够使用他们的身份提供程序凭据进行身份验证。" + }, + "ssoPolicyHelpStart": { + "message": "启用", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO 身份验证策略", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "要求所有会员使用 SSO 登录。", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "需要先设置 Key Connector 解密,然后才能启用 SSO 身份验证和单一组织策略。" + }, + "memberDecryptionOption": { + "message": "成员解密选项" + }, + "memberDecryptionPassDesc": { + "message": "验证后,成员将使用他们的主密码来解密密码库数据。" + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "连接 SSO 登录到您的自托管解密密钥服务器。使用此选项后,成员将不再需要使用他们的主密码来解密密码库数据。联系 Bitwarden 支持以获取设置指导。" + }, + "keyConnectorPolicyRestriction": { + "message": "「SSO 登录和 Key Connector 解密」已启用。此策略仅适用于所有者和管理员。" + }, + "enabledSso": { + "message": "已启用 SSO" + }, + "disabledSso": { + "message": "已禁用 SSO" + }, + "enabledKeyConnector": { + "message": "已启用 Key Connector" + }, + "disabledKeyConnector": { + "message": "已禁用 Key Connector" + }, + "keyConnectorWarning": { + "message": "一旦成员开始使用 Key Connector,您的组织就无法恢复到使用主密码解密。仅当您可以轻松地部署和管理密钥服务器时才继续。" + }, + "migratedKeyConnector": { + "message": "已迁移到 Key Connector" + }, + "paymentSponsored": { + "message": "请提供一个与组织关联的付款方式。无需担心,我们不会向您收取任何费用,除非您选择附加功能或您的赞助到期。 " + }, + "orgCreatedSponsorshipInvalid": { + "message": "赞助邀请已过期,您可以删除您创建的组织,以避免 7 天试用期结束时收取费用。您也可以关闭这个提示,以保留此组织并承担计费责任。" + }, + "newFamiliesOrganization": { + "message": "新的家庭组织" + }, + "acceptOffer": { + "message": "接受邀请" + }, + "sponsoringOrg": { + "message": "赞助组织" + }, + "keyConnectorTest": { + "message": "测试" + }, + "keyConnectorTestSuccess": { + "message": "成功!已连接 Key Connector。" + }, + "keyConnectorTestFail": { + "message": "无法连接 Key Connector。请检查 URL。" + }, + "sponsorshipTokenHasExpired": { + "message": "此赞助邀请已过期。" + }, + "freeWithSponsorship": { + "message": "免费赞助" + }, + "formErrorSummaryPlural": { + "message": "上面的 $COUNT$ 个字段需要您注意。", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "上面的 1 个字段需要您注意。" + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ 必填。", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "必填" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "如果实体 ID 不是一个 URL,则必填。" + }, + "openIdOptionalCustomizations": { + "message": "可选定制" + }, + "openIdAuthorityRequired": { + "message": "如果授权无效,则必填。" + }, + "separateMultipleWithComma": { + "message": "使用逗号分隔。" + }, + "sessionTimeout": { + "message": "您的会话已超时。请返回并尝试重新登录。" + }, + "exportingPersonalVaultTitle": { + "message": "导出个人密码库" + }, + "exportingOrganizationVaultTitle": { + "message": "导出组织密码库" + }, + "exportingPersonalVaultDescription": { + "message": "仅会导出与 $EMAIL$ 关联的个人密码库。组织密码库的项目不会导出。", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "仅会导出与 $ORGANIZATION$ 关联的组织密码库。个人或其他组织的密码库项目不会导出。", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "返回到报告" + }, + "generator": { + "message": "生成器" + }, + "whatWouldYouLikeToGenerate": { + "message": "您想要生成什么?" + }, + "passwordType": { + "message": "密码类型" + }, + "regenerateUsername": { + "message": "重新生成用户名" + }, + "generateUsername": { + "message": "生成用户名" + }, + "usernameType": { + "message": "用户名类型" + }, + "plusAddressedEmail": { + "message": "附加地址电子邮件", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "使用您的电子邮件提供商的子地址功能。" + }, + "catchallEmail": { + "message": "Catch-all 电子邮件" + }, + "catchallEmailDesc": { + "message": "使用您的域名配置的 Catch-all 收件箱。" + }, + "random": { + "message": "随机" + }, + "randomWord": { + "message": "随机单词" + }, + "service": { + "message": "服务" + } +} diff --git a/apps/web/src/locales/zh_TW/messages.json b/apps/web/src/locales/zh_TW/messages.json new file mode 100644 index 0000000000..b94239b5f5 --- /dev/null +++ b/apps/web/src/locales/zh_TW/messages.json @@ -0,0 +1,4882 @@ +{ + "pageTitle": { + "message": "$APP_NAME$ 網頁版密碼庫", + "description": "The title of the website in the browser window.", + "placeholders": { + "app_name": { + "content": "$1", + "example": "Bitwarden" + } + } + }, + "whatTypeOfItem": { + "message": "這是什麼類型的項目?" + }, + "name": { + "message": "名稱" + }, + "uri": { + "message": "URI" + }, + "uriPosition": { + "message": "URI $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "新增 URI" + }, + "username": { + "message": "使用者名稱" + }, + "password": { + "message": "密碼" + }, + "newPassword": { + "message": "新密碼" + }, + "passphrase": { + "message": "密碼短語" + }, + "notes": { + "message": "備註" + }, + "customFields": { + "message": "自訂欄位" + }, + "cardholderName": { + "message": "持卡人姓名" + }, + "number": { + "message": "號碼" + }, + "brand": { + "message": "發卡組織" + }, + "expiration": { + "message": "逾期" + }, + "securityCode": { + "message": "安全代碼 (CVV)" + }, + "identityName": { + "message": "身分名稱" + }, + "company": { + "message": "公司" + }, + "ssn": { + "message": "社會保險號碼" + }, + "passportNumber": { + "message": "護照號碼" + }, + "licenseNumber": { + "message": "許可證號碼" + }, + "email": { + "message": "電子郵件" + }, + "phone": { + "message": "電話號碼" + }, + "january": { + "message": "一月" + }, + "february": { + "message": "二月" + }, + "march": { + "message": "三月" + }, + "april": { + "message": "四月" + }, + "may": { + "message": "五月" + }, + "june": { + "message": "六月" + }, + "july": { + "message": "七月" + }, + "august": { + "message": "八月" + }, + "september": { + "message": "九月" + }, + "october": { + "message": "十月" + }, + "november": { + "message": "十一月" + }, + "december": { + "message": "十二月" + }, + "title": { + "message": "稱呼" + }, + "mr": { + "message": "Mr" + }, + "mrs": { + "message": "Mrs" + }, + "ms": { + "message": "Ms" + }, + "dr": { + "message": "Dr" + }, + "expirationMonth": { + "message": "逾期月份" + }, + "expirationYear": { + "message": "逾期年份" + }, + "authenticatorKeyTotp": { + "message": "驗證器金鑰 (TOTP)" + }, + "folder": { + "message": "資料夾" + }, + "newCustomField": { + "message": "新增自訂欄位" + }, + "value": { + "message": "值" + }, + "dragToSort": { + "message": "透過拖曳來排序" + }, + "cfTypeText": { + "message": "文字型" + }, + "cfTypeHidden": { + "message": "隱藏型" + }, + "cfTypeBoolean": { + "message": "布林值" + }, + "cfTypeLinked": { + "message": "連結型", + "description": "This describes a field that is 'linked' (related) to another field." + }, + "remove": { + "message": "移除" + }, + "unassigned": { + "message": "未指派" + }, + "noneFolder": { + "message": "(未分類)", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "新增資料夾" + }, + "editFolder": { + "message": "編輯資料夾" + }, + "baseDomain": { + "message": "基底網域", + "description": "Domain name. Ex. website.com" + }, + "domainName": { + "message": "網域名稱", + "description": "Domain name. Ex. website.com" + }, + "host": { + "message": "主機", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "完全相符" + }, + "startsWith": { + "message": "開始於" + }, + "regEx": { + "message": "規則運算式", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "一致性偵測", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "預設一致性偵測", + "description": "Default URI match detection for auto-fill." + }, + "never": { + "message": "永不" + }, + "toggleVisibility": { + "message": "切換可見度" + }, + "toggleCollapse": { + "message": "切換折疊", + "description": "Toggling an expand/collapse state." + }, + "generatePassword": { + "message": "產生密碼" + }, + "checkPassword": { + "message": "檢查密碼是否已外洩。" + }, + "passwordExposed": { + "message": "此密碼已外洩了 $VALUE$ 次,應立即變更密碼。", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "任何已知的外洩密碼資料庫中都沒有此密碼,它目前是安全的。" + }, + "save": { + "message": "儲存" + }, + "cancel": { + "message": "取消" + }, + "canceled": { + "message": "已取消" + }, + "close": { + "message": "關閉" + }, + "delete": { + "message": "刪除" + }, + "favorite": { + "message": "我的最愛" + }, + "unfavorite": { + "message": "取消最愛" + }, + "edit": { + "message": "編輯" + }, + "searchCollection": { + "message": "搜尋集合" + }, + "searchFolder": { + "message": "搜尋資料夾" + }, + "searchFavorites": { + "message": "搜尋我的最愛" + }, + "searchType": { + "message": "搜尋類型", + "description": "Search item type" + }, + "searchVault": { + "message": "搜尋密碼庫" + }, + "allItems": { + "message": "所有項目" + }, + "favorites": { + "message": "我的最愛" + }, + "types": { + "message": "類型" + }, + "typeLogin": { + "message": "登入" + }, + "typeCard": { + "message": "支付卡" + }, + "typeIdentity": { + "message": "身分" + }, + "typeSecureNote": { + "message": "安全筆記" + }, + "typeLoginPlural": { + "message": "登入資料" + }, + "typeCardPlural": { + "message": "支付卡" + }, + "typeIdentityPlural": { + "message": "身分" + }, + "typeSecureNotePlural": { + "message": "安全筆記" + }, + "folders": { + "message": "資料夾" + }, + "collections": { + "message": "集合" + }, + "firstName": { + "message": "名" + }, + "middleName": { + "message": "中間名" + }, + "lastName": { + "message": "姓" + }, + "fullName": { + "message": "全名" + }, + "address1": { + "message": "地址 1" + }, + "address2": { + "message": "地址 2" + }, + "address3": { + "message": "地址 3" + }, + "cityTown": { + "message": "市/鎮" + }, + "stateProvince": { + "message": "州/省" + }, + "zipPostalCode": { + "message": "郵遞區號" + }, + "country": { + "message": "國家" + }, + "shared": { + "message": "已共用" + }, + "attachments": { + "message": "附件" + }, + "select": { + "message": "選擇" + }, + "addItem": { + "message": "新增項目" + }, + "editItem": { + "message": "編輯項目" + }, + "viewItem": { + "message": "檢視項目" + }, + "ex": { + "message": "例如", + "description": "Short abbreviation for 'example'." + }, + "other": { + "message": "其他" + }, + "share": { + "message": "共用" + }, + "moveToOrganization": { + "message": "移動至組織" + }, + "valueCopied": { + "message": "$VALUE$ 已複製", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "copyValue": { + "message": "複製值", + "description": "Copy value to clipboard" + }, + "copyPassword": { + "message": "複製密碼", + "description": "Copy password to clipboard" + }, + "copyUsername": { + "message": "複製使用者名稱", + "description": "Copy username to clipboard" + }, + "copyNumber": { + "message": "複製號碼", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "複製安全代碼", + "description": "Copy credit card security code (CVV)" + }, + "copyUri": { + "message": "複製 URI", + "description": "Copy URI to clipboard" + }, + "myVault": { + "message": "我的密碼庫" + }, + "vault": { + "message": "密碼庫" + }, + "moveSelectedToOrg": { + "message": "移動已選取項目至組織" + }, + "deleteSelected": { + "message": "刪除已選取項目" + }, + "moveSelected": { + "message": "移動已選取項目" + }, + "selectAll": { + "message": "全選" + }, + "unselectAll": { + "message": "取消全選" + }, + "launch": { + "message": "啟動" + }, + "newAttachment": { + "message": "新增附件" + }, + "deletedAttachment": { + "message": "附件已刪除" + }, + "deleteAttachmentConfirmation": { + "message": "確定要刪除此附件嗎?" + }, + "attachmentSaved": { + "message": "附件已儲存。" + }, + "file": { + "message": "檔案" + }, + "selectFile": { + "message": "選擇檔案。" + }, + "maxFileSize": { + "message": "檔案最大為 500MB。" + }, + "updateKey": { + "message": "更新加密金鑰前不能使用此功能。" + }, + "addedItem": { + "message": "已新增項目" + }, + "editedItem": { + "message": "已編輯項目" + }, + "movedItemToOrg": { + "message": "已將 $ITEMNAME$ 移動至 $ORGNAME$", + "placeholders": { + "itemname": { + "content": "$1", + "example": "Secret Item" + }, + "orgname": { + "content": "$2", + "example": "Company Name" + } + } + }, + "movedItemsToOrg": { + "message": "將已選取項目移動至 $ORGNAME$", + "placeholders": { + "orgname": { + "content": "$1", + "example": "Company Name" + } + } + }, + "deleteItem": { + "message": "刪除項目" + }, + "deleteFolder": { + "message": "刪除資料夾" + }, + "deleteAttachment": { + "message": "刪除附件" + }, + "deleteItemConfirmation": { + "message": "確定要刪除此項目嗎?" + }, + "deletedItem": { + "message": "項目已移至垃圾桶" + }, + "deletedItems": { + "message": "項目已移至垃圾桶" + }, + "movedItems": { + "message": "已移動項目" + }, + "overwritePasswordConfirmation": { + "message": "您確定要覆寫目前的密碼嗎?" + }, + "editedFolder": { + "message": "已編輯資料夾" + }, + "addedFolder": { + "message": "已新增資料夾" + }, + "deleteFolderConfirmation": { + "message": "您確定要刪除此資料夾嗎?" + }, + "deletedFolder": { + "message": "已刪除的資料夾" + }, + "loggedOut": { + "message": "已登出" + }, + "loginExpired": { + "message": "您的登入工作階段已逾期。" + }, + "logOutConfirmation": { + "message": "您確定要登出嗎?" + }, + "logOut": { + "message": "登出" + }, + "ok": { + "message": "確定" + }, + "yes": { + "message": "是" + }, + "no": { + "message": "否" + }, + "loginOrCreateNewAccount": { + "message": "登入或建立帳戶以存取您的安全密碼庫。" + }, + "createAccount": { + "message": "建立帳戶" + }, + "logIn": { + "message": "登入" + }, + "submit": { + "message": "送出" + }, + "emailAddressDesc": { + "message": "您需要使用您的電子郵件地址登入。" + }, + "yourName": { + "message": "您的名稱" + }, + "yourNameDesc": { + "message": "我們應該怎樣稱呼您?" + }, + "masterPass": { + "message": "主密碼" + }, + "masterPassDesc": { + "message": "主密碼是用於存取密碼庫的密碼。它非常重要,請您不要忘記它。若您忘記了主密碼,沒有任何方法能將其復原。" + }, + "masterPassHintDesc": { + "message": "主密碼提示可以在您忘記主密碼時幫助您回憶主密碼。" + }, + "reTypeMasterPass": { + "message": "重新輸入主密碼" + }, + "masterPassHint": { + "message": "主密碼提示(選用)" + }, + "masterPassHintLabel": { + "message": "主密碼提示" + }, + "settings": { + "message": "設定" + }, + "passwordHint": { + "message": "密碼提示" + }, + "enterEmailToGetHint": { + "message": "請輸入您的帳户電子郵件地址以接收主密碼提示。" + }, + "getMasterPasswordHint": { + "message": "取得主密碼提示" + }, + "emailRequired": { + "message": "必須填入電子郵件地址 。" + }, + "invalidEmail": { + "message": "無效的電子郵件地址。" + }, + "masterPassRequired": { + "message": "必須填入主密碼。" + }, + "masterPassLength": { + "message": "主密碼需要至少 8 個字元。" + }, + "masterPassDoesntMatch": { + "message": "兩次填入的主密碼不相符。" + }, + "newAccountCreated": { + "message": "帳戶已建立!現在可以登入了。" + }, + "masterPassSent": { + "message": "已傳送包含您主密碼提示的電子郵件。" + }, + "unexpectedError": { + "message": "發生了未預期的錯誤。" + }, + "emailAddress": { + "message": "電子郵件地址" + }, + "yourVaultIsLocked": { + "message": "密碼庫已鎖定。請驗證主密碼以繼續。" + }, + "unlock": { + "message": "解鎖" + }, + "loggedInAsEmailOn": { + "message": "已在 $HOSTNAME$ 上以 $EMAIL$ 身份登入。", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "無效的主密碼" + }, + "lockNow": { + "message": "立即鎖定" + }, + "noItemsInList": { + "message": "沒有可列出的項目。" + }, + "noCollectionsInList": { + "message": "沒有可列出的集合。" + }, + "noGroupsInList": { + "message": "沒有可列出的群組。" + }, + "noUsersInList": { + "message": "沒有可列出的使用者。" + }, + "noEventsInList": { + "message": "沒有可列出的事件。" + }, + "newOrganization": { + "message": "新增組織" + }, + "noOrganizationsList": { + "message": "您沒有加入任何組織。組織允許您與其他使用者安全地共用項目。" + }, + "versionNumber": { + "message": "版本 $VERSION_NUMBER$", + "placeholders": { + "version_number": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "enterVerificationCodeApp": { + "message": "輸入驗證器應用程式提供的 6 位數驗證碼。" + }, + "enterVerificationCodeEmail": { + "message": "輸入已傳送至 $EMAIL$ 的 6 位數驗證碼。", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "已傳送驗證電子郵件至 $EMAIL$。", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "記住我" + }, + "sendVerificationCodeEmailAgain": { + "message": "再次傳送​​包含驗證碼的電子郵件" + }, + "useAnotherTwoStepMethod": { + "message": "使用另一種兩步驟登入方法" + }, + "insertYubiKey": { + "message": "將您的 YubiKey 插入電腦的 USB 連接埠,然後按一下它的按鈕。" + }, + "insertU2f": { + "message": "將您的安全金鑰插入電腦的 USB 連接埠,然後按一下它的按鈕(如有的話)。" + }, + "loginUnavailable": { + "message": "無法登入" + }, + "noTwoStepProviders": { + "message": "此帳戶已啟用兩步驟登入,但是本瀏覽器不支援已設定的兩步驟登入方法。" + }, + "noTwoStepProviders2": { + "message": "請使用已支援的瀏覽器(例如 Chrome ),及/或新增可以更好地跨瀏覽器的兩步驟登入方法(例如驗證器應用程式)。" + }, + "twoStepOptions": { + "message": "兩步驟登入選項" + }, + "recoveryCodeDesc": { + "message": "無法使用任何雙因素提供程式嗎?請使用您的復原碼以停用您帳戶的所有雙因素提供程式。" + }, + "recoveryCodeTitle": { + "message": "復原碼" + }, + "authenticatorAppTitle": { + "message": "驗證器應用程式" + }, + "authenticatorAppDesc": { + "message": "使用驗證器應用程式 (如 Authy 或 Google Authenticator) 產生基於時間的驗證碼。", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP 安全金鑰" + }, + "yubiKeyDesc": { + "message": "使用 YubiKey 存取您的帳戶。支援 YubiKey 4 系列、5 系列以及 NEO 裝置。" + }, + "duoDesc": { + "message": "使用 Duo Security 的 Duo Mobile 程式、SMS 、撥打電話或 U2F 安全金鑰進行驗證。", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "為您的組織使用 Duo Security 的 Duo Mobile 程式、SMS、撥打電話或 U2F 安全金鑰進行驗證。", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "使用任何啟用了 FIDO U2F 的安全金鑰來存取您的帳戶。" + }, + "u2fTitle": { + "message": "FIDO U2F 安全金鑰" + }, + "webAuthnTitle": { + "message": "FIDO2 WebAuthn" + }, + "webAuthnDesc": { + "message": "使用任何具有 WebAuthn 功能的安全金鑰以存取您的帳戶。" + }, + "webAuthnMigrated": { + "message": "(遷移自 FIDO)" + }, + "emailTitle": { + "message": "電子郵件" + }, + "emailDesc": { + "message": "使用電子郵件傳送驗證碼給您。" + }, + "continue": { + "message": "繼續" + }, + "organization": { + "message": "組織" + }, + "organizations": { + "message": "組織" + }, + "moveToOrgDesc": { + "message": "選擇您希望將這個項目移動至哪個組織。項目的擁有權將會轉移至該組織。轉移之後,您將不再是此項目的直接擁有者。" + }, + "moveManyToOrgDesc": { + "message": "選擇您希望將這些項目移動至哪個組織。項目的擁有權將會轉移至該組織。轉移之後,您將不再是這些項目的直接擁有者。" + }, + "collectionsDesc": { + "message": "編輯與此項目共享的集合。只有具有這些集合存取權限的組織使用者才能夠看到此項目。" + }, + "deleteSelectedItemsDesc": { + "message": "您已經選取了 $COUNT$ 個項目要刪除。確定要刪除這些項目嗎 ?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsDesc": { + "message": "選擇要將這 $COUNT$ 個項目移動至哪個資料夾。", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "moveSelectedItemsCountDesc": { + "message": "你選擇了 $COUNT$ 個項目。當中有 $MOVEABLE_COUNT$ 個項目可移動到組織當中,而有 $NONMOVEABLE_COUNT$ 個無法移動。", + "placeholders": { + "count": { + "content": "$1", + "example": "10" + }, + "moveable_count": { + "content": "$2", + "example": "8" + }, + "nonmoveable_count": { + "content": "$3", + "example": "2" + } + } + }, + "verificationCodeTotp": { + "message": "驗證碼 (TOTP)" + }, + "copyVerificationCode": { + "message": "複製驗證碼" + }, + "warning": { + "message": "警告" + }, + "confirmVaultExport": { + "message": "確認匯出密碼庫" + }, + "exportWarningDesc": { + "message": "此次匯出的密碼庫檔案為未加密格式。您不應將它存放或經由不安全的方式(例如電子郵件)傳送。用完後請立即將它刪除。" + }, + "encExportKeyWarningDesc": { + "message": "將使用您帳戶的加密金鑰來加密匯出的資料,若您更新了帳戶的加密金鑰,請重新匯出,否則將無法解密匯出的檔案。" + }, + "encExportAccountWarningDesc": { + "message": "每個 Bitwarden 使用者帳戶的帳戶加密金鑰都不相同,因此無法將已加密匯出的檔案匯入至不同帳戶中。" + }, + "export": { + "message": "匯出" + }, + "exportVault": { + "message": "匯出密碼庫" + }, + "fileFormat": { + "message": "檔案格式" + }, + "exportSuccess": { + "message": "已匯出您的密碼庫資料。" + }, + "passwordGenerator": { + "message": "密碼產生器" + }, + "minComplexityScore": { + "message": "最小複雜度" + }, + "minNumbers": { + "message": "最少數字位數" + }, + "minSpecial": { + "message": "最少符號位數", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "避免易混淆的字元" + }, + "regeneratePassword": { + "message": "重新產生密碼" + }, + "length": { + "message": "長度" + }, + "numWords": { + "message": "字數" + }, + "wordSeparator": { + "message": "文字分隔字元" + }, + "capitalize": { + "message": "大寫", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "包含數字" + }, + "passwordHistory": { + "message": "密碼歷史記錄" + }, + "noPasswordsInList": { + "message": "沒有可列出的密碼。" + }, + "clear": { + "message": "清除", + "description": "To clear something out. example: To clear browser history." + }, + "accountUpdated": { + "message": "帳戶已更新" + }, + "changeEmail": { + "message": "變更電子郵件" + }, + "changeEmailTwoFactorWarning": { + "message": "繼續操作將變更您的帳戶電子郵件地址。這不會變更用於雙因素驗證的電子郵件地址。您可以在雙因素登入設定中變更它。" + }, + "newEmail": { + "message": "新的電子郵件" + }, + "code": { + "message": "代碼" + }, + "changeEmailDesc": { + "message": "我們已傳送電子郵件至 $EMAIL$。請檢查您的電子郵件信箱以取得驗證碼,並在下方輸入驗證碼以完成電子郵件地址的變更。", + "placeholders": { + "email": { + "content": "$1", + "example": "john.smith@example.com" + } + } + }, + "loggedOutWarning": { + "message": "接下來會登出目前工作階段,並要求您重新登入帳戶。其他裝置上的工作階段最多會保持一個小時。" + }, + "emailChanged": { + "message": "已變更電子郵件" + }, + "logBackIn": { + "message": "請重新登入。" + }, + "logBackInOthersToo": { + "message": "請重新登入。若您還在使用其他 Bitwarden 應用程式,也請登出後再重新登入。" + }, + "changeMasterPassword": { + "message": "變更主密碼" + }, + "masterPasswordChanged": { + "message": "主密碼已變更" + }, + "currentMasterPass": { + "message": "目前的主密碼" + }, + "newMasterPass": { + "message": "新的主密碼" + }, + "confirmNewMasterPass": { + "message": "確認新的主密碼" + }, + "encKeySettings": { + "message": "加密金鑰設定" + }, + "kdfAlgorithm": { + "message": "KDF 演算法" + }, + "kdfIterations": { + "message": "KDF 迭代" + }, + "kdfIterationsDesc": { + "message": "較高的 KDF 迭代次數可以避免您的主密碼遭到暴力破解。我們建議為 $VALUE$ 或更高。", + "placeholders": { + "value": { + "content": "$1", + "example": "100,000" + } + } + }, + "kdfIterationsWarning": { + "message": "若將 KDF 迭代次數設定太高會導致在 CPU 較慢的裝置上登入(與解鎖)Bitwarden 時降低效能。我們建議您以 $INCREMENT$ 的增量值遞增並在所有的裝置上測試。", + "placeholders": { + "increment": { + "content": "$1", + "example": "50,000" + } + } + }, + "changeKdf": { + "message": "變更 KDF" + }, + "encKeySettingsChanged": { + "message": "加密金鑰設定已變更" + }, + "dangerZone": { + "message": "危險操作區" + }, + "dangerZoneDesc": { + "message": "小心,這些動作無法復原!" + }, + "deauthorizeSessions": { + "message": "取消工作階段授權" + }, + "deauthorizeSessionsDesc": { + "message": "您是否擔心自己的帳戶在其他裝置上保持登入?請遵照以下步驟取消對之前使用過的所有電腦和裝置的授權。若您以前使用過公用電腦或不小心曾將密碼儲存在不屬於您的裝置上,則建議執行此安全步驟,此操作還將清除所有以前記住的兩步驟登入工作階段。" + }, + "deauthorizeSessionsWarning": { + "message": "接下來會登出目前的工作階段,並要求您重新登入。若您有設定兩步驟登入,也需重新驗證。其他裝置上的活動工作階段最多會保持一個小時。" + }, + "sessionsDeauthorized": { + "message": "已取消所有工作階段授權" + }, + "purgeVault": { + "message": "清空密碼庫" + }, + "purgedOrganizationVault": { + "message": "已清空組織的密碼庫。" + }, + "vaultAccessedByProvider": { + "message": "提供者存取了密碼庫。" + }, + "purgeVaultDesc": { + "message": "接下來的操作會刪除密碼庫當中的所有項目與資料夾。屬於組織的共用項目將不會刪除。" + }, + "purgeOrgVaultDesc": { + "message": "接下來的操作將刪除密碼庫當中的所有項目。" + }, + "purgeVaultWarning": { + "message": "清空密碼庫是永久性的。並且無法復原。" + }, + "vaultPurged": { + "message": "已清空您的密碼庫。" + }, + "deleteAccount": { + "message": "刪除帳戶" + }, + "deleteAccountDesc": { + "message": "接下來的操作將刪除您的帳戶及所有相關資料。" + }, + "deleteAccountWarning": { + "message": "刪除您的帳戶是永久性的。並且無法復原。" + }, + "accountDeleted": { + "message": "已刪除帳戶" + }, + "accountDeletedDesc": { + "message": "您的帳戶已經關閉,所有關聯的資料已經被刪除。" + }, + "myAccount": { + "message": "我的帳戶" + }, + "tools": { + "message": "工具" + }, + "importData": { + "message": "匯入資料" + }, + "importError": { + "message": "匯入錯誤" + }, + "importErrorDesc": { + "message": "您嘗試匯入的資料有問題,請處理下方列出的來源檔案中的錯誤然後再試一次。" + }, + "importSuccess": { + "message": "資料已經成功匯入至您的密碼庫中。" + }, + "importWarning": { + "message": "即將匯入資料至 $ORGANIZATION$。您的資料可能會與該組織中的成員共用,確定要繼續嗎?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "資料格式不正確。請檢查您匯入的檔案後再試一次。" + }, + "importNothingError": { + "message": "沒有匯入任何內容。" + }, + "importEncKeyError": { + "message": "解密匯出的檔案時發生錯誤,您的加密金鑰與匯出資料時使用的金鑰不同。" + }, + "selectFormat": { + "message": "選擇匯入檔案的格式" + }, + "selectImportFile": { + "message": "選擇要匯入的檔案" + }, + "orCopyPasteFileContents": { + "message": "或複製/貼上要匯入的檔案內容" + }, + "instructionsFor": { + "message": "$NAME$ 教學", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "options": { + "message": "選項" + }, + "optionsDesc": { + "message": "自訂您的網頁版密碼庫" + }, + "optionsUpdated": { + "message": "已更新選項" + }, + "language": { + "message": "語言" + }, + "languageDesc": { + "message": "變更網頁版密碼庫使用的語言。" + }, + "disableIcons": { + "message": "停用網站圖示顯示功能" + }, + "disableIconsDesc": { + "message": "在您密碼庫的每個登入資料旁顯示一個可辨識的圖示。" + }, + "enableGravatars": { + "message": "啟用 Gravatars 頭像", + "description": "'Gravatar' is the name of a service. See www.gravatar.com" + }, + "enableGravatarsDesc": { + "message": "載入 gravatar.com 上的頭像圖片。" + }, + "enableFullWidth": { + "message": "啟用全寬度版面配置", + "description": "Allows scaling the web vault UI's width" + }, + "enableFullWidthDesc": { + "message": "允許將網頁版密碼庫完全展開至瀏覽器視窗寬度。" + }, + "default": { + "message": "預設" + }, + "domainRules": { + "message": "網域規則" + }, + "domainRulesDesc": { + "message": "如果您在多個不同網站使用相同的登入資料,您可以將這些網站標記為「通用」。Bitwarden 會為您設定 「全域」域名。" + }, + "globalEqDomains": { + "message": "全域通用域名" + }, + "customEqDomains": { + "message": "自訂通用域名" + }, + "exclude": { + "message": "排除" + }, + "include": { + "message": "包含" + }, + "customize": { + "message": "自訂" + }, + "newCustomDomain": { + "message": "新增自訂網域" + }, + "newCustomDomainDesc": { + "message": "輸入以逗號分隔的網域清單。只允許輸入「基本」網域,請勿輸入子網域名稱。例如,輸入「google.com」即可,而非「www.google.com」。您也可以輸入「androidapp://package.name」來將 Android 應用程式與其他網域名稱建立關聯。" + }, + "customDomainX": { + "message": "自訂網域 $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "domainsUpdated": { + "message": "網域已更新" + }, + "twoStepLogin": { + "message": "兩步驟登入" + }, + "twoStepLoginDesc": { + "message": "在登入時執行額外的步驟來保護您的帳戶。" + }, + "twoStepLoginOrganizationDesc": { + "message": "可透過組織等級來設定提供方式,以要求所有使用者都必須開啟兩步驟登入。" + }, + "twoStepLoginRecoveryWarning": { + "message": "啟用兩步驟登入可能會將您永久鎖定在您的 Bitwarden 帳戶外。如果您無法正常使用兩步驟登入驗證應用程式(例如,您遺失了裝置),則可以使用復原碼存取您的帳戶。 如果您失去帳戶的存取權限,Bitwarden 也無法幫助您。所以我們建議您記下或列印復原碼,並將其妥善保存。" + }, + "viewRecoveryCode": { + "message": "檢視復原碼" + }, + "providers": { + "message": "提供者", + "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." + }, + "enable": { + "message": "啟用" + }, + "enabled": { + "message": "已啟用" + }, + "premium": { + "message": "進階版", + "description": "Premium Membership" + }, + "premiumMembership": { + "message": "進階會員" + }, + "premiumRequired": { + "message": "需要進階會員資格" + }, + "premiumRequiredDesc": { + "message": "進階會員才可使用此功能。" + }, + "youHavePremiumAccess": { + "message": "您有進階版存取權限" + }, + "alreadyPremiumFromOrg": { + "message": "由於您是擁有進階會員功能的組織的成員,您已獲得進階功能。" + }, + "manage": { + "message": "管理" + }, + "disable": { + "message": "停用" + }, + "twoStepLoginProviderEnabled": { + "message": "您的帳戶已啟用兩步驟登入" + }, + "twoStepLoginAuthDesc": { + "message": "輸入您的主密碼以修改兩步驟登入設定。" + }, + "twoStepAuthenticatorDesc": { + "message": "請依照下列步驟設定使用驗證器應用程式的兩步驟登入:" + }, + "twoStepAuthenticatorDownloadApp": { + "message": "下載兩步驟驗證器應用程式" + }, + "twoStepAuthenticatorNeedApp": { + "message": "需要驗證器應用程式嗎?您可以下載以下應用程式:" + }, + "iosDevices": { + "message": "iOS 裝置" + }, + "androidDevices": { + "message": "Android 裝置" + }, + "windowsDevices": { + "message": "Windows 裝置" + }, + "twoStepAuthenticatorAppsRecommended": { + "message": "推薦使用下列的應用程式,您也可使用其他驗證器應用程式。" + }, + "twoStepAuthenticatorScanCode": { + "message": "使用您的驗證器應用程式掃描此 QR Code" + }, + "key": { + "message": "金鑰" + }, + "twoStepAuthenticatorEnterCode": { + "message": "請輸入應用程式產生的 6 位數驗證碼" + }, + "twoStepAuthenticatorReaddDesc": { + "message": "若您需要將其加入其他裝置,以下是您的驗證器應用程式所需要的 QR Code(或金鑰)。" + }, + "twoStepDisableDesc": { + "message": "您確定要停用兩步驟登入嗎?" + }, + "twoStepDisabled": { + "message": "已停用兩步驟登入方式。" + }, + "twoFactorYubikeyAdd": { + "message": "新增 YubiKey 至您的帳戶。" + }, + "twoFactorYubikeyPlugIn": { + "message": "將 YubiKey 插入電腦的 USB 連接埠。" + }, + "twoFactorYubikeySelectKey": { + "message": "於下方選擇第一個空白的 YubiKey 輸入欄位。" + }, + "twoFactorYubikeyTouchButton": { + "message": "按下 YubiKey 的按鈕。" + }, + "twoFactorYubikeySaveForm": { + "message": "儲存表單" + }, + "twoFactorYubikeyWarning": { + "message": "由於平台限制,無法於所有 Bitwarden 應用程式中使用 YubiKey。請開啟另一套兩步驟登入方式,以確保可在 YubiKey 無法使用時還能存取您的帳戶。支援的平台有:" + }, + "twoFactorYubikeySupportUsb": { + "message": "具有 USB 連接埠的電腦上的網頁版密碼庫、桌面應用程式、命令列介面以及所有瀏覽器擴充套件均可使用您的 YubiKey 。" + }, + "twoFactorYubikeySupportMobile": { + "message": "在具有 NFC 功能或擁有資料連接埠的裝置上的行動應用程式可使用您的 YubiKey。" + }, + "yubikeyX": { + "message": "YubiKey $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "u2fkeyX": { + "message": "U2F 金鑰 $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "webAuthnkeyX": { + "message": "WebAuthn 金鑰 $INDEX$", + "placeholders": { + "index": { + "content": "$1", + "example": "2" + } + } + }, + "nfcSupport": { + "message": "NFC 支援" + }, + "twoFactorYubikeySupportsNfc": { + "message": "我有一把金鑰支援 NFC。" + }, + "twoFactorYubikeySupportsNfcDesc": { + "message": "若您有一個支援 NFC 的 YubiKey(例如 YubiKey NEO),行動裝置在感應到 NFC 時將提示您。" + }, + "yubikeysUpdated": { + "message": "YubiKey 已更新" + }, + "disableAllKeys": { + "message": "停用全部金鑰" + }, + "twoFactorDuoDesc": { + "message": "請輸入來自您的 Duo 管理面板的 Bitwarden 應用程式資訊。" + }, + "twoFactorDuoIntegrationKey": { + "message": "整合金鑰" + }, + "twoFactorDuoSecretKey": { + "message": "私密金鑰" + }, + "twoFactorDuoApiHostname": { + "message": "API 主機名稱" + }, + "twoFactorEmailDesc": { + "message": "請依照下列步驟設定使用電子郵件的兩步驟登入:" + }, + "twoFactorEmailEnterEmail": { + "message": "輸入您想用來接收驗證碼的電子郵件地址" + }, + "twoFactorEmailEnterCode": { + "message": "請輸入電子郵件中的 6 位數驗證碼" + }, + "sendEmail": { + "message": "傳送電子郵件" + }, + "twoFactorU2fAdd": { + "message": "在您的帳戶中新增 FIDO U2F 安全金鑰" + }, + "removeU2fConfirmation": { + "message": "您確定要移除這把安全金鑰嗎?" + }, + "twoFactorWebAuthnAdd": { + "message": "在您的帳戶中新增 WebAuthn 安全金鑰" + }, + "readKey": { + "message": "讀取金鑰" + }, + "keyCompromised": { + "message": "金鑰已損壞。" + }, + "twoFactorU2fGiveName": { + "message": "幫安全金鑰取一個易記名稱,以方便辨識。" + }, + "twoFactorU2fPlugInReadKey": { + "message": "請將安全金鑰插入您電腦的 USB 連接埠,並按下「讀取鑰匙」按鈕。" + }, + "twoFactorU2fTouchButton": { + "message": "若安全金鑰有按鈕,請按下它。" + }, + "twoFactorU2fSaveForm": { + "message": "儲存表單" + }, + "twoFactorU2fWarning": { + "message": "由於平台限制,無法於所有 Bitwarden 應用程式中使用 FIDO U2F。請開啟另一套兩步驟登入方式,以確保 FIDO U2F 無法使用時還能存取您的帳戶。支援的平台有:" + }, + "twoFactorU2fSupportWeb": { + "message": "桌上型電腦/筆記型電腦上啟用了 U2F 的瀏覽器(Chrome、Opera、Vivaldi 或啟用了 FIDO U2F 的 Firefox)中的網頁版密碼庫和瀏覽器擴充套件。" + }, + "twoFactorU2fWaiting": { + "message": "等待您按下安全金鑰上的按鈕" + }, + "twoFactorU2fClickSave": { + "message": "點選下方的「儲存」按鈕,以啟用此安全金鑰用於兩步驟登入。" + }, + "twoFactorU2fProblemReadingTryAgain": { + "message": "讀取安全金鑰時發生問題。請再試一次。" + }, + "twoFactorWebAuthnWarning": { + "message": "由於平台限制,無法於所有 Bitwarden 應用程式中使用 WebAuthn。請設定另一套兩步驟登入方式,以確保在 WebAuthn 無法使用時還能存取您的帳戶。支援的平台有:" + }, + "twoFactorWebAuthnSupportWeb": { + "message": "桌上型電腦/筆記型電腦上具有 WebAuthn 功能的瀏覽器(Chrome、Opera、Vivaldi 或開啟 FIDO U2F 功能的 Firefox)上的網頁版密碼庫和瀏覽器擴充套件。" + }, + "twoFactorRecoveryYourCode": { + "message": "您的 Bitwarden 兩步驟登入復原碼" + }, + "twoFactorRecoveryNoCode": { + "message": "您尚未啟用任何兩步驟登入方式。等你啟用兩步驟登入方式後,您可回來這裡取得復原碼。" + }, + "printCode": { + "message": "列印代碼", + "description": "Print 2FA recovery code" + }, + "reports": { + "message": "報告" + }, + "reportsDesc": { + "message": "點選下方的報告,識別並消除您的線上帳戶中的安全漏洞。" + }, + "unsecuredWebsitesReport": { + "message": "不安全的網站" + }, + "unsecuredWebsitesReportDesc": { + "message": "以 http:// 開頭的 URL 沒有使用最佳的加密方式。將這些帳戶的登入 URI 更改為 https:// 以更安全地瀏覽。" + }, + "unsecuredWebsitesFound": { + "message": "發現不安全的網站" + }, + "unsecuredWebsitesFoundDesc": { + "message": "我們在您的密碼庫中找到 $COUNT$ 個使用不安全 URI 的項目。若網站允許,您應變更其網址配置為 https://。", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noUnsecuredWebsites": { + "message": "您的密碼庫中沒有使用不安全 URI 的項目。" + }, + "inactive2faReport": { + "message": "非使用中兩步驟登入" + }, + "inactive2faReportDesc": { + "message": "兩步驟登入為您的帳戶添加了一層保護。使用 Bitwarden 驗證器或使用其他方法為這些帳戶啟用兩步驟登入。" + }, + "inactive2faFound": { + "message": "發現未啟用 2FA 的登入資料" + }, + "inactive2faFoundDesc": { + "message": "我們在您的密碼庫中找到 $COUNT$ 個可能未設定雙因素驗證的網站(依據 twofactorauth.org)。若要進一步保護這些帳戶,您應啟用雙因素驗證。", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noInactive2fa": { + "message": "沒有在您的密碼庫中找到未設定雙因素驗證的網站。" + }, + "instructions": { + "message": "說明" + }, + "exposedPasswordsReport": { + "message": "已公開的密碼" + }, + "exposedPasswordsReportDesc": { + "message": "資料外洩中暴露的密碼很容易成為攻擊者的目標。更改這些密碼以防止潛在的入侵。" + }, + "exposedPasswordsFound": { + "message": "發現公開密碼" + }, + "exposedPasswordsFoundDesc": { + "message": "我們在您的密碼庫中找到 $COUNT$ 個項目的密碼在已知資料外洩事件中被公開。您應將它們變更為新密碼。", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noExposedPasswords": { + "message": "未在您的密碼庫中找到在已知資料外洩事件中被公開的項目。" + }, + "checkExposedPasswords": { + "message": "檢查公開密碼" + }, + "exposedXTimes": { + "message": "被公開 $COUNT$ 次", + "placeholders": { + "count": { + "content": "$1", + "example": "52" + } + } + }, + "weakPasswordsReport": { + "message": "弱式密碼" + }, + "weakPasswordsReportDesc": { + "message": "弱密碼很容易被攻擊者猜到。使用密碼產生器將這些密碼更改為強密碼。" + }, + "weakPasswordsFound": { + "message": "發現弱式密碼" + }, + "weakPasswordsFoundDesc": { + "message": "我們在您的密碼庫中發現了 $COUNT$ 個使用弱式密碼的項目。您應該將它們變更為更強的密碼。", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noWeakPasswords": { + "message": "您的密碼庫中沒有項目具有弱式密碼。" + }, + "reusedPasswordsReport": { + "message": "重複使用密碼" + }, + "reusedPasswordsReportDesc": { + "message": "重複使用密碼使攻擊者更容易侵入多個帳戶。更改這些密碼,使每個密碼都是唯一的。" + }, + "reusedPasswordsFound": { + "message": "發現重複使用的密碼" + }, + "reusedPasswordsFoundDesc": { + "message": "我們發現您的密碼庫中有 $COUNT$ 組密碼重複使用。您應該將它們變更為不同的密碼。", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "noReusedPasswords": { + "message": "未在您密碼庫中找到重複使用密碼的登入資訊。" + }, + "reusedXTimes": { + "message": "已重複使用 $COUNT$ 次", + "placeholders": { + "count": { + "content": "$1", + "example": "8" + } + } + }, + "dataBreachReport": { + "message": "資料外洩" + }, + "breachDesc": { + "message": "外洩的帳戶可能會暴露您的個人信息。透過啟用 2FA 或創建更強的密碼來保護被外洩的帳戶。" + }, + "breachCheckUsernameEmail": { + "message": "請檢查您使用的使用者名稱或電子郵件地址。" + }, + "checkBreaches": { + "message": "檢查密碼外洩情況" + }, + "breachUsernameNotFound": { + "message": "在任何已知的外洩密碼資料庫中都找不到 $USERNAME$。", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + } + } + }, + "goodNews": { + "message": "好消息!", + "description": "ex. Good News, No Breached Accounts Found!" + }, + "breachUsernameFound": { + "message": "$USERNAME$ 在不同的外洩密碼資料庫中找到了 $COUNT$ 次。", + "placeholders": { + "username": { + "content": "$1", + "example": "user@example.com" + }, + "count": { + "content": "$2", + "example": "7" + } + } + }, + "breachFound": { + "message": "發現已外洩的帳戶" + }, + "compromisedData": { + "message": "遭外洩的資料" + }, + "website": { + "message": "網站" + }, + "affectedUsers": { + "message": "受影響的使用者" + }, + "breachOccurred": { + "message": "外洩發生於" + }, + "breachReported": { + "message": "外洩回報於" + }, + "reportError": { + "message": "嘗試載入報告時發生錯誤。請再試一次。" + }, + "billing": { + "message": "計費" + }, + "accountCredit": { + "message": "帳戶餘額", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "accountBalance": { + "message": "帳戶餘額", + "description": "Financial term. In the case of Bitwarden, a positive balance means that you owe money, while a negative balance means that you have a credit (Bitwarden owes you money)." + }, + "addCredit": { + "message": "儲值餘額", + "description": "Add more credit to your account's balance." + }, + "amount": { + "message": "金額", + "description": "Dollar amount, or quantity." + }, + "creditDelayed": { + "message": "已儲值的餘額在交易處理完成後將會出現在你的帳戶中。部分付款方式較為緩慢,會比其他方式花費更多時間處理。" + }, + "makeSureEnoughCredit": { + "message": "請確保您的帳戶有足夠的餘額用於此次購買,若您的帳戶餘額不足,則會以您預設的付款方式補足差額。您可以透過計費頁面對您的帳戶儲值餘額。" + }, + "creditAppliedDesc": { + "message": "您帳戶的餘額可用於消費。任何可用的餘額將用於自動繳納此帳戶的帳單。" + }, + "goPremium": { + "message": "升級至進階版", + "description": "Another way of saying \"Get a premium membership\"" + }, + "premiumUpdated": { + "message": "您已升級至進階版" + }, + "premiumUpgradeUnlockFeatures": { + "message": "將您的帳戶升級至進階版,並解鎖一些很棒的附加功能。" + }, + "premiumSignUpStorage": { + "message": "用於檔案附件的 1 GB 的加密檔案儲存空間。" + }, + "premiumSignUpTwoStep": { + "message": "YubiKey、FIDO U2F 和 Duo 等額外的兩步驟登入選項。" + }, + "premiumSignUpEmergency": { + "message": "緊急存取" + }, + "premiumSignUpReports": { + "message": "密碼健康、帳戶體檢以及資料外洩報告,保障您的密碼庫安全。" + }, + "premiumSignUpTotp": { + "message": "用於登入您的密碼庫的 TOTP 驗證碼(2FA)產生器。" + }, + "premiumSignUpSupport": { + "message": "優先客戶支援。" + }, + "premiumSignUpFuture": { + "message": "未來會增加更多進階功能,敬請期待!" + }, + "premiumPrice": { + "message": "每年只需 $PRICE$ !", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "addons": { + "message": "附加項目" + }, + "premiumAccess": { + "message": "進階存取" + }, + "premiumAccessDesc": { + "message": "您可以為您的組織的所有使用者添加進階存取,只需 $PRICE$ /$INTERVAL$.", + "placeholders": { + "price": { + "content": "$1", + "example": "$3.33" + }, + "interval": { + "content": "$2", + "example": "'month' or 'year'" + } + } + }, + "additionalStorageGb": { + "message": "額外的儲存空間 (GB)" + }, + "additionalStorageGbDesc": { + "message": "# GB 額外儲存空間" + }, + "additionalStorageIntervalDesc": { + "message": "您的方案擁有 $SIZE$ 的加密儲存空間。您也可以用每 GB $PRICE$ / $INTERVAL$ 購買額外的儲存空間。", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + }, + "price": { + "content": "$2", + "example": "$4.00" + }, + "interval": { + "content": "$3", + "example": "'month' or 'year'" + } + } + }, + "summary": { + "message": "摘要" + }, + "total": { + "message": "總計" + }, + "year": { + "message": "年" + }, + "month": { + "message": "月" + }, + "monthAbbr": { + "message": "月", + "description": "Short abbreviation for 'month'" + }, + "paymentChargedAnnually": { + "message": "將立即使用您選擇的付款方式來扣款,並且每年都會定期扣款。您可以隨時取消。" + }, + "paymentCharged": { + "message": "將立即使用您選擇的付款方式來扣款,並且將每 $INTERVAL$ 定期扣款。您可以隨時取消。", + "placeholders": { + "interval": { + "content": "$1", + "example": "month or year" + } + } + }, + "paymentChargedWithTrial": { + "message": "您的方案包含了 7 天的免費試用。在試用期結束之前,不會從您的付款方式中扣款。您可以隨時取消。" + }, + "paymentInformation": { + "message": "付款資訊" + }, + "billingInformation": { + "message": "帳單資訊" + }, + "creditCard": { + "message": "信用卡" + }, + "paypalClickSubmit": { + "message": "點選 PayPal 按鈕登入您的 PayPal 帳戶,然後點選下方的送出按鈕以繼續。" + }, + "cancelSubscription": { + "message": "取消訂閱" + }, + "subscriptionCanceled": { + "message": "已取消訂閱" + }, + "pendingCancellation": { + "message": "待取消" + }, + "subscriptionPendingCanceled": { + "message": "此訂閱在目前計費周期结束前已標記為取消。" + }, + "reinstateSubscription": { + "message": "重新開始訂閱" + }, + "reinstateConfirmation": { + "message": "您是否要移除待處理的取消要求,重新開始您的訂閱?" + }, + "reinstated": { + "message": "已重新開始訂閱。" + }, + "cancelConfirmation": { + "message": "您確定要取消訂閱嗎?在目前計費周期結束之後,您將無法使用所有訂閲功能。" + }, + "canceledSubscription": { + "message": "已取消訂閱。" + }, + "neverExpires": { + "message": "永不逾期" + }, + "status": { + "message": "狀態" + }, + "nextCharge": { + "message": "下一次扣款" + }, + "details": { + "message": "詳細資料" + }, + "downloadLicense": { + "message": "下載授權證" + }, + "updateLicense": { + "message": "更新授權" + }, + "updatedLicense": { + "message": "已更新授權" + }, + "manageSubscription": { + "message": "管理訂閱" + }, + "storage": { + "message": "儲存空間" + }, + "addStorage": { + "message": "增加儲存空間" + }, + "removeStorage": { + "message": "移除儲存空間" + }, + "subscriptionStorage": { + "message": "您的訂閱方案包含 $MAX_STORAGE$ GB 的加密檔案儲存空間,目前已使用 $USED_STORAGE$。", + "placeholders": { + "max_storage": { + "content": "$1", + "example": "4" + }, + "used_storage": { + "content": "$2", + "example": "65 MB" + } + } + }, + "paymentMethod": { + "message": "付款方式" + }, + "noPaymentMethod": { + "message": "尚未選擇付款方式" + }, + "addPaymentMethod": { + "message": "新增付款方式" + }, + "changePaymentMethod": { + "message": "變更付款方式" + }, + "invoices": { + "message": "帳單" + }, + "noInvoices": { + "message": "無帳單。" + }, + "paid": { + "message": "已付款", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "unpaid": { + "message": "待付款", + "description": "Past tense status of an invoice. ex. Paid or unpaid." + }, + "transactions": { + "message": "交易紀錄", + "description": "Payment/credit transactions." + }, + "noTransactions": { + "message": "無交易記錄" + }, + "chargeNoun": { + "message": "費用", + "description": "Noun. A charge from a payment method." + }, + "refundNoun": { + "message": "退款", + "description": "Noun. A refunded payment that was charged." + }, + "chargesStatement": { + "message": "任何費用都會在您的帳單上以 $STATEMENT_NAME$ 顯示。", + "placeholders": { + "statement_name": { + "content": "$1", + "example": "BITWARDEN" + } + } + }, + "gbStorageAdd": { + "message": "GB 儲存空間將增加" + }, + "gbStorageRemove": { + "message": "GB 儲存空間將移除" + }, + "storageAddNote": { + "message": "增加存儲空間將會調整計費總額,並立即透過您選擇的付款方式進行扣款。第一期費用將依照目前計費週期的剩餘時間依比例分配。" + }, + "storageRemoveNote": { + "message": "移除儲存空間將會調整計費總額,這筆費用將依照比例返還並用於下一筆帳單費用中。" + }, + "adjustedStorage": { + "message": "已調整 $AMOUNT$ GB 的儲存空間。", + "placeholders": { + "amount": { + "content": "$1", + "example": "5" + } + } + }, + "contactSupport": { + "message": "聯絡客戶支援部門" + }, + "updatedPaymentMethod": { + "message": "已更新付款方式。" + }, + "purchasePremium": { + "message": "購買進階版" + }, + "licenseFile": { + "message": "授權檔案" + }, + "licenseFileDesc": { + "message": "您的授權檔案將被命名為類似 $FILE_NAME$ 的名稱", + "placeholders": { + "file_name": { + "content": "$1", + "example": "bitwarden_premium_license.json" + } + } + }, + "uploadLicenseFilePremium": { + "message": "要升級您的帳戶為進階版會員,您需要上傳有效的授權檔案。" + }, + "uploadLicenseFileOrg": { + "message": "要建立基於內部部署的組織,您需要上傳有效的授權檔案。" + }, + "accountEmailMustBeVerified": { + "message": "必須驗證您帳戶的電子郵件地址。" + }, + "newOrganizationDesc": { + "message": "組織允許您與他人共用密碼庫的部分內容,以及管理特定實體(如家庭、小型團隊或大型公司)的相關使用者。" + }, + "generalInformation": { + "message": "一般資訊" + }, + "organizationName": { + "message": "組織名稱" + }, + "accountOwnedBusiness": { + "message": "此帳戶為企業所有。" + }, + "billingEmail": { + "message": "帳單電子郵件" + }, + "businessName": { + "message": "企業名稱" + }, + "chooseYourPlan": { + "message": "選擇您的方案" + }, + "users": { + "message": "使用者" + }, + "userSeats": { + "message": "使用者席位" + }, + "additionalUserSeats": { + "message": "額外使用者席位" + }, + "userSeatsDesc": { + "message": "# 使用者席位" + }, + "userSeatsAdditionalDesc": { + "message": "您的方案包含 $BASE_SEATS$ 個使用者席位。您可以以每使用者每月 $SEAT_PRICE$ 的價格增加額外使用者。", + "placeholders": { + "base_seats": { + "content": "$1", + "example": "5" + }, + "seat_price": { + "content": "$2", + "example": "$2.00" + } + } + }, + "userSeatsHowManyDesc": { + "message": "您需要多少個使用者席位?您也可以在需要的時候增加額外席位。" + }, + "planNameFree": { + "message": "免費", + "description": "Free as in 'free beer'." + }, + "planDescFree": { + "message": "適用於測試或個人使用者與 $COUNT$ 位其他使用者共用。", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "planNameFamilies": { + "message": "家庭" + }, + "planDescFamilies": { + "message": "適用於個人使用,與家人及朋友共用。" + }, + "planNameTeams": { + "message": "團隊" + }, + "planDescTeams": { + "message": "適用於企業和其他團隊組織。" + }, + "planNameEnterprise": { + "message": "企業" + }, + "planDescEnterprise": { + "message": "適用於企業和其他大型組織。" + }, + "freeForever": { + "message": "永久免費" + }, + "includesXUsers": { + "message": "包含 $COUNT$ 位使用者", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "additionalUsers": { + "message": "額外使用者" + }, + "costPerUser": { + "message": "每位使用者 $COST$", + "placeholders": { + "cost": { + "content": "$1", + "example": "$3" + } + } + }, + "limitedUsers": { + "message": "限制 $COUNT$ 位使用者(包括您)", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "limitedCollections": { + "message": "限制 $COUNT$ 個集合", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "addShareLimitedUsers": { + "message": "新增並與最多 $COUNT$ 位使用者共用", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "addShareUnlimitedUsers": { + "message": "新增並與無限位使用者共用" + }, + "createUnlimitedCollections": { + "message": "建立無限個集合" + }, + "gbEncryptedFileStorage": { + "message": "$SIZE$ 加密檔案儲存空間。", + "placeholders": { + "size": { + "content": "$1", + "example": "1 GB" + } + } + }, + "onPremHostingOptional": { + "message": "內部部署(選用)" + }, + "usersGetPremium": { + "message": "使用者取得了進階功能的存取權限" + }, + "controlAccessWithGroups": { + "message": "使用群組控制使用者的存取權限" + }, + "syncUsersFromDirectory": { + "message": "從目錄同步使用者及群組" + }, + "trackAuditLogs": { + "message": "使用稽核記錄追蹤使用者動作" + }, + "enforce2faDuo": { + "message": "強制使用 Duo 2FA" + }, + "priorityCustomerSupport": { + "message": "優先客戶支援" + }, + "xDayFreeTrial": { + "message": "$COUNT$ 天免費試用,隨時可取消", + "placeholders": { + "count": { + "content": "$1", + "example": "7" + } + } + }, + "monthly": { + "message": "每月" + }, + "annually": { + "message": "每年" + }, + "basePrice": { + "message": "基本價格" + }, + "organizationCreated": { + "message": "已建立組織" + }, + "organizationReadyToGo": { + "message": "您的新組織已準備好!" + }, + "organizationUpgraded": { + "message": "您的組織已升級。" + }, + "leave": { + "message": "離開" + }, + "leaveOrganizationConfirmation": { + "message": "您確定要離開這個組織嗎?" + }, + "leftOrganization": { + "message": "您已離開組織。" + }, + "defaultCollection": { + "message": "預設集合" + }, + "getHelp": { + "message": "尋求幫助" + }, + "getApps": { + "message": "取得應用程式" + }, + "loggedInAs": { + "message": "已登入為" + }, + "eventLogs": { + "message": "事件記錄" + }, + "people": { + "message": "人員" + }, + "policies": { + "message": "原則" + }, + "singleSignOn": { + "message": "單一登入(SSO)" + }, + "editPolicy": { + "message": "編輯原則" + }, + "groups": { + "message": "群組" + }, + "newGroup": { + "message": "新群組" + }, + "addGroup": { + "message": "新增群組" + }, + "editGroup": { + "message": "編輯群組" + }, + "deleteGroupConfirmation": { + "message": "您確定要刪除這個群組?" + }, + "removeUserConfirmation": { + "message": "您確定要移除此使用者?" + }, + "removeUserConfirmationKeyConnector": { + "message": "警告!這位使用者需要 Key Connector 管理他們的加密方式。從您的組織中移除這位使用者,會永久停用他們的帳戶。此操作無法復原,是否繼續?" + }, + "externalId": { + "message": "外部 ID" + }, + "externalIdDesc": { + "message": "外部 ID 可用於參考,或將此資源與使用者目錄等外部系統連結起來。" + }, + "accessControl": { + "message": "存取控制" + }, + "groupAccessAllItems": { + "message": "此群組可存取及變更所有項目。" + }, + "groupAccessSelectedCollections": { + "message": "此群組只能存取選擇的集合。" + }, + "readOnly": { + "message": "唯讀" + }, + "newCollection": { + "message": "新集合" + }, + "addCollection": { + "message": "新增集合" + }, + "editCollection": { + "message": "編輯集合" + }, + "deleteCollectionConfirmation": { + "message": "確定要刪除此集合嗎?" + }, + "editUser": { + "message": "編輯使用者" + }, + "inviteUser": { + "message": "邀請使用者" + }, + "inviteUserDesc": { + "message": "在下方輸入 Bitwarden 帳戶的電子郵件位址,以邀請新使用者加入您的組織。若他們沒有 Bitwarden 帳戶,系統將提示他們建立新帳戶。" + }, + "inviteMultipleEmailDesc": { + "message": "透過使用逗號分隔的電子郵件地址,您可以一次邀請 $COUNT$ 位使用者。", + "placeholders": { + "count": { + "content": "$1", + "example": "20" + } + } + }, + "userUsingTwoStep": { + "message": "此使用者正在使用兩步驟登入保護帳戶。" + }, + "userAccessAllItems": { + "message": "此使用者可存取及變更所有項目。" + }, + "userAccessSelectedCollections": { + "message": "此使用者只能存取選擇的集合。" + }, + "search": { + "message": "搜尋" + }, + "invited": { + "message": "已邀請" + }, + "accepted": { + "message": "已接受" + }, + "confirmed": { + "message": "已確認" + }, + "clientOwnerEmail": { + "message": "用戶端擁有者電子郵件" + }, + "owner": { + "message": "擁有者" + }, + "ownerDesc": { + "message": "可以管理組織所有方面且具有最高權限的使用者。" + }, + "clientOwnerDesc": { + "message": "此使用者應獨立於提供者。若提供者與該組織解除關聯,此使用者將繼續保留組織的擁有權。" + }, + "admin": { + "message": "管理員" + }, + "adminDesc": { + "message": "管理員可以存取和管理組織内的所有項目、集合和使用者。" + }, + "user": { + "message": "使用者" + }, + "userDesc": { + "message": "具有組織内已指派集合的存取權限的一般使用者。" + }, + "manager": { + "message": "管理員" + }, + "managerDesc": { + "message": "管理員可以存取和管理組織内已指派的集合。" + }, + "all": { + "message": "全部" + }, + "refresh": { + "message": "重新整理" + }, + "timestamp": { + "message": "時間戳記" + }, + "event": { + "message": "事件" + }, + "unknown": { + "message": "不詳" + }, + "loadMore": { + "message": "載入更多" + }, + "mobile": { + "message": "行動裝置", + "description": "Mobile app" + }, + "extension": { + "message": "擴充套件", + "description": "Browser extension/addon" + }, + "desktop": { + "message": "電腦版應用程式", + "description": "Desktop app" + }, + "webVault": { + "message": "網頁版密碼庫" + }, + "loggedIn": { + "message": "已登入。" + }, + "changedPassword": { + "message": "已變更帳戶密碼。" + }, + "enabledUpdated2fa": { + "message": "已啟用 / 更新兩步驟登入。" + }, + "disabled2fa": { + "message": "已停用兩步驟登入。" + }, + "recovered2fa": { + "message": "已透過兩步驟登入復原帳戶。" + }, + "failedLogin": { + "message": "登入失敗,密碼錯誤。" + }, + "failedLogin2fa": { + "message": "嘗試登入失敗,兩步驟登入錯誤。" + }, + "exportedVault": { + "message": "已匯出密碼庫。" + }, + "exportedOrganizationVault": { + "message": "已匯出組織密碼庫。" + }, + "editedOrgSettings": { + "message": "已編輯組織設定。" + }, + "createdItemId": { + "message": "已建立項目 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedItemId": { + "message": "已編輯項目 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedItemId": { + "message": "項目 $ID$ 已移至垃圾桶。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "movedItemIdToOrg": { + "message": "移動項目 $ID$ 至一個組織。", + "placeholders": { + "id": { + "content": "$1", + "example": "'Google'" + } + } + }, + "viewedItemId": { + "message": "檢視了項目 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedPasswordItemId": { + "message": "檢視了項目 $ID$ 的密碼。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedHiddenFieldItemId": { + "message": "檢視了項目 $ID$ 的隱藏欄位。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "viewedSecurityCodeItemId": { + "message": "檢視了項目 $ID$ 的安全代碼。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedPasswordItemId": { + "message": "複製了項目 $ID$ 的密碼。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedHiddenFieldItemId": { + "message": "複製了項目 $ID$ 的隱藏欄位。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "copiedSecurityCodeItemId": { + "message": "複製了項目 $ID$ 的安全代碼", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "autofilledItemId": { + "message": "項目 $ID$ 已自動填入。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "createdCollectionId": { + "message": "已建立集合 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedCollectionId": { + "message": "已編輯集合 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "deletedCollectionId": { + "message": "已刪除集合 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Server Passwords" + } + } + }, + "editedPolicyId": { + "message": "已編輯原則 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "createdGroupId": { + "message": "已建立群組 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "editedGroupId": { + "message": "已編輯群組 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "deletedGroupId": { + "message": "已刪除群組 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Developers" + } + } + }, + "removedUserId": { + "message": "已移除使用者 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdAttachmentForItem": { + "message": "已為項目 $ID$ 建立附件。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "deletedAttachmentForItem": { + "message": "已為項目 $ID$ 刪除附件。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "editedCollectionsForItem": { + "message": "已為項目 $ID$ 編輯集合。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "invitedUserId": { + "message": "已邀請使用者 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmedUserId": { + "message": "已確認使用者 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedUserId": { + "message": "已編輯使用者 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "editedGroupsForUser": { + "message": "已編輯使用者 $ID$ 的群組。", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "unlinkedSsoUser": { + "message": "已為使用者 $ID$ 取消連結 SSO。", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "createdOrganizationId": { + "message": "已建立組織 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "addedOrganizationId": { + "message": "已新增組織 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "removedOrganizationId": { + "message": "已移除組織 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "accessedClientVault": { + "message": "已存取組織 $ID$ 的密碼庫。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "device": { + "message": "裝置" + }, + "view": { + "message": "檢視" + }, + "invalidDateRange": { + "message": "無效的日期範圍。" + }, + "errorOccurred": { + "message": "發生錯誤。" + }, + "userAccess": { + "message": "使用者存取" + }, + "userType": { + "message": "使用者類型" + }, + "groupAccess": { + "message": "群組存取" + }, + "groupAccessUserDesc": { + "message": "編輯此使用者所屬的群組。" + }, + "invitedUsers": { + "message": "已邀請使用者。" + }, + "resendInvitation": { + "message": "重新傳送邀請" + }, + "resendEmail": { + "message": "重新傳送電子郵件" + }, + "hasBeenReinvited": { + "message": "已重新邀請 $USER$。", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirm": { + "message": "確認" + }, + "confirmUser": { + "message": "確認使用者" + }, + "hasBeenConfirmed": { + "message": "$USER$ 已經確認。", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "confirmUsers": { + "message": "確認使用者" + }, + "usersNeedConfirmed": { + "message": "有使用者已接受邀請,但仍然需要確認。在確認之前,使用者將無法存取組織。" + }, + "startDate": { + "message": "開始日期" + }, + "endDate": { + "message": "结束日期" + }, + "verifyEmail": { + "message": "驗證電子郵件" + }, + "verifyEmailDesc": { + "message": "驗證您帳戶的電子郵件地址以使用所有功能。" + }, + "verifyEmailFirst": { + "message": "必須驗證您帳戶的電子郵件位址。" + }, + "checkInboxForVerification": { + "message": "請檢查您的電子郵件收件匣以取得驗證連結。" + }, + "emailVerified": { + "message": "您的電子郵件已驗證。" + }, + "emailVerifiedFailed": { + "message": "無法驗證電子郵件。請嘗試傳送一封新的驗證電子郵件。" + }, + "emailVerificationRequired": { + "message": "需要驗證電子郵件" + }, + "emailVerificationRequiredDesc": { + "message": "必須驗證您的電子郵件才能使用此功能。" + }, + "updateBrowser": { + "message": "更新瀏覽器" + }, + "updateBrowserDesc": { + "message": "未支援您使用的瀏覽器。網頁版密碼庫可能無法正常運作。" + }, + "joinOrganization": { + "message": "加入組織" + }, + "joinOrganizationDesc": { + "message": "您已被邀請加入以上組織。若想接受邀請,您需要登入或建立新的 Bitwarden 帳戶。" + }, + "inviteAccepted": { + "message": "已接受邀請" + }, + "inviteAcceptedDesc": { + "message": "管理員確認您的成員身分後,您便可以存取此組織。到時我們會向您傳送電子郵件通知。" + }, + "inviteAcceptFailed": { + "message": "無法接受邀請。請要求組織管理員傳送新的邀請。" + }, + "inviteAcceptFailedShort": { + "message": "無法接受邀請。$DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "rememberEmail": { + "message": "記住電子郵件地址" + }, + "recoverAccountTwoStepDesc": { + "message": "若您無法透過一般的兩步驟登入方式存取您的帳戶,您可以使用兩步驟登入復原碼以停用帳戶上的所有兩步驟登入方式。" + }, + "recoverAccountTwoStep": { + "message": "復原帳戶的兩步驟登入" + }, + "twoStepRecoverDisabled": { + "message": "兩步驟登入已在您的帳戶中停用。" + }, + "learnMore": { + "message": "深入了解" + }, + "deleteRecoverDesc": { + "message": "請在下方輸入您的電子郵件地址以復原及刪除您的帳戶。" + }, + "deleteRecoverEmailSent": { + "message": "如果您的帳戶存在,我們將傳送一封包含詳細指示的電子郵件。" + }, + "deleteRecoverConfirmDesc": { + "message": "您已要求刪除您的 Bitwarden 帳戶。點選下方的按鈕以確認。" + }, + "myOrganization": { + "message": "我的組織" + }, + "deleteOrganization": { + "message": "刪除組織" + }, + "deletingOrganizationContentWarning": { + "message": "輸入主密碼以確認刪除 $ORGANIZATION$ 及與之關聯的所有資料。$ORGANIZATION$ 中的密碼庫資料包含:", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "deletingOrganizationActiveUserAccountsWarning": { + "message": "刪除後,使用者帳戶仍然可用,但將不再與此組織關聯。" + }, + "deletingOrganizationIsPermanentWarning": { + "message": "刪除 $ORGANIZATION$ 是永久性動作,無法回復。", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "organizationDeleted": { + "message": "已刪除組織" + }, + "organizationDeletedDesc": { + "message": "該組織和所有關聯資料已刪除。" + }, + "organizationUpdated": { + "message": "已更新組織" + }, + "taxInformation": { + "message": "稅務資訊" + }, + "taxInformationDesc": { + "message": "對於美國境內的客戶,需要提供郵遞區號來滿足銷售稅要求,對於其他國家,您可以選擇提供稅務識別碼(VAT/GST)和/或地址以顯示在您的帳單上。" + }, + "billingPlan": { + "message": "方案", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlan": { + "message": "升級方案", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "changeBillingPlanUpgrade": { + "message": "為了將您的帳戶升級至另一個方案,請提供以下資訊。同時請確保您的帳戶已經有一個有效的付款方式。", + "description": "A billing plan/package. For example: families, teams, enterprise, etc." + }, + "invoiceNumber": { + "message": "帳單 #$NUMBER$", + "description": "ex. Invoice #79C66F0-0001", + "placeholders": { + "number": { + "content": "$1", + "example": "79C66F0-0001" + } + } + }, + "viewInvoice": { + "message": "檢視帳單" + }, + "downloadInvoice": { + "message": "下載帳單" + }, + "verifyBankAccount": { + "message": "驗證銀行帳戶" + }, + "verifyBankAccountDesc": { + "message": "我們已匯入了兩筆小額款項至您的銀行帳戶(需要 1-2 個工作天後才能到帳)。請在此輸入這兩筆款項的金額以驗證銀行帳戶。" + }, + "verifyBankAccountInitialDesc": { + "message": "只有在美國的客戶才能使用銀行帳戶付款。您必須驗證您的銀行帳戶。我們將在未來 1-2 個工作天內匯入兩筆小額款項。在組織的計費頁面上輸入款項金額以驗證銀行帳戶。" + }, + "verifyBankAccountFailureWarning": { + "message": "驗證銀行帳戶失敗將會導致付款失效,並且您的訂閱將會被取消。" + }, + "verifiedBankAccount": { + "message": "已驗證您的銀行帳戶。" + }, + "bankAccount": { + "message": "銀行帳戶" + }, + "amountX": { + "message": "金額 $COUNT$", + "description": "Used in bank account verification of micro-deposits. Amount, as in a currency amount. Ex. Amount 1 is $2.00, Amount 2 is $1.50", + "placeholders": { + "count": { + "content": "$1", + "example": "1" + } + } + }, + "routingNumber": { + "message": "匯款路徑編號", + "description": "Bank account routing number" + }, + "accountNumber": { + "message": "帳戶號碼" + }, + "accountHolderName": { + "message": "帳戶持有人姓名" + }, + "bankAccountType": { + "message": "帳戶類型" + }, + "bankAccountTypeCompany": { + "message": "公司" + }, + "bankAccountTypeIndividual": { + "message": "個人" + }, + "enterInstallationId": { + "message": "輸入您的安裝 ID" + }, + "limitSubscriptionDesc": { + "message": "為您的訂閲設定席位限制。達到此限制後,您將無法邀請新的使用者。" + }, + "maxSeatLimit": { + "message": "最大席位限制(選用)", + "description": "Upper limit of seats to allow through autoscaling" + }, + "maxSeatCost": { + "message": "最大潛在席位費用" + }, + "addSeats": { + "message": "新增席位", + "description": "Seat = User Seat" + }, + "removeSeats": { + "message": "移除席位", + "description": "Seat = User Seat" + }, + "subscriptionDesc": { + "message": "調整訂閱將會依比例變更您的帳單總額。若新邀請的使用者超過您的訂閱席位,您將立即收到依比例收取的額外使用者費用。" + }, + "subscriptionUserSeats": { + "message": "您的訂閱當中包含 $COUNT$ 位使用者的授權。", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "limitSubscription": { + "message": "限制訂閲(選用)" + }, + "subscriptionSeats": { + "message": "訂閲席位" + }, + "subscriptionUpdated": { + "message": "已更新訂閲" + }, + "additionalOptions": { + "message": "其他選項" + }, + "additionalOptionsDesc": { + "message": "如需更多管理訂閱協助,請聯絡客戶支援。" + }, + "subscriptionUserSeatsUnlimitedAutoscale": { + "message": "調整訂閱將會依比例變更您的帳單總額。若新邀請的使用者超過您的訂閱席位,您將立即收到依比例收取的額外使用者費用。" + }, + "subscriptionUserSeatsLimitedAutoscale": { + "message": "調整訂閱將會依比例變更您的帳單總額。若新邀請的使用者超過您的訂閱席位,您將立即收到依比例收取的額外使用者費用,直到您達到 $MAX$ 席位限制。", + "placeholders": { + "max": { + "content": "$1", + "example": "50" + } + } + }, + "subscriptionFreePlan": { + "message": "除非升級方案,否則您最多只能邀請 $COUNT$ 位使用者。", + "placeholders": { + "count": { + "content": "$1", + "example": "2" + } + } + }, + "subscriptionFamiliesPlan": { + "message": "除非升級方案,否則您最多只能邀請 $COUNT$ 位使用者。請聯絡客戶支援進行升級。", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionSponsoredFamiliesPlan": { + "message": "您的訂閱允許總共 $COUNT$ 位使用者。您的方案由外部組織贊助和支付費用。", + "placeholders": { + "count": { + "content": "$1", + "example": "6" + } + } + }, + "subscriptionMaxReached": { + "message": "調整訂閱將會依比例變更您的帳單總額。在不增加訂閱席位的情況下,您不能邀請超過 $COUNT$ 位使用者。", + "placeholders": { + "count": { + "content": "$1", + "example": "50" + } + } + }, + "seatsToAdd": { + "message": "要新增的席位數" + }, + "seatsToRemove": { + "message": "要移除的席位數" + }, + "seatsAddNote": { + "message": "增加使用者席位將會調整帳單總額,並立即透過您選擇的付款方式進行扣款。第一期費用將依照目前計費週期的剩餘時間依比例分配。" + }, + "seatsRemoveNote": { + "message": "移除使用者席位將會調整計費總額,這筆費用將依照比例返還並用於下一筆帳單費用中。" + }, + "adjustedSeats": { + "message": "調整了 $AMOUNT$ 個使用者席位。", + "placeholders": { + "amount": { + "content": "$1", + "example": "15" + } + } + }, + "keyUpdated": { + "message": "已更新金鑰" + }, + "updateKeyTitle": { + "message": "更新金鑰" + }, + "updateEncryptionKey": { + "message": "更新加密金鑰" + }, + "updateEncryptionKeyShortDesc": { + "message": "您目前使用的是過時的加密方式。" + }, + "updateEncryptionKeyDesc": { + "message": "我們已經採用更強大的加密金鑰,此金鑰提供了更強的安全性及更新功能。更新您的加密金鑰非常簡單快速,僅需輸入您的主密碼即可。此次更新最終將強制執行。" + }, + "updateEncryptionKeyWarning": { + "message": "更新加密金鑰後,您需要登出並重新登入目前使用的所有 Bitwarden 應用程式(如行動應用程式或瀏覽器擴充套件)。登出和重新登入(這會下載新的加密金鑰)失敗可能會導致資料損毀。我們將嘗試自動登出,但可能會有所延遲。" + }, + "updateEncryptionKeyExportWarning": { + "message": "您儲存的任何已加密匯出的檔案也將變成無效。" + }, + "subscription": { + "message": "訂閱" + }, + "loading": { + "message": "正在載入" + }, + "upgrade": { + "message": "升級" + }, + "upgradeOrganization": { + "message": "升級組織" + }, + "upgradeOrganizationDesc": { + "message": "免費組織不提供此功能。切換至付費方案以解鎖更多功能。" + }, + "createOrganizationStep1": { + "message": "建立組織:步驟 1" + }, + "createOrganizationCreatePersonalAccount": { + "message": "在建立組織之前,首先需要建立一個免費的個人帳戶。" + }, + "refunded": { + "message": "已退款" + }, + "nothingSelected": { + "message": "您未選取任何内容。" + }, + "acceptPolicies": { + "message": "一旦核取此方塊,即表示您同意下列條款:" + }, + "acceptPoliciesError": { + "message": "尚未接受服務條款與隱私權政策。" + }, + "termsOfService": { + "message": "服務條款" + }, + "privacyPolicy": { + "message": "隱私權政策" + }, + "filters": { + "message": "篩選器" + }, + "vaultTimeout": { + "message": "密碼庫逾時時間" + }, + "vaultTimeoutDesc": { + "message": "選擇密碼庫多久之後才會逾時並執行選取動作。" + }, + "oneMinute": { + "message": "1 分鐘" + }, + "fiveMinutes": { + "message": "5 分鐘" + }, + "fifteenMinutes": { + "message": "15 分鐘" + }, + "thirtyMinutes": { + "message": "30 分鐘" + }, + "oneHour": { + "message": "1 小時" + }, + "fourHours": { + "message": "4 小時" + }, + "onRefresh": { + "message": "瀏覽器重新重新整理時" + }, + "dateUpdated": { + "message": "已更新", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "密碼更新於", + "description": "ex. Date this password was updated" + }, + "organizationIsDisabled": { + "message": "已停用組織。" + }, + "licenseIsExpired": { + "message": "授權已逾期。" + }, + "updatedUsers": { + "message": "已更新使用者" + }, + "selected": { + "message": "已選擇" + }, + "ownership": { + "message": "擁有權" + }, + "whoOwnsThisItem": { + "message": "誰擁有這個項目?" + }, + "strong": { + "message": "強", + "description": "ex. A strong password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "good": { + "message": "好", + "description": "ex. A good password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weak": { + "message": "弱", + "description": "ex. A weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "veryWeak": { + "message": "非常弱", + "description": "ex. A very weak password. Scale: Very Weak -> Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "主密碼強度太弱" + }, + "weakMasterPasswordDesc": { + "message": "您設定的主密碼很脆弱。您應該使用高強度的密碼(或密碼短語)來正確保護您的 bitwarden 帳戶。仍要使用這組主密碼嗎?" + }, + "rotateAccountEncKey": { + "message": "同時輪換帳戶的加密金鑰" + }, + "rotateEncKeyTitle": { + "message": "輪換加密金鑰" + }, + "rotateEncKeyConfirmation": { + "message": "確定要輪換帳戶的加密金鑰嗎?" + }, + "attachmentsNeedFix": { + "message": "此項目包含需要修正的舊檔案附件。" + }, + "attachmentFixDesc": { + "message": "這是一個需要修正的舊檔案附件。點選此處以深入了解。" + }, + "fix": { + "message": "修正", + "description": "This is a verb. ex. 'Fix The Car'" + }, + "oldAttachmentsNeedFixDesc": { + "message": "需要先修正密碼庫中舊的檔案附件,然後才能輪換帳戶的加密金鑰。" + }, + "yourAccountsFingerprint": { + "message": "您帳戶的指紋短語", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "fingerprintEnsureIntegrityVerify": { + "message": "為確保加密金鑰的完整性,繼續之前請先驗證使用者指紋短語。", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "dontAskFingerprintAgain": { + "message": "不再提示驗證已邀請使用者的指紋短語(不推薦)", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "free": { + "message": "免費", + "description": "Free, as in 'Free beer'" + }, + "apiKey": { + "message": "API 金鑰" + }, + "apiKeyDesc": { + "message": "您的 API 金鑰可用於驗證 Bitwarden 公用 API。" + }, + "apiKeyRotateDesc": { + "message": "輪換 API 金鑰將使前一份金鑰失效。若您認為目前的金鑰不再安全,您可以輪換您的 API 金鑰。" + }, + "apiKeyWarning": { + "message": "您的 API 金鑰擁有對組織的完整存取權限,請儲存在安全的地方。" + }, + "userApiKeyDesc": { + "message": "您的 API 金鑰可用於在 Bitwarden CLI 中進行身分驗證。" + }, + "userApiKeyWarning": { + "message": "您的 API 金鑰是另一套替代的身分驗證機制,請儲存在安全的地方。" + }, + "oauth2ClientCredentials": { + "message": "OAuth 2.0 用戶端憑證", + "description": "'OAuth 2.0' is a programming protocol. It should probably not be translated." + }, + "viewApiKey": { + "message": "檢視 API 金鑰" + }, + "rotateApiKey": { + "message": "輪換 API 金鑰" + }, + "selectOneCollection": { + "message": "您必須至少選擇一個集合。" + }, + "couldNotChargeCardPayInvoice": { + "message": "我們無法從您的支付卡扣款。請檢視並支付以下尚未付清的款項。" + }, + "inAppPurchase": { + "message": "應用程式內購買" + }, + "cannotPerformInAppPurchase": { + "message": "使用程式內購買這種付款方式時,無法執行這個動作。" + }, + "manageSubscriptionFromStore": { + "message": "您必須在進行應用程式內購買的商店中管理訂閱。" + }, + "minLength": { + "message": "最小長度" + }, + "clone": { + "message": "複製" + }, + "masterPassPolicyDesc": { + "message": "設定對主密碼強度的最低要求。" + }, + "twoStepLoginPolicyDesc": { + "message": "要求使用者對個人帳戶設定兩步驟登入。" + }, + "twoStepLoginPolicyWarning": { + "message": "非擁有者或管理員,並且其個人帳戶未啟用兩步驟登入的組織成員將從組織中移除,他們將收到一封關於此變更的電子郵件通知。" + }, + "twoStepLoginPolicyUserWarning": { + "message": "您是組織成員,而組織要求您的使用者帳戶啟用兩步驟登入。如果停用所有兩步驟登入方式,您將被自動從這些組織移除。" + }, + "passwordGeneratorPolicyDesc": { + "message": "設定密碼產生器設定的最低要求。" + }, + "passwordGeneratorPolicyInEffect": { + "message": "一個或多個組織原則正影響密碼產生器設定。" + }, + "masterPasswordPolicyInEffect": { + "message": "一個或多個組織原則要求您的主密碼須符合下列條件:" + }, + "policyInEffectMinComplexity": { + "message": "最小複雜度為 $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "最小長度為 $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "至少包含一個大寫字元" + }, + "policyInEffectLowercase": { + "message": "至少包含一個小寫字元" + }, + "policyInEffectNumbers": { + "message": "至少包含一個數字" + }, + "policyInEffectSpecial": { + "message": "至少包含一個下列特殊字元:$CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "新的主密碼不符合原則要求。" + }, + "minimumNumberOfWords": { + "message": "字數下限" + }, + "defaultType": { + "message": "預設類型" + }, + "userPreference": { + "message": "使用者偏好設定" + }, + "vaultTimeoutAction": { + "message": "密碼庫逾時動作" + }, + "vaultTimeoutActionLockDesc": { + "message": "鎖定密碼庫後需要重新輸入主密碼才能再次存取。" + }, + "vaultTimeoutActionLogOutDesc": { + "message": "登出密碼庫後需要重新驗證才能再次存取。" + }, + "lock": { + "message": "鎖定", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "垃圾桶", + "description": "Noun: A special folder for holding deleted items that have not yet been permanently deleted" + }, + "searchTrash": { + "message": "搜尋垃圾桶" + }, + "permanentlyDelete": { + "message": "永久刪除" + }, + "permanentlyDeleteSelected": { + "message": "永久刪除已選取項目" + }, + "permanentlyDeleteItem": { + "message": "永久刪除項目" + }, + "permanentlyDeleteItemConfirmation": { + "message": "您確定要永久刪除此項目嗎?" + }, + "permanentlyDeletedItem": { + "message": "已永久刪除項目" + }, + "permanentlyDeletedItems": { + "message": "已永久刪除項目" + }, + "permanentlyDeleteSelectedItemsDesc": { + "message": "您已經選取了 $COUNT$ 個項目要永久刪除。確定要永久刪除這些項目嗎?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "permanentlyDeletedItemId": { + "message": "已永久刪除 $ID$ 項目。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "restore": { + "message": "還原" + }, + "restoreSelected": { + "message": "還原已選取的項目" + }, + "restoreItem": { + "message": "還原項目" + }, + "restoredItem": { + "message": "已還原項目" + }, + "restoredItems": { + "message": "已還原項目" + }, + "restoreItemConfirmation": { + "message": "您確定要還原此項目嗎?" + }, + "restoreItems": { + "message": "還原項目" + }, + "restoreSelectedItemsDesc": { + "message": "您已經選取了 $COUNT$ 個項目要還原。確定要還原這些項目嗎?", + "placeholders": { + "count": { + "content": "$1", + "example": "150" + } + } + }, + "restoredItemId": { + "message": "已還原項目 $ID$。", + "placeholders": { + "id": { + "content": "$1", + "example": "Google" + } + } + }, + "vaultTimeoutLogOutConfirmation": { + "message": "選擇登出將會在密碼庫逾時後移除對密碼庫的所有存取權限,若要重新驗證則需連線網路。確定要使用此設定嗎?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "逾時動作確認" + }, + "hidePasswords": { + "message": "隱藏密碼" + }, + "countryPostalCodeRequiredDesc": { + "message": "我們僅收集此資訊用來計算營業稅與財務報表。" + }, + "includeVAT": { + "message": "包含 VAT/GST 稅務資訊(選用)" + }, + "taxIdNumber": { + "message": "VAT/GST 稅務 ID" + }, + "taxInfoUpdated": { + "message": "已更新稅務資訊。" + }, + "setMasterPassword": { + "message": "設定主密碼" + }, + "ssoCompleteRegistration": { + "message": "要完成 SSO 登入設定,請設定一組主密碼以存取和保護您的密碼庫。" + }, + "identifier": { + "message": "識別碼" + }, + "organizationIdentifier": { + "message": "組織識別碼" + }, + "ssoLogInWithOrgIdentifier": { + "message": "若要使用組織的單一登入入口登入。請先輸入您的組織識別碼。" + }, + "enterpriseSingleSignOn": { + "message": "企業單一登入" + }, + "ssoHandOff": { + "message": "您現在可以關閉此分頁,並且回到擴充套件繼續。" + }, + "includeAllTeamsFeatures": { + "message": "包含所有團隊版功能" + }, + "includeSsoAuthentication": { + "message": "透過 SAML2.0 和 OpenID Connect 進行 SSO 驗證" + }, + "includeEnterprisePolicies": { + "message": "企業原則" + }, + "ssoValidationFailed": { + "message": "SSO 驗證失敗" + }, + "ssoIdentifierRequired": { + "message": "需要組織識別碼。" + }, + "unlinkSso": { + "message": "取消連結 SSO" + }, + "unlinkSsoConfirmation": { + "message": "您確定要取消本組織的 SSO 連結嗎?" + }, + "linkSso": { + "message": "連結 SSO" + }, + "singleOrg": { + "message": "單一組織" + }, + "singleOrgDesc": { + "message": "限制使用者加入任何其他組織。" + }, + "singleOrgBlockCreateMessage": { + "message": "您目前的組織原則不允許您加入多個組織。請聯絡您的組織管理員或從其他 Bitwarden 帳戶註冊。" + }, + "singleOrgPolicyWarning": { + "message": "不是擁有者或管理員並且已經是其他組織的成員的組織成員將從您的組織中移除。" + }, + "requireSso": { + "message": "單一登入驗證" + }, + "requireSsoPolicyDesc": { + "message": "要求使用者以企業單一登入方法登入。" + }, + "prerequisite": { + "message": "先決條件" + }, + "requireSsoPolicyReq": { + "message": "必須先開啟單一組織企業原則,才能開啟此原則。" + }, + "requireSsoPolicyReqError": { + "message": "未啟用單一組織原則。" + }, + "requireSsoExemption": { + "message": "組織擁有者與管理員不受此原則的執行影響。" + }, + "sendTypeFile": { + "message": "檔案" + }, + "sendTypeText": { + "message": "文字" + }, + "createSend": { + "message": "建立新 Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editSend": { + "message": "編輯 Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "createdSend": { + "message": "已建立 Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "editedSend": { + "message": "已編輯 Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletedSend": { + "message": "已刪除 Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSend": { + "message": "刪除 Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deleteSendConfirmation": { + "message": "您確定要刪除此 Send 嗎?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "whatTypeOfSend": { + "message": "這是什麽類型的 Send?", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "deletionDate": { + "message": "刪除日期" + }, + "deletionDateDesc": { + "message": "此 Send 將在指定的日期和時間後被永久刪除。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDate": { + "message": "逾期日期" + }, + "expirationDateDesc": { + "message": "如果設定此選項,對此 Send 的存取將在指定的日期和時間後逾期。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "maxAccessCount": { + "message": "最大存取次數" + }, + "maxAccessCountDesc": { + "message": "如果設定此選項,當達到最大存取次數時,使用者將無法再次存取此 Send。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "currentAccessCount": { + "message": "目前存取次數" + }, + "sendPasswordDesc": { + "message": "選用。使用者需提供密碼才能存取此 Send。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNotesDesc": { + "message": "關於此 Send 的私人備註。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disabled": { + "message": "已停用" + }, + "sendLink": { + "message": "Send 連結", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "copySendLink": { + "message": "複製 Send 連結", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "removePassword": { + "message": "移除密碼" + }, + "removedPassword": { + "message": "已移除密碼" + }, + "removePasswordConfirmation": { + "message": "您確定要移除此密碼嗎?" + }, + "hideEmail": { + "message": "對收件人隱藏我的電子郵件地址。" + }, + "disableThisSend": { + "message": "停用此 Send 以阻止任何人存取。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "allSends": { + "message": "所有 Send" + }, + "maxAccessCountReached": { + "message": "已達最大存取次數", + "description": "This text will be displayed after a Send has been accessed the maximum amount of times." + }, + "pendingDeletion": { + "message": "等待刪除" + }, + "expired": { + "message": "已逾期" + }, + "searchSends": { + "message": "搜尋 Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPassword": { + "message": "此 Send 受到密碼保護,請在下方輸入密碼以繼續。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendProtectedPasswordDontKnow": { + "message": "不知道密碼?請向此 Send 的寄件者索取密碼。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendHiddenByDefault": { + "message": "此 Send 預設為隱藏。您可使用下方的按鈕切換其可見度。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "downloadFile": { + "message": "下載檔案" + }, + "sendAccessUnavailable": { + "message": "您嘗試存取的 Send 不存在或無法再使用。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "missingSendFile": { + "message": "找不到與此 Send 關聯的檔案。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "noSendsInList": { + "message": "沒有可列出的 Send。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "emergencyAccess": { + "message": "緊急存取" + }, + "emergencyAccessDesc": { + "message": "授予和管理可信任連絡人的緊急存取權限。當遇到緊急情况時,可信任連絡人可以要求存取檢視或接管您帳戶的權限。瀏覽說明頁面以取得有關零知識共用的工作原理和更多詳細資訊。" + }, + "emergencyAccessOwnerWarning": { + "message": "您是一個或多個組織的擁有者。如果您授予緊急聯絡人接管存取權限,那麼他們在接管後將能夠以組織擁有者的身分使用您的所有權限。" + }, + "trustedEmergencyContacts": { + "message": "信任的緊急聯絡人" + }, + "noTrustedContacts": { + "message": "您尚未新增任何緊急聯絡人,請邀請一位可信任的聯絡人以開始。" + }, + "addEmergencyContact": { + "message": "新增緊急聯絡人" + }, + "designatedEmergencyContacts": { + "message": "已指定為緊急聯絡人" + }, + "noGrantedAccess": { + "message": "您尚未被指定為任何人的緊急聯絡人。" + }, + "inviteEmergencyContact": { + "message": "邀請緊急聯絡人" + }, + "editEmergencyContact": { + "message": "編輯緊急聯絡人" + }, + "inviteEmergencyContactDesc": { + "message": "透過在下方輸入他們的 Bitwarden 帳戶的電子郵件地址,來邀請新的緊急聯絡人。若他們還沒有 Bitwarden 帳戶,系統將提示他們建立新帳戶。" + }, + "emergencyAccessRecoveryInitiated": { + "message": "已啟動緊急存取" + }, + "emergencyAccessRecoveryApproved": { + "message": "已核准緊急存取" + }, + "viewDesc": { + "message": "可以檢視您擁有的密碼庫中的所有項目。" + }, + "takeover": { + "message": "接管" + }, + "takeoverDesc": { + "message": "可以使用新的主密碼重設您的帳戶。" + }, + "waitTime": { + "message": "等候時間" + }, + "waitTimeDesc": { + "message": "自動授予存取權限前所需的時間。" + }, + "oneDay": { + "message": "1 天" + }, + "days": { + "message": "$DAYS$ 天", + "placeholders": { + "days": { + "content": "$1", + "example": "1" + } + } + }, + "invitedUser": { + "message": "已邀請使用者。" + }, + "acceptEmergencyAccess": { + "message": "您已被邀請成為上述使用者的緊急聯絡人。要接受邀請,您需要登入或建立新的 Bitwarden 帳戶。" + }, + "emergencyInviteAcceptFailed": { + "message": "無法接受邀請。請向使用者要求傳送新的邀請。" + }, + "emergencyInviteAcceptFailedShort": { + "message": "無法接受邀請。$DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must enable 2FA on your user account before you can join this organization." + } + } + }, + "emergencyInviteAcceptedDesc": { + "message": "確認您的身份後,您便可以存取此使用者的緊急選項。到時我們會向您傳送電子郵件通知。" + }, + "requestAccess": { + "message": "要求存取權限" + }, + "requestAccessConfirmation": { + "message": "您確定要申請緊急存取嗎?在 $WAITTIME$ 天之後或使用者手動批准要求時您將取得存取權限。", + "placeholders": { + "waittime": { + "content": "$1", + "example": "1" + } + } + }, + "requestSent": { + "message": "來自 $USER$ 的緊急存取要求。我們將透過電子郵件通知您何時可以繼續。", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "approve": { + "message": "核准" + }, + "reject": { + "message": "拒絕" + }, + "approveAccessConfirmation": { + "message": "您確定要核准緊急存取嗎?這將允許 $USER$ $ACTION$ 您的帳戶。", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + }, + "action": { + "content": "$2", + "example": "View" + } + } + }, + "emergencyApproved": { + "message": "已核准緊急存取。" + }, + "emergencyRejected": { + "message": "已拒絕緊急存取" + }, + "passwordResetFor": { + "message": "$USER$ 的密碼已重設。您現在可以使用新密碼登入了。", + "placeholders": { + "user": { + "content": "$1", + "example": "John Smith" + } + } + }, + "personalOwnership": { + "message": "個人擁有權" + }, + "personalOwnershipPolicyDesc": { + "message": "透過移除個人擁有權選項要求使用者將密碼庫項目儲存至組織。" + }, + "personalOwnershipExemption": { + "message": "組織擁有者與管理員不受此原則的執行影響。" + }, + "personalOwnershipSubmitError": { + "message": "由於某個企業原則,您被限制為儲存項目至您的個人密碼庫。將擁有權變更為組織,並從可用的集合中選擇。" + }, + "disableSend": { + "message": "停用 Send" + }, + "disableSendPolicyDesc": { + "message": "不允許使用者建立或編輯 Bitwarden Send。但允許刪除現有的 Send。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "disableSendExemption": { + "message": "可以管理組織原則的組織使用者豁免此原則的執行。" + }, + "sendDisabled": { + "message": "已停用 Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendDisabledWarning": { + "message": "由於企業原則限制,您只能刪除現有的 Send。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptions": { + "message": "Send 選項", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyDesc": { + "message": "設定用於建立和編輯 Send 的選項。", + "description": "'Sends' is a plural noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsExemption": { + "message": "可以管理組織原則的組織使用者豁免此原則的執行。" + }, + "disableHideEmail": { + "message": "不允許使用者在建立或編輯 Send 時隱藏他們的電子郵件位址。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendOptionsPolicyInEffect": { + "message": "以下組織原則目前作用中:" + }, + "sendDisableHideEmailInEffect": { + "message": "使用者在建立或編輯 Send 時不允許隱藏他們的電子郵件地址。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "modifiedPolicyId": { + "message": "原則 $ID$ 已修改。", + "placeholders": { + "id": { + "content": "$1", + "example": "Master Password" + } + } + }, + "planPrice": { + "message": "方案價格" + }, + "estimatedTax": { + "message": "估計稅額" + }, + "custom": { + "message": "自訂" + }, + "customDesc": { + "message": "進階設定允許更精細地控制使用者權限。" + }, + "permissions": { + "message": "權限" + }, + "accessEventLogs": { + "message": "存取事件紀錄" + }, + "accessImportExport": { + "message": "存取匯入/匯出" + }, + "accessReports": { + "message": "存取報告" + }, + "missingPermissions": { + "message": "您欠缺執行本動作必要的權限。" + }, + "manageAllCollections": { + "message": "管理所有集合。" + }, + "createNewCollections": { + "message": "建立新的集合" + }, + "editAnyCollection": { + "message": "編輯任何集合" + }, + "deleteAnyCollection": { + "message": "刪除任何集合" + }, + "manageAssignedCollections": { + "message": "管理已指派的集合" + }, + "editAssignedCollections": { + "message": "編輯已指派的集合" + }, + "deleteAssignedCollections": { + "message": "刪除已指派的集合" + }, + "manageGroups": { + "message": "管理群組" + }, + "managePolicies": { + "message": "管理原則" + }, + "manageSso": { + "message": "管理 SSO" + }, + "manageUsers": { + "message": "管理使用者" + }, + "manageResetPassword": { + "message": "管理密碼重設" + }, + "disableRequiredError": { + "message": "您必須先手動停用 $POLICYNAME$ 原則,然後才能停用此原則。", + "placeholders": { + "policyName": { + "content": "$1", + "example": "Single Sign-On Authentication" + } + } + }, + "personalOwnershipPolicyInEffect": { + "message": "組織原則正在影響您的擁有權選項。" + }, + "personalOwnershipPolicyInEffectImports": { + "message": "組織原則已禁止您將項目匯入至您的個人密碼庫。" + }, + "personalOwnershipCheckboxDesc": { + "message": "停用組織使用者的個人擁有權。" + }, + "textHiddenByDefault": { + "message": "存取此 Send 時,將預設隱藏文字", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendNameDesc": { + "message": "用於描述此 Send 的易記名稱。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendTextDesc": { + "message": "您想要傳送的文字。" + }, + "sendFileDesc": { + "message": "您想要傳送的檔案。" + }, + "copySendLinkOnSave": { + "message": "儲存時複製連結至剪貼簿以便共用此 Send。" + }, + "sendLinkLabel": { + "message": "Send 連結", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "send": { + "message": "Send", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineProductDesc": { + "message": "Bitwarden Send 可以輕鬆、安全地向其他人傳輸敏感的暫存資訊。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "sendAccessTaglineLearnMore": { + "message": "深入了解", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more about** Bitwarden Send or sign up to try it today.'" + }, + "sendVaultCardProductDesc": { + "message": "與任何人直接共用文字或檔案。" + }, + "sendVaultCardLearnMore": { + "message": "深入了解", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**Learn more**, see how it works, or try it now. '" + }, + "sendVaultCardSee": { + "message": "參閲", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, **see** how it works, or try it now.'" + }, + "sendVaultCardHowItWorks": { + "message": "運作方式", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see **how it works**, or try it now.'" + }, + "sendVaultCardOr": { + "message": "或", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, **or** try it now.'" + }, + "sendVaultCardTryItNow": { + "message": "立即嘗試", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more, see how it works, or **try it now**.'" + }, + "sendAccessTaglineOr": { + "message": "或", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send **or** sign up to try it today.'" + }, + "sendAccessTaglineSignUp": { + "message": "註冊", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or **sign up** to try it today.'" + }, + "sendAccessTaglineTryToday": { + "message": "現在就試試。", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Learn more about Bitwarden Send or sign up to **try it today.**'" + }, + "sendCreatorIdentifier": { + "message": "Bitwarden 使用者 $USER_IDENTIFIER$ 與您共用了以下內容", + "placeholders": { + "user_identifier": { + "content": "$1", + "example": "An email address" + } + } + }, + "viewSendHiddenEmailWarning": { + "message": "建立此 Send 的 Bitwarden 使用者已選擇隱藏他們的電子郵件地址。在使用或下載此連結的內容之前,應確保您信任此連結的來源。", + "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." + }, + "expirationDateIsInvalid": { + "message": "指定的逾期日期無效。" + }, + "deletionDateIsInvalid": { + "message": "指定的刪除日期無效。" + }, + "expirationDateAndTimeRequired": { + "message": "必須指定逾期日期和時間。" + }, + "deletionDateAndTimeRequired": { + "message": "要求指定刪除日期和時間。" + }, + "dateParsingError": { + "message": "儲存刪除日期和逾期日期時發生錯誤。" + }, + "webAuthnFallbackMsg": { + "message": "要驗證您的 2FA,請點選下方的按鈕。" + }, + "webAuthnAuthenticate": { + "message": "驗證 WebAuthn" + }, + "webAuthnNotSupported": { + "message": "此瀏覽器不支援 WebAuthn。" + }, + "webAuthnSuccess": { + "message": "WebAuthn 驗證成功!您可以關閉此分頁。" + }, + "hintEqualsPassword": { + "message": "密碼提示不能與您的密碼相同。" + }, + "enrollPasswordReset": { + "message": "註冊密碼重設" + }, + "enrolledPasswordReset": { + "message": "已註冊密碼重設" + }, + "withdrawPasswordReset": { + "message": "撤銷密碼重設" + }, + "enrollPasswordResetSuccess": { + "message": "註冊成功!" + }, + "withdrawPasswordResetSuccess": { + "message": "撤銷成功!" + }, + "eventEnrollPasswordReset": { + "message": "使用者 $ID$ 註冊了密碼重設協助。", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventWithdrawPasswordReset": { + "message": "使用者 $ID$ 撤銷了密碼重設協助。", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventAdminPasswordReset": { + "message": "重設使用者 $ID$ 的主密碼", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "eventResetSsoLink": { + "message": "重設使用者 $ID$ 的 SSO 連結", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "firstSsoLogin": { + "message": "$ID$ 第一次使用 SSO 登入", + "placeholders": { + "id": { + "content": "$1", + "example": "John Smith" + } + } + }, + "resetPassword": { + "message": "重設密碼" + }, + "resetPasswordLoggedOutWarning": { + "message": "接下來會將 $NAME$ 登出目前的工作階段,並要求他們重新登入帳戶。其他裝置上的活動工作階段最多會保持一個小時。", + "placeholders": { + "name": { + "content": "$1", + "example": "John Smith" + } + } + }, + "thisUser": { + "message": "此使用者" + }, + "resetPasswordMasterPasswordPolicyInEffect": { + "message": "一個或多個組織原則要求主密碼須符合下列條件:" + }, + "resetPasswordSuccess": { + "message": "密碼重設成功!" + }, + "resetPasswordEnrollmentWarning": { + "message": "註冊後將允許組織管理者變更您的主密碼。確定要註冊嗎?" + }, + "resetPasswordPolicy": { + "message": "主密碼重設" + }, + "resetPasswordPolicyDescription": { + "message": "允許組織管理者重設組織使用者的主密碼。" + }, + "resetPasswordPolicyWarning": { + "message": "組織使用者需要先自行註冊或被自動註冊後,管理者才能重設他們的主密碼。" + }, + "resetPasswordPolicyAutoEnroll": { + "message": "自動註冊" + }, + "resetPasswordPolicyAutoEnrollDescription": { + "message": "所有接受邀請的使用者,將會被自動註冊密碼重設,並且不允許撤銷。" + }, + "resetPasswordPolicyAutoEnrollWarning": { + "message": "已經在組織中的使用者將不會被註冊密碼重設。他們需要先自行註冊後管理者才能重設他們的主密碼。" + }, + "resetPasswordPolicyAutoEnrollCheckbox": { + "message": "要求為新使用者啟用自動註冊" + }, + "resetPasswordAutoEnrollInviteWarning": { + "message": "此組織有一個可以為您自動註冊密碼重設的企業原則。註冊後將允許組織管理員變更您的主密碼。" + }, + "resetPasswordOrgKeysError": { + "message": "組織金鑰回應為 null" + }, + "resetPasswordDetailsError": { + "message": "重設密碼詳細資訊回應為 null" + }, + "trashCleanupWarning": { + "message": "垃圾桶中超過 30 天的密碼將會被自動刪除。" + }, + "trashCleanupWarningSelfHosted": { + "message": "垃圾桶中超過一定時間的密碼將會被自動刪除。" + }, + "passwordPrompt": { + "message": "重新詢問主密碼" + }, + "passwordConfirmation": { + "message": "確認主密碼" + }, + "passwordConfirmationDesc": { + "message": "此動作受到保護。若要繼續,請重新輸入您的主密碼以驗證您的身份。" + }, + "reinviteSelected": { + "message": "重新傳送邀請" + }, + "noSelectedUsersApplicable": { + "message": "此動作不適用於任何已選取的使用者。" + }, + "removeUsersWarning": { + "message": "您確定要移除以下使用者嗎?這可能需要幾秒鐘的時間,並且不能中斷或取消。" + }, + "theme": { + "message": "主題" + }, + "themeDesc": { + "message": "選擇網頁密碼庫主題。" + }, + "themeSystem": { + "message": "使用系統主題" + }, + "themeDark": { + "message": "深色" + }, + "themeLight": { + "message": "淺色" + }, + "confirmSelected": { + "message": "確認選取" + }, + "bulkConfirmStatus": { + "message": "批次作業狀態" + }, + "bulkConfirmMessage": { + "message": "已成功確認。" + }, + "bulkReinviteMessage": { + "message": "已成功重新邀請。" + }, + "bulkRemovedMessage": { + "message": "已成功移除。" + }, + "bulkFilteredMessage": { + "message": "已排除,不適用於此動作。" + }, + "fingerprint": { + "message": "指紋" + }, + "removeUsers": { + "message": "移除使用者" + }, + "error": { + "message": "錯誤" + }, + "resetPasswordManageUsers": { + "message": "必須啟用管理密碼重設權限後才能啟用管理使用者權限" + }, + "setupProvider": { + "message": "提供者設定" + }, + "setupProviderLoginDesc": { + "message": "已邀請您設定一個新的提供者。若要繼續,您需要登入或建立一個新的 Bitwarden 帳戶。" + }, + "setupProviderDesc": { + "message": "請在下方輸入詳細資訊以完成提供者設定。若您有任何問題,請聯絡客戶支援。" + }, + "providerName": { + "message": "提供者名稱" + }, + "providerSetup": { + "message": "已完成提供者設定。" + }, + "clients": { + "message": "客户" + }, + "providerAdmin": { + "message": "提供者管理員" + }, + "providerAdminDesc": { + "message": "具有最高權限的使用者,可以管理提供者的所有層面也可以存取和管理客戶組織。" + }, + "serviceUser": { + "message": "服務使用者" + }, + "serviceUserDesc": { + "message": "服務使用者可以存取和管理所有客戶組織。" + }, + "providerInviteUserDesc": { + "message": "透過在下方輸入他們的 Bitwarden 帳戶電子郵件位址,來邀請新的使用者加入您的提供者。若他們還沒有 Bitwarden 帳戶,將提示他們建立新帳戶。" + }, + "joinProvider": { + "message": "加入提供者" + }, + "joinProviderDesc": { + "message": "您已受邀請加入上方所列的提供者。若想接受邀請,您需要登入或建立新的 Bitwarden 帳戶。" + }, + "providerInviteAcceptFailed": { + "message": "無法接受邀請。請要求提供者管理員傳送新的邀請。" + }, + "providerInviteAcceptedDesc": { + "message": "管理員確認您的成員身分後,您便可以存取此提供者。到時我們會向您傳送電子郵件通知。" + }, + "providerUsersNeedConfirmed": { + "message": "有使用者已接受邀請,但仍然需要確認。在確認之前,使用者將無法存取提供者。" + }, + "provider": { + "message": "提供者" + }, + "newClientOrganization": { + "message": "新的客戶組織" + }, + "newClientOrganizationDesc": { + "message": "建立一個新的客戶組織,該組織將作為提供者與您建立關聯。您將能夠存取和管理此組織。" + }, + "addExistingOrganization": { + "message": "新增現有組織" + }, + "myProvider": { + "message": "我的提供者" + }, + "addOrganizationConfirmation": { + "message": "您確定要將 $ORGANIZATION$ 新增為 $PROVIDER$ 的客戶嗎?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + }, + "provider": { + "content": "$2", + "example": "My Provider Name" + } + } + }, + "organizationJoinedProvider": { + "message": "已成功將組織新增至提供者" + }, + "accessingUsingProvider": { + "message": "正在使用提供者 $PROVIDER$ 存取組織", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "providerIsDisabled": { + "message": "已停用提供者。" + }, + "providerUpdated": { + "message": "已更新提供者" + }, + "yourProviderIs": { + "message": "您的提供者為 $PROVIDER$。他們對您的組織具有管理和計費權限。", + "placeholders": { + "provider": { + "content": "$1", + "example": "My Provider Name" + } + } + }, + "detachedOrganization": { + "message": "組織 $ORGANIZATION$ 已與您的提供者中斷連結。", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "detachOrganizationConfirmation": { + "message": "您確定要分離此組織嗎?該組織將繼續存在,但不再由此提供者管理。" + }, + "add": { + "message": "新增" + }, + "updatedMasterPassword": { + "message": "已更新主密碼" + }, + "updateMasterPassword": { + "message": "更新主密碼" + }, + "updateMasterPasswordWarning": { + "message": "您的主密碼最近被您的組織管理者變更過。您必須現在更新主密碼才能存取密碼庫。繼續操作會登出您目前的工作階段,並要求您重新登入帳戶。其他裝置上的活動工作階段最多會保持一個小時。" + }, + "masterPasswordInvalidWarning": { + "message": "您的主密碼不符合此組織原則的要求。您必須現在更新主密碼才可以加入此組織。繼續操作會登出您目前的工作階段,並要求您重新登入帳戶。其他裝置上的活動工作階段最多會保持一個小時。" + }, + "maximumVaultTimeout": { + "message": "密碼庫逾時時間" + }, + "maximumVaultTimeoutDesc": { + "message": "為所有使用者設定最大密碼庫逾時時間。" + }, + "maximumVaultTimeoutLabel": { + "message": "最大密碼庫逾時時間" + }, + "invalidMaximumVaultTimeout": { + "message": "無效的最大密碼庫逾時時間。" + }, + "hours": { + "message": "小時" + }, + "minutes": { + "message": "分鐘" + }, + "vaultTimeoutPolicyInEffect": { + "message": "您的組織原則正在影響您的密碼庫逾時時間。密碼庫逾時時間最多可以設定到 $HOURS$ 小時 $MINUTES$ 分鐘。", + "placeholders": { + "hours": { + "content": "$1", + "example": "5" + }, + "minutes": { + "content": "$2", + "example": "5" + } + } + }, + "customVaultTimeout": { + "message": "自訂密碼庫逾時時間" + }, + "vaultTimeoutToLarge": { + "message": "您的密碼庫逾時時間超過組織設定的限制。" + }, + "disablePersonalVaultExport": { + "message": "停用個人密碼庫匯出" + }, + "disablePersonalVaultExportDesc": { + "message": "禁止使用者匯出個人密碼庫資料。" + }, + "vaultExportDisabled": { + "message": "已停用密碼庫匯出" + }, + "personalVaultExportPolicyInEffect": { + "message": "一個或多個組織原則禁止您匯出個人密碼庫。" + }, + "selectType": { + "message": "選擇 SSO 類型" + }, + "type": { + "message": "類型" + }, + "openIdConnectConfig": { + "message": "OpenID 連線設定" + }, + "samlSpConfig": { + "message": "SAML 服務提供程式設定" + }, + "samlIdpConfig": { + "message": "SAML 身分提供程式設定" + }, + "callbackPath": { + "message": "回呼路徑" + }, + "signedOutCallbackPath": { + "message": "已登出回呼路徑" + }, + "authority": { + "message": "授權單位" + }, + "clientId": { + "message": "客戶 ID" + }, + "clientSecret": { + "message": "客戶金鑰" + }, + "metadataAddress": { + "message": "中繼資料位址" + }, + "oidcRedirectBehavior": { + "message": "OIDC 重新導向行為" + }, + "getClaimsFromUserInfoEndpoint": { + "message": "從使用者資訊端點取得聲明" + }, + "additionalScopes": { + "message": "自訂範圍" + }, + "additionalUserIdClaimTypes": { + "message": "自訂使用者 ID 聲明類型" + }, + "additionalEmailClaimTypes": { + "message": "電子郵件聲明類型" + }, + "additionalNameClaimTypes": { + "message": "自訂名稱聲明類型" + }, + "acrValues": { + "message": "要求的驗證資料內容類別參考值" + }, + "expectedReturnAcrValue": { + "message": "回應中預期的「acr」聲明值" + }, + "spEntityId": { + "message": "SP 實體 ID" + }, + "spMetadataUrl": { + "message": "SAML 2.0 中繼資料 URL" + }, + "spAcsUrl": { + "message": "判斷提示取用者服務 (ACS) URL" + }, + "spNameIdFormat": { + "message": "名稱 ID 格式" + }, + "spOutboundSigningAlgorithm": { + "message": "傳出簽署演算法" + }, + "spSigningBehavior": { + "message": "簽署行為" + }, + "spMinIncomingSigningAlgorithm": { + "message": "最小傳入簽署演算法" + }, + "spWantAssertionsSigned": { + "message": "需要已簽署宣告" + }, + "spValidateCertificates": { + "message": "驗證憑證" + }, + "idpEntityId": { + "message": "實體 ID" + }, + "idpBindingType": { + "message": "繫結類型" + }, + "idpSingleSignOnServiceUrl": { + "message": "單一登入服務 URL" + }, + "idpSingleLogoutServiceUrl": { + "message": "單一登出服務 URL" + }, + "idpX509PublicCert": { + "message": "X509 公開憑證" + }, + "idpOutboundSigningAlgorithm": { + "message": "傳出簽署演算法" + }, + "idpAllowUnsolicitedAuthnResponse": { + "message": "允許未經要求的驗證回應" + }, + "idpAllowOutboundLogoutRequests": { + "message": "允許傳出登出要求" + }, + "idpSignAuthenticationRequests": { + "message": "簽署身分驗證要求" + }, + "ssoSettingsSaved": { + "message": "已儲存單一登入設定。" + }, + "sponsoredFamilies": { + "message": "免費的 Bitwarden 家庭方案" + }, + "sponsoredFamiliesEligible": { + "message": "您與家庭成員可使用免費的 Bitwarden 家庭方案。就算不在上班時間,也可以使用您的私人電子郵件來兌換此方案,以保障您的資料安全。" + }, + "sponsoredFamiliesEligibleCard": { + "message": "立即兌換您的免費 Bitwarden 家庭方案,即使不在上班時間也能夠保障您的資料安全。" + }, + "sponsoredFamiliesInclude": { + "message": "Bitwarden 家庭方案內容包含" + }, + "sponsoredFamiliesPremiumAccess": { + "message": "最多 6 位使用者的付費方案存取權限" + }, + "sponsoredFamiliesSharedCollections": { + "message": "用於家庭共用帳號密碼的集合" + }, + "badToken": { + "message": "連結已失效。請讓贊助者重新傳送邀請。" + }, + "reclaimedFreePlan": { + "message": "已回收免費方案" + }, + "redeem": { + "message": "兌換" + }, + "sponsoredFamiliesSelectOffer": { + "message": "選擇您希望被贊助的組織" + }, + "familiesSponsoringOrgSelect": { + "message": "您想兌換哪一個免費家庭邀請呢?" + }, + "sponsoredFamiliesEmail": { + "message": "輸入您的個人電子郵件以兌換 Bitwarden 家庭方案" + }, + "sponsoredFamiliesLeaveCopy": { + "message": "如果您離開或被從該組織中移除,您的家庭方案將在計費周期結束時逾期。" + }, + "acceptBitwardenFamiliesHelp": { + "message": "接受現有組織的邀請或建立一個新的家庭組織。" + }, + "setupSponsoredFamiliesLoginDesc": { + "message": "您已被邀請加入一個免費的 Bitwarden 家庭方案組織。若要繼續,您必須登入至接受邀請的帳戶。" + }, + "sponsoredFamiliesAcceptFailed": { + "message": "無法接受邀請。請透過您的企業帳戶重新傳送邀請郵件,然後再試一次。" + }, + "sponsoredFamiliesAcceptFailedShort": { + "message": "無法接受邀請。$DESCRIPTION$", + "placeholders": { + "description": { + "content": "$1", + "example": "You must have at least one existing Families Organization." + } + } + }, + "sponsoredFamiliesOffer": { + "message": "兌換免費的 Bitwarden 家庭方案" + }, + "sponsoredFamiliesOfferRedeemed": { + "message": "已成功兌換免費的 Bitwarden 家庭方案" + }, + "redeemed": { + "message": "已兌換" + }, + "redeemedAccount": { + "message": "已兌換帳戶" + }, + "revokeAccount": { + "message": "撤銷帳戶 $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "resendEmailLabel": { + "message": "重新傳送贊助郵件至 $NAME$", + "placeholders": { + "name": { + "content": "$1", + "example": "My Sponsorship Name" + } + } + }, + "freeFamiliesPlan": { + "message": "免費家庭方案" + }, + "redeemNow": { + "message": "立即兌換" + }, + "recipient": { + "message": "收件者" + }, + "removeSponsorship": { + "message": "移除贊助" + }, + "removeSponsorshipConfirmation": { + "message": "移除贊助後,您將自己負責此訂閱及其相關帳單。您確定要繼續嗎?" + }, + "sponsorshipCreated": { + "message": "已建立贊助" + }, + "revoke": { + "message": "撤銷" + }, + "emailSent": { + "message": "已寄出郵件" + }, + "revokeSponsorshipConfirmation": { + "message": "移除此帳戶後,家庭組織的擁有者將負責此訂閱及其相關帳單。您確定要繼續嗎?" + }, + "removeSponsorshipSuccess": { + "message": "已移除贊助" + }, + "ssoKeyConnectorUnavailable": { + "message": "無法連線至 Key Connector。請稍後再試。" + }, + "keyConnectorUrl": { + "message": "Key Connector URL" + }, + "sendVerificationCode": { + "message": "傳送驗證碼至您的電子郵件信箱" + }, + "sendCode": { + "message": "傳送驗證碼" + }, + "codeSent": { + "message": "驗證碼已傳送" + }, + "verificationCode": { + "message": "驗證碼" + }, + "confirmIdentity": { + "message": "請先確認身分後再繼續。" + }, + "verificationCodeRequired": { + "message": "必須填入驗證碼。" + }, + "invalidVerificationCode": { + "message": "無效的驗證碼" + }, + "convertOrganizationEncryptionDesc": { + "message": "$ORGANIZATION$ 使用自我托管金鑰伺服器 SSO。此組織的成員登入時將不再需要主密碼。", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "leaveOrganization": { + "message": "離開組織" + }, + "removeMasterPassword": { + "message": "移除主密碼" + }, + "removedMasterPassword": { + "message": "已移除主密碼。" + }, + "allowSso": { + "message": "允許 SSO 身分驗證" + }, + "allowSsoDesc": { + "message": "設定後,您的設定將被儲存,成員將可以使用他們的識別提供者憑證進行身分驗證。" + }, + "ssoPolicyHelpStart": { + "message": "啟用", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpLink": { + "message": "SSO 驗證原則", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpEnd": { + "message": "要求所有成員皆使用 SSO 登入。", + "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enable the SSO Authentication policy to require all members to log in with SSO.'" + }, + "ssoPolicyHelpKeyConnector": { + "message": "SSO 驗證及單一組織原則需要先設定 Key Connector 解密方式後才能啟用。" + }, + "memberDecryptionOption": { + "message": "成員解密選項" + }, + "memberDecryptionPassDesc": { + "message": "通過驗證以後,成員將使用他們的主密碼解密密碼庫資料。" + }, + "keyConnector": { + "message": "Key Connector" + }, + "memberDecryptionKeyConnectorDesc": { + "message": "連結 SSO 登入至您的自我托管解密金鑰伺服器。使用此選項後,成員便無需使用它們的主密碼來解密密碼庫資料。聯絡 Bitwarden 客戶支援以取得設定協助。" + }, + "keyConnectorPolicyRestriction": { + "message": "已啟用「SSO 登入和 Key Connector 解密」。此原則僅適用於擁有者和管理員。" + }, + "enabledSso": { + "message": "已啟用 SSO" + }, + "disabledSso": { + "message": "已停用 SSO" + }, + "enabledKeyConnector": { + "message": "已啟用 Key Connector" + }, + "disabledKeyConnector": { + "message": "已停用 Key Connector" + }, + "keyConnectorWarning": { + "message": "一旦成員開始使用 Key Connector,您的組織將無法還原為使用主密碼解密。請於您可以輕鬆地部署和管理金鑰伺服器時再繼續。" + }, + "migratedKeyConnector": { + "message": "已移轉至 Key Connector" + }, + "paymentSponsored": { + "message": "請提供一個與此組織關聯的付款方式。別擔心,我們不會向您收取任何費用,除非您選擇進階功能或您的贊助到期。 " + }, + "orgCreatedSponsorshipInvalid": { + "message": "贊助邀請已逾期,您可以刪除您建立的組織,以避免在 7 天試用期結束後被收取費用。 您也可以關閉此提示以保留該組織並承擔計費責任。" + }, + "newFamiliesOrganization": { + "message": "新的家庭組織" + }, + "acceptOffer": { + "message": "接受邀請" + }, + "sponsoringOrg": { + "message": "贊助組織" + }, + "keyConnectorTest": { + "message": "測試" + }, + "keyConnectorTestSuccess": { + "message": "成功!已連線 Key Connector。" + }, + "keyConnectorTestFail": { + "message": "無法連線 Key Connector。請檢查 URL。" + }, + "sponsorshipTokenHasExpired": { + "message": "此贊助邀請已逾期。" + }, + "freeWithSponsorship": { + "message": "免費贊助" + }, + "formErrorSummaryPlural": { + "message": "您需注意上方的 $COUNT$ 個欄位。", + "placeholders": { + "count": { + "content": "$1", + "example": "5" + } + } + }, + "formErrorSummarySingle": { + "message": "您需注意上方的 1 個欄位。" + }, + "fieldRequiredError": { + "message": "$FIELDNAME$ 是必要項目。", + "placeholders": { + "fieldname": { + "content": "$1", + "example": "Full name" + } + } + }, + "required": { + "message": "必填" + }, + "idpSingleSignOnServiceUrlRequired": { + "message": "若 Entity ID 非 URL,則必須填入。" + }, + "openIdOptionalCustomizations": { + "message": "選用自訂項目" + }, + "openIdAuthorityRequired": { + "message": "若授權無效,則必須填入。" + }, + "separateMultipleWithComma": { + "message": "使用逗號分隔。" + }, + "sessionTimeout": { + "message": "您的登入階段已逾時,請返回並嘗試重新登入。" + }, + "exportingPersonalVaultTitle": { + "message": "匯出個人密碼庫" + }, + "exportingOrganizationVaultTitle": { + "message": "匯出組織密碼庫" + }, + "exportingPersonalVaultDescription": { + "message": "只會匯出與 $EMAIL$ 關聯的個人密碼庫。組織密碼庫的項目不包含在內。", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + } + } + }, + "exportingOrganizationVaultDescription": { + "message": "只會匯出與 $ORGANIZATION$ 關聯的組織密碼庫。個人密碼庫和其他組織的項目不包含在內。", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "backToReports": { + "message": "返回報告" + }, + "generator": { + "message": "產生器" + }, + "whatWouldYouLikeToGenerate": { + "message": "您想要產生什麼?" + }, + "passwordType": { + "message": "密碼類型" + }, + "regenerateUsername": { + "message": "重新產生使用者名稱" + }, + "generateUsername": { + "message": "產生使用者名稱" + }, + "usernameType": { + "message": "使用者名稱類型" + }, + "plusAddressedEmail": { + "message": "加號地址電子郵件", + "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" + }, + "plusAddressedEmailDesc": { + "message": "使用您的電子郵件提供者的子地址功能。" + }, + "catchallEmail": { + "message": "Catch-all 電子郵件" + }, + "catchallEmailDesc": { + "message": "使用您的網域設定的 Catch-all 收件匣。" + }, + "random": { + "message": "隨機" + }, + "randomWord": { + "message": "隨機單字" + }, + "service": { + "message": "服務" + } +} diff --git a/apps/web/src/manifest.json b/apps/web/src/manifest.json new file mode 100644 index 0000000000..92a1204c60 --- /dev/null +++ b/apps/web/src/manifest.json @@ -0,0 +1,17 @@ +{ + "name": "Bitwarden Vault", + "icons": [ + { + "src": "images/icons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "images/icons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#175DDC", + "background_color": "#175DDC" +} diff --git a/apps/web/src/models/account.ts b/apps/web/src/models/account.ts new file mode 100644 index 0000000000..b45c40b1ad --- /dev/null +++ b/apps/web/src/models/account.ts @@ -0,0 +1,20 @@ +import { + Account as BaseAccount, + AccountSettings as BaseAccountSettings, +} from "jslib-common/models/domain/account"; + +export class AccountSettings extends BaseAccountSettings { + vaultTimeout: number = process.env.NODE_ENV === "development" ? null : 15; +} + +export class Account extends BaseAccount { + settings?: AccountSettings = new AccountSettings(); + + constructor(init: Partial) { + super(init); + Object.assign(this.settings, { + ...new AccountSettings(), + ...this.settings, + }); + } +} diff --git a/apps/web/src/models/globalState.ts b/apps/web/src/models/globalState.ts new file mode 100644 index 0000000000..3937690209 --- /dev/null +++ b/apps/web/src/models/globalState.ts @@ -0,0 +1,7 @@ +import { ThemeType } from "jslib-common/enums/themeType"; +import { GlobalState as BaseGlobalState } from "jslib-common/models/domain/globalState"; + +export class GlobalState extends BaseGlobalState { + theme?: ThemeType = ThemeType.Light; + rememberEmail = true; +} diff --git a/apps/web/src/scss/base.scss b/apps/web/src/scss/base.scss new file mode 100644 index 0000000000..a17fc5c543 --- /dev/null +++ b/apps/web/src/scss/base.scss @@ -0,0 +1,307 @@ +html { + font-size: 14px; +} + +body { + min-width: 1010px; + + &.layout_frontend { + @media (prefers-color-scheme: dark) { + background-color: $darkDarkBlue2; + } + @media (prefers-color-scheme: light) { + background-color: $white; + } + @include themify($themes) { + background-color: themed("layoutFrontendColor"); + color: themed("textHeadingColor"); + } + } + + @include themify($themes) { + background-color: themed("backgroundColor"); + color: themed("textColor"); + } + + &.full-width:not(.layout_frontend) { + .container { + min-width: 980px; + width: 90%; + } + } +} + +.container { + margin: 0 auto; + max-width: none !important; + padding: 0; + width: 980px; +} + +.page-header, +.secondary-header, +.tabbed-header { + margin-bottom: 0.5rem; + padding-bottom: 0.6rem; + + &:not(.text-danger) { + h1, + h2, + h3, + h4 { + margin: 0; + @include themify($themes) { + color: themed("textHeadingColor"); + } + } + } +} + +.page-header, +.secondary-header { + @include themify($themes) { + border-bottom: 1px solid themed("separator"); + } +} + +.secondary-header, +.spaced-header { + margin-top: 4rem; +} + +.tabbed-header { + margin-top: 1.5rem; +} + +img.logo { + display: block; + height: 43px; + margin: 0 auto; + width: 284px; + + &.logo-themed { + @include themify($themes) { + content: url("../images/logo-" + themed("logoSuffix") + "@2x.png"); + } + } +} + +.page-content { + margin-top: 20px; +} + +.footer { + margin-top: 40px; + padding: 40px 0 40px 0; + @include themify($themes) { + border-top: 1px solid themed("separator"); + } +} + +hr, +.dropdown-divider { + @include themify($themes) { + border-top: 1px solid themed("separatorHr"); + } +} + +.min-height-fix { + min-height: 1px; +} + +.overflow-hidden { + overflow: hidden; +} + +.cursor-move { + cursor: move !important; +} + +h1, +h2, +h3, +h4, +h5 { + @include themify($themes) { + color: themed("textHeadingColor"); + } + + small { + font-size: 80%; + } + + &.spaced-header { + @include themify($themes) { + color: themed("textHeadingColor"); + } + } +} + +a { + @include themify($themes) { + color: themed("linkColor"); + } + + &.text-body { + @include themify($themes) { + color: themed("textHeadingColor") !important; + font-weight: themed("linkWeight"); + } + } +} + +code { + @include themify($themes) { + color: themed("codeColor"); + } +} + +.bwi-icon-above-input { + height: 1.5em; +} + +.text-lg { + font-size: $font-size-lg; +} + +.text-strike { + text-decoration: line-through; +} + +.font-weight-semibold { + font-weight: 600; +} + +.btn:focus, +.swal2-popup .swal2-actions button:focus, +.btn.focus, +.swal2-popup .swal2-actions button.focus, +.form-control:focus { + @include themify($themes) { + box-shadow: 0 0 0 0.2rem themed("focus"); + } +} + +/* Override Bootstrap theming */ + +.bg-primary { + @include themify($themes) { + background-color: themed("bgPrimaryColor"); + } +} + +.bg-light { + @include themify($themes) { + background-color: themed("bgLightColor") !important; + } +} + +.bg-success { + @include themify($themes) { + background-color: themed("success") !important; + color: themed("textSuccessColor") !important; + } +} + +.bg-warning { + @include themify($themes) { + background-color: themed("warning") !important; + color: themed("textWarningColor") !important; + } +} + +.bg-error, +.bg-danger { + @include themify($themes) { + background-color: themed("danger") !important; + color: themed("textDangerColor") !important; + } +} + +.bg-info { + @include themify($themes) { + background-color: themed("info") !important; + color: themed("textInfoColor") !important; + } +} + +.border-primary { + @include themify($themes) { + border-color: themed("borderPrimaryColor") !important; + } +} + +.border-warning { + @include themify($themes) { + border-color: themed("warning") !important; + } +} + +.border-danger { + @include themify($themes) { + border-color: themed("danger") !important; + } +} + +.border-info { + @include themify($themes) { + border-color: themed("info") !important; + } +} + +.text-success { + @include themify($themes) { + color: themed("success") !important; + } + + & > h1, + h2, + h3, + h4 { + @include themify($themes) { + color: themed("success") !important; + } + } +} + +.text-warning { + @include themify($themes) { + color: themed("warning") !important; + } + + & > h1, + h2, + h3, + h4 { + @include themify($themes) { + color: themed("warning") !important; + } + } +} + +.text-danger { + &:not(.dropdown-item) { + @include themify($themes) { + color: themed("danger") !important; + } + + & > h1, + h2, + h3, + h4 { + @include themify($themes) { + color: themed("danger") !important; + } + } + } +} + +.text-muted { + @include themify($themes) { + color: themed("textMuted") !important; + } +} + +button i.bwi { + margin-right: 0.25rem; +} diff --git a/apps/web/src/scss/buttons.scss b/apps/web/src/scss/buttons.scss new file mode 100644 index 0000000000..6713a97abe --- /dev/null +++ b/apps/web/src/scss/buttons.scss @@ -0,0 +1,253 @@ +.btn-primary, +.swal2-confirm { + @include themify($themes) { + background-color: themed("btnPrimary"); + border-color: themed("btnPrimary"); + color: themed("btnPrimaryText"); + } + + &:hover:not(:disabled), + &:active:not(:disabled) { + @include themify($themes) { + background-color: themed("btnPrimaryHover"); + border-color: themed("btnPrimaryBorderHover"); + color: themed("btnPrimaryText"); + } + } + + &:disabled { + opacity: 0.65; + } +} + +.btn-outline-primary { + @include themify($themes) { + background-color: themed("btnOutlinePrimaryBackground"); + border-color: themed("btnOutlinePrimaryBorder"); + color: themed("btnOutlinePrimaryText"); + } + + &:hover:not(:disabled), + &:active { + @include themify($themes) { + background-color: themed("btnOutlinePrimaryBackgroundHover"); + border-color: themed("btnOutlinePrimaryBorderHover"); + color: themed("btnOutlinePrimaryTextHover"); + } + } +} + +.btn-secondary, +.swal2-cancel { + @include themify($themes) { + background-color: themed("btnSecondary"); + border-color: themed("btnSecondaryBorder"); + color: themed("btnSecondaryText"); + } + + &:hover:not(:disabled), + &:active:not(:disabled) { + @include themify($themes) { + background-color: themed("btnSecondaryHover"); + border-color: themed("btnSecondaryBorderHover"); + color: themed("btnSecondaryTextHover"); + } + } + + &:disabled { + opacity: 0.65; + } + + &:focus, + &.focus { + @include themify($themes) { + box-shadow: 0 0 0 $btn-focus-width + rgba(mix(color-yiq(themed("primary")), themed("primary"), 15%), 0.5); + } + } +} + +.btn-outline-secondary { + @include themify($themes) { + background-color: themed("btnOutlineSecondaryBackground"); + border-color: themed("btnOutlineSecondaryBorder"); + color: themed("btnOutlineSecondaryText"); + } + + &:hover:not(:disabled), + &:active { + @include themify($themes) { + background-color: themed("btnOutlineSecondaryBackgroundHover"); + border-color: themed("btnOutlineSecondaryBorderHover"); + color: themed("btnOutlineSecondaryTextHover"); + } + } +} + +.show > .btn-outline-secondary { + &.dropdown-toggle, + &:focus { + @include themify($themes) { + background-color: themed("btnOutlineSecondaryBackground"); + border-color: themed("btnOutlineSecondaryBorder"); + color: themed("btnOutlineSecondaryText"); + } + } + + &:hover { + @include themify($themes) { + background-color: themed("btnOutlineSecondaryBackgroundHover"); + border-color: themed("btnOutlineSecondaryBorderHover"); + color: themed("btnOutlineSecondaryTextHover"); + } + } +} + +.btn-danger, +.swal2-deny { + @include themify($themes) { + background-color: themed("btnDanger"); + border-color: themed("btnDanger"); + color: themed("btnDangerText"); + } + + &:hover:not(:disabled), + &:active:not(:disabled) { + @include themify($themes) { + background-color: themed("btnDangerHover"); + border-color: themed("btnDangerHover"); + color: themed("btnDangerText"); + } + } +} + +.btn-outline-danger { + @include themify($themes) { + background-color: themed("btnOutlineDangerBackground"); + border-color: themed("btnOutlineDangerBorder"); + color: themed("btnOutlineDangerText"); + } + + &:hover:not(:disabled), + &:active { + @include themify($themes) { + background-color: themed("btnOutlineDangerBackgroundHover"); + border-color: themed("btnOutlineDangerBorderHover"); + color: themed("btnOutlineDangerTextHover"); + } + } +} + +.btn-link { + &:focus, + &.focus { + outline-color: -webkit-focus-ring-color; + outline-offset: 1px; + outline-style: auto; + outline-width: 1px; + } + + &:not(.text-danger):not(.cursor-move) { + @include themify($themes) { + color: themed("btnLinkText"); + } + } + + &:hover:not(.text-danger):not(.cursor-move) { + @include themify($themes) { + color: themed("btnLinkTextHover"); + } + } +} + +.btn-submit { + position: relative; + + .bwi-spinner { + align-items: center; + bottom: 0; + display: none; + justify-content: center; + left: 0; + position: absolute; + right: 0; + top: 0; + } + + &:disabled:not(.manual), + &.loading { + .bwi-spinner { + display: flex; + } + + span { + visibility: hidden; + } + } +} + +button.no-btn { + background: transparent; + border: none; + padding: 0; + color: inherit; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + + &:hover, + &:focus { + background: transparent; + box-shadow: none; + color: inherit; + } +} + +.badge-primary { + @include themify($themes) { + background-color: themed("badgePrimaryBackground"); + color: themed("badgePrimaryText"); + } + + &:hover { + @include themify($themes) { + background-color: themed("badgePrimaryBackgroundHover"); + color: themed("badgePrimaryText"); + } + } +} + +.badge-secondary { + @include themify($themes) { + background-color: themed("badgeSecondaryBackground"); + color: themed("badgeSecondaryText"); + } +} + +.badge-info { + @include themify($themes) { + background-color: themed("badgeInfoBackground"); + color: themed("badgeInfoText"); + } +} + +.badge-danger { + @include themify($themes) { + background-color: themed("badgeDangerBackground"); + color: themed("badgeDangerText"); + } +} + +.badge-warning { + @include themify($themes) { + background-color: themed("warning"); + color: themed("textWarningColor"); + } +} + +.badge-success { + @include themify($themes) { + background-color: themed("success"); + color: themed("textSuccessColor"); + } +} diff --git a/apps/web/src/scss/callouts.scss b/apps/web/src/scss/callouts.scss new file mode 100644 index 0000000000..bde5bedcc3 --- /dev/null +++ b/apps/web/src/scss/callouts.scss @@ -0,0 +1,83 @@ +.callout { + border-left-width: 5px !important; + border-radius: $card-inner-border-radius; + margin-bottom: $alert-margin-bottom; + padding: $alert-padding-y $alert-padding-x; + @include themify($themes) { + background-color: themed("calloutBackground"); + border: 1px solid themed("borderColor"); + color: themed("calloutColor"); + } + + .callout-heading { + margin-top: 0; + } + + h3.callout-heading { + font-weight: bold; + text-transform: uppercase; + } + + &.callout-primary { + @include themify($themes) { + border-left-color: themed("primary"); + } + .callout-heading { + @include themify($themes) { + color: themed("primary"); + } + } + } + + &.callout-info { + @include themify($themes) { + border-left-color: themed("info"); + } + + .callout-heading { + @include themify($themes) { + color: themed("info"); + } + } + } + + &.callout-danger { + @include themify($themes) { + border-left-color: themed("danger"); + } + + .callout-heading { + @include themify($themes) { + color: themed("danger"); + } + } + } + + &.callout-success { + @include themify($themes) { + border-left-color: themed("success"); + } + + .callout-heading { + @include themify($themes) { + color: themed("success"); + } + } + } + + &.callout-warning { + @include themify($themes) { + border-left-color: themed("warning"); + } + + .callout-heading { + @include themify($themes) { + color: themed("warning"); + } + } + } + + .enforced-policy-options ul { + margin-bottom: 0px; + } +} diff --git a/apps/web/src/scss/cards.scss b/apps/web/src/scss/cards.scss new file mode 100644 index 0000000000..b57687fb8f --- /dev/null +++ b/apps/web/src/scss/cards.scss @@ -0,0 +1,98 @@ +.card { + @include themify($themes) { + background-color: themed("foregroundColor"); + border-color: themed("borderColor"); + color: themed("textColor"); + } + + &.text-danger { + &.text-danger > .card-body { + @include themify($themes) { + color: themed("danger"); + } + } + } +} + +.card-header, +.modal-header { + font-weight: bold; + text-transform: uppercase; + + small { + font-weight: normal; + text-transform: none; + @extend .text-muted; + } +} + +.card-header { + @include themify($themes) { + background-color: themed("headerColor"); + color: themed("textHeadingColor"); + } + + a:hover { + &:not(.badge) { + @include themify($themes) { + color: themed("learnMoreHover"); + } + } + } +} + +.card-body-header { + font-size: $font-size-lg; + @extend .mb-4; +} + +.card ul.bwi-ul.card-ul { + margin-left: 1.9em; + + li { + word-break: break-all; + } + + .bwi-li { + top: 4px; + } + + &.carets { + margin-left: 1.1em; + + .bwi-li { + left: -17px; + width: 1.1em; + } + } + + ul { + &.carets { + margin-left: 0.85em; + } + } + + &.no-margin { + margin-left: 0; + } +} + +.card-org-plans { + h2 { + font-size: $font-size-lg; + } +} + +.card-body { + &:not(.bg-light > .card-body) { + @include themify($themes) { + background-color: themed("foregroundColor"); + color: themed("textColor"); + } + &.card-body a:not(li a) { + @include themify($themes) { + font-weight: themed("linkWeight"); + } + } + } +} diff --git a/apps/web/src/scss/export.module.scss b/apps/web/src/scss/export.module.scss new file mode 100644 index 0000000000..615a0f75d1 --- /dev/null +++ b/apps/web/src/scss/export.module.scss @@ -0,0 +1,8 @@ +@import "variables"; + +:export { + darkInputColor: $darkInputColor; + darkInputPlaceholderColor: $darkInputPlaceholderColor; + lightInputColor: $lightInputColor; + lightInputPlaceholderColor: $lightInputPlaceholderColor; +} diff --git a/apps/web/src/scss/export.module.scss.d.ts b/apps/web/src/scss/export.module.scss.d.ts new file mode 100644 index 0000000000..6b2c06a0c7 --- /dev/null +++ b/apps/web/src/scss/export.module.scss.d.ts @@ -0,0 +1,9 @@ +export interface ThemeVariableExport { + lightInputColor: string; + lightInputPlaceholderColor: string; + darkInputColor: string; + darkInputPlaceholderColor: string; +} + +export const ThemeVariables: ThemeVariableExport; +export default ThemeVariables; diff --git a/apps/web/src/scss/forms.scss b/apps/web/src/scss/forms.scss new file mode 100644 index 0000000000..acba154f30 --- /dev/null +++ b/apps/web/src/scss/forms.scss @@ -0,0 +1,256 @@ +::-ms-reveal { + display: none; +} + +::placeholder { + @include themify($themes) { + color: themed("inputPlaceholderColor"); + } +} + +input, +select, +textarea { + &:required { + box-shadow: none; + } +} + +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: -cancel-button; +} + +label:not(.form-check-label):not(.btn), +label.bold { + font-weight: 600; + @include themify($themes) { + color: themed("textHeadingColor"); + } +} + +label.form-check-label, +.form-control-file { + @include themify($themes) { + color: themed("textHeadingColor"); + } +} + +.form-check-block { + .form-check-label { + font-weight: 600; + + > small { + display: block; + font-weight: normal; + @include themify($themes) { + color: themed("textMuted"); + } + } + + > span { + display: block; + font-weight: normal; + @extend .mt-2; + } + } +} + +.form-check-block + .form-check-block { + &:not(.mt-2) { + @extend .mt-3; + } +} + +.form-group { + .form-group-child-check { + @extend .ml-4; + } +} + +.form-inline { + input[type="datetime-local"] { + width: 200px; + } +} + +.form-control { + @include themify($themes) { + background-color: themed("inputBackgroundColor"); + border-color: themed("inputBorderColor"); + color: themed("inputTextColor"); + + option { + background-color: themed("backgroundColor"); + } + } + + &:disabled, + &[readonly] { + @include themify($themes) { + background-color: themed("inputDisabledBackground"); + color: themed("inputDisabledColor"); + } + } +} + +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; +} + +.form-control.stripe-form-control { + padding-top: 0.55rem; + + &.is-focused { + outline: 0; + @include themify($themes) { + background-color: themed("inputBackgroundColor"); + border-color: themed("inputBorderColor"); + box-shadow: 0 0 0 $input-focus-width + rgba(mix(color-yiq(themed("primary")), themed("primary"), 15%), 0.5); + color: themed("inputTextColor"); + } + + &.is-invalid { + opacity: 0.75; + @include themify($themes) { + box-shadow: 0 0 0 $input-focus-width themed("danger"); + } + } + } + + &.is-invalid { + @include themify($themes) { + border-color: themed("danger"); + } + } +} + +.dropdown-menu, +.dropdown-item { + @include themify($themes) { + background-color: themed("dropdownBackground"); + color: themed("dropdownTextColor"); + } +} + +.dropdown-item { + @include themify($themes) { + color: themed("dropdownTextColor"); + } + + &.text-danger { + @include themify($themes) { + color: themed("danger") !important; + } + } + &:hover { + @include themify($themes) { + background-color: themed("dropdownHover"); + } + } + &:active { + background-color: rgba(0, 0, 0, 0.1) !important; + } +} + +.dropdown-menu { + button { + cursor: pointer; + } + @include themify($themes) { + border: 1px solid themed("listItemBorder"); + } +} + +.list-group-item { + &:focus, + &.focus { + z-index: 100; + } + @include themify($themes) { + background-color: themed("foregroundColor"); + border-color: themed("listItemBorder"); + color: themed("textColor"); + } + > .two-factor-content { + justify-content: center; + flex-direction: row; + display: flex; + > .text-col { + flex-direction: column; + flex: 1; + } + > .logo-col { + min-width: 100px; + margin-right: 20px; + display: flex; + align-items: center; + justify-content: center; + img { + height: fit-content; + } + } + > .btn-col { + width: 85px; + display: flex; + align-items: center; + justify-content: center; + } + } +} + +.list-group-item.active { + font-weight: bold !important; + padding-left: calc(#{$list-group-item-padding-x} - 3px); + @include themify($themes) { + border-color: themed("borderColor"); + border-left: 3px solid themed("borderPrimaryColor"); + color: themed("listItemActive"); + } +} + +.section-header { + h3, + .btn.btn-link { + @include themify($themes) { + color: themed("headingColor"); + } + } + + h3 { + font-weight: normal; + text-transform: uppercase; + } +} + +.error-summary { + margin-top: 1rem; +} + +.error-inline { + @include themify($themes) { + color: themed("danger"); + } +} + +// Theming for invalid form elements in the SSO Config Form only +// Will be deprecated by component-level styling in the Component Library +app-org-manage-sso form { + .form-control.ng-invalid, + app-input-text.ng-invalid .form-control, + app-select.ng-invalid .form-control { + @include themify($themes) { + border-color: themed("danger"); + } + } +} + +// Browser specific icons overlayed on input fields. e.g. caps lock indicator on password field +::-webkit-calendar-picker-indicator, +input::-webkit-caps-lock-indicator, +input::-webkit-credentials-auto-fill-button { + @include themify($themes) { + filter: themed("browserInputIconsFilter"); + } +} diff --git a/apps/web/src/scss/modals.scss b/apps/web/src/scss/modals.scss new file mode 100644 index 0000000000..337bc3169c --- /dev/null +++ b/apps/web/src/scss/modals.scss @@ -0,0 +1,162 @@ +.modal-content { + border: none; + border-radius: none; + @include themify($themes) { + background-color: themed("backgroundColor"); + } +} + +.modal-dialog { + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + width: $modal-md; +} + +.modal-sm { + width: $modal-sm; +} + +.modal-lg { + width: $modal-lg; +} + +.modal-header { + @include themify($themes) { + background-color: themed("foregroundColor"); + border-bottom: 1px solid themed("separator"); + color: themed("textColor"); + } +} + +.modal-body { + @include themify($themes) { + background-color: themed("foregroundColor"); + color: themed("textColor"); + } + + h3, + .section-header > * { + font-weight: normal; + text-transform: uppercase; + @include themify($themes) { + color: themed("textMuted"); + } + } +} +.modal .list-group-flush { + :first-child { + border-top: none; + } + + :last-child { + border-bottom: none; + } +} + +.modal .list-group-flush-2fa { + div { + border-left: none; + border-right: none; + } + div:first-child { + border-top: none; + } + + div:last-child { + border-bottom: none; + } +} + +.modal-footer { + justify-content: flex-start; + @include themify($themes) { + background-color: themed("footerBackgroundColor"); + border-top: 1px solid themed("separator"); + } +} + +.close { + @include themify($themes) { + color: themed("textColor"); + } +} + +#totpImage { + @include themify($themes) { + filter: themed("imgFilter"); + } +} + +.totp { + .totp-code { + @extend .text-monospace; + font-size: 1.2rem; + } + + .totp-countdown { + display: block; + margin: 3px 3px 0 0; + user-select: none; + + .totp-sec { + font-size: 0.85em; + line-height: 32px; + position: absolute; + text-align: center; + width: 32px; + } + + svg { + height: 32px; + transform: rotate(-90deg); + width: 32px; + } + + .totp-circle { + fill: none; + @include themify($themes) { + stroke: themed("primary"); + } + + &.inner { + stroke-dasharray: 78.6; + stroke-dashoffset: 0; + stroke-width: 3; + } + + &.outer { + stroke-dasharray: 88; + stroke-dashoffset: 0; + stroke-width: 2; + } + } + } + + > .align-items-center { + margin-bottom: -5px; + } + + &.low { + .totp-sec, + .totp-code { + @include themify($themes) { + color: themed("danger"); + } + } + + .totp-circle { + @include themify($themes) { + stroke: themed("danger"); + } + } + } +} + +.cdk-drag-preview { + border-radius: $border-radius; + opacity: 0.8; + z-index: $zindex-tooltip !important; + @include themify($themes) { + background: themed("cdkDraggingBackground"); + } +} diff --git a/apps/web/src/scss/navigation.scss b/apps/web/src/scss/navigation.scss new file mode 100644 index 0000000000..f57936d49e --- /dev/null +++ b/apps/web/src/scss/navigation.scss @@ -0,0 +1,104 @@ +.navbar { + padding-left: 0; + padding-right: 0; + @include themify($themes) { + background-color: themed("navBackground"); + } + + &.nav-background-alt { + @include themify($themes) { + background-color: themed("navBackgroundAlt"); + } + } + + .nav-item { + > .nav-link { + @include themify($themes) { + font-weight: themed("navWeight"); + } + } + &.active > .nav-link { + @include themify($themes) { + font-weight: themed("navActiveWeight"); + } + } + } +} + +.navbar-brand { + margin-bottom: -20px; + margin-top: -20px; +} + +.nav-tabs .nav-link.active { + @include themify($themes) { + background: themed("navActiveBackground"); + border-color: themed("borderColor"); + } +} + +.org-nav { + height: 100px; + min-height: 100px; + @include themify($themes) { + background-color: themed("navOrgBackgroundColor"); + border-bottom: 1px solid themed("borderColor"); + color: themed("textColor"); + } + + .container { + height: 100%; + } + + .org-name { + line-height: 1; + text-align: left; + font-weight: normal; + span { + display: block; + font-size: $font-size-lg; + @include themify($themes) { + color: themed("textHeadingColor"); + } + } + } +} + +.tabbed-nav { + @include themify($themes) { + border-bottom: 1px solid themed("borderColor"); + color: themed("textColor"); + } +} + +.org-nav, +.tabbed-nav { + .nav-tabs { + border-bottom: none; + + a { + &:not(.active) { + border-color: transparent; + @include themify($themes) { + color: themed("textColor"); + } + } + + &.active { + font-weight: bold; + padding-top: calc(#{$nav-link-padding-y} - 2px); + @include themify($themes) { + border-top: 3px solid themed("primary"); + border-bottom: 1px solid themed("backgroundColor"); + color: themed("linkColor"); + } + } + + &.disabled { + @include themify($themes) { + color: themed("inputDisabledColor"); + } + } + } + } +} diff --git a/apps/web/src/scss/pages.scss b/apps/web/src/scss/pages.scss new file mode 100644 index 0000000000..088be84f50 --- /dev/null +++ b/apps/web/src/scss/pages.scss @@ -0,0 +1,230 @@ +.generated-wrapper { + min-width: 0; + white-space: pre-wrap; + word-break: break-all; +} + +.password-row { + min-width: 0; +} + +.password-letter { + @include themify($themes) { + color: themed("pwLetter"); + } +} + +.password-number { + @include themify($themes) { + color: themed("pwNumber"); + } +} + +.password-special { + @include themify($themes) { + color: themed("pwSpecial"); + } +} + +app-generator { + #lengthRange { + width: 100%; + } + + .card-generated { + .card-body { + @include themify($themes) { + background: themed("foregroundColor"); + } + align-items: center; + display: flex; + flex-wrap: wrap; + font-family: $font-family-monospace; + font-size: $font-size-lg; + justify-content: center; + text-align: center; + } + } +} + +app-password-generator-history { + .list-group-item { + line-height: 1; + @include themify($themes) { + background: themed("backgroundColor"); + } + + .password { + font-family: $font-family-monospace; + } + } +} + +app-import { + textarea { + height: 150px; + } +} + +app-avatar { + img { + @extend .rounded; + } +} + +app-user-billing { + .progress { + height: 20px; + + .progress-bar { + min-width: 50px; + } + } +} + +app-sponsored-families { + .inset-list { + padding-left: 1.5rem; + } +} + +/* Register Layout Page */ +.layout { + &.default, + &.teams, + &.teams1, + &.teams2, + &.enterprise, + &.enterprise1, + &.enterprise2, + &.cnetcmpgnent, + &.cnetcmpgnteams, + &.cnetcmpgnind { + header { + background: #175ddc; + color: #ced4da; + height: 70px; + + &:before { + background: #175ddc; + content: ""; + height: 520px; + left: 0; + position: absolute; + top: -80px; + transform: skewY(-3deg); + width: 100%; + z-index: -1; + } + img.logo { + height: 57px; + margin: 12px 0 0; + max-width: 284px; + width: 284px; + } + } + + h1 { + color: #ffffff; + font-size: 3.5rem; + margin: 50px 0 0; + } + + h2 { + color: #ffffff; + font-size: 2rem; + line-height: 1.5; + margin: 20px 0 140px; + } + + p { + font-size: 2rem; + margin: 10px 0 70px 0; + + &:before { + content: "/"; + padding-right: 12px; + } + &:not(.highlight) { + &:before { + color: #1252a3; + } + } + + b { + &:after { + content: "⟶"; + font-size: 2rem; + padding-left: 6px; + } + } + } + + figure { + margin: 0; + } + + blockquote { + font-size: 1.4rem; + margin: 20px 0 0; + } + } + + &.cnetcmpgnind { + p { + font-size: 1.5rem; + margin: 10px 0 50px 0; + } + } +} + +.collapsable-row { + display: flex; + padding-top: 15px; + i { + margin-top: 3px; + } + .filter-title { + padding-left: 5px; + } + &.active { + @include themify($themes) { + color: themed("primary"); + } + } +} + +.vault-filter-option { + padding-bottom: 3px; + &.active { + @include themify($themes) { + color: themed("primary"); + font-weight: bold; + } + } + button.org-options { + background: none; + border: none; + padding: 0; + + &:hover, + &:focus { + @include themify($themes) { + color: themed("iconHover") !important; + box-shadow: none; + } + } + } +} + +.org-filter-heading { + @include themify($themes) { + color: themed("textColor"); + } + &.active { + @include themify($themes) { + color: themed("primary"); + font-weight: bold; + } + } +} diff --git a/apps/web/src/scss/plugins.scss b/apps/web/src/scss/plugins.scss new file mode 100644 index 0000000000..0610535eb5 --- /dev/null +++ b/apps/web/src/scss/plugins.scss @@ -0,0 +1,227 @@ +#duo-frame { + height: 330px; + @include themify($themes) { + background: themed("imgLoading") 0 0 no-repeat; + } + + iframe { + border: none; + height: 100%; + width: 100%; + } +} + +#web-authn-frame { + height: 290px; + @include themify($themes) { + background: themed("imgLoading") 0 0 no-repeat; + } + + iframe { + border: none; + height: 100%; + width: 100%; + } +} + +#hcaptcha_iframe { + border: none; + transition: height 0.25s linear; + width: 100%; +} + +.list-group-2fa { + .logo-2fa { + min-width: 100px; + } +} + +@each $mfaType in $mfaTypes { + .mfaType#{$mfaType} { + content: url("../images/two-factor/" + $mfaType + ".png"); + max-width: 100px; + } +} + +.mfaType1 { + @include themify($themes) { + content: url("../images/two-factor/1" + themed("mfaLogoSuffix")); + max-width: 100px; + max-height: 45px; + } +} + +.mfaType7 { + @include themify($themes) { + content: url("../images/two-factor/7" + themed("mfaLogoSuffix")); + max-width: 100px; + } +} + +.recovery-code-img { + @include themify($themes) { + content: url("../images/two-factor/rc" + themed("mfaLogoSuffix")); + max-width: 100px; + max-height: 45px; + } +} + +.progress { + @include themify($themes) { + background-color: themed("pwStrengthBackground"); + } +} + +// Braintree + +#bt-dropin-container { + min-height: 50px; + @include themify($themes) { + background: themed("loadingSvg") center center no-repeat; + } +} + +.braintree-placeholder, +.braintree-sheet__header { + display: none; +} + +.braintree-sheet__content--button { + min-height: 0; + padding: 0; + text-align: left; +} + +.braintree-sheet__container { + margin-bottom: 0; +} + +.braintree-sheet { + border: none; +} + +[data-braintree-id="upper-container"]::before { + @include themify($themes) { + background-color: themed("backgroundColor"); + } +} + +.card [data-braintree-id="upper-container"]::before { + @include themify($themes) { + background-color: themed("foregroundColor"); + } +} + +[data-braintree-id="paypal-button"] { + @include themify($themes) { + background-color: themed("backgroundColor"); + } +} + +.card [data-braintree-id="paypal-button"] { + @include themify($themes) { + background-color: themed("foregroundColor"); + } +} + +.paypal-button-text { + @include themify($themes) { + color: themed("textColor"); + } +} + +// SweetAlert2 + +[class*="swal2-"] { + &:not(.swal2-container, .swal2-confirm, .swal2-cancel, .swal2-deny) { + @include themify($themes) { + background-color: themed("backgroundColor"); + color: themed("textColor"); + } + } +} + +.swal2-container { + background-color: rgba(0, 0, 0, 0.3); +} + +.swal2-popup { + @include themify($themes) { + background-color: themed("backgroundColor"); + color: themed("textColor"); + } + border: $modal-content-border-width solid #9a9a9a; + @include border-radius($modal-content-border-radius); + padding: 15px 0 0; + width: 34em; // slightly bigger than the hardcoded 478px in v1. + + .swal2-header { + padding: 0 15px; + } + + .swal2-icon { + border: none; + height: auto; + margin: 0 auto; + width: auto; + } + + .swal2-content { + font-size: $font-size-base; + padding-bottom: 15px; + @include themify($themes) { + border-bottom: $modal-footer-border-width solid themed("separator"); + } + } + + i.swal-custom-icon { + display: block; + font-size: 35px; + margin: 0 auto; + } + + .swal2-title { + font-size: $font-size-lg; + margin: 0; + padding: 10px 0 15px; + @include themify($themes) { + color: themed("textHeadingColor"); + } + } + + .swal2-content { + font-size: $font-size-base; + padding: 0 15px 15px; + @include themify($themes) { + color: themed("textColor"); + } + } + + .swal2-actions { + @include border-radius($modal-content-border-radius); + display: flex; + flex-direction: row; + font-size: $font-size-base; + justify-content: flex-start; + margin: 0; + padding: 15px; + @include themify($themes) { + background-color: themed("backgroundColor"); + } + + button { + margin-right: 10px; + @extend .btn; + } + } + + .swal2-validation-message { + margin: 0 -15px; + } +} + +date-input-polyfill { + &[data-open="true"] { + z-index: 10000 !important; + } +} diff --git a/apps/web/src/scss/styles.scss b/apps/web/src/scss/styles.scss new file mode 100644 index 0000000000..26c5e5c7d8 --- /dev/null +++ b/apps/web/src/scss/styles.scss @@ -0,0 +1,60 @@ +@import "../../jslib/angular/src/scss/webfonts.css"; +@import "./variables"; +@import "../../jslib/angular/src/scss/bwicons/styles/style.scss"; +@import "../../jslib/angular/src/scss/icons.scss"; +@import "@angular/cdk/overlay-prebuilt.css"; + +//@import "~bootstrap/scss/bootstrap"; +@import "~bootstrap/scss/_functions"; +@import "~bootstrap/scss/_variables"; +@import "~bootstrap/scss/_mixins"; +@import "~bootstrap/scss/_root"; +@import "~bootstrap/scss/_reboot"; +@import "~bootstrap/scss/_type"; +@import "~bootstrap/scss/_images"; +@import "~bootstrap/scss/_code"; +@import "~bootstrap/scss/_grid"; +@import "~bootstrap/scss/_tables"; +@import "~bootstrap/scss/_forms"; +@import "~bootstrap/scss/_buttons"; +@import "~bootstrap/scss/_transitions"; +@import "~bootstrap/scss/_dropdown"; +@import "~bootstrap/scss/_button-group"; +@import "~bootstrap/scss/_input-group"; +@import "~bootstrap/scss/_custom-forms"; +@import "~bootstrap/scss/_nav"; +@import "~bootstrap/scss/_navbar"; +@import "~bootstrap/scss/_card"; +@import "~bootstrap/scss/_breadcrumb"; +@import "~bootstrap/scss/_pagination"; +@import "~bootstrap/scss/_badge"; +@import "~bootstrap/scss/_jumbotron"; +@import "~bootstrap/scss/_alert"; +@import "~bootstrap/scss/_progress"; +@import "~bootstrap/scss/_media"; +@import "~bootstrap/scss/_list-group"; +@import "~bootstrap/scss/_close"; +//@import "~bootstrap/scss/_toasts"; +@import "~bootstrap/scss/_modal"; +@import "~bootstrap/scss/_tooltip"; +@import "~bootstrap/scss/_popover"; +@import "~bootstrap/scss/_carousel"; +@import "~bootstrap/scss/_spinners"; +@import "~bootstrap/scss/_utilities"; +@import "~bootstrap/scss/_print"; + +@import "~ngx-toastr/toastr"; +@import "~#sweetalert2"; + +@import "./base"; +@import "./buttons"; +@import "./callouts"; +@import "./cards"; +@import "./forms"; +@import "./navigation"; +@import "./modals"; +@import "./pages"; +@import "./plugins"; +@import "./tables"; +@import "./toasts"; +@import "./vault-filters"; diff --git a/apps/web/src/scss/tables.scss b/apps/web/src/scss/tables.scss new file mode 100644 index 0000000000..7274aaf0e8 --- /dev/null +++ b/apps/web/src/scss/tables.scss @@ -0,0 +1,137 @@ +.table { + @include themify($themes) { + color: themed("textColor"); + } + + td { + vertical-align: middle; + @include themify($themes) { + color: themed("textColor"); + } + + & > a { + &:not(.badge) { + @include themify($themes) { + color: themed("tableLinkColor"); + } + &:hover { + @include themify($themes) { + color: themed("tableLinkColorHover"); + } + } + } + } + + &.reduced-lh { + line-height: 1; + + small { + font-size: 80%; + } + } + + small, + > .bwi, + .icon { + @include themify($themes) { + color: themed("textMuted"); + } + } + + .bwi-globe { + @include themify($themes) { + color: themed("iconColor"); + } + } + } + + td.wrap { + word-break: break-all; + } + + td.table-list-options { + height: 50px; + max-width: 76px; + text-align: right; + width: 76px; + + &.wider { + max-width: 100px; + width: 100px; + } + + .btn { + line-height: 1; + transition: initial; + } + + .dropdown-menu { + line-height: $line-height-base; + } + } + + td.table-action-right { + text-align: right; + } + + // Deprecated: only used for old Bootstrap table-list-option menus before the End User Vault Refresh. + // New menus should be permanently visible. + tr:not(:hover) td.table-list-options { + > .dropdown:not(.show) button:not(:focus):not(:active), + > button.dropdown-toggle:not(:focus):not(:active) { + @extend .sr-only; + } + } + + td.table-list-icon { + max-width: 45px; + text-align: center; + width: 45px; + + img { + @extend .rounded; + @extend .img-fluid; + max-height: 24px; + } + } + + td.table-list-checkbox { + max-width: 35px; + width: 35px; + } + + td.table-list-strike { + text-decoration: line-through; + @include themify($themes) { + color: themed("textMuted"); + } + } + + &.table-list { + &.table td, + .table th { + &:not(tr:first-child td) { + @include themify($themes) { + border-top: 1px solid themed("tableSeparator"); + } + } + } + + thead th { + border-top: none; + } + + tr:first-child { + td { + border: none; + } + } + } +} + +.table-hover tbody tr:hover { + @include themify($themes) { + background-color: themed("tableRowHover"); + color: themed("tableColorHover"); + } +} diff --git a/apps/web/src/scss/tailwind.css b/apps/web/src/scss/tailwind.css new file mode 100644 index 0000000000..58435b41e7 --- /dev/null +++ b/apps/web/src/scss/tailwind.css @@ -0,0 +1,5 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@import "../../jslib/components/src/tw-theme.css"; diff --git a/apps/web/src/scss/toasts.scss b/apps/web/src/scss/toasts.scss new file mode 100644 index 0000000000..6685de6449 --- /dev/null +++ b/apps/web/src/scss/toasts.scss @@ -0,0 +1,117 @@ +.toast-container { + .toast-close-button { + font-size: 18px; + margin-right: 4px; + } + + .ngx-toastr { + align-items: center; + background-image: none !important; + border-radius: $border-radius; + box-shadow: 0 0 8px rgba(0, 0, 0, 0.35); + display: flex; + padding: 15px; + + .toast-close-button { + position: absolute; + right: 5px; + top: 0; + } + + &:hover { + box-shadow: 0 0 10px rgba(0, 0, 0, 0.6); + } + + .icon i::before { + float: left; + font-style: normal; + font-family: $icomoon-font-family; + font-size: 25px; + line-height: 20px; + padding-right: 15px; + } + + .toast-message { + p { + margin-bottom: 0.5rem; + + &:last-child { + margin-bottom: 0; + } + } + } + + &.toast-danger, + &.toast-error { + @include themify($themes) { + background-color: themed("danger"); + } + + &, + &:before, + & .toast-close-button { + @include themify($themes) { + color: themed("textDangerColor") !important; + } + } + + .icon i::before { + content: map_get($icons, "error"); + } + } + + &.toast-warning { + @include themify($themes) { + background-color: themed("warning"); + } + + &, + &:before, + & .toast-close-button { + @include themify($themes) { + color: themed("textWarningColor") !important; + } + } + + .icon i::before { + content: map_get($icons, "exclamation-triangle"); + } + } + + &.toast-info { + @include themify($themes) { + background-color: themed("info"); + } + + &, + &:before, + & .toast-close-button { + @include themify($themes) { + color: themed("textInfoColor") !important; + } + } + + .icon i:before { + content: map_get($icons, "info-circle"); + } + } + + &.toast-success { + @include themify($themes) { + background-color: themed("success"); + } + + &, + &:before, + & .toast-close-button { + @include themify($themes) { + color: themed("textSuccessColor") !important; + } + } + + .icon i:before { + content: map_get($icons, "check"); + } + } + } +} diff --git a/apps/web/src/scss/variables.scss b/apps/web/src/scss/variables.scss new file mode 100644 index 0000000000..a0bc2d8852 --- /dev/null +++ b/apps/web/src/scss/variables.scss @@ -0,0 +1,357 @@ +$dark-icon-themes: "theme_dark"; + +$primary: #175ddc; +$primary-accent: #1252a3; +$secondary: #ced4da; +$secondary-alt: #1a3b66; +$success: #00a65a; +$info: #555555; +$warning: #bf7e16; +$danger: #dd4b39; +$white: #ffffff; + +// Bootstrap Variable Overrides + +$theme-colors: ( + "primary-accent": $primary-accent, + "secondary-alt": $secondary-alt, +); + +$body-bg: $white; +$body-color: #333333; + +$font-family-sans-serif: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif, + "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + +$h1-font-size: 1.7rem; +$h2-font-size: 1.3rem; +$h3-font-size: 1rem; +$h4-font-size: 1rem; +$h5-font-size: 1rem; +$h6-font-size: 1rem; + +$small-font-size: 90%; +$font-size-lg: 1.15rem; +$code-font-size: 100%; + +$navbar-padding-y: 0.75rem; +$grid-gutter-width: 20px; +$card-spacer-y: 0.6rem; + +$list-group-item-padding-y: 0.6rem; +$list-group-active-color: $body-color; +$list-group-active-bg: $white; +$list-group-active-border-color: rgba(#000000, 0.125); + +$dropdown-link-color: $body-color; +$dropdown-link-hover-bg: rgba(#000000, 0.06); +$dropdown-link-active-color: $dropdown-link-color; +$dropdown-link-active-bg: rgba(#000000, 0.1); +$dropdown-item-padding-x: 1rem; + +$navbar-brand-font-size: 35px; +$navbar-brand-height: 35px; +$navbar-brand-padding-y: 0; +$navbar-dark-color: rgba($white, 0.7); +$navbar-dark-hover-color: rgba($white, 0.9); +$navbar-nav-link-padding-x: 0.8rem; + +$input-bg: #fbfbfb; +$input-focus-bg: $white; +$input-disabled-bg: #e0e0e0; +$input-placeholder-color: #b4b4b4; + +$table-accent-bg: rgba(#000000, 0.02); +$table-hover-bg: rgba(#000000, 0.03); + +$modal-backdrop-opacity: 0.3; +$btn-font-weight: 600; +$lead-font-weight: normal; + +$grid-breakpoints: ( + xs: 0, + sm: 1px, + md: 2px, + lg: 3px, + xl: 4px, +); + +$border-color: $secondary; + +// MFA Types for logo styling with no dark theme alternative + +$mfaTypes: 0, 2, 3, 4, 6; + +// Theme Variables +// Light + +$lightDangerHover: #c43421; +$lightInputColor: #465057; +$lightInputPlaceholderColor: #b6b8b8; + +// Dark + +$darkPrimary: #6a99f0; +$darkPrimary-alt: #b4ccf9; +$darkDanger: #ff8d85; +$darkDangerHover: #ffbfbb; +$darkSuccess: #52e07c; +$darkWarning: #ffeb66; +$darkInfo: #a4b0c6; +$darkLinks: #6a99f0; +$darkGrey1: #bac0ce; +$darkGrey2: #8d94a5; +$darkBlue1: #4c525f; +$darkBlue2: #3c424e; +$darkDarkBlue1: #2f343d; +$darkDarkBlue2: #1f242e; +$darkInputColor: $white; +$darkInputPlaceholderColor: $darkGrey1; + +$themes: ( + light: ( + primary: $primary, + primaryAlt: $primary-accent, + danger: $danger, + info: #343a40, + success: $success, + warning: $warning, + backgroundColor: $white, + badgeDangerBackground: $danger, + badgeDangerText: $white, + badgeInfoBackground: #555555, + badgeInfoText: $white, + badgePrimaryBackground: $primary, + badgePrimaryBackgroundHover: #134eb9, + badgePrimaryText: $white, + badgeSecondaryBackground: #ced4da, + badgeSecondaryText: #212529, + bgLightColor: #f8f9fa, + bgPrimaryColor: $primary, + borderColor: $border-color, + borderPrimaryColor: $primary, + browserInputIconsFilter: invert(0), + btnDanger: $danger, + btnDangerHover: $lightDangerHover, + btnDangerText: $white, + btnLinkText: $primary, + btnLinkTextHover: #104097, + btnOutlineDangerBackground: $input-bg, + btnOutlineDangerBackgroundHover: $danger, + btnOutlineDangerBorder: #ced4da, + btnOutlineDangerBorderHover: $danger, + btnOutlineDangerText: $danger, + btnOutlineDangerTextHover: $white, + btnOutlinePrimaryBackground: $input-bg, + btnOutlinePrimaryBackgroundHover: $primary, + btnOutlinePrimaryBorder: #ced4da, + btnOutlinePrimaryBorderHover: $primary, + btnOutlinePrimaryText: $primary, + btnOutlinePrimaryTextHover: $white, + btnOutlineSecondaryBackground: $input-bg, + btnOutlineSecondaryBackgroundHover: #ced4da, + btnOutlineSecondaryBorder: #ced4da, + btnOutlineSecondaryBorderHover: #ced4da, + btnOutlineSecondaryText: #6c757d, + btnOutlineSecondaryTextHover: #333333, + btnPrimary: $primary, + btnPrimaryBorderHover: #1249ae, + btnPrimaryHover: #134eb9, + btnPrimaryText: $white, + btnSecondary: $secondary, + btnSecondaryBorder: $secondary, + btnSecondaryBorderHover: #b1bbc4, + btnSecondaryHover: #b8c1ca, + btnSecondaryText: #212529, + btnSecondaryTextHover: #212529, + calloutBackground: #fafafa, + calloutColor: #212529, + cdkDraggingBackground: $white, + codeColor: #e83e8c, + dropdownBackground: $white, + dropdownHover: rgba(0, 0, 0, 0.06), + dropdownTextColor: $body-color, + dropdownTextMuted: #6c757d, + focus: rgb(23 93 220 / 25%), + footerBackgroundColor: #fbfbfb, + foregroundColor: $white, + headerColor: rgba(0, 0, 0, 0.03), + iconColor: #777777, + iconHover: $body-color, + imgFilter: invert(0) grayscale(0), + inputBackgroundColor: $input-bg, + inputBorderColor: $border-color, + inputDisabledBackground: #e0e0e0, + inputDisabledColor: #6c757d, + inputPlaceholderColor: $lightInputPlaceholderColor, + inputTextColor: $lightInputColor, + layoutFrontendColor: #ecf0f5, + learnMoreHover: #104097, + linkColor: $primary, + linkColorHover: #104097, + linkWeight: 400, + listItemActive: $body-color, + listItemBorder: rgba(0, 0, 0, 0.125), + loadingSvg: url("../images/loading.svg"), + logoSuffix: "dark", + mfaLogoSuffix: ".png", + navActiveBackground: $white, + navActiveWeight: 600, + navBackground: $primary, + navBackgroundAlt: $secondary-alt, + navOrgBackgroundColor: #fbfbfb, + navWeight: 600, + pwLetter: $body-color, + pwNumber: #007fde, + pwSpecial: #c40800, + pwStrengthBackground: #e9ecef, + separator: $secondary, + separatorHr: rgb(0, 0, 0, 0.1), + tableColorHover: #333333, + tableLinkColor: $primary, + tableLinkColorHover: #104097, + tableRowHover: rgba(0, 0, 0, 0.03), + tableSeparator: #dee2e6, + textColor: $body-color, + textDangerColor: $white, + textInfoColor: $white, + textHeadingColor: #333333, + textMuted: #6c757d, + textSuccessColor: $white, + textWarningColor: $white, + ), + dark: ( + primary: $darkPrimary, + primaryAlt: $darkPrimary-alt, + danger: $darkDanger, + info: $darkInfo, + success: $darkSuccess, + warning: $darkWarning, + backgroundColor: $darkDarkBlue2, + badgeDangerBackground: $darkDanger, + badgeDangerText: $darkDarkBlue2, + badgeInfoBackground: $darkInfo, + badgeInfoText: $darkDarkBlue2, + badgePrimaryBackground: $darkLinks, + badgePrimaryBackgroundHover: $darkPrimary-alt, + badgePrimaryText: $darkDarkBlue2, + badgeSecondaryBackground: $darkGrey2, + badgeSecondaryText: $darkDarkBlue2, + bgLightColor: $darkDarkBlue2, + bgPrimaryColor: $darkPrimary, + borderColor: $darkBlue1, + borderPrimaryColor: $darkPrimary, + browserInputIconsFilter: invert(1), + btnDanger: $darkDanger, + btnDangerHover: $darkDangerHover, + btnDangerText: $darkDarkBlue2, + btnLinkText: $white, + btnLinkTextHover: $darkGrey1, + btnOutlineDangerBackground: $darkDanger, + btnOutlineDangerBackgroundHover: $darkDangerHover, + btnOutlineDangerBorder: $darkDanger, + btnOutlineDangerBorderHover: $darkDangerHover, + btnOutlineDangerText: $darkDarkBlue2, + btnOutlineDangerTextHover: $darkDarkBlue2, + btnOutlinePrimaryBackground: $darkPrimary, + btnOutlinePrimaryBackgroundHover: $darkPrimary-alt, + btnOutlinePrimaryBorder: $darkPrimary, + btnOutlinePrimaryBorderHover: $darkPrimary-alt, + btnOutlinePrimaryText: $darkDarkBlue2, + btnOutlinePrimaryTextHover: $darkDarkBlue2, + btnOutlineSecondaryBackground: transparent, + btnOutlineSecondaryBackgroundHover: transparent, + btnOutlineSecondaryBorder: $darkGrey1, + btnOutlineSecondaryBorderHover: $darkGrey2, + btnOutlineSecondaryText: $white, + btnOutlineSecondaryTextHover: $darkGrey2, + btnPrimary: $darkLinks, + btnPrimaryBorderHover: $darkPrimary-alt, + btnPrimaryHover: $darkPrimary-alt, + btnPrimaryText: $darkDarkBlue2, + btnSecondary: transparent, + btnSecondaryBorder: $darkGrey1, + btnSecondaryBorderHover: $darkGrey2, + btnSecondaryHover: transparent, + btnSecondaryText: $white, + btnSecondaryTextHover: $darkGrey2, + calloutBackground: $darkBlue2, + calloutColor: $white, + cdkDraggingBackground: $darkDarkBlue1, + codeColor: #e83e8c, + dropdownBackground: $darkDarkBlue1, + dropdownHover: rgba(255, 255, 255, 0.03), + dropdownTextColor: $white, + dropdownTextMuted: #bec6cf, + focus: rgb(106 153 240 / 25%), + footerBackgroundColor: $darkBlue1, + foregroundColor: $darkDarkBlue1, + headerColor: $darkBlue1, + iconColor: #777777, + iconHover: $darkGrey2, + imgFilter: invert(1) grayscale(1), + inputBackgroundColor: transparent, + inputBorderColor: $darkGrey1, + inputDisabledBackground: $darkBlue2, + inputDisabledColor: $darkGrey1, + inputPlaceholderColor: $darkInputPlaceholderColor, + inputTextColor: $darkInputColor, + layoutFrontendColor: $darkDarkBlue2, + learnMoreHover: $darkPrimary-alt, + linkColor: $darkLinks, + linkColorHover: $darkLinks, + linkWeight: 600, + listItemActive: $darkPrimary, + listItemBorder: $darkBlue1, + loadingSvg: url("../images/loading-white.svg"), + logoSuffix: "white", + mfaLogoSuffix: "-w.png", + navActiveBackground: $darkDarkBlue2, + navActiveWeight: 600, + navBackground: $darkDarkBlue1, + navBackgroundAlt: $darkDarkBlue1, + navOrgBackgroundColor: #161c26, + navWeight: 400, + pwLetter: $white, + pwNumber: #52bdfb, + pwSpecial: #ff7c70, + pwStrengthBackground: $darkBlue2, + separator: $darkBlue1, + separatorHr: $darkBlue1, + tableColorHover: $darkGrey1, + tableLinkColor: $white, + tableLinkColorHover: $white, + tableRowHover: rgba(255, 255, 255, 0.03), + tableSeparator: $darkBlue1, + textColor: $darkGrey1, + textDangerColor: $darkDarkBlue2, + textHeadingColor: $white, + textInfoColor: $darkDarkBlue2, + textMuted: $darkGrey1, + textSuccessColor: $darkDarkBlue2, + textWarningColor: $darkDarkBlue2, + ), +); + +@mixin themify($themes: $themes) { + @each $theme, $map in $themes { + html.theme_#{$theme} & { + $theme-map: () !global; + @each $key, $submap in $map { + $value: map-get(map-get($themes, $theme), "#{$key}"); + $theme-map: map-merge( + $theme-map, + ( + $key: $value, + ) + ) !global; + } + @content; + $theme-map: null !global; + } + } +} + +@function themed($key) { + @return map-get($theme-map, $key); +} ; diff --git a/apps/web/src/scss/vault-filters.scss b/apps/web/src/scss/vault-filters.scss new file mode 100644 index 0000000000..301497ea5b --- /dev/null +++ b/apps/web/src/scss/vault-filters.scss @@ -0,0 +1,196 @@ +.filter { + padding-bottom: 10px; +} + +.filter-heading { + display: flex; + text-transform: uppercase; + align-items: center; + + * { + @include themify($themes) { + color: themed("headingColor"); + } + font-size: $font-size-base; + } + + button { + @extend .no-btn; + } + + h3, + button.filter-button { + margin: 0; + @include themify($themes) { + color: themed("textMuted"); + } + } + + button.filter-button { + &:hover, + &:focus, + &.active { + @include themify($themes) { + color: themed("linkColor") !important; + } + } + &.active { + font-weight: bold; + } + } + + button.toggle-button { + &:hover, + &:focus { + @include themify($themes) { + color: themed("iconHover") !important; + } + } + } +} + +.filter-options { + padding: 0; + list-style: none; + margin: 0 0 15px 0; + .nested-filter-options { + list-style: none; + margin-bottom: 0px; + padding-left: 0.85em; + } +} + +.filter-option { + @include themify($themes) { + color: themed("textColor"); + } + + &.active { + > .filter-buttons { + .filter-button { + @include themify($themes) { + color: themed("linkColor") !important; + } + font-weight: bold; + } + + .edit-button { + visibility: visible; + } + } + } +} + +.filter-buttons { + display: flex; + align-items: center; + + button, + a { + @extend .no-btn; + } + + .toggle-button { + &:hover, + &:focus { + @include themify($themes) { + color: themed("iconHover") !important; + } + } + } + + .filter-button { + &:hover, + &:focus, + &:active { + @include themify($themes) { + color: themed("linkColor") !important; + } + text-decoration: none; + } + max-width: 90%; + } + + .edit-button { + visibility: hidden; + margin-left: auto; + + @include themify($themes) { + color: themed("headingButtonColor"); + } + + &:hover, + &:focus { + @include themify($themes) { + color: themed("iconHover") !important; + } + } + } +} + +.groupings { + .card { + #search { + margin-bottom: 1rem; + @include themify($themes) { + background-color: themed("inputBackgroundColor"); + border-color: themed("inputBorderColor"); + color: themed("inputTextColor"); + } + + &::placeholder { + @include themify($themes) { + color: themed("inputPlaceholderColor"); + } + } + } + + h3 { + font-weight: normal; + text-transform: uppercase; + @include themify($themes) { + color: themed("textMuted"); + } + } + + ul:last-child { + margin-bottom: 0; + } + + .card-body a { + @include themify($themes) { + color: themed("textHeadingColor"); + font-weight: themed("linkWeight"); + } + + &:hover { + &.text-muted { + } + } + } + .show-active { + display: none; + } + li.active { + > .show-active, + > div .show-active { + display: inline; + } + } + li.active { + > button:first-of-type, + > div button:first-of-type { + @include themify($themes) { + color: themed("linkColor"); + } + } + + > .bwi, + > div > .bwi { + @include themify($themes) { + color: themed("linkColor"); + } + } + } + } +} diff --git a/apps/web/src/services/broadcasterMessaging.service.ts b/apps/web/src/services/broadcasterMessaging.service.ts new file mode 100644 index 0000000000..8ba3e7f1ba --- /dev/null +++ b/apps/web/src/services/broadcasterMessaging.service.ts @@ -0,0 +1,14 @@ +import { Injectable } from "@angular/core"; + +import { BroadcasterService } from "jslib-common/abstractions/broadcaster.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; + +@Injectable() +export class BroadcasterMessagingService implements MessagingService { + constructor(private broadcasterService: BroadcasterService) {} + + send(subscriber: string, arg: any = {}) { + const message = Object.assign({}, { command: subscriber }, arg); + this.broadcasterService.send(message); + } +} diff --git a/apps/web/src/services/htmlStorage.service.ts b/apps/web/src/services/htmlStorage.service.ts new file mode 100644 index 0000000000..b706d5277d --- /dev/null +++ b/apps/web/src/services/htmlStorage.service.ts @@ -0,0 +1,70 @@ +import { Injectable } from "@angular/core"; + +import { StorageService } from "jslib-common/abstractions/storage.service"; +import { HtmlStorageLocation } from "jslib-common/enums/htmlStorageLocation"; +import { StorageOptions } from "jslib-common/models/domain/storageOptions"; + +@Injectable() +export class HtmlStorageService implements StorageService { + get defaultOptions(): StorageOptions { + return { htmlStorageLocation: HtmlStorageLocation.Session }; + } + + get(key: string, options: StorageOptions = this.defaultOptions): Promise { + let json: string = null; + switch (options.htmlStorageLocation) { + case HtmlStorageLocation.Local: + json = window.localStorage.getItem(key); + break; + case HtmlStorageLocation.Session: + default: + json = window.sessionStorage.getItem(key); + break; + } + + if (json != null) { + const obj = JSON.parse(json); + return Promise.resolve(obj as T); + } + return Promise.resolve(null); + } + + async has(key: string, options: StorageOptions = this.defaultOptions): Promise { + return (await this.get(key, options)) != null; + } + + save(key: string, obj: any, options: StorageOptions = this.defaultOptions): Promise { + if (obj == null) { + return this.remove(key, options); + } + + if (obj instanceof Set) { + obj = Array.from(obj); + } + + const json = JSON.stringify(obj); + switch (options.htmlStorageLocation) { + case HtmlStorageLocation.Local: + window.localStorage.setItem(key, json); + break; + case HtmlStorageLocation.Session: + default: + window.sessionStorage.setItem(key, json); + break; + } + return Promise.resolve(); + } + + remove(key: string, options: StorageOptions = this.defaultOptions): Promise { + switch (options.htmlStorageLocation) { + case HtmlStorageLocation.Local: + window.localStorage.removeItem(key); + break; + case HtmlStorageLocation.Session: + default: + window.sessionStorage.removeItem(key); + break; + } + return Promise.resolve(); + } +} diff --git a/apps/web/src/services/i18n.service.ts b/apps/web/src/services/i18n.service.ts new file mode 100644 index 0000000000..0b0b526a7d --- /dev/null +++ b/apps/web/src/services/i18n.service.ts @@ -0,0 +1,72 @@ +import { I18nService as BaseI18nService } from "jslib-common/services/i18n.service"; + +export class I18nService extends BaseI18nService { + constructor(systemLanguage: string, localesDirectory: string) { + super(systemLanguage || "en-US", localesDirectory, async (formattedLocale: string) => { + const filePath = + this.localesDirectory + + "/" + + formattedLocale + + "/messages.json?cache=" + + process.env.CACHE_TAG; + const localesResult = await fetch(filePath); + const locales = await localesResult.json(); + return locales; + }); + + // Please leave 'en' where it is, as it's our fallback language in case no translation can be found + this.supportedTranslationLocales = [ + "en", + "af", + "az", + "be", + "bg", + "bn", + "bs", + "ca", + "cs", + "da", + "de", + "el", + "en-GB", + "en-IN", + "eo", + "es", + "et", + "fi", + "fil", + "fr", + "he", + "hi", + "hr", + "hu", + "id", + "it", + "ja", + "ka", + "km", + "kn", + "ko", + "lv", + "ml", + "nb", + "nl", + "nn", + "pl", + "pt-PT", + "pt-BR", + "ro", + "ru", + "si", + "sk", + "sl", + "sr", + "sv", + "tr", + "uk", + "vi", + "zh-CN", + "zh-TW", + ]; + } +} diff --git a/apps/web/src/services/memoryStorage.service.ts b/apps/web/src/services/memoryStorage.service.ts new file mode 100644 index 0000000000..5560f883de --- /dev/null +++ b/apps/web/src/services/memoryStorage.service.ts @@ -0,0 +1,30 @@ +import { StorageService } from "jslib-common/abstractions/storage.service"; + +export class MemoryStorageService implements StorageService { + private store = new Map(); + + get(key: string): Promise { + if (this.store.has(key)) { + const obj = this.store.get(key); + return Promise.resolve(obj as T); + } + return Promise.resolve(null); + } + + async has(key: string): Promise { + return this.get(key) != null; + } + + save(key: string, obj: any): Promise { + if (obj == null) { + return this.remove(key); + } + this.store.set(key, obj); + return Promise.resolve(); + } + + remove(key: string): Promise { + this.store.delete(key); + return Promise.resolve(); + } +} diff --git a/apps/web/src/services/passwordReprompt.service.ts b/apps/web/src/services/passwordReprompt.service.ts new file mode 100644 index 0000000000..ad13a4d003 --- /dev/null +++ b/apps/web/src/services/passwordReprompt.service.ts @@ -0,0 +1,10 @@ +import { Injectable } from "@angular/core"; + +import { PasswordRepromptService as BasePasswordRepromptService } from "jslib-angular/services/passwordReprompt.service"; + +import { PasswordRepromptComponent } from "../app/components/password-reprompt.component"; + +@Injectable() +export class PasswordRepromptService extends BasePasswordRepromptService { + component = PasswordRepromptComponent; +} diff --git a/apps/web/src/services/state.service.ts b/apps/web/src/services/state.service.ts new file mode 100644 index 0000000000..9328a4fd8b --- /dev/null +++ b/apps/web/src/services/state.service.ts @@ -0,0 +1,102 @@ +import { CipherData } from "jslib-common/models/data/cipherData"; +import { CollectionData } from "jslib-common/models/data/collectionData"; +import { FolderData } from "jslib-common/models/data/folderData"; +import { SendData } from "jslib-common/models/data/sendData"; +import { StorageOptions } from "jslib-common/models/domain/storageOptions"; +import { StateService as BaseStateService } from "jslib-common/services/state.service"; + +import { StateService as StateServiceAbstraction } from "../abstractions/state.service"; +import { Account } from "../models/account"; +import { GlobalState } from "../models/globalState"; + +export class StateService + extends BaseStateService + implements StateServiceAbstraction +{ + async addAccount(account: Account) { + // Apply web overides to default account values + account = new Account(account); + await super.addAccount(account); + } + + async getRememberEmail(options?: StorageOptions) { + return ( + await this.getGlobals(this.reconcileOptions(options, await this.defaultOnDiskLocalOptions())) + )?.rememberEmail; + } + + async setRememberEmail(value: boolean, options?: StorageOptions): Promise { + const globals = await this.getGlobals( + this.reconcileOptions(options, await this.defaultOnDiskLocalOptions()) + ); + globals.rememberEmail = value; + await this.saveGlobals( + globals, + this.reconcileOptions(options, await this.defaultOnDiskLocalOptions()) + ); + } + + async getEncryptedCiphers(options?: StorageOptions): Promise<{ [id: string]: CipherData }> { + options = this.reconcileOptions(options, this.defaultInMemoryOptions); + return await super.getEncryptedCiphers(options); + } + + async setEncryptedCiphers( + value: { [id: string]: CipherData }, + options?: StorageOptions + ): Promise { + options = this.reconcileOptions(options, this.defaultInMemoryOptions); + return await super.setEncryptedCiphers(value, options); + } + + async getEncryptedCollections( + options?: StorageOptions + ): Promise<{ [id: string]: CollectionData }> { + options = this.reconcileOptions(options, this.defaultInMemoryOptions); + return await super.getEncryptedCollections(options); + } + + async setEncryptedCollections( + value: { [id: string]: CollectionData }, + options?: StorageOptions + ): Promise { + options = this.reconcileOptions(options, this.defaultInMemoryOptions); + return await super.setEncryptedCollections(value, options); + } + + async getEncryptedFolders(options?: StorageOptions): Promise<{ [id: string]: FolderData }> { + options = this.reconcileOptions(options, this.defaultInMemoryOptions); + return await super.getEncryptedFolders(options); + } + + async setEncryptedFolders( + value: { [id: string]: FolderData }, + options?: StorageOptions + ): Promise { + options = this.reconcileOptions(options, this.defaultInMemoryOptions); + return await super.setEncryptedFolders(value, options); + } + + async getEncryptedSends(options?: StorageOptions): Promise<{ [id: string]: SendData }> { + options = this.reconcileOptions(options, this.defaultInMemoryOptions); + return await super.getEncryptedSends(options); + } + + async setEncryptedSends( + value: { [id: string]: SendData }, + options?: StorageOptions + ): Promise { + options = this.reconcileOptions(options, this.defaultInMemoryOptions); + return await super.setEncryptedSends(value, options); + } + + override async getLastSync(options?: StorageOptions): Promise { + options = this.reconcileOptions(options, this.defaultInMemoryOptions); + return await super.getLastSync(options); + } + + override async setLastSync(value: string, options?: StorageOptions): Promise { + options = this.reconcileOptions(options, this.defaultInMemoryOptions); + return await super.setLastSync(value, options); + } +} diff --git a/apps/web/src/services/stateMigration.service.ts b/apps/web/src/services/stateMigration.service.ts new file mode 100644 index 0000000000..86b2169307 --- /dev/null +++ b/apps/web/src/services/stateMigration.service.ts @@ -0,0 +1,13 @@ +import { StateMigrationService as BaseStateMigrationService } from "jslib-common/services/stateMigration.service"; + +import { Account } from "../models/account"; +import { GlobalState } from "../models/globalState"; + +export class StateMigrationService extends BaseStateMigrationService { + protected async migrationStateFrom1To2(): Promise { + await super.migrateStateFrom1To2(); + const globals = (await this.get("global")) ?? this.stateFactory.createGlobal(null); + globals.rememberEmail = (await this.get("rememberEmail")) ?? globals.rememberEmail; + await this.set("global", globals); + } +} diff --git a/apps/web/src/services/webPlatformUtils.service.ts b/apps/web/src/services/webPlatformUtils.service.ts new file mode 100644 index 0000000000..755600a15a --- /dev/null +++ b/apps/web/src/services/webPlatformUtils.service.ts @@ -0,0 +1,334 @@ +import { Injectable } from "@angular/core"; +import Swal, { SweetAlertIcon } from "sweetalert2"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { MessagingService } from "jslib-common/abstractions/messaging.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { ClientType } from "jslib-common/enums/clientType"; +import { DeviceType } from "jslib-common/enums/deviceType"; +import { ThemeType } from "jslib-common/enums/themeType"; + +@Injectable() +export class WebPlatformUtilsService implements PlatformUtilsService { + private browserCache: DeviceType = null; + private prefersColorSchemeDark = window.matchMedia("(prefers-color-scheme: dark)"); + + constructor( + private i18nService: I18nService, + private messagingService: MessagingService, + private logService: LogService, + private stateService: StateService + ) {} + + getDevice(): DeviceType { + if (this.browserCache != null) { + return this.browserCache; + } + + if ( + navigator.userAgent.indexOf(" Firefox/") !== -1 || + navigator.userAgent.indexOf(" Gecko/") !== -1 + ) { + this.browserCache = DeviceType.FirefoxBrowser; + } else if (navigator.userAgent.indexOf(" OPR/") >= 0) { + this.browserCache = DeviceType.OperaBrowser; + } else if (navigator.userAgent.indexOf(" Edg/") !== -1) { + this.browserCache = DeviceType.EdgeBrowser; + } else if (navigator.userAgent.indexOf(" Vivaldi/") !== -1) { + this.browserCache = DeviceType.VivaldiBrowser; + } else if ( + navigator.userAgent.indexOf(" Safari/") !== -1 && + navigator.userAgent.indexOf("Chrome") === -1 + ) { + this.browserCache = DeviceType.SafariBrowser; + } else if ((window as any).chrome && navigator.userAgent.indexOf(" Chrome/") !== -1) { + this.browserCache = DeviceType.ChromeBrowser; + } else if (navigator.userAgent.indexOf(" Trident/") !== -1) { + this.browserCache = DeviceType.IEBrowser; + } else { + this.browserCache = DeviceType.UnknownBrowser; + } + + return this.browserCache; + } + + getDeviceString(): string { + const device = DeviceType[this.getDevice()].toLowerCase(); + return device.replace("browser", ""); + } + + getClientType() { + return ClientType.Web; + } + + isFirefox(): boolean { + return this.getDevice() === DeviceType.FirefoxBrowser; + } + + isChrome(): boolean { + return this.getDevice() === DeviceType.ChromeBrowser; + } + + isEdge(): boolean { + return this.getDevice() === DeviceType.EdgeBrowser; + } + + isOpera(): boolean { + return this.getDevice() === DeviceType.OperaBrowser; + } + + isVivaldi(): boolean { + return this.getDevice() === DeviceType.VivaldiBrowser; + } + + isSafari(): boolean { + return this.getDevice() === DeviceType.SafariBrowser; + } + + isMacAppStore(): boolean { + return false; + } + + isViewOpen(): Promise { + return Promise.resolve(false); + } + + launchUri(uri: string, options?: any): void { + const a = document.createElement("a"); + a.href = uri; + if (options == null || !options.sameWindow) { + a.target = "_blank"; + a.rel = "noreferrer noopener"; + } + a.classList.add("d-none"); + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + } + + saveFile(win: Window, blobData: any, blobOptions: any, fileName: string): void { + let blob: Blob = null; + let type: string = null; + const fileNameLower = fileName.toLowerCase(); + let doDownload = true; + if (fileNameLower.endsWith(".pdf")) { + type = "application/pdf"; + doDownload = false; + } else if (fileNameLower.endsWith(".xlsx")) { + type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; + } else if (fileNameLower.endsWith(".docx")) { + type = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; + } else if (fileNameLower.endsWith(".pptx")) { + type = "application/vnd.openxmlformats-officedocument.presentationml.presentation"; + } else if (fileNameLower.endsWith(".csv")) { + type = "text/csv"; + } else if (fileNameLower.endsWith(".png")) { + type = "image/png"; + } else if (fileNameLower.endsWith(".jpg") || fileNameLower.endsWith(".jpeg")) { + type = "image/jpeg"; + } else if (fileNameLower.endsWith(".gif")) { + type = "image/gif"; + } + if (type != null) { + blobOptions = blobOptions || {}; + if (blobOptions.type == null) { + blobOptions.type = type; + } + } + if (blobOptions != null) { + blob = new Blob([blobData], blobOptions); + } else { + blob = new Blob([blobData]); + } + + const a = win.document.createElement("a"); + if (doDownload) { + a.download = fileName; + } else if (!this.isSafari()) { + a.target = "_blank"; + } + a.href = URL.createObjectURL(blob); + a.style.position = "fixed"; + win.document.body.appendChild(a); + a.click(); + win.document.body.removeChild(a); + } + + getApplicationVersion(): Promise { + return Promise.resolve(process.env.APPLICATION_VERSION || "-"); + } + + supportsWebAuthn(win: Window): boolean { + return typeof PublicKeyCredential !== "undefined"; + } + + supportsDuo(): boolean { + return true; + } + + showToast( + type: "error" | "success" | "warning" | "info", + title: string, + text: string | string[], + options?: any + ): void { + this.messagingService.send("showToast", { + text: text, + title: title, + type: type, + options: options, + }); + } + + async showDialog( + body: string, + title?: string, + confirmText?: string, + cancelText?: string, + type?: string, + bodyIsHtml = false + ) { + let iconClasses: string = null; + if (type != null) { + // If you add custom types to this part, the type to SweetAlertIcon cast below needs to be changed. + switch (type) { + case "success": + iconClasses = "bwi-check text-success"; + break; + case "warning": + iconClasses = "bwi-exclamation-triangle text-warning"; + break; + case "error": + iconClasses = "bwi-error text-danger"; + break; + case "info": + iconClasses = "bwi-info-circle text-info"; + break; + default: + break; + } + } + + const bootstrapModal = document.querySelector("div.modal"); + if (bootstrapModal != null) { + bootstrapModal.removeAttribute("tabindex"); + } + + const iconHtmlStr = + iconClasses != null ? `` : undefined; + const confirmed = await Swal.fire({ + heightAuto: false, + buttonsStyling: false, + icon: type as SweetAlertIcon, // required to be any of the SweetAlertIcons to output the iconHtml. + iconHtml: iconHtmlStr, + text: bodyIsHtml ? null : body, + html: bodyIsHtml ? body : null, + titleText: title, + showCancelButton: cancelText != null, + cancelButtonText: cancelText, + showConfirmButton: true, + confirmButtonText: confirmText == null ? this.i18nService.t("ok") : confirmText, + }); + + if (bootstrapModal != null) { + bootstrapModal.setAttribute("tabindex", "-1"); + } + + return confirmed.value; + } + + isDev(): boolean { + return process.env.NODE_ENV === "development"; + } + + isSelfHost(): boolean { + return process.env.ENV.toString() === "selfhosted"; + } + + copyToClipboard(text: string, options?: any): void | boolean { + let win = window; + let doc = window.document; + if (options && (options.window || options.win)) { + win = options.window || options.win; + doc = win.document; + } else if (options && options.doc) { + doc = options.doc; + } + if ((win as any).clipboardData && (win as any).clipboardData.setData) { + // IE specific code path to prevent textarea being shown while dialog is visible. + (win as any).clipboardData.setData("Text", text); + } else if (doc.queryCommandSupported && doc.queryCommandSupported("copy")) { + const textarea = doc.createElement("textarea"); + textarea.textContent = text; + // Prevent scrolling to bottom of page in MS Edge. + textarea.style.position = "fixed"; + let copyEl = doc.body; + // For some reason copy command won't work when modal is open if appending to body + if (doc.body.classList.contains("modal-open")) { + copyEl = doc.body.querySelector(".modal"); + } + copyEl.appendChild(textarea); + textarea.select(); + let success = false; + try { + // Security exception may be thrown by some browsers. + success = doc.execCommand("copy"); + if (!success) { + this.logService.debug("Copy command unsupported or disabled."); + } + } catch (e) { + // eslint-disable-next-line + console.warn("Copy to clipboard failed.", e); + } finally { + copyEl.removeChild(textarea); + } + return success; + } + } + + readFromClipboard(options?: any): Promise { + throw new Error("Cannot read from clipboard on web."); + } + + supportsBiometric() { + return Promise.resolve(false); + } + + authenticateBiometric() { + return Promise.resolve(false); + } + + supportsSecureStorage() { + return false; + } + + getDefaultSystemTheme(): Promise { + return Promise.resolve(this.prefersColorSchemeDark.matches ? ThemeType.Dark : ThemeType.Light); + } + + async getEffectiveTheme(): Promise { + const theme = await this.stateService.getTheme(); + if (theme === ThemeType.Dark) { + return ThemeType.Dark; + } else if (theme === ThemeType.System) { + return this.getDefaultSystemTheme(); + } else { + return ThemeType.Light; + } + } + + onDefaultSystemThemeChange(callback: (theme: ThemeType.Light | ThemeType.Dark) => unknown) { + try { + this.prefersColorSchemeDark.addEventListener("change", ({ matches }) => { + callback(matches ? ThemeType.Dark : ThemeType.Light); + }); + } catch (e) { + // Safari older than v14 + this.prefersColorSchemeDark.addListener((ev) => { + callback(ev.matches ? ThemeType.Dark : ThemeType.Light); + }); + } + } +} diff --git a/apps/web/src/theme.js b/apps/web/src/theme.js new file mode 100644 index 0000000000..3fa49c6b37 --- /dev/null +++ b/apps/web/src/theme.js @@ -0,0 +1,24 @@ +// Set theme on page load +// This is done outside the Angular app to avoid a flash of unthemed content before it loads +// The defaultTheme is also set in the html itself to make sure that some theming is always applied +(function () { + const defaultTheme = "light"; + const htmlEl = document.documentElement; + let theme = defaultTheme; + + const globalState = window.localStorage.getItem("global"); + if (globalState != null) { + const globalStateJson = JSON.parse(globalState); + if (globalStateJson != null && globalStateJson.theme != null) { + if (globalStateJson.theme.indexOf("system") > -1) { + theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; + } else if (globalStateJson.theme.indexOf("dark") > -1) { + theme = "dark"; + } + } + if (!htmlEl.classList.contains("theme_" + theme)) { + htmlEl.classList.remove("theme_" + defaultTheme); + htmlEl.classList.add("theme_" + theme); + } + } +})(); diff --git a/apps/web/src/version.json b/apps/web/src/version.json new file mode 100644 index 0000000000..69c06fba13 --- /dev/null +++ b/apps/web/src/version.json @@ -0,0 +1 @@ +{ "version": "process.env.APPLICATION_VERSION" } diff --git a/apps/web/tailwind.config.js b/apps/web/tailwind.config.js new file mode 100644 index 0000000000..10bdee461c --- /dev/null +++ b/apps/web/tailwind.config.js @@ -0,0 +1,4 @@ +/* eslint-disable no-undef, @typescript-eslint/no-var-requires */ +const config = require("./jslib/components/tailwind.config.base"); + +module.exports = config; diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json new file mode 100644 index 0000000000..47d772a2d5 --- /dev/null +++ b/apps/web/tsconfig.json @@ -0,0 +1,23 @@ +{ + "extends": "./jslib/shared/tsconfig", + "compilerOptions": { + "baseUrl": ".", + "paths": { + "tldjs": ["jslib/common/src/misc/tldjs.noop"], + "jslib-common/*": ["jslib/common/src/*"], + "jslib-angular/*": ["jslib/angular/src/*"], + "@bitwarden/components": ["jslib/components/src"], + "src/*": ["src/*"] + } + }, + "angularCompilerOptions": { + "preserveWhitespaces": true + }, + "files": ["src/app/polyfills.ts", "src/app/main.ts"], + "include": [ + "src/connectors/*.ts", + "src/models/*.ts", + "src/services/*.ts", + "src/abstractions/*.ts" + ] +} diff --git a/apps/web/webpack.config.js b/apps/web/webpack.config.js new file mode 100644 index 0000000000..4a81e4dee3 --- /dev/null +++ b/apps/web/webpack.config.js @@ -0,0 +1,340 @@ +const fs = require("fs"); +const path = require("path"); + +const { AngularWebpackPlugin } = require("@ngtools/webpack"); +const { CleanWebpackPlugin } = require("clean-webpack-plugin"); +const CopyWebpackPlugin = require("copy-webpack-plugin"); +const HtmlWebpackInjector = require("html-webpack-injector"); +const HtmlWebpackPlugin = require("html-webpack-plugin"); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); +const TerserPlugin = require("terser-webpack-plugin"); +const webpack = require("webpack"); + +const config = require("./config.js"); +const pjson = require("./package.json"); + +const ENV = process.env.ENV == null ? "development" : process.env.ENV; +const NODE_ENV = process.env.NODE_ENV == null ? "development" : process.env.NODE_ENV; + +const envConfig = config.load(ENV); +config.log(envConfig); + +const moduleRules = [ + { + test: /\.(html)$/, + loader: "html-loader", + }, + { + test: /.(ttf|otf|eot|svg|woff(2)?)(\?[a-z0-9]+)?$/, + exclude: /loading(|-white).svg/, + generator: { + filename: "fonts/[name][ext]", + }, + type: "asset/resource", + }, + { + test: /\.(jpe?g|png|gif|svg|webp|avif)$/i, + exclude: /.*(bwi-font)\.svg/, + generator: { + filename: "images/[name][ext]", + }, + type: "asset/resource", + }, + { + test: /\.scss$/, + use: [ + { + loader: MiniCssExtractPlugin.loader, + }, + "css-loader", + "sass-loader", + ], + }, + { + test: /\.css$/, + use: [ + { + loader: MiniCssExtractPlugin.loader, + }, + "css-loader", + "postcss-loader", + ], + }, + { + test: /(?:\.ngfactory\.js|\.ngstyle\.js|\.ts)$/, + loader: "@ngtools/webpack", + }, +]; + +const plugins = [ + new CleanWebpackPlugin(), + // ref: https://github.com/angular/angular/issues/20357 + new webpack.ContextReplacementPlugin( + /\@angular(\\|\/)core(\\|\/)fesm5/, + path.resolve(__dirname, "./src") + ), + new HtmlWebpackPlugin({ + template: "./src/index.html", + filename: "index.html", + chunks: ["theme_head", "app/polyfills", "app/vendor", "app/main"], + }), + new HtmlWebpackInjector(), + new HtmlWebpackPlugin({ + template: "./src/connectors/duo.html", + filename: "duo-connector.html", + chunks: ["connectors/duo"], + }), + new HtmlWebpackPlugin({ + template: "./src/connectors/webauthn.html", + filename: "webauthn-connector.html", + chunks: ["connectors/webauthn"], + }), + new HtmlWebpackPlugin({ + template: "./src/connectors/webauthn-mobile.html", + filename: "webauthn-mobile-connector.html", + chunks: ["connectors/webauthn"], + }), + new HtmlWebpackPlugin({ + template: "./src/connectors/webauthn-fallback.html", + filename: "webauthn-fallback-connector.html", + chunks: ["connectors/webauthn-fallback"], + }), + new HtmlWebpackPlugin({ + template: "./src/connectors/sso.html", + filename: "sso-connector.html", + chunks: ["connectors/sso"], + }), + new HtmlWebpackPlugin({ + template: "./src/connectors/captcha.html", + filename: "captcha-connector.html", + chunks: ["connectors/captcha"], + }), + new HtmlWebpackPlugin({ + template: "./src/connectors/captcha-mobile.html", + filename: "captcha-mobile-connector.html", + chunks: ["connectors/captcha"], + }), + new CopyWebpackPlugin({ + patterns: [ + { from: "./src/.nojekyll" }, + { from: "./src/manifest.json" }, + { from: "./src/favicon.ico" }, + { from: "./src/browserconfig.xml" }, + { from: "./src/app-id.json" }, + { from: "./src/404.html" }, + { from: "./src/404", to: "404" }, + { from: "./src/images", to: "images" }, + { from: "./src/locales", to: "locales" }, + { from: "./node_modules/qrious/dist/qrious.min.js", to: "scripts" }, + { from: "./node_modules/braintree-web-drop-in/dist/browser/dropin.js", to: "scripts" }, + { + from: "./src/version.json", + transform(content, path) { + return content.toString().replace("process.env.APPLICATION_VERSION", pjson.version); + }, + }, + ], + }), + new MiniCssExtractPlugin({ + filename: "[name].[contenthash].css", + chunkFilename: "[id].[contenthash].css", + }), + new webpack.EnvironmentPlugin({ + ENV: ENV, + NODE_ENV: NODE_ENV === "production" ? "production" : "development", + APPLICATION_VERSION: pjson.version, + CACHE_TAG: Math.random().toString(36).substring(7), + URLS: envConfig["urls"] ?? {}, + STRIPE_KEY: envConfig["stripeKey"] ?? "", + BRAINTREE_KEY: envConfig["braintreeKey"] ?? "", + PAYPAL_CONFIG: envConfig["paypal"] ?? {}, + }), + new webpack.ProvidePlugin({ + process: "process/browser", + }), + new AngularWebpackPlugin({ + tsConfigPath: "tsconfig.json", + entryModule: "src/app/app.module#AppModule", + sourceMap: true, + }), +]; + +// ref: https://webpack.js.org/configuration/dev-server/#devserver +let certSuffix = fs.existsSync("dev-server.local.pem") ? ".local" : ".shared"; +const devServer = + NODE_ENV !== "development" + ? {} + : { + server: { + type: "https", + options: { + key: fs.readFileSync("dev-server" + certSuffix + ".pem"), + cert: fs.readFileSync("dev-server" + certSuffix + ".pem"), + }, + }, + // host: '192.168.1.9', + proxy: { + "/api": { + target: envConfig.dev?.proxyApi, + pathRewrite: { "^/api": "" }, + secure: false, + changeOrigin: true, + }, + "/identity": { + target: envConfig.dev?.proxyIdentity, + pathRewrite: { "^/identity": "" }, + secure: false, + changeOrigin: true, + }, + "/events": { + target: envConfig.dev?.proxyEvents, + pathRewrite: { "^/events": "" }, + secure: false, + changeOrigin: true, + }, + "/notifications": { + target: envConfig.dev?.proxyNotifications, + pathRewrite: { "^/notifications": "" }, + secure: false, + changeOrigin: true, + }, + }, + headers: (req) => { + if (!req.originalUrl.includes("connector.html")) { + return [ + { + key: "Content-Security-Policy", + value: ` + default-src 'self'; + script-src + 'self' + 'sha256-ryoU+5+IUZTuUyTElqkrQGBJXr1brEv6r2CA62WUw8w=' + https://js.stripe.com + https://js.braintreegateway.com + https://www.paypalobjects.com; + style-src + 'self' + https://assets.braintreegateway.com + https://*.paypal.com + 'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=' + 'sha256-JVRXyYPueLWdwGwY9m/7u4QlZ1xeQdqUj2t8OVIzZE4='; + 'sha256-0xHKHIT3+e2Gknxsm/cpErSprhL+o254L/y5bljg74U=' + img-src + 'self' + data: + https://icons.bitwarden.net + https://*.paypal.com + https://www.paypalobjects.com + https://q.stripe.com + https://haveibeenpwned.com + https://www.gravatar.com; + child-src + 'self' + https://js.stripe.com + https://assets.braintreegateway.com + https://*.paypal.com + https://*.duosecurity.com; + frame-src + 'self' + https://js.stripe.com + https://assets.braintreegateway.com + https://*.paypal.com + https://*.duosecurity.com; + connect-src + 'self' + wss://notifications.bitwarden.com + https://notifications.bitwarden.com + https://cdn.bitwarden.net + https://api.pwnedpasswords.com + https://2fa.directory/api/v3/totp.json + https://api.stripe.com + https://www.paypal.com + https://api.braintreegateway.com + https://client-analytics.braintreegateway.com + https://*.braintree-api.com + https://*.blob.core.windows.net + https://app.simplelogin.io/api/alias/random/new + https://app.anonaddy.com/api/v1/aliases; + object-src + 'self' + blob:;`, + }, + ]; + } + }, + hot: false, + port: envConfig.dev?.port ?? 8080, + allowedHosts: envConfig.dev?.allowedHosts ?? "auto", + client: { + overlay: { + errors: true, + warnings: false, + }, + }, + }; + +const webpackConfig = { + mode: NODE_ENV, + devtool: "source-map", + devServer: devServer, + entry: { + "app/polyfills": "./src/app/polyfills.ts", + "app/main": "./src/app/main.ts", + "connectors/webauthn": "./src/connectors/webauthn.ts", + "connectors/webauthn-fallback": "./src/connectors/webauthn-fallback.ts", + "connectors/duo": "./src/connectors/duo.ts", + "connectors/sso": "./src/connectors/sso.ts", + "connectors/captcha": "./src/connectors/captcha.ts", + theme_head: "./src/theme.js", + }, + optimization: { + splitChunks: { + cacheGroups: { + commons: { + test: /[\\/]node_modules[\\/]/, + name: "app/vendor", + chunks: (chunk) => { + return chunk.name === "app/main"; + }, + }, + }, + }, + minimizer: [ + new TerserPlugin({ + terserOptions: { + safari10: true, + // Replicate Angular CLI behaviour + compress: { + global_defs: { + ngDevMode: false, + ngI18nClosureMode: false, + }, + }, + }, + }), + ], + }, + resolve: { + extensions: [".ts", ".js"], + symlinks: false, + modules: [path.resolve("node_modules")], + alias: { + sweetalert2: require.resolve("sweetalert2/dist/sweetalert2.js"), + "#sweetalert2": require.resolve("sweetalert2/src/sweetalert2.scss"), + }, + fallback: { + buffer: false, + util: require.resolve("util/"), + assert: false, + url: false, + }, + }, + output: { + filename: "[name].[contenthash].js", + path: path.resolve(__dirname, "build"), + }, + module: { rules: moduleRules }, + plugins: plugins, +}; + +module.exports = webpackConfig; diff --git a/bitwarden_license/bit-web/README.md b/bitwarden_license/bit-web/README.md new file mode 100644 index 0000000000..52acca3cb4 --- /dev/null +++ b/bitwarden_license/bit-web/README.md @@ -0,0 +1,3 @@ +# Bitwarden Licensed Code + +All source code under this directory is licensed under the [Bitwarden License Agreement](https://github.com/bitwarden/web/blob/master/LICENSE_BITWARDEN.txt). diff --git a/bitwarden_license/bit-web/src/app/app-routing.module.ts b/bitwarden_license/bit-web/src/app/app-routing.module.ts new file mode 100644 index 0000000000..f9d434ed68 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/app-routing.module.ts @@ -0,0 +1,15 @@ +import { NgModule } from "@angular/core"; +import { RouterModule, Routes } from "@angular/router"; + +const routes: Routes = [ + { + path: "providers", + loadChildren: async () => (await import("./providers/providers.module")).ProvidersModule, + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class AppRoutingModule {} diff --git a/bitwarden_license/bit-web/src/app/app.component.ts b/bitwarden_license/bit-web/src/app/app.component.ts new file mode 100644 index 0000000000..6bc853b6b9 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/app.component.ts @@ -0,0 +1,21 @@ +import { Component } from "@angular/core"; + +import { AppComponent as BaseAppComponent } from "src/app/app.component"; + +import { DisablePersonalVaultExportPolicy } from "./policies/disable-personal-vault-export.component"; +import { MaximumVaultTimeoutPolicy } from "./policies/maximum-vault-timeout.component"; + +@Component({ + selector: "app-root", + templateUrl: "../../../src/app/app.component.html", +}) +export class AppComponent extends BaseAppComponent { + ngOnInit() { + super.ngOnInit(); + + this.policyListService.addPolicies([ + new MaximumVaultTimeoutPolicy(), + new DisablePersonalVaultExportPolicy(), + ]); + } +} diff --git a/bitwarden_license/bit-web/src/app/app.module.ts b/bitwarden_license/bit-web/src/app/app.module.ts new file mode 100644 index 0000000000..b137491b7d --- /dev/null +++ b/bitwarden_license/bit-web/src/app/app.module.ts @@ -0,0 +1,46 @@ +import { DragDropModule } from "@angular/cdk/drag-drop"; +import { OverlayModule } from "@angular/cdk/overlay"; +import { NgModule } from "@angular/core"; +import { FormsModule, ReactiveFormsModule } from "@angular/forms"; +import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; +import { RouterModule } from "@angular/router"; +import { InfiniteScrollModule } from "ngx-infinite-scroll"; + +import { JslibModule } from "jslib-angular/jslib.module"; + +import { OssRoutingModule } from "src/app/oss-routing.module"; +import { OssModule } from "src/app/oss.module"; +import { ServicesModule } from "src/app/services/services.module"; +import { WildcardRoutingModule } from "src/app/wildcard-routing.module"; + +import { AppRoutingModule } from "./app-routing.module"; +import { AppComponent } from "./app.component"; +import { OrganizationsModule } from "./organizations/organizations.module"; +import { DisablePersonalVaultExportPolicyComponent } from "./policies/disable-personal-vault-export.component"; +import { MaximumVaultTimeoutPolicyComponent } from "./policies/maximum-vault-timeout.component"; + +@NgModule({ + imports: [ + OverlayModule, + OssModule, + JslibModule, + BrowserAnimationsModule, + FormsModule, + ReactiveFormsModule, + ServicesModule, + InfiniteScrollModule, + DragDropModule, + AppRoutingModule, + OssRoutingModule, + OrganizationsModule, // Must be after OssRoutingModule for competing routes to resolve properly + RouterModule, + WildcardRoutingModule, // Needs to be last to catch all non-existing routes + ], + declarations: [ + AppComponent, + DisablePersonalVaultExportPolicyComponent, + MaximumVaultTimeoutPolicyComponent, + ], + bootstrap: [AppComponent], +}) +export class AppModule {} diff --git a/bitwarden_license/bit-web/src/app/main.ts b/bitwarden_license/bit-web/src/app/main.ts new file mode 100644 index 0000000000..5d15ec7460 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/main.ts @@ -0,0 +1,17 @@ +import { enableProdMode } from "@angular/core"; +import { platformBrowserDynamic } from "@angular/platform-browser-dynamic"; + +import "bootstrap"; +import "jquery"; +import "popper.js"; + +require("src/scss/styles.scss"); +require("src/scss/tailwind.css"); + +import { AppModule } from "./app.module"; + +if (process.env.NODE_ENV === "production") { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule, { preserveWhitespaces: true }); diff --git a/bitwarden_license/bit-web/src/app/organizations/components/base-cva.component.ts b/bitwarden_license/bit-web/src/app/organizations/components/base-cva.component.ts new file mode 100644 index 0000000000..409090ddc4 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/organizations/components/base-cva.component.ts @@ -0,0 +1,68 @@ +import { Directive, Input, OnInit, Self } from "@angular/core"; +import { ControlValueAccessor, FormControl, NgControl, Validators } from "@angular/forms"; + +import { dirtyRequired } from "jslib-angular/validators/dirty.validator"; + +/** For use in the SSO Config Form only - will be deprecated by the Component Library */ +@Directive() +export abstract class BaseCvaComponent implements ControlValueAccessor, OnInit { + get describedById() { + return this.showDescribedBy ? this.controlId + "Desc" : null; + } + + get showDescribedBy() { + return this.helperText != null || this.controlDir.control.hasError("required"); + } + + get isRequired() { + return ( + this.controlDir.control.hasValidator(Validators.required) || + this.controlDir.control.hasValidator(dirtyRequired) + ); + } + + @Input() label: string; + @Input() controlId: string; + @Input() helperText: string; + + internalControl = new FormControl(""); + + protected onChange: any; + protected onTouched: any; + + constructor(@Self() public controlDir: NgControl) { + this.controlDir.valueAccessor = this; + } + + ngOnInit() { + this.internalControl.valueChanges.subscribe(this.onValueChangesInternal); + } + + onBlurInternal() { + this.onTouched(); + } + + // CVA interfaces + writeValue(value: string) { + this.internalControl.setValue(value); + } + + registerOnChange(fn: any) { + this.onChange = fn; + } + + registerOnTouched(fn: any) { + this.onTouched = fn; + } + + setDisabledState(isDisabled: boolean) { + if (isDisabled) { + this.internalControl.disable(); + } else { + this.internalControl.enable(); + } + } + + protected onValueChangesInternal: any = (value: string) => this.onChange(value); + // End CVA interfaces +} diff --git a/bitwarden_license/bit-web/src/app/organizations/components/input-checkbox.component.html b/bitwarden_license/bit-web/src/app/organizations/components/input-checkbox.component.html new file mode 100644 index 0000000000..2c3c8639c1 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/organizations/components/input-checkbox.component.html @@ -0,0 +1,16 @@ +
+
+ + +
+ {{ + helperText + }} +
diff --git a/bitwarden_license/bit-web/src/app/organizations/components/input-checkbox.component.ts b/bitwarden_license/bit-web/src/app/organizations/components/input-checkbox.component.ts new file mode 100644 index 0000000000..b494c6c817 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/organizations/components/input-checkbox.component.ts @@ -0,0 +1,10 @@ +import { Component } from "@angular/core"; + +import { BaseCvaComponent } from "./base-cva.component"; + +/** For use in the SSO Config Form only - will be deprecated by the Component Library */ +@Component({ + selector: "app-input-checkbox", + templateUrl: "input-checkbox.component.html", +}) +export class InputCheckboxComponent extends BaseCvaComponent {} diff --git a/bitwarden_license/bit-web/src/app/organizations/components/input-text-readonly.component.html b/bitwarden_license/bit-web/src/app/organizations/components/input-text-readonly.component.html new file mode 100644 index 0000000000..b25edf6363 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/organizations/components/input-text-readonly.component.html @@ -0,0 +1,26 @@ +
+ +
+ +
+ +
+
+ +
+
+
diff --git a/bitwarden_license/bit-web/src/app/organizations/components/input-text-readonly.component.ts b/bitwarden_license/bit-web/src/app/organizations/components/input-text-readonly.component.ts new file mode 100644 index 0000000000..a7618ac8e2 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/organizations/components/input-text-readonly.component.ts @@ -0,0 +1,25 @@ +import { Component, Input } from "@angular/core"; + +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; + +/** For use in the SSO Config Form only - will be deprecated by the Component Library */ +@Component({ + selector: "app-input-text-readonly", + templateUrl: "input-text-readonly.component.html", +}) +export class InputTextReadOnlyComponent { + @Input() controlValue: string; + @Input() label: string; + @Input() showCopy = true; + @Input() showLaunch = false; + + constructor(private platformUtilsService: PlatformUtilsService) {} + + copy(value: string) { + this.platformUtilsService.copyToClipboard(value); + } + + launchUri(url: string) { + this.platformUtilsService.launchUri(url); + } +} diff --git a/bitwarden_license/bit-web/src/app/organizations/components/input-text.component.html b/bitwarden_license/bit-web/src/app/organizations/components/input-text.component.html new file mode 100644 index 0000000000..e19963474c --- /dev/null +++ b/bitwarden_license/bit-web/src/app/organizations/components/input-text.component.html @@ -0,0 +1,33 @@ +
+ + +
+ + {{ helperText }} + + + + {{ "error" | i18n }}: + {{ + controlDir.control.hasError(helperTextSameAsError) + ? helperText + : ("fieldRequiredError" | i18n: label) + }} + +
+
diff --git a/bitwarden_license/bit-web/src/app/organizations/components/input-text.component.ts b/bitwarden_license/bit-web/src/app/organizations/components/input-text.component.ts new file mode 100644 index 0000000000..a8810e3806 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/organizations/components/input-text.component.ts @@ -0,0 +1,48 @@ +import { Component, Input, OnInit } from "@angular/core"; + +import { BaseCvaComponent } from "./base-cva.component"; + +/** For use in the SSO Config Form only - will be deprecated by the Component Library */ +@Component({ + selector: "app-input-text[label][controlId]", + templateUrl: "input-text.component.html", +}) +export class InputTextComponent extends BaseCvaComponent implements OnInit { + @Input() helperTextSameAsError: string; + @Input() requiredErrorMessage: string; + @Input() stripSpaces = false; + + transformValue: (value: string) => string = null; + + ngOnInit() { + super.ngOnInit(); + if (this.stripSpaces) { + this.transformValue = this.doStripSpaces; + } + } + + writeValue(value: string) { + this.internalControl.setValue(value == null ? "" : value); + } + + protected onValueChangesInternal: any = (value: string) => { + let newValue = value; + if (this.transformValue != null) { + newValue = this.transformValue(value); + this.internalControl.setValue(newValue, { emitEvent: false }); + } + this.onChange(newValue); + }; + + protected onValueChangeInternal(value: string) { + let newValue = value; + if (this.transformValue != null) { + newValue = this.transformValue(value); + this.internalControl.setValue(newValue, { emitEvent: false }); + } + } + + private doStripSpaces(value: string) { + return value.replace(/ /g, ""); + } +} diff --git a/bitwarden_license/bit-web/src/app/organizations/components/select.component.html b/bitwarden_license/bit-web/src/app/organizations/components/select.component.html new file mode 100644 index 0000000000..bc2108e8af --- /dev/null +++ b/bitwarden_license/bit-web/src/app/organizations/components/select.component.html @@ -0,0 +1,19 @@ +
+ + +
diff --git a/bitwarden_license/bit-web/src/app/organizations/components/select.component.ts b/bitwarden_license/bit-web/src/app/organizations/components/select.component.ts new file mode 100644 index 0000000000..0045032865 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/organizations/components/select.component.ts @@ -0,0 +1,14 @@ +import { Component, Input } from "@angular/core"; + +import { SelectOptions } from "jslib-angular/interfaces/selectOptions"; + +import { BaseCvaComponent } from "./base-cva.component"; + +/** For use in the SSO Config Form only - will be deprecated by the Component Library */ +@Component({ + selector: "app-select", + templateUrl: "select.component.html", +}) +export class SelectComponent extends BaseCvaComponent { + @Input() selectOptions: SelectOptions[]; +} diff --git a/bitwarden_license/bit-web/src/app/organizations/manage/sso.component.html b/bitwarden_license/bit-web/src/app/organizations/manage/sso.component.html new file mode 100644 index 0000000000..525dc22b8e --- /dev/null +++ b/bitwarden_license/bit-web/src/app/organizations/manage/sso.component.html @@ -0,0 +1,448 @@ + + + + + {{ "loading" | i18n }} + + +
+

+ {{ "ssoPolicyHelpStart" | i18n }} + {{ "ssoPolicyHelpLink" | i18n }} + {{ "ssoPolicyHelpEnd" | i18n }} +
+ {{ "ssoPolicyHelpKeyConnector" | i18n }} +

+ + + + + +
+ +
+ + +
+
+ + +
+
+ + + + + {{ "keyConnectorWarning" | i18n }} + + +
+ +
+ +
+ +
+
+
+ + + {{ "error" | i18n }}: + {{ "keyConnectorTestFail" | i18n }} + + + + + {{ "keyConnectorTestSuccess" | i18n }} + + +
+
+
+ + + +
+ + +
+
+

{{ "openIdConnectConfig" | i18n }}

+ + + + + + + + + + + + + + + + + + + +
+

+ {{ "openIdOptionalCustomizations" | i18n }} +

+ +
+
+ + + + + + + + + + + +
+
+
+ + +
+ +
+

{{ "samlSpConfig" | i18n }}

+ + + + + + + + + + + + + + + + + + + + + + +
+ + +
+

{{ "samlIdpConfig" | i18n }}

+ + + + + + + + + + +
+ + + + + {{ "error" | i18n }}: + {{ "fieldRequiredError" | i18n: ("idpX509PublicCert" | i18n) }} + +
+ + + + + + + + + + +
+
+ + +
+ + {{ "error" | i18n }}: + {{ + (errorCount === 1 ? "formErrorSummarySingle" : "formErrorSummaryPlural") | i18n: errorCount + }} +
+
diff --git a/bitwarden_license/bit-web/src/app/organizations/manage/sso.component.ts b/bitwarden_license/bit-web/src/app/organizations/manage/sso.component.ts new file mode 100644 index 0000000000..8dc074a701 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/organizations/manage/sso.component.ts @@ -0,0 +1,318 @@ +import { Component, OnInit } from "@angular/core"; +import { AbstractControl, FormBuilder, FormGroup } from "@angular/forms"; +import { ActivatedRoute } from "@angular/router"; + +import { SelectOptions } from "jslib-angular/interfaces/selectOptions"; +import { dirtyRequired } from "jslib-angular/validators/dirty.validator"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { + OpenIdConnectRedirectBehavior, + Saml2BindingType, + Saml2NameIdFormat, + Saml2SigningBehavior, + SsoType, +} from "jslib-common/enums/ssoEnums"; +import { Utils } from "jslib-common/misc/utils"; +import { SsoConfigApi } from "jslib-common/models/api/ssoConfigApi"; +import { Organization } from "jslib-common/models/domain/organization"; +import { OrganizationSsoRequest } from "jslib-common/models/request/organization/organizationSsoRequest"; +import { OrganizationSsoResponse } from "jslib-common/models/response/organization/organizationSsoResponse"; +import { SsoConfigView } from "jslib-common/models/view/ssoConfigView"; + +const defaultSigningAlgorithm = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"; + +@Component({ + selector: "app-org-manage-sso", + templateUrl: "sso.component.html", +}) +export class SsoComponent implements OnInit { + readonly ssoType = SsoType; + + readonly ssoTypeOptions: SelectOptions[] = [ + { name: this.i18nService.t("selectType"), value: SsoType.None, disabled: true }, + { name: "OpenID Connect", value: SsoType.OpenIdConnect }, + { name: "SAML 2.0", value: SsoType.Saml2 }, + ]; + + readonly samlSigningAlgorithms = [ + "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256", + "http://www.w3.org/2000/09/xmldsig#rsa-sha384", + "http://www.w3.org/2000/09/xmldsig#rsa-sha512", + "http://www.w3.org/2000/09/xmldsig#rsa-sha1", + ]; + + readonly saml2SigningBehaviourOptions: SelectOptions[] = [ + { + name: "If IdP Wants Authn Requests Signed", + value: Saml2SigningBehavior.IfIdpWantAuthnRequestsSigned, + }, + { name: "Always", value: Saml2SigningBehavior.Always }, + { name: "Never", value: Saml2SigningBehavior.Never }, + ]; + readonly saml2BindingTypeOptions: SelectOptions[] = [ + { name: "Redirect", value: Saml2BindingType.HttpRedirect }, + { name: "HTTP POST", value: Saml2BindingType.HttpPost }, + ]; + readonly saml2NameIdFormatOptions: SelectOptions[] = [ + { name: "Not Configured", value: Saml2NameIdFormat.NotConfigured }, + { name: "Unspecified", value: Saml2NameIdFormat.Unspecified }, + { name: "Email Address", value: Saml2NameIdFormat.EmailAddress }, + { name: "X.509 Subject Name", value: Saml2NameIdFormat.X509SubjectName }, + { name: "Windows Domain Qualified Name", value: Saml2NameIdFormat.WindowsDomainQualifiedName }, + { name: "Kerberos Principal Name", value: Saml2NameIdFormat.KerberosPrincipalName }, + { name: "Entity Identifier", value: Saml2NameIdFormat.EntityIdentifier }, + { name: "Persistent", value: Saml2NameIdFormat.Persistent }, + { name: "Transient", value: Saml2NameIdFormat.Transient }, + ]; + + readonly connectRedirectOptions: SelectOptions[] = [ + { name: "Redirect GET", value: OpenIdConnectRedirectBehavior.RedirectGet }, + { name: "Form POST", value: OpenIdConnectRedirectBehavior.FormPost }, + ]; + + showOpenIdCustomizations = false; + + loading = true; + haveTestedKeyConnector = false; + organizationId: string; + organization: Organization; + formPromise: Promise; + + callbackPath: string; + signedOutCallbackPath: string; + spEntityId: string; + spMetadataUrl: string; + spAcsUrl: string; + + enabled = this.formBuilder.control(false); + + openIdForm = this.formBuilder.group( + { + authority: ["", dirtyRequired], + clientId: ["", dirtyRequired], + clientSecret: ["", dirtyRequired], + metadataAddress: [], + redirectBehavior: [OpenIdConnectRedirectBehavior.RedirectGet, dirtyRequired], + getClaimsFromUserInfoEndpoint: [], + additionalScopes: [], + additionalUserIdClaimTypes: [], + additionalEmailClaimTypes: [], + additionalNameClaimTypes: [], + acrValues: [], + expectedReturnAcrValue: [], + }, + { + updateOn: "blur", + } + ); + + samlForm = this.formBuilder.group( + { + spNameIdFormat: [Saml2NameIdFormat.NotConfigured], + spOutboundSigningAlgorithm: [defaultSigningAlgorithm], + spSigningBehavior: [Saml2SigningBehavior.IfIdpWantAuthnRequestsSigned], + spMinIncomingSigningAlgorithm: [defaultSigningAlgorithm], + spWantAssertionsSigned: [], + spValidateCertificates: [], + + idpEntityId: ["", dirtyRequired], + idpBindingType: [Saml2BindingType.HttpRedirect], + idpSingleSignOnServiceUrl: [], + idpSingleLogoutServiceUrl: [], + idpX509PublicCert: ["", dirtyRequired], + idpOutboundSigningAlgorithm: [defaultSigningAlgorithm], + idpAllowUnsolicitedAuthnResponse: [], + idpAllowOutboundLogoutRequests: [true], + idpWantAuthnRequestsSigned: [], + }, + { + updateOn: "blur", + } + ); + + ssoConfigForm = this.formBuilder.group({ + configType: [SsoType.None], + keyConnectorEnabled: [false], + keyConnectorUrl: [""], + openId: this.openIdForm, + saml: this.samlForm, + }); + + constructor( + private formBuilder: FormBuilder, + private route: ActivatedRoute, + private apiService: ApiService, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private organizationService: OrganizationService + ) {} + + async ngOnInit() { + this.ssoConfigForm.get("configType").valueChanges.subscribe((newType: SsoType) => { + if (newType === SsoType.OpenIdConnect) { + this.openIdForm.enable(); + this.samlForm.disable(); + } else if (newType === SsoType.Saml2) { + this.openIdForm.disable(); + this.samlForm.enable(); + } else { + this.openIdForm.disable(); + this.samlForm.disable(); + } + }); + + this.samlForm + .get("spSigningBehavior") + .valueChanges.subscribe(() => + this.samlForm.get("idpX509PublicCert").updateValueAndValidity() + ); + + this.route.parent.parent.params.subscribe(async (params) => { + this.organizationId = params.organizationId; + await this.load(); + }); + } + + async load() { + this.organization = await this.organizationService.get(this.organizationId); + const ssoSettings = await this.apiService.getOrganizationSso(this.organizationId); + this.populateForm(ssoSettings); + + this.callbackPath = ssoSettings.urls.callbackPath; + this.signedOutCallbackPath = ssoSettings.urls.signedOutCallbackPath; + this.spEntityId = ssoSettings.urls.spEntityId; + this.spMetadataUrl = ssoSettings.urls.spMetadataUrl; + this.spAcsUrl = ssoSettings.urls.spAcsUrl; + + this.loading = false; + } + + async submit() { + this.validateForm(this.ssoConfigForm); + + if (this.ssoConfigForm.get("keyConnectorEnabled").value) { + await this.validateKeyConnectorUrl(); + } + + if (!this.ssoConfigForm.valid) { + this.readOutErrors(); + return; + } + + const request = new OrganizationSsoRequest(); + request.enabled = this.enabled.value; + request.data = SsoConfigApi.fromView(this.ssoConfigForm.value as SsoConfigView); + + this.formPromise = this.apiService.postOrganizationSso(this.organizationId, request); + + try { + const response = await this.formPromise; + this.populateForm(response); + this.platformUtilsService.showToast("success", null, this.i18nService.t("ssoSettingsSaved")); + } catch { + // Logged by appApiAction, do nothing + } + + this.formPromise = null; + } + + async validateKeyConnectorUrl() { + if (this.haveTestedKeyConnector) { + return; + } + + this.keyConnectorUrl.markAsPending(); + + try { + await this.apiService.getKeyConnectorAlive(this.keyConnectorUrl.value); + this.keyConnectorUrl.updateValueAndValidity(); + } catch { + this.keyConnectorUrl.setErrors({ + invalidUrl: true, + }); + } + + this.haveTestedKeyConnector = true; + } + + toggleOpenIdCustomizations() { + this.showOpenIdCustomizations = !this.showOpenIdCustomizations; + } + + getErrorCount(form: FormGroup): number { + return Object.values(form.controls).reduce((acc: number, control: AbstractControl) => { + if (control instanceof FormGroup) { + return acc + this.getErrorCount(control); + } + + if (control.errors == null) { + return acc; + } + return acc + Object.keys(control.errors).length; + }, 0); + } + + get enableTestKeyConnector() { + return ( + this.ssoConfigForm.get("keyConnectorEnabled").value && + !Utils.isNullOrWhitespace(this.keyConnectorUrl?.value) + ); + } + + get keyConnectorUrl() { + return this.ssoConfigForm.get("keyConnectorUrl"); + } + + get samlSigningAlgorithmOptions(): SelectOptions[] { + return this.samlSigningAlgorithms.map((algorithm) => ({ name: algorithm, value: algorithm })); + } + + private validateForm(form: FormGroup) { + Object.values(form.controls).forEach((control: AbstractControl) => { + if (control.disabled) { + return; + } + + if (control instanceof FormGroup) { + this.validateForm(control); + } else { + control.markAsDirty(); + control.markAsTouched(); + control.updateValueAndValidity(); + } + }); + } + + private populateForm(ssoSettings: OrganizationSsoResponse) { + this.enabled.setValue(ssoSettings.enabled); + if (ssoSettings.data != null) { + const ssoConfigView = new SsoConfigView(ssoSettings.data); + this.ssoConfigForm.patchValue(ssoConfigView); + } + } + + private readOutErrors() { + const errorText = this.i18nService.t("error"); + const errorCount = this.getErrorCount(this.ssoConfigForm); + const errorCountText = this.i18nService.t( + errorCount === 1 ? "formErrorSummarySingle" : "formErrorSummaryPlural", + errorCount.toString() + ); + + const div = document.createElement("div"); + div.className = "sr-only"; + div.id = "srErrorCount"; + div.setAttribute("aria-live", "polite"); + div.innerText = errorText + ": " + errorCountText; + + const existing = document.getElementById("srErrorCount"); + if (existing != null) { + existing.remove(); + } + + document.body.append(div); + } +} diff --git a/bitwarden_license/bit-web/src/app/organizations/organizations-routing.module.ts b/bitwarden_license/bit-web/src/app/organizations/organizations-routing.module.ts new file mode 100644 index 0000000000..691feda30c --- /dev/null +++ b/bitwarden_license/bit-web/src/app/organizations/organizations-routing.module.ts @@ -0,0 +1,46 @@ +import { NgModule } from "@angular/core"; +import { RouterModule, Routes } from "@angular/router"; + +import { AuthGuard } from "jslib-angular/guards/auth.guard"; +import { Permissions } from "jslib-common/enums/permissions"; + +import { PermissionsGuard } from "src/app/organizations/guards/permissions.guard"; +import { OrganizationLayoutComponent } from "src/app/organizations/layouts/organization-layout.component"; +import { ManageComponent } from "src/app/organizations/manage/manage.component"; +import { NavigationPermissionsService } from "src/app/organizations/services/navigation-permissions.service"; + +import { SsoComponent } from "./manage/sso.component"; + +const routes: Routes = [ + { + path: "organizations/:organizationId", + component: OrganizationLayoutComponent, + canActivate: [AuthGuard, PermissionsGuard], + children: [ + { + path: "manage", + component: ManageComponent, + canActivate: [PermissionsGuard], + data: { + permissions: NavigationPermissionsService.getPermissions("manage"), + }, + children: [ + { + path: "sso", + component: SsoComponent, + canActivate: [PermissionsGuard], + data: { + permissions: [Permissions.ManageSso], + }, + }, + ], + }, + ], + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class OrganizationsRoutingModule {} diff --git a/bitwarden_license/bit-web/src/app/organizations/organizations.module.ts b/bitwarden_license/bit-web/src/app/organizations/organizations.module.ts new file mode 100644 index 0000000000..f67a9b7ef5 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/organizations/organizations.module.ts @@ -0,0 +1,32 @@ +import { CommonModule } from "@angular/common"; +import { NgModule } from "@angular/core"; +import { FormsModule, ReactiveFormsModule } from "@angular/forms"; + +import { JslibModule } from "jslib-angular/jslib.module"; + +import { InputCheckboxComponent } from "./components/input-checkbox.component"; +import { InputTextReadOnlyComponent } from "./components/input-text-readonly.component"; +import { InputTextComponent } from "./components/input-text.component"; +import { SelectComponent } from "./components/select.component"; +import { SsoComponent } from "./manage/sso.component"; +import { OrganizationsRoutingModule } from "./organizations-routing.module"; + +// Form components are for use in the SSO Configuration Form only and should not be exported for use elsewhere. +// They will be deprecated by the Component Library. +@NgModule({ + imports: [ + CommonModule, + FormsModule, + ReactiveFormsModule, + JslibModule, + OrganizationsRoutingModule, + ], + declarations: [ + InputCheckboxComponent, + InputTextComponent, + InputTextReadOnlyComponent, + SelectComponent, + SsoComponent, + ], +}) +export class OrganizationsModule {} diff --git a/bitwarden_license/bit-web/src/app/policies/disable-personal-vault-export.component.html b/bitwarden_license/bit-web/src/app/policies/disable-personal-vault-export.component.html new file mode 100644 index 0000000000..317a9c8f1d --- /dev/null +++ b/bitwarden_license/bit-web/src/app/policies/disable-personal-vault-export.component.html @@ -0,0 +1,12 @@ +
+
+ + +
+
diff --git a/bitwarden_license/bit-web/src/app/policies/disable-personal-vault-export.component.ts b/bitwarden_license/bit-web/src/app/policies/disable-personal-vault-export.component.ts new file mode 100644 index 0000000000..617499c84b --- /dev/null +++ b/bitwarden_license/bit-web/src/app/policies/disable-personal-vault-export.component.ts @@ -0,0 +1,21 @@ +import { Component } from "@angular/core"; + +import { PolicyType } from "jslib-common/enums/policyType"; + +import { + BasePolicy, + BasePolicyComponent, +} from "src/app/organizations/policies/base-policy.component"; + +export class DisablePersonalVaultExportPolicy extends BasePolicy { + name = "disablePersonalVaultExport"; + description = "disablePersonalVaultExportDesc"; + type = PolicyType.DisablePersonalVaultExport; + component = DisablePersonalVaultExportPolicyComponent; +} + +@Component({ + selector: "policy-disable-personal-vault-export", + templateUrl: "disable-personal-vault-export.component.html", +}) +export class DisablePersonalVaultExportPolicyComponent extends BasePolicyComponent {} diff --git a/bitwarden_license/bit-web/src/app/policies/maximum-vault-timeout.component.html b/bitwarden_license/bit-web/src/app/policies/maximum-vault-timeout.component.html new file mode 100644 index 0000000000..344cf009ec --- /dev/null +++ b/bitwarden_license/bit-web/src/app/policies/maximum-vault-timeout.component.html @@ -0,0 +1,47 @@ + + {{ "requireSsoPolicyReq" | i18n }} + + +
+
+ + +
+
+ +
+
+ +
+
+ + {{ "hours" | i18n }} +
+
+ + {{ "minutes" | i18n }} +
+
+
+
diff --git a/bitwarden_license/bit-web/src/app/policies/maximum-vault-timeout.component.ts b/bitwarden_license/bit-web/src/app/policies/maximum-vault-timeout.component.ts new file mode 100644 index 0000000000..e31097dcd3 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/policies/maximum-vault-timeout.component.ts @@ -0,0 +1,70 @@ +import { Component } from "@angular/core"; +import { FormBuilder } from "@angular/forms"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PolicyType } from "jslib-common/enums/policyType"; +import { PolicyRequest } from "jslib-common/models/request/policyRequest"; + +import { + BasePolicy, + BasePolicyComponent, +} from "src/app/organizations/policies/base-policy.component"; + +export class MaximumVaultTimeoutPolicy extends BasePolicy { + name = "maximumVaultTimeout"; + description = "maximumVaultTimeoutDesc"; + type = PolicyType.MaximumVaultTimeout; + component = MaximumVaultTimeoutPolicyComponent; +} + +@Component({ + selector: "policy-maximum-timeout", + templateUrl: "maximum-vault-timeout.component.html", +}) +export class MaximumVaultTimeoutPolicyComponent extends BasePolicyComponent { + data = this.formBuilder.group({ + hours: [null], + minutes: [null], + }); + + constructor(private formBuilder: FormBuilder, private i18nService: I18nService) { + super(); + } + + loadData() { + const minutes = this.policyResponse.data?.minutes; + + if (minutes == null) { + return; + } + + this.data.patchValue({ + hours: Math.floor(minutes / 60), + minutes: minutes % 60, + }); + } + + buildRequestData() { + if (this.data.value.hours == null && this.data.value.minutes == null) { + return null; + } + + return { + minutes: this.data.value.hours * 60 + this.data.value.minutes, + }; + } + + buildRequest(policiesEnabledMap: Map): Promise { + const singleOrgEnabled = policiesEnabledMap.get(PolicyType.SingleOrg) ?? false; + if (this.enabled.value && !singleOrgEnabled) { + throw new Error(this.i18nService.t("requireSsoPolicyReqError")); + } + + const data = this.buildRequestData(); + if (data?.minutes == null || data?.minutes <= 0) { + throw new Error(this.i18nService.t("invalidMaximumVaultTimeout")); + } + + return super.buildRequest(policiesEnabledMap); + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/clients/add-organization.component.html b/bitwarden_license/bit-web/src/app/providers/clients/add-organization.component.html new file mode 100644 index 0000000000..1b87269006 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/clients/add-organization.component.html @@ -0,0 +1,46 @@ + diff --git a/bitwarden_license/bit-web/src/app/providers/clients/add-organization.component.ts b/bitwarden_license/bit-web/src/app/providers/clients/add-organization.component.ts new file mode 100644 index 0000000000..ef678a838e --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/clients/add-organization.component.ts @@ -0,0 +1,84 @@ +import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core"; + +import { ValidationService } from "jslib-angular/services/validation.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { ProviderService } from "jslib-common/abstractions/provider.service"; +import { Organization } from "jslib-common/models/domain/organization"; +import { Provider } from "jslib-common/models/domain/provider"; + +import { WebProviderService } from "../services/webProvider.service"; + +@Component({ + selector: "provider-add-organization", + templateUrl: "add-organization.component.html", +}) +export class AddOrganizationComponent implements OnInit { + @Input() providerId: string; + @Input() organizations: Organization[]; + @Output() onAddedOrganization = new EventEmitter(); + + provider: Provider; + formPromise: Promise; + loading = true; + + constructor( + private providerService: ProviderService, + private webProviderService: WebProviderService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private validationService: ValidationService + ) {} + + async ngOnInit() { + await this.load(); + } + + async load() { + if (this.providerId == null) { + return; + } + + this.provider = await this.providerService.get(this.providerId); + + this.loading = false; + } + + async add(organization: Organization) { + if (this.formPromise) { + return; + } + + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("addOrganizationConfirmation", organization.name, this.provider.name), + organization.name, + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + + if (!confirmed) { + return false; + } + + try { + this.formPromise = this.webProviderService.addOrganizationToProvider( + this.providerId, + organization.id + ); + await this.formPromise; + } catch (e) { + this.validationService.showError(e); + return; + } finally { + this.formPromise = null; + } + + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("organizationJoinedProvider") + ); + this.onAddedOrganization.emit(); + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/clients/clients.component.html b/bitwarden_license/bit-web/src/app/providers/clients/clients.component.html new file mode 100644 index 0000000000..e5d048002e --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/clients/clients.component.html @@ -0,0 +1,90 @@ + + + + + {{ "loading" | i18n }} + + + +

{{ "noClientsInList" | i18n }}

+ + + + + + + + + +
+ + + {{ o.organizationName }} + + +
+
+
+ + diff --git a/bitwarden_license/bit-web/src/app/providers/clients/clients.component.ts b/bitwarden_license/bit-web/src/app/providers/clients/clients.component.ts new file mode 100644 index 0000000000..c78bac24e4 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/clients/clients.component.ts @@ -0,0 +1,179 @@ +import { Component, OnInit, ViewChild, ViewContainerRef } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; +import { first } from "rxjs/operators"; + +import { ModalService } from "jslib-angular/services/modal.service"; +import { ValidationService } from "jslib-angular/services/validation.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { OrganizationService } from "jslib-common/abstractions/organization.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { ProviderService } from "jslib-common/abstractions/provider.service"; +import { SearchService } from "jslib-common/abstractions/search.service"; +import { PlanType } from "jslib-common/enums/planType"; +import { ProviderUserType } from "jslib-common/enums/providerUserType"; +import { Organization } from "jslib-common/models/domain/organization"; +import { ProviderOrganizationOrganizationDetailsResponse } from "jslib-common/models/response/provider/providerOrganizationResponse"; + +import { WebProviderService } from "../services/webProvider.service"; + +import { AddOrganizationComponent } from "./add-organization.component"; + +const DisallowedPlanTypes = [ + PlanType.Free, + PlanType.FamiliesAnnually2019, + PlanType.FamiliesAnnually, +]; + +@Component({ + templateUrl: "clients.component.html", +}) +export class ClientsComponent implements OnInit { + @ViewChild("add", { read: ViewContainerRef, static: true }) addModalRef: ViewContainerRef; + + providerId: any; + searchText: string; + addableOrganizations: Organization[]; + loading = true; + manageOrganizations = false; + showAddExisting = false; + + clients: ProviderOrganizationOrganizationDetailsResponse[]; + pagedClients: ProviderOrganizationOrganizationDetailsResponse[]; + + protected didScroll = false; + protected pageSize = 100; + protected actionPromise: Promise; + private pagedClientsCount = 0; + + constructor( + private route: ActivatedRoute, + private providerService: ProviderService, + private apiService: ApiService, + private searchService: SearchService, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private validationService: ValidationService, + private webProviderService: WebProviderService, + private logService: LogService, + private modalService: ModalService, + private organizationService: OrganizationService + ) {} + + async ngOnInit() { + this.route.parent.params.subscribe(async (params) => { + this.providerId = params.providerId; + + await this.load(); + + this.route.queryParams.pipe(first()).subscribe(async (qParams) => { + this.searchText = qParams.search; + }); + }); + } + + async load() { + const response = await this.apiService.getProviderClients(this.providerId); + this.clients = response.data != null && response.data.length > 0 ? response.data : []; + this.manageOrganizations = + (await this.providerService.get(this.providerId)).type === ProviderUserType.ProviderAdmin; + const candidateOrgs = (await this.organizationService.getAll()).filter( + (o) => o.isOwner && o.providerId == null + ); + const allowedOrgsIds = await Promise.all( + candidateOrgs.map((o) => this.apiService.getOrganization(o.id)) + ).then((orgs) => + orgs.filter((o) => !DisallowedPlanTypes.includes(o.planType)).map((o) => o.id) + ); + this.addableOrganizations = candidateOrgs.filter((o) => allowedOrgsIds.includes(o.id)); + + this.showAddExisting = this.addableOrganizations.length !== 0; + this.loading = false; + } + + isPaging() { + const searching = this.isSearching(); + if (searching && this.didScroll) { + this.resetPaging(); + } + return !searching && this.clients && this.clients.length > this.pageSize; + } + + isSearching() { + return this.searchService.isSearchable(this.searchText); + } + + async resetPaging() { + this.pagedClients = []; + this.loadMore(); + } + + loadMore() { + if (!this.clients || this.clients.length <= this.pageSize) { + return; + } + const pagedLength = this.pagedClients.length; + let pagedSize = this.pageSize; + if (pagedLength === 0 && this.pagedClientsCount > this.pageSize) { + pagedSize = this.pagedClientsCount; + } + if (this.clients.length > pagedLength) { + this.pagedClients = this.pagedClients.concat( + this.clients.slice(pagedLength, pagedLength + pagedSize) + ); + } + this.pagedClientsCount = this.pagedClients.length; + this.didScroll = this.pagedClients.length > this.pageSize; + } + + async addExistingOrganization() { + const [modal] = await this.modalService.openViewRef( + AddOrganizationComponent, + this.addModalRef, + (comp) => { + comp.providerId = this.providerId; + comp.organizations = this.addableOrganizations; + comp.onAddedOrganization.subscribe(async () => { + try { + await this.load(); + modal.close(); + } catch (e) { + this.logService.error(`Handled exception: ${e}`); + } + }); + } + ); + } + + async remove(organization: ProviderOrganizationOrganizationDetailsResponse) { + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("detachOrganizationConfirmation"), + organization.organizationName, + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + + if (!confirmed) { + return false; + } + + this.actionPromise = this.webProviderService.detachOrganizastion( + this.providerId, + organization.id + ); + try { + await this.actionPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("detachedOrganization", organization.organizationName) + ); + await this.load(); + } catch (e) { + this.validationService.showError(e); + } + this.actionPromise = null; + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/clients/create-organization.component.html b/bitwarden_license/bit-web/src/app/providers/clients/create-organization.component.html new file mode 100644 index 0000000000..59ac5e4f4e --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/clients/create-organization.component.html @@ -0,0 +1,5 @@ + +

{{ "newClientOrganizationDesc" | i18n }}

+ diff --git a/bitwarden_license/bit-web/src/app/providers/clients/create-organization.component.ts b/bitwarden_license/bit-web/src/app/providers/clients/create-organization.component.ts new file mode 100644 index 0000000000..f04af8ad2f --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/clients/create-organization.component.ts @@ -0,0 +1,23 @@ +import { Component, OnInit, ViewChild } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { OrganizationPlansComponent } from "src/app/settings/organization-plans.component"; + +@Component({ + selector: "app-create-organization", + templateUrl: "create-organization.component.html", +}) +export class CreateOrganizationComponent implements OnInit { + @ViewChild(OrganizationPlansComponent, { static: true }) + orgPlansComponent: OrganizationPlansComponent; + + providerId: string; + + constructor(private route: ActivatedRoute) {} + + ngOnInit() { + this.route.parent.params.subscribe(async (params) => { + this.providerId = params.providerId; + }); + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/guards/provider-type.guard.ts b/bitwarden_license/bit-web/src/app/providers/guards/provider-type.guard.ts new file mode 100644 index 0000000000..107fd04494 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/guards/provider-type.guard.ts @@ -0,0 +1,26 @@ +import { Injectable } from "@angular/core"; +import { ActivatedRouteSnapshot, CanActivate, Router } from "@angular/router"; + +import { ProviderService } from "jslib-common/abstractions/provider.service"; +import { Permissions } from "jslib-common/enums/permissions"; + +@Injectable() +export class PermissionsGuard implements CanActivate { + constructor(private providerService: ProviderService, private router: Router) {} + + async canActivate(route: ActivatedRouteSnapshot) { + const provider = await this.providerService.get(route.params.providerId); + const permissions = route.data == null ? null : (route.data.permissions as Permissions[]); + + if ( + (permissions.indexOf(Permissions.AccessEventLogs) !== -1 && provider.canAccessEventLogs) || + (permissions.indexOf(Permissions.ManageProvider) !== -1 && provider.isProviderAdmin) || + (permissions.indexOf(Permissions.ManageUsers) !== -1 && provider.canManageUsers) + ) { + return true; + } + + this.router.navigate(["/providers", provider.id]); + return false; + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/guards/provider.guard.ts b/bitwarden_license/bit-web/src/app/providers/guards/provider.guard.ts new file mode 100644 index 0000000000..444d65fda6 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/guards/provider.guard.ts @@ -0,0 +1,31 @@ +import { Injectable } from "@angular/core"; +import { ActivatedRouteSnapshot, CanActivate, Router } from "@angular/router"; + +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { ProviderService } from "jslib-common/abstractions/provider.service"; + +@Injectable() +export class ProviderGuard implements CanActivate { + constructor( + private router: Router, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private providerService: ProviderService + ) {} + + async canActivate(route: ActivatedRouteSnapshot) { + const provider = await this.providerService.get(route.params.providerId); + if (provider == null) { + this.router.navigate(["/"]); + return false; + } + if (!provider.isProviderAdmin && !provider.enabled) { + this.platformUtilsService.showToast("error", null, this.i18nService.t("providerIsDisabled")); + this.router.navigate(["/"]); + return false; + } + + return true; + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/manage/accept-provider.component.html b/bitwarden_license/bit-web/src/app/providers/manage/accept-provider.component.html new file mode 100644 index 0000000000..a5927cbc9a --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/manage/accept-provider.component.html @@ -0,0 +1,46 @@ +
+
+ +

+ + {{ "loading" | i18n }} +

+
+
+
+
+
+

{{ "joinProvider" | i18n }}

+
+
+

+ {{ providerName }} + {{ email }} +

+

{{ "joinProviderDesc" | i18n }}

+
+ +
+
+
+
+
diff --git a/bitwarden_license/bit-web/src/app/providers/manage/accept-provider.component.ts b/bitwarden_license/bit-web/src/app/providers/manage/accept-provider.component.ts new file mode 100644 index 0000000000..f27e68f9f6 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/manage/accept-provider.component.ts @@ -0,0 +1,55 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { ProviderUserAcceptRequest } from "jslib-common/models/request/provider/providerUserAcceptRequest"; + +import { BaseAcceptComponent } from "src/app/common/base.accept.component"; + +@Component({ + selector: "app-accept-provider", + templateUrl: "accept-provider.component.html", +}) +export class AcceptProviderComponent extends BaseAcceptComponent { + providerName: string; + + failedMessage = "providerInviteAcceptFailed"; + + requiredParameters = ["providerId", "providerUserId", "token"]; + + constructor( + router: Router, + i18nService: I18nService, + route: ActivatedRoute, + stateService: StateService, + private apiService: ApiService, + platformUtilService: PlatformUtilsService + ) { + super(router, platformUtilService, i18nService, route, stateService); + } + + async authedHandler(qParams: any) { + const request = new ProviderUserAcceptRequest(); + request.token = qParams.token; + + await this.apiService.postProviderUserAccept( + qParams.providerId, + qParams.providerUserId, + request + ); + this.platformUtilService.showToast( + "success", + this.i18nService.t("inviteAccepted"), + this.i18nService.t("providerInviteAcceptedDesc"), + { timeout: 10000 } + ); + this.router.navigate(["/vault"]); + } + + async unauthedHandler(qParams: any) { + this.providerName = qParams.providerName; + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/manage/bulk/bulk-confirm.component.ts b/bitwarden_license/bit-web/src/app/providers/manage/bulk/bulk-confirm.component.ts new file mode 100644 index 0000000000..b984d3d35f --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/manage/bulk/bulk-confirm.component.ts @@ -0,0 +1,33 @@ +import { Component, Input } from "@angular/core"; + +import { ProviderUserStatusType } from "jslib-common/enums/providerUserStatusType"; +import { ProviderUserBulkConfirmRequest } from "jslib-common/models/request/provider/providerUserBulkConfirmRequest"; +import { ProviderUserBulkRequest } from "jslib-common/models/request/provider/providerUserBulkRequest"; + +import { BulkConfirmComponent as OrganizationBulkConfirmComponent } from "src/app/organizations/manage/bulk/bulk-confirm.component"; +import { BulkUserDetails } from "src/app/organizations/manage/bulk/bulk-status.component"; + +@Component({ + templateUrl: "../../../../../../src/app/organizations/manage/bulk/bulk-confirm.component.html", +}) +export class BulkConfirmComponent extends OrganizationBulkConfirmComponent { + @Input() providerId: string; + + protected isAccepted(user: BulkUserDetails) { + return user.status === ProviderUserStatusType.Accepted; + } + + protected async getPublicKeys() { + const request = new ProviderUserBulkRequest(this.filteredUsers.map((user) => user.id)); + return await this.apiService.postProviderUsersPublicKey(this.providerId, request); + } + + protected getCryptoKey() { + return this.cryptoService.getProviderKey(this.providerId); + } + + protected async postConfirmRequest(userIdsWithKeys: any[]) { + const request = new ProviderUserBulkConfirmRequest(userIdsWithKeys); + return await this.apiService.postProviderUserBulkConfirm(this.providerId, request); + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/manage/bulk/bulk-remove.component.ts b/bitwarden_license/bit-web/src/app/providers/manage/bulk/bulk-remove.component.ts new file mode 100644 index 0000000000..44b0709572 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/manage/bulk/bulk-remove.component.ts @@ -0,0 +1,17 @@ +import { Component, Input } from "@angular/core"; + +import { ProviderUserBulkRequest } from "jslib-common/models/request/provider/providerUserBulkRequest"; + +import { BulkRemoveComponent as OrganizationBulkRemoveComponent } from "src/app/organizations/manage/bulk/bulk-remove.component"; + +@Component({ + templateUrl: "../../../../../../src/app/organizations/manage/bulk/bulk-remove.component.html", +}) +export class BulkRemoveComponent extends OrganizationBulkRemoveComponent { + @Input() providerId: string; + + async deleteUsers() { + const request = new ProviderUserBulkRequest(this.users.map((user) => user.id)); + return await this.apiService.deleteManyProviderUsers(this.providerId, request); + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/manage/events.component.html b/bitwarden_license/bit-web/src/app/providers/manage/events.component.html new file mode 100644 index 0000000000..d27b53e8d9 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/manage/events.component.html @@ -0,0 +1,107 @@ + + + + {{ "loading" | i18n }} + + +

{{ "noEventsInList" | i18n }}

+ + + + + + + + + + + + + + + + + +
{{ "timestamp" | i18n }} + {{ "device" | i18n }} + {{ "user" | i18n }}{{ "event" | i18n }}
{{ e.date | date: "medium" }} + + {{ e.appName }}, {{ e.ip }} + + {{ e.userName }} +
+ +
diff --git a/bitwarden_license/bit-web/src/app/providers/manage/events.component.ts b/bitwarden_license/bit-web/src/app/providers/manage/events.component.ts new file mode 100644 index 0000000000..791cdd1e68 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/manage/events.component.ts @@ -0,0 +1,79 @@ +import { Component, OnInit } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; + +import { UserNamePipe } from "jslib-angular/pipes/user-name.pipe"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { ExportService } from "jslib-common/abstractions/export.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { ProviderService } from "jslib-common/abstractions/provider.service"; +import { EventResponse } from "jslib-common/models/response/eventResponse"; + +import { BaseEventsComponent } from "src/app/common/base.events.component"; +import { EventService } from "src/app/services/event.service"; + +@Component({ + selector: "provider-events", + templateUrl: "events.component.html", +}) +export class EventsComponent extends BaseEventsComponent implements OnInit { + exportFileName = "provider-events"; + providerId: string; + + private providerUsersUserIdMap = new Map(); + private providerUsersIdMap = new Map(); + + constructor( + private apiService: ApiService, + private route: ActivatedRoute, + eventService: EventService, + i18nService: I18nService, + private providerService: ProviderService, + exportService: ExportService, + platformUtilsService: PlatformUtilsService, + private router: Router, + logService: LogService, + private userNamePipe: UserNamePipe + ) { + super(eventService, i18nService, exportService, platformUtilsService, logService); + } + + async ngOnInit() { + this.route.parent.parent.params.subscribe(async (params) => { + this.providerId = params.providerId; + const provider = await this.providerService.get(this.providerId); + if (provider == null || !provider.useEvents) { + this.router.navigate(["/providers", this.providerId]); + return; + } + await this.load(); + }); + } + + async load() { + const response = await this.apiService.getProviderUsers(this.providerId); + response.data.forEach((u) => { + const name = this.userNamePipe.transform(u); + this.providerUsersIdMap.set(u.id, { name: name, email: u.email }); + this.providerUsersUserIdMap.set(u.userId, { name: name, email: u.email }); + }); + await this.loadEvents(true); + this.loaded = true; + } + + protected requestEvents(startDate: string, endDate: string, continuationToken: string) { + return this.apiService.getEventsProvider( + this.providerId, + startDate, + endDate, + continuationToken + ); + } + + protected getUserName(r: EventResponse, userId: string) { + return userId != null && this.providerUsersUserIdMap.has(userId) + ? this.providerUsersUserIdMap.get(userId) + : null; + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/manage/manage.component.html b/bitwarden_license/bit-web/src/app/providers/manage/manage.component.html new file mode 100644 index 0000000000..48e26fb5fe --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/manage/manage.component.html @@ -0,0 +1,30 @@ +
+
+ +
+ +
+
+
diff --git a/bitwarden_license/bit-web/src/app/providers/manage/manage.component.ts b/bitwarden_license/bit-web/src/app/providers/manage/manage.component.ts new file mode 100644 index 0000000000..2ddc19c3b7 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/manage/manage.component.ts @@ -0,0 +1,23 @@ +import { Component, OnInit } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { ProviderService } from "jslib-common/abstractions/provider.service"; +import { Provider } from "jslib-common/models/domain/provider"; + +@Component({ + selector: "provider-manage", + templateUrl: "manage.component.html", +}) +export class ManageComponent implements OnInit { + provider: Provider; + accessEvents = false; + + constructor(private route: ActivatedRoute, private providerService: ProviderService) {} + + ngOnInit() { + this.route.parent.params.subscribe(async (params) => { + this.provider = await this.providerService.get(params.providerId); + this.accessEvents = this.provider.useEvents; + }); + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/manage/people.component.html b/bitwarden_license/bit-web/src/app/providers/manage/people.component.html new file mode 100644 index 0000000000..884a6bafb1 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/manage/people.component.html @@ -0,0 +1,233 @@ + + + + {{ "loading" | i18n }} + + +

{{ "noUsersInList" | i18n }}

+ + + {{ "providerUsersNeedConfirmed" | i18n }} + + + + + + + + + + + + +
+ + + + + + {{ u.email }} + {{ + "invited" | i18n + }} + {{ + "accepted" | i18n + }} + {{ u.name }} + + + + {{ "userUsingTwoStep" | i18n }} + + + {{ "providerAdmin" | i18n }} + {{ "serviceUser" | i18n }} + {{ "custom" | i18n }} + + +
+
+
+ + + + + + diff --git a/bitwarden_license/bit-web/src/app/providers/manage/people.component.ts b/bitwarden_license/bit-web/src/app/providers/manage/people.component.ts new file mode 100644 index 0000000000..9cc615b87e --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/manage/people.component.ts @@ -0,0 +1,284 @@ +import { Component, OnInit, ViewChild, ViewContainerRef } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; +import { first } from "rxjs/operators"; + +import { SearchPipe } from "jslib-angular/pipes/search.pipe"; +import { UserNamePipe } from "jslib-angular/pipes/user-name.pipe"; +import { ModalService } from "jslib-angular/services/modal.service"; +import { ValidationService } from "jslib-angular/services/validation.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { ProviderService } from "jslib-common/abstractions/provider.service"; +import { SearchService } from "jslib-common/abstractions/search.service"; +import { StateService } from "jslib-common/abstractions/state.service"; +import { ProviderUserStatusType } from "jslib-common/enums/providerUserStatusType"; +import { ProviderUserType } from "jslib-common/enums/providerUserType"; +import { ProviderUserBulkRequest } from "jslib-common/models/request/provider/providerUserBulkRequest"; +import { ProviderUserConfirmRequest } from "jslib-common/models/request/provider/providerUserConfirmRequest"; +import { ListResponse } from "jslib-common/models/response/listResponse"; +import { ProviderUserBulkResponse } from "jslib-common/models/response/provider/providerUserBulkResponse"; +import { ProviderUserUserDetailsResponse } from "jslib-common/models/response/provider/providerUserResponse"; + +import { BasePeopleComponent } from "src/app/common/base.people.component"; +import { BulkStatusComponent } from "src/app/organizations/manage/bulk/bulk-status.component"; +import { EntityEventsComponent } from "src/app/organizations/manage/entity-events.component"; + +import { BulkConfirmComponent } from "./bulk/bulk-confirm.component"; +import { BulkRemoveComponent } from "./bulk/bulk-remove.component"; +import { UserAddEditComponent } from "./user-add-edit.component"; + +@Component({ + selector: "provider-people", + templateUrl: "people.component.html", +}) +export class PeopleComponent + extends BasePeopleComponent + implements OnInit +{ + @ViewChild("addEdit", { read: ViewContainerRef, static: true }) addEditModalRef: ViewContainerRef; + @ViewChild("groupsTemplate", { read: ViewContainerRef, static: true }) + groupsModalRef: ViewContainerRef; + @ViewChild("eventsTemplate", { read: ViewContainerRef, static: true }) + eventsModalRef: ViewContainerRef; + @ViewChild("bulkStatusTemplate", { read: ViewContainerRef, static: true }) + bulkStatusModalRef: ViewContainerRef; + @ViewChild("bulkConfirmTemplate", { read: ViewContainerRef, static: true }) + bulkConfirmModalRef: ViewContainerRef; + @ViewChild("bulkRemoveTemplate", { read: ViewContainerRef, static: true }) + bulkRemoveModalRef: ViewContainerRef; + + userType = ProviderUserType; + userStatusType = ProviderUserStatusType; + providerId: string; + accessEvents = false; + + constructor( + apiService: ApiService, + private route: ActivatedRoute, + i18nService: I18nService, + modalService: ModalService, + platformUtilsService: PlatformUtilsService, + cryptoService: CryptoService, + private router: Router, + searchService: SearchService, + validationService: ValidationService, + logService: LogService, + searchPipe: SearchPipe, + userNamePipe: UserNamePipe, + stateService: StateService, + private providerService: ProviderService + ) { + super( + apiService, + searchService, + i18nService, + platformUtilsService, + cryptoService, + validationService, + modalService, + logService, + searchPipe, + userNamePipe, + stateService + ); + } + + ngOnInit() { + this.route.parent.params.subscribe(async (params) => { + this.providerId = params.providerId; + const provider = await this.providerService.get(this.providerId); + + if (!provider.canManageUsers) { + this.router.navigate(["../"], { relativeTo: this.route }); + return; + } + + this.accessEvents = provider.useEvents; + + await this.load(); + + this.route.queryParams.pipe(first()).subscribe(async (qParams) => { + this.searchText = qParams.search; + if (qParams.viewEvents != null) { + const user = this.users.filter((u) => u.id === qParams.viewEvents); + if (user.length > 0 && user[0].status === ProviderUserStatusType.Confirmed) { + this.events(user[0]); + } + } + }); + }); + } + + getUsers(): Promise> { + return this.apiService.getProviderUsers(this.providerId); + } + + deleteUser(id: string): Promise { + return this.apiService.deleteProviderUser(this.providerId, id); + } + + reinviteUser(id: string): Promise { + return this.apiService.postProviderUserReinvite(this.providerId, id); + } + + async confirmUser(user: ProviderUserUserDetailsResponse, publicKey: Uint8Array): Promise { + const providerKey = await this.cryptoService.getProviderKey(this.providerId); + const key = await this.cryptoService.rsaEncrypt(providerKey.key, publicKey.buffer); + const request = new ProviderUserConfirmRequest(); + request.key = key.encryptedString; + await this.apiService.postProviderUserConfirm(this.providerId, user.id, request); + } + + async edit(user: ProviderUserUserDetailsResponse) { + const [modal] = await this.modalService.openViewRef( + UserAddEditComponent, + this.addEditModalRef, + (comp) => { + comp.name = this.userNamePipe.transform(user); + comp.providerId = this.providerId; + comp.providerUserId = user != null ? user.id : null; + comp.onSavedUser.subscribe(() => { + modal.close(); + this.load(); + }); + comp.onDeletedUser.subscribe(() => { + modal.close(); + this.removeUser(user); + }); + } + ); + } + + async events(user: ProviderUserUserDetailsResponse) { + await this.modalService.openViewRef(EntityEventsComponent, this.eventsModalRef, (comp) => { + comp.name = this.userNamePipe.transform(user); + comp.providerId = this.providerId; + comp.entityId = user.id; + comp.showUser = false; + comp.entity = "user"; + }); + } + + async bulkRemove() { + if (this.actionPromise != null) { + return; + } + + const [modal] = await this.modalService.openViewRef( + BulkRemoveComponent, + this.bulkRemoveModalRef, + (comp) => { + comp.providerId = this.providerId; + comp.users = this.getCheckedUsers(); + } + ); + + await modal.onClosedPromise(); + await this.load(); + } + + async bulkReinvite() { + if (this.actionPromise != null) { + return; + } + + const users = this.getCheckedUsers(); + const filteredUsers = users.filter((u) => u.status === ProviderUserStatusType.Invited); + + if (filteredUsers.length <= 0) { + this.platformUtilsService.showToast( + "error", + this.i18nService.t("errorOccurred"), + this.i18nService.t("noSelectedUsersApplicable") + ); + return; + } + + try { + const request = new ProviderUserBulkRequest(filteredUsers.map((user) => user.id)); + const response = this.apiService.postManyProviderUserReinvite(this.providerId, request); + this.showBulkStatus( + users, + filteredUsers, + response, + this.i18nService.t("bulkReinviteMessage") + ); + } catch (e) { + this.validationService.showError(e); + } + this.actionPromise = null; + } + + async bulkConfirm() { + if (this.actionPromise != null) { + return; + } + + const [modal] = await this.modalService.openViewRef( + BulkConfirmComponent, + this.bulkConfirmModalRef, + (comp) => { + comp.providerId = this.providerId; + comp.users = this.getCheckedUsers(); + } + ); + + await modal.onClosedPromise(); + await this.load(); + } + + private async showBulkStatus( + users: ProviderUserUserDetailsResponse[], + filteredUsers: ProviderUserUserDetailsResponse[], + request: Promise>, + successfullMessage: string + ) { + const [modal, childComponent] = await this.modalService.openViewRef( + BulkStatusComponent, + this.bulkStatusModalRef, + (comp) => { + comp.loading = true; + } + ); + + // Workaround to handle closing the modal shortly after it has been opened + let close = false; + modal.onShown.subscribe(() => { + if (close) { + modal.close(); + } + }); + + try { + const response = await request; + + if (modal) { + const keyedErrors: any = response.data + .filter((r) => r.error !== "") + .reduce((a, x) => ({ ...a, [x.id]: x.error }), {}); + const keyedFilteredUsers: any = filteredUsers.reduce((a, x) => ({ ...a, [x.id]: x }), {}); + + childComponent.users = users.map((user) => { + let message = keyedErrors[user.id] ?? successfullMessage; + // eslint-disable-next-line + if (!keyedFilteredUsers.hasOwnProperty(user.id)) { + message = this.i18nService.t("bulkFilteredMessage"); + } + + return { + user: user, + error: keyedErrors.hasOwnProperty(user.id), // eslint-disable-line + message: message, + }; + }); + childComponent.loading = false; + } + } catch { + close = true; + modal.close(); + } + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/manage/user-add-edit.component.html b/bitwarden_license/bit-web/src/app/providers/manage/user-add-edit.component.html new file mode 100644 index 0000000000..d784294071 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/manage/user-add-edit.component.html @@ -0,0 +1,124 @@ + diff --git a/bitwarden_license/bit-web/src/app/providers/manage/user-add-edit.component.ts b/bitwarden_license/bit-web/src/app/providers/manage/user-add-edit.component.ts new file mode 100644 index 0000000000..48038472d8 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/manage/user-add-edit.component.ts @@ -0,0 +1,118 @@ +import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { ProviderUserType } from "jslib-common/enums/providerUserType"; +import { PermissionsApi } from "jslib-common/models/api/permissionsApi"; +import { ProviderUserInviteRequest } from "jslib-common/models/request/provider/providerUserInviteRequest"; +import { ProviderUserUpdateRequest } from "jslib-common/models/request/provider/providerUserUpdateRequest"; + +@Component({ + selector: "provider-user-add-edit", + templateUrl: "user-add-edit.component.html", +}) +export class UserAddEditComponent implements OnInit { + @Input() name: string; + @Input() providerUserId: string; + @Input() providerId: string; + @Output() onSavedUser = new EventEmitter(); + @Output() onDeletedUser = new EventEmitter(); + + loading = true; + editMode = false; + title: string; + emails: string; + type: ProviderUserType = ProviderUserType.ServiceUser; + permissions = new PermissionsApi(); + showCustom = false; + access: "all" | "selected" = "selected"; + formPromise: Promise; + deletePromise: Promise; + userType = ProviderUserType; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private platformUtilsService: PlatformUtilsService, + private logService: LogService + ) {} + + async ngOnInit() { + this.editMode = this.loading = this.providerUserId != null; + + if (this.editMode) { + this.editMode = true; + this.title = this.i18nService.t("editUser"); + try { + const user = await this.apiService.getProviderUser(this.providerId, this.providerUserId); + this.type = user.type; + } catch (e) { + this.logService.error(e); + } + } else { + this.title = this.i18nService.t("inviteUser"); + } + + this.loading = false; + } + + async submit() { + try { + if (this.editMode) { + const request = new ProviderUserUpdateRequest(); + request.type = this.type; + this.formPromise = this.apiService.putProviderUser( + this.providerId, + this.providerUserId, + request + ); + } else { + const request = new ProviderUserInviteRequest(); + request.emails = this.emails.trim().split(/\s*,\s*/); + request.type = this.type; + this.formPromise = this.apiService.postProviderUserInvite(this.providerId, request); + } + await this.formPromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t(this.editMode ? "editedUserId" : "invitedUsers", this.name) + ); + this.onSavedUser.emit(); + } catch (e) { + this.logService.error(e); + } + } + + async delete() { + if (!this.editMode) { + return; + } + + const confirmed = await this.platformUtilsService.showDialog( + this.i18nService.t("removeUserConfirmation"), + this.name, + this.i18nService.t("yes"), + this.i18nService.t("no"), + "warning" + ); + if (!confirmed) { + return false; + } + + try { + this.deletePromise = this.apiService.deleteProviderUser(this.providerId, this.providerUserId); + await this.deletePromise; + this.platformUtilsService.showToast( + "success", + null, + this.i18nService.t("removedUserId", this.name) + ); + this.onDeletedUser.emit(); + } catch (e) { + this.logService.error(e); + } + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/providers-layout.component.html b/bitwarden_license/bit-web/src/app/providers/providers-layout.component.html new file mode 100644 index 0000000000..f5546f909e --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/providers-layout.component.html @@ -0,0 +1,44 @@ + +
+
+
+
+ +
+ {{ provider.name }} + {{ "provider" | i18n }} +
+
+
+ + {{ "providerIsDisabled" | i18n }} +
+
+
+ +
+
+
+
+ +
+ diff --git a/bitwarden_license/bit-web/src/app/providers/providers-layout.component.ts b/bitwarden_license/bit-web/src/app/providers/providers-layout.component.ts new file mode 100644 index 0000000000..e00a30b65b --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/providers-layout.component.ts @@ -0,0 +1,49 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { ProviderService } from "jslib-common/abstractions/provider.service"; +import { Provider } from "jslib-common/models/domain/provider"; + +@Component({ + selector: "providers-layout", + templateUrl: "providers-layout.component.html", +}) +export class ProvidersLayoutComponent { + provider: Provider; + private providerId: string; + + constructor(private route: ActivatedRoute, private providerService: ProviderService) {} + + ngOnInit() { + document.body.classList.remove("layout_frontend"); + this.route.params.subscribe(async (params) => { + this.providerId = params.providerId; + await this.load(); + }); + } + + async load() { + this.provider = await this.providerService.get(this.providerId); + } + + get showMenuBar() { + return this.showManageTab || this.showSettingsTab; + } + + get showManageTab() { + return this.provider.canManageUsers || this.provider.canAccessEventLogs; + } + + get showSettingsTab() { + return this.provider.isProviderAdmin; + } + + get manageRoute(): string { + switch (true) { + case this.provider.canManageUsers: + return "manage/people"; + case this.provider.canAccessEventLogs: + return "manage/events"; + } + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/providers-routing.module.ts b/bitwarden_license/bit-web/src/app/providers/providers-routing.module.ts new file mode 100644 index 0000000000..14cd7c4707 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/providers-routing.module.ts @@ -0,0 +1,121 @@ +import { NgModule } from "@angular/core"; +import { RouterModule, Routes } from "@angular/router"; + +import { AuthGuard } from "jslib-angular/guards/auth.guard"; +import { Permissions } from "jslib-common/enums/permissions"; + +import { FrontendLayoutComponent } from "src/app/layouts/frontend-layout.component"; +import { ProvidersComponent } from "src/app/providers/providers.component"; + +import { ClientsComponent } from "./clients/clients.component"; +import { CreateOrganizationComponent } from "./clients/create-organization.component"; +import { PermissionsGuard } from "./guards/provider-type.guard"; +import { ProviderGuard } from "./guards/provider.guard"; +import { AcceptProviderComponent } from "./manage/accept-provider.component"; +import { EventsComponent } from "./manage/events.component"; +import { ManageComponent } from "./manage/manage.component"; +import { PeopleComponent } from "./manage/people.component"; +import { ProvidersLayoutComponent } from "./providers-layout.component"; +import { AccountComponent } from "./settings/account.component"; +import { SettingsComponent } from "./settings/settings.component"; +import { SetupProviderComponent } from "./setup/setup-provider.component"; +import { SetupComponent } from "./setup/setup.component"; + +const routes: Routes = [ + { + path: "", + canActivate: [AuthGuard], + component: ProvidersComponent, + }, + { + path: "", + component: FrontendLayoutComponent, + children: [ + { + path: "setup-provider", + component: SetupProviderComponent, + data: { titleId: "setupProvider" }, + }, + { + path: "accept-provider", + component: AcceptProviderComponent, + data: { titleId: "acceptProvider" }, + }, + ], + }, + { + path: "", + canActivate: [AuthGuard], + children: [ + { + path: "setup", + component: SetupComponent, + }, + { + path: ":providerId", + component: ProvidersLayoutComponent, + canActivate: [ProviderGuard], + children: [ + { path: "", pathMatch: "full", redirectTo: "clients" }, + { path: "clients/create", component: CreateOrganizationComponent }, + { path: "clients", component: ClientsComponent, data: { titleId: "clients" } }, + { + path: "manage", + component: ManageComponent, + children: [ + { + path: "", + pathMatch: "full", + redirectTo: "people", + }, + { + path: "people", + component: PeopleComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "people", + permissions: [Permissions.ManageUsers], + }, + }, + { + path: "events", + component: EventsComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "eventLogs", + permissions: [Permissions.AccessEventLogs], + }, + }, + ], + }, + { + path: "settings", + component: SettingsComponent, + children: [ + { + path: "", + pathMatch: "full", + redirectTo: "account", + }, + { + path: "account", + component: AccountComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "myProvider", + permissions: [Permissions.ManageProvider], + }, + }, + ], + }, + ], + }, + ], + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class ProvidersRoutingModule {} diff --git a/bitwarden_license/bit-web/src/app/providers/providers.module.ts b/bitwarden_license/bit-web/src/app/providers/providers.module.ts new file mode 100644 index 0000000000..7880d78c9b --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/providers.module.ts @@ -0,0 +1,58 @@ +import { CommonModule } from "@angular/common"; +import { ComponentFactoryResolver, NgModule } from "@angular/core"; +import { FormsModule } from "@angular/forms"; + +import { JslibModule } from "jslib-angular/jslib.module"; +import { ModalService } from "jslib-angular/services/modal.service"; + +import { OssModule } from "src/app/oss.module"; + +import { AddOrganizationComponent } from "./clients/add-organization.component"; +import { ClientsComponent } from "./clients/clients.component"; +import { CreateOrganizationComponent } from "./clients/create-organization.component"; +import { PermissionsGuard } from "./guards/provider-type.guard"; +import { ProviderGuard } from "./guards/provider.guard"; +import { AcceptProviderComponent } from "./manage/accept-provider.component"; +import { BulkConfirmComponent } from "./manage/bulk/bulk-confirm.component"; +import { BulkRemoveComponent } from "./manage/bulk/bulk-remove.component"; +import { EventsComponent } from "./manage/events.component"; +import { ManageComponent } from "./manage/manage.component"; +import { PeopleComponent } from "./manage/people.component"; +import { UserAddEditComponent } from "./manage/user-add-edit.component"; +import { ProvidersLayoutComponent } from "./providers-layout.component"; +import { ProvidersRoutingModule } from "./providers-routing.module"; +import { WebProviderService } from "./services/webProvider.service"; +import { AccountComponent } from "./settings/account.component"; +import { SettingsComponent } from "./settings/settings.component"; +import { SetupProviderComponent } from "./setup/setup-provider.component"; +import { SetupComponent } from "./setup/setup.component"; + +@NgModule({ + imports: [CommonModule, FormsModule, OssModule, JslibModule, ProvidersRoutingModule], + declarations: [ + AcceptProviderComponent, + AccountComponent, + AddOrganizationComponent, + BulkConfirmComponent, + BulkRemoveComponent, + ClientsComponent, + CreateOrganizationComponent, + EventsComponent, + ManageComponent, + PeopleComponent, + ProvidersLayoutComponent, + SettingsComponent, + SetupComponent, + SetupProviderComponent, + UserAddEditComponent, + ], + providers: [WebProviderService, ProviderGuard, PermissionsGuard], +}) +export class ProvidersModule { + constructor(modalService: ModalService, componentFactoryResolver: ComponentFactoryResolver) { + modalService.registerComponentFactoryResolver( + AddOrganizationComponent, + componentFactoryResolver + ); + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/services/webProvider.service.ts b/bitwarden_license/bit-web/src/app/providers/services/webProvider.service.ts new file mode 100644 index 0000000000..2910229495 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/services/webProvider.service.ts @@ -0,0 +1,35 @@ +import { Injectable } from "@angular/core"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { ProviderAddOrganizationRequest } from "jslib-common/models/request/provider/providerAddOrganizationRequest"; + +@Injectable() +export class WebProviderService { + constructor( + private cryptoService: CryptoService, + private syncService: SyncService, + private apiService: ApiService + ) {} + + async addOrganizationToProvider(providerId: string, organizationId: string) { + const orgKey = await this.cryptoService.getOrgKey(organizationId); + const providerKey = await this.cryptoService.getProviderKey(providerId); + + const encryptedOrgKey = await this.cryptoService.encrypt(orgKey.key, providerKey); + + const request = new ProviderAddOrganizationRequest(); + request.organizationId = organizationId; + request.key = encryptedOrgKey.encryptedString; + + const response = await this.apiService.postProviderAddOrganization(providerId, request); + await this.syncService.fullSync(true); + return response; + } + + async detachOrganizastion(providerId: string, organizationId: string): Promise { + await this.apiService.deleteProviderOrganization(providerId, organizationId); + await this.syncService.fullSync(true); + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/settings/account.component.html b/bitwarden_license/bit-web/src/app/providers/settings/account.component.html new file mode 100644 index 0000000000..f58e712ce3 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/settings/account.component.html @@ -0,0 +1,52 @@ + +
+ + {{ "loading" | i18n }} +
+
+
+
+
+ + +
+
+ + +
+
+
+ +
+
+ +
diff --git a/bitwarden_license/bit-web/src/app/providers/settings/account.component.ts b/bitwarden_license/bit-web/src/app/providers/settings/account.component.ts new file mode 100644 index 0000000000..fc834d4b65 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/settings/account.component.ts @@ -0,0 +1,63 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { ApiService } from "jslib-common/abstractions/api.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { LogService } from "jslib-common/abstractions/log.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { ProviderUpdateRequest } from "jslib-common/models/request/provider/providerUpdateRequest"; +import { ProviderResponse } from "jslib-common/models/response/provider/providerResponse"; + +@Component({ + selector: "provider-account", + templateUrl: "account.component.html", +}) +export class AccountComponent { + selfHosted = false; + loading = true; + provider: ProviderResponse; + formPromise: Promise; + taxFormPromise: Promise; + + private providerId: string; + + constructor( + private apiService: ApiService, + private i18nService: I18nService, + private route: ActivatedRoute, + private syncService: SyncService, + private platformUtilsService: PlatformUtilsService, + private logService: LogService + ) {} + + async ngOnInit() { + this.selfHosted = this.platformUtilsService.isSelfHost(); + this.route.parent.parent.params.subscribe(async (params) => { + this.providerId = params.providerId; + try { + this.provider = await this.apiService.getProvider(this.providerId); + } catch (e) { + this.logService.error(`Handled exception: ${e}`); + } + }); + this.loading = false; + } + + async submit() { + try { + const request = new ProviderUpdateRequest(); + request.name = this.provider.name; + request.businessName = this.provider.businessName; + request.billingEmail = this.provider.billingEmail; + + this.formPromise = this.apiService.putProvider(this.providerId, request).then(() => { + return this.syncService.fullSync(true); + }); + await this.formPromise; + this.platformUtilsService.showToast("success", null, this.i18nService.t("providerUpdated")); + } catch (e) { + this.logService.error(`Handled exception: ${e}`); + } + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/settings/settings.component.html b/bitwarden_license/bit-web/src/app/providers/settings/settings.component.html new file mode 100644 index 0000000000..1bc350489c --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/settings/settings.component.html @@ -0,0 +1,17 @@ +
+
+
+
+
{{ "settings" | i18n }}
+ +
+
+
+ +
+
+
diff --git a/bitwarden_license/bit-web/src/app/providers/settings/settings.component.ts b/bitwarden_license/bit-web/src/app/providers/settings/settings.component.ts new file mode 100644 index 0000000000..860f02cf3a --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/settings/settings.component.ts @@ -0,0 +1,18 @@ +import { Component } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; + +import { ProviderService } from "jslib-common/abstractions/provider.service"; + +@Component({ + selector: "provider-settings", + templateUrl: "settings.component.html", +}) +export class SettingsComponent { + constructor(private route: ActivatedRoute, private providerService: ProviderService) {} + + ngOnInit() { + this.route.parent.params.subscribe(async (params) => { + await this.providerService.get(params.providerId); + }); + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/setup/setup-provider.component.html b/bitwarden_license/bit-web/src/app/providers/setup/setup-provider.component.html new file mode 100644 index 0000000000..928d178c29 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/setup/setup-provider.component.html @@ -0,0 +1,35 @@ +
+
+ +

+ + {{ "loading" | i18n }} +

+
+
+
+
+
+

{{ "setupProvider" | i18n }}

+
+
+

{{ "setupProviderLoginDesc" | i18n }}

+
+ +
+
+
+
+
diff --git a/bitwarden_license/bit-web/src/app/providers/setup/setup-provider.component.ts b/bitwarden_license/bit-web/src/app/providers/setup/setup-provider.component.ts new file mode 100644 index 0000000000..f34db73612 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/setup/setup-provider.component.ts @@ -0,0 +1,22 @@ +import { Component } from "@angular/core"; + +import { BaseAcceptComponent } from "src/app/common/base.accept.component"; + +@Component({ + selector: "app-setup-provider", + templateUrl: "setup-provider.component.html", +}) +export class SetupProviderComponent extends BaseAcceptComponent { + failedShortMessage = "inviteAcceptFailedShort"; + failedMessage = "inviteAcceptFailed"; + + requiredParameters = ["providerId", "email", "token"]; + + async authedHandler(qParams: any) { + this.router.navigate(["/providers/setup"], { queryParams: qParams }); + } + + async unauthedHandler(qParams: any) { + // Empty + } +} diff --git a/bitwarden_license/bit-web/src/app/providers/setup/setup.component.html b/bitwarden_license/bit-web/src/app/providers/setup/setup.component.html new file mode 100644 index 0000000000..8bbbe41774 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/setup/setup.component.html @@ -0,0 +1,39 @@ + +
+ +

{{ "setupProviderDesc" | i18n }}

+ +
+

{{ "generalInformation" | i18n }}

+
+
+ + +
+
+ + +
+
+ +
+ + +
+
+
+ diff --git a/bitwarden_license/bit-web/src/app/providers/setup/setup.component.ts b/bitwarden_license/bit-web/src/app/providers/setup/setup.component.ts new file mode 100644 index 0000000000..14435be217 --- /dev/null +++ b/bitwarden_license/bit-web/src/app/providers/setup/setup.component.ts @@ -0,0 +1,97 @@ +import { Component, OnInit } from "@angular/core"; +import { ActivatedRoute, Router } from "@angular/router"; +import { first } from "rxjs/operators"; + +import { ValidationService } from "jslib-angular/services/validation.service"; +import { ApiService } from "jslib-common/abstractions/api.service"; +import { CryptoService } from "jslib-common/abstractions/crypto.service"; +import { I18nService } from "jslib-common/abstractions/i18n.service"; +import { PlatformUtilsService } from "jslib-common/abstractions/platformUtils.service"; +import { SyncService } from "jslib-common/abstractions/sync.service"; +import { ProviderSetupRequest } from "jslib-common/models/request/provider/providerSetupRequest"; + +@Component({ + selector: "provider-setup", + templateUrl: "setup.component.html", +}) +export class SetupComponent implements OnInit { + loading = true; + authed = false; + email: string; + formPromise: Promise; + + providerId: string; + token: string; + name: string; + billingEmail: string; + + constructor( + private router: Router, + private platformUtilsService: PlatformUtilsService, + private i18nService: I18nService, + private route: ActivatedRoute, + private cryptoService: CryptoService, + private apiService: ApiService, + private syncService: SyncService, + private validationService: ValidationService + ) {} + + ngOnInit() { + document.body.classList.remove("layout_frontend"); + this.route.queryParams.pipe(first()).subscribe(async (qParams) => { + const error = qParams.providerId == null || qParams.email == null || qParams.token == null; + + if (error) { + this.platformUtilsService.showToast( + "error", + null, + this.i18nService.t("emergencyInviteAcceptFailed"), + { timeout: 10000 } + ); + this.router.navigate(["/"]); + return; + } + + this.providerId = qParams.providerId; + this.token = qParams.token; + + // Check if provider exists, redirect if it does + try { + const provider = await this.apiService.getProvider(this.providerId); + if (provider.name != null) { + this.router.navigate(["/providers", provider.id], { replaceUrl: true }); + } + } catch (e) { + this.validationService.showError(e); + this.router.navigate(["/"]); + } + }); + } + + async submit() { + this.formPromise = this.doSubmit(); + await this.formPromise; + this.formPromise = null; + } + + async doSubmit() { + try { + const shareKey = await this.cryptoService.makeShareKey(); + const key = shareKey[0].encryptedString; + + const request = new ProviderSetupRequest(); + request.name = this.name; + request.billingEmail = this.billingEmail; + request.token = this.token; + request.key = key; + + const provider = await this.apiService.postProviderSetup(this.providerId, request); + this.platformUtilsService.showToast("success", null, this.i18nService.t("providerSetup")); + await this.syncService.fullSync(true); + + this.router.navigate(["/providers", provider.id]); + } catch (e) { + this.validationService.showError(e); + } + } +} diff --git a/bitwarden_license/bit-web/webpack.config.js b/bitwarden_license/bit-web/webpack.config.js new file mode 100644 index 0000000000..bae0682f9d --- /dev/null +++ b/bitwarden_license/bit-web/webpack.config.js @@ -0,0 +1,12 @@ +const { AngularWebpackPlugin } = require("@ngtools/webpack"); + +const webpackConfig = require("../webpack.config"); + +webpackConfig.entry["app/main"] = "./bitwarden_license/src/app/main.ts"; +webpackConfig.plugins[webpackConfig.plugins.length - 1] = new AngularWebpackPlugin({ + tsConfigPath: "tsconfig.json", + entryModule: "bitwarden_license/src/app/app.module#AppModule", + sourceMap: true, +}); + +module.exports = webpackConfig;